+1 Я новичок в Data Pipeline, и это помогло мне понять, как настроить задание для извлечения данных из Redshift в RDS.

аюсь создать задание для извлечения данных из Redshift и записи тех же данных в корзины S3. До сих пор я исследовал AWS Glue, но Glue не способен запускать пользовательские sql на красное смещение. Я знаю, что мы можем запускать команды выгрузки и могут быть сохранены в S3 напрямую. Я ищу решение, которое можно параметризовать и запланировать в AWS.

 hadooper15 нояб. 2017 г., 16:44
Используйте сценарий оболочки с командой UNLOAD и используйте файл конфигурации для параметризации. Настройка cronjob для запуска по расписанию. Используйте EC2 для настройки всего этого.

Ответы на вопрос(1)

Решение Вопроса

AWS Data Pipeline - это сервис AWS, который позволяет вам определять и планировать регулярные задания. Эти работы называются конвейерами. Конвейер содержит бизнес-логику требуемой работы, например, извлечение данных из Redshift в S3. Вы можете запланировать запуск конвейера так часто, как вам требуется, например. повседневная.

Конвейер определяется вами, вы даже можете контролировать его версию. Вы можете подготовить определение конвейера в браузере с помощью Data Pipeline Architect или создать его, используя файл JSON локально на вашем компьютере. Определение конвейера состоит из таких компонентов, как база данных Redshift, узел S3, активность SQL, а также параметров, например, для указания пути S3 для извлечения данных.

Сервис AWS Data Pipeline обрабатывает планирование, зависимость между компонентами в вашем конвейере, мониторинг и обработку ошибок.

Для вашего конкретного случая использования я бы рассмотрел следующие варианты:

Опция 1

Определите конвейер со следующими компонентами: SQLDataNode и S3DataNode. SQLDataNode будет ссылаться на вашу базу данных Redshift и запрос SELECT для использования для извлечения ваших данных. S3DataNode будет указывать путь S3, который будет использоваться для хранения ваших данных. Вы добавляете действие CopyActivity для копирования данных из SQLDataNode в S3DataNode. Когда такой конвейер запускается, он извлекает данные из Redshift, используя SQLDataNode, и копирует эти данные в S3DataNode, используя CopyActivity. Путь S3 в S3DataNode может быть параметризован, поэтому он будет отличаться при каждом запуске конвейера.

Вариант 2

Во-первых, определите запрос SQL с помощью оператора UNLOAD, который будет использоваться для выгрузки ваших данных в S3. При желании вы можете сохранить его в файл и загрузить на S3. Используйте компонент SQLActivity, чтобы указать запрос SQL для выполнения в базе данных Redshift. SQL-запрос в SQLActivity может быть ссылкой на путь S3, где вы сохранили запрос (необязательно), или просто сам запрос. Всякий раз, когда конвейер запускается, он подключается к Redshift и выполняет запрос SQL, который сохраняет данные в S3. Ограничения варианта 2: в операторе UNLOAD путь S3 является статическим. Если вы планируете хранить каждый извлечение данных в отдельном пути S3, вам придется изменять оператор UNLOAD, чтобы каждый раз при запуске его использовать другой путь S3, который не является готовой функцией.

Где эти трубопроводы проходят?

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

Соответствующая документация:

http://docs.aws.amazon.com/datapipeline/latest/DeveloperGuide/what-is-datapipeline.html

http://docs.aws.amazon.com/datapipeline/latest/DeveloperGuide/dp-object-redshiftdatabase.html

http://docs.aws.amazon.com/datapipeline/latest/DeveloperGuide/dp-object-sqldatanode.html

http://docs.aws.amazon.com/datapipeline/latest/DeveloperGuide/dp-object-sqlactivity.html

http://docs.aws.amazon.com/datapipeline/latest/DeveloperGuide/dp-using-task-runner.html

 ippomakunochi01 февр. 2019 г., 22:31
+1 Я новичок в Data Pipeline, и это помогло мне понять, как настроить задание для извлечения данных из Redshift в RDS.

Ваш ответ на вопрос