Конвейер данных (DynamoDB to S3) - Как отформатировать файл S3? - PullRequest
0 голосов
/ 25 мая 2020

У меня есть конвейер данных, который экспортирует мою таблицу DynamoDB в корзину S3, поэтому я могу использовать файл S3 для таких служб, как QuickSight, Athena и Forecast.

Однако для моего файла S3 для работы с этими службами , Мне нужно, чтобы файл был отформатирован в CSV следующим образом:

date, journal, id
1589529457410, PLoS Genetics, 10.1371/journal.pgen.0030110
1589529457410, PLoS Genetics, 10.1371/journal.pgen.1000047

Но вместо этого мой экспортированный файл выглядит так:

{"date":{"s":"1589529457410"},"journal":{"s":"PLoS Genetics"},"id":{"s":"10.1371/journal.pgen.0030110"}}
{"date":{"s":"1589833552714"},"journal":{"s":"PLoS Genetics"},"id":{"s":"10.1371/journal.pgen.1000047"}}

Как я могу указать формат для моего экспортировал файл в S3, чтобы я мог работать с такими сервисами, как QuickSight, Athena и Forecast? Я бы предпочел также выполнять преобразование данных с помощью Data Pipeline.

1 Ответ

2 голосов
/ 25 мая 2020

Афина может читать JSON данные .

Вы также можете использовать потоки DynamoDB для потоковой передачи данных на S3. Вот ссылка на сообщение в блоге с лучшими практиками и шаблонами проектирования для потоковой передачи данных из DynamoDB в S3 для использования с Athena .

Вы можете использовать потоки DynamoDB для запуска an AWS Lambda функция, которая может преобразовывать данные и сохранять их в Amazon S3 , Amazon Redshift et c. С помощью AWS Lambda вы также можете активировать Amazon Forecast для повторного обучения или передать данные в Amazon Forecast для прогноза.

В качестве альтернативы вы можете использовать Amazon Data Pipeline для записи данных в корзину S3 в том виде, в котором они у вас есть. Затем используйте событие облачных наблюдений , запланированное для запуска лямбда-функции, или уведомление о событии S3 для запуска лямбда-функции. Лямбда-функция может преобразовать файл и сохранить его в другом ведре S3 для дальнейшей обработки.

...