Какой эффективный способ получения данных из s3 среди утилит командной строки boto3, athena и aws - PullRequest
0 голосов
/ 26 ноября 2018

Может кто-нибудь, пожалуйста, дайте мне знать, каков эффективный способ извлечения данных из s3.По сути, я хочу извлечь данные за определенный промежуток времени, применить некоторые фильтры к данным (JSON) и сохранить их в БД.Я новичок в AWS и после небольшого исследования обнаружил, что я могу сделать это через API boto3, запросы Athena и CLI AWS.Но мне нужно посоветовать, с кем идти.

Ответы [ 2 ]

0 голосов
/ 27 ноября 2018

Некоторые параметры:

  • Загрузка и обработка: Запуск временного экземпляра EC2, скрипт для загрузки интересующих файлов (например, файлов за один день?), Использование PythonПрограмма для обработки данных.Это дает вам полный контроль над происходящим.
  • Amazon S3 Select : Это простой способ извлечения данных из файлов CSV, но он работает только наодин файл за раз.
  • Amazon Athena: Предоставляет интерфейс SQL для запроса нескольких файлов с помощью Presto.Без сервера, быстро.Оплата начисляется в зависимости от объема данных, считанных с диска (поэтому для сжатых данных это дешевле).
  • Amazon EMR: Сервис Hadoop, обеспечивающий очень эффективную обработку больших объемов данных.Настраиваемая конфигурация, но довольно сложная для новых пользователей.

На основании вашего описания (10 файлов, 300 МБ, 200 КБ записей) я бы рекомендовал начать с Amazon Athena , поскольку он обеспечивает дружественныйИнтерфейс SQL для многих файлов данных.Начните с выполнения запросов по одному файлу (это ускоряет тестирование) и, как только вы получите желаемые результаты, запустите его по всем файлам данных.

0 голосов
/ 26 ноября 2018

Если вы ищете самое простое и простое решение, я бы порекомендовал aws cli .Он идеально подходит для запуска команд для загрузки файла, вывода списка и т. Д. Из командной строки или сценария оболочки.

Если вы ищете решение, которое немного более надежно и интегрируется с вашим приложением, то подойдет любой из различных AWS SDK .SDK являются немного более функциональными IMO и намного чище, чем запуск команд оболочки в вашем приложении.

Если ваше приложение, которое извлекает данные, написано на python, то я определенно рекомендую boto3 .Обязательно прочитайте разницу между клиентом boto3 и ресурсом .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...