Синхронизируйте CSV-файлы из Динамического пути в Glue Catalog и Glue Py Spark Script - PullRequest
0 голосов
/ 19 сентября 2019

Я хранил файлы CSV в AWS s3 ежедневно.Ниже приведена структура пути моего файла S3:

s3://data-dl/abc/d=2019-09-19/2019-09-19-data.csv

В этой структуре часть даты пути файла s3 будет создаваться каждый день.

Теперь я хочу использовать клей AWS для ETLотправить данные из S3 в Redshift.Чтобы использовать это, как я могу добавить путь S3 в каталоге данных?Я хочу синхронизировать только CSV-файл последних папок.

Также для части задания, как я могу объявить этот динамический путь в скрипте Glue Pyspark?

Ответы [ 2 ]

0 голосов
/ 21 сентября 2019

Если вы просто хотите синхронизировать, вам не нужно etl.Вы можете использовать команду copy из красного смещения для синхронизации.Вы можете запускать задание оболочки Python с запланированным интервалом или записывать лямбда / sns с событием s3, чтобы сработало, как только все файлы попадут в s3.

0 голосов
/ 20 сентября 2019

Заполнение каталога клея

Вы можете создать внешнюю таблицу в Афине, разделенную по столбцу даты.Затем выполните команду MSCK repair table , чтобы обновить информацию о разделе в таблице всякий раз, когда новые данные добавляются в S3.

Это обеспечит актуальность каталога клея всеми последними данными.

Справочная документация AWS:

Создание внешней таблицы

Таблица восстановления MSCK для обновления разделов

Чтение однодневных данных в Glue ETL

Вы можете создать динамический фрейм из каталога в клее, используя таблицу, созданную ввыше шаг.Вы также можете использовать параметр «push_down_predicate» для чтения записи только за один день при создании динамического кадра.

Справочная документация AWS:

Создание динамического кадра из каталога

...