Автоматизировать загрузку файлов из s3 в снежинку - PullRequest
0 голосов
/ 15 января 2019

В s3 bucket ежедневно сбрасываются новые JSON-файлы, мне нужно создать решение, которое выбирает последний файл, когда он прибывает, PARSE JSON и загружает его в Snowflake Datawarehouse. кто-нибудь, пожалуйста, поделитесь своими мыслями, как мы можем достичь

Ответы [ 3 ]

0 голосов
/ 15 января 2019

Посмотрите на Snowpipe , это позволяет вам делать это внутри системы, делая это (возможно) намного проще.

0 голосов
/ 16 января 2019

Есть некоторые аспекты, которые следует учитывать, такие как пакетные или потоковые данные, хотите ли вы повторить загрузку файла в случае, если данные или формат неверны, или вы хотите сделать его универсальным процессом, который можно обрабатывать различные форматы файлов / типы файлов (CSV / JSON) и этапов. В нашем случае мы создали общую загрузку s3 в Snowflake с использованием Python и Luigi, а также реализовали то же самое с использованием SSIS, но только для файла csv / txt.

0 голосов
/ 15 января 2019

Есть несколько способов сделать это в зависимости от ваших потребностей. Я бы предложил создать событие для запуска лямбда-функции.

https://docs.aws.amazon.com/lambda/latest/dg/with-s3.html

Другим вариантом может быть создание сообщения SQS, когда файл попадает на s3, и наличие экземпляра ec2 для опроса очереди и обработки по мере необходимости.

https://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html https://boto3.amazonaws.com/v1/documentation/api/latest/guide/sqs-example-long-polling.html

edit: вот более подробное объяснение того, как создавать события из s3 и запускать лямбда-функции. Документация предоставлена ​​Snowflake

https://docs.snowflake.net/manuals/user-guide/data-load-snowpipe-rest-lambda.html

...