Обработка неразделенных данных с помощью AWS Glue с использованием закладок - PullRequest
0 голосов
/ 23 мая 2019

У меня есть данные, записываемые из Kafka в каталог в s3 со структурой, подобной этой:

s3://bucket/topics/topic1/files1...N
s3://bucket/topics/topic2/files1...N
.
.
s3://bucket/topics/topicN/files1...N

В этой корзине уже много данных, и я хочу использовать AWS Glue, чтобы преобразовать их в паркет и разбить на части, но данных слишком много, чтобы сделать все сразу. Я изучал закладки, и кажется, что вы не можете использовать их, чтобы читать только самые последние данные или обрабатывать данные кусками. Существует ли рекомендуемый способ обработки данных, чтобы закладки работали, когда поступают новые данные?

Кроме того, требуется ли в закладках, что искра или клей должны сканировать весь мой набор данных каждый раз, когда я запускаю задание, чтобы выяснить, какие файлы больше, чем при последних запусках max_last_modified timestamp? Это кажется довольно неэффективным, особенно если данные в исходной корзине продолжают расти.

1 Ответ

0 голосов
/ 23 июля 2019

Я узнал, что Glue хочет, чтобы все похожие файлы (файлы с одинаковой структурой и назначением) находились в одной папке с необязательными подпапками.

s3://my-bucket/report-type-a/yyyy/mm/dd/file1.txt
s3://my-bucket/report-type-a/yyyy/mm/dd/file2.txt
...
s3://my-bucket/report-type-b/yyyy/mm/dd/file23.txt

Все файлы в папке report-type-aдолжен быть в том же формате.Поместите другой отчет, например report-type-b, в другую папку.

Вы можете попробовать поместить только несколько входных файлов в нужное место, запустить задание ETL, поместить больше файлов в корзину, запуститьснова и т. д.

Я попробовал это, заставив текущие файлы работать (один файл в день), а затем заполнив исторические файлы.Обратите внимание, что это не сработало полностью.Я получаю файлы, обработанные нормально в s3://my-bucket/report-type/2019/07/report_20190722.gzp, но когда я пытался добавить прошлые файлы в 's3: // my-bucket / report-type / 2019/05 / report_20190510.gzip`, клей не "видел" илиобработать файл в более старой папке.

Однако, если я переместил старый отчет в текущий раздел, он заработал: s3://my-bucket/report-type/2019/07/report_20190510.gzip.

...