В поисках лучшей архитектуры для генерации отчетов из производственной базы данных - PullRequest
0 голосов
/ 13 октября 2018

В компании, в которой я работаю, одна из задач, которую я должен выполнить, - это написание программ для создания бизнес-отчетов (например, количество пользователей, которые посетили наш веб-сайт в прошлом месяце) с использованием данных, хранящихся в производственной базе данных.

Мы используем лямбда-функции AWS и сложные запросы MySQL для генерации отчета (* .csv файлы).

enter image description here

Есть некоторые недостаткиэта архитектура:

  1. Запросы MySQL часто бывают сложными.Я имею в виду, что они включают множество join и подзапросов, которые затрудняют понимание и сопровождение кода.

  2. Некоторые запросы могут не работать после изменения схемы базы данных.

  3. Максимальное время ожидания лямбда-функции AWS составляет 5 минут.Когда размер данных становится слишком большим, мы должны разделить одну лямбда-функцию на несколько лямбда-функций.

Как я могу использовать другие веб-сервисы Amazon для решения этих проблем?

Я пробовал AWS Glue, но не нашел простого способа конвертировать сложные запросы MySQL в скрипт python для работы в AWS Glue.

Amazon Athena может обрабатывать только данные, хранящиеся в S3.Он не может напрямую обрабатывать данные, хранящиеся в Amazon RDS.

1 Ответ

0 голосов
/ 15 октября 2018

Мы используем Matillion (стороннее программное обеспечение) в качестве ETL-инструмента в моей компании, предназначенного для работы с облаком AWS (или Google).Но это сильно зависит от AWS Redshift.Если вы можете переместить ваши данные в Redshift и работать оттуда, Matillion может быть очень хорошим вариантом для вас.В Matillion вы можете настроить рабочие процессы, которые выполняют всю работу, и визуализировать это на диаграмме.Недостаток в том, что у Матиллиона есть стоимость.Но так как вы ссылаетесь на свою компанию, я подумал, что вы сможете инвестировать в дополнительные инструменты.Я также использую Matillion вместе с Lambda, S3, Redshift, Glue и т. Д. Поскольку вы можете запускать Python-скрипты в Matillion, вы можете комбинировать их по своему желанию.

Ps.Я не работаю на Матиллиона и не получаю никаких рекомендаций от Матильона.

...