AWS Glue синхронизирует данные из RDS (необходимо синхронизировать 4 таблицы из всей схемы) в S3 (формат apache parque)
Мы используем экземпляр Postgres RDS (db.t3.2xlarge с объемом данных около 2 ТБ). У нас есть мультитенантное приложение, поэтому для всех организаций, которые регистрируются в нашем продукте, мы создаем отдельную схему, которая копирует нашу модель данных. Теперь пара наших схем (от 5 до 10 схем) содержит пару больших таблиц (от 5 до 7 больших таблиц, каждая из которых содержит от 10 до 200 миллионов строк). Для пользовательского интерфейса нам нужно показать некоторую статику, а также графики и вычислить эту статику, а также данные графиков, которые нам нужны для выполнения соединений с большими таблицами, и это замедляет весь наш сервер базы данных. Иногда нам нужно выполнять этот тип запроса в ночное время, чтобы пользователи не сталкивались с проблемами производительности. Таким образом, мы планируем создать озеро данных в S3, чтобы всю аналитическую нагрузку мы могли перенести с РСУБД на решение OLAP.
В качестве первого шага нам нужно перенести наши данные из RDS в S3, а также продолжить синхронизацию обоих источников данных. Не могли бы вы подсказать, какой инструмент является для нас лучшим выбором с учетом следующих требований:
- Нам необходимо обновлять данные за последние 3 дня ежечасно. Мы хотим постоянно обновлять последние данные, потому что в течение трех дней они могут измениться. Через 3 дня мы можем рассматривать данные "в состоянии покоя", и они могут оставаться в озере данных без каких-либо изменений в будущем.
- В настоящее время мы используем систему с несколькими арендаторами, и у нас есть ~350 схем, но они будут расти по мере того, как все больше организаций будут подписываться на наш продукт.
- Мы планируем сделать ETL, поэтому при преобразовании мы планируем объединить все таблицы и создать одну денормализованную таблицу и хранить данные в формате apache parque в S3. Чтобы мы могли выполнять аналитические запросы к этой таблице, используя Redshift Spectrum, EMR или какой-либо другой инструмент.
0 ответов
Я недавно узнал об AWS Data Lake, а также на основании своих исследований (которые, надеюсь, помогут вам найти наилучшее возможное решение).
AWS Athena может разделять данные, и вы можете захотеть разделить свои данные на основе идентификатора клиента (идентификатора клиента).
В AWS Glue есть сканеры:
Сканеры могут запускаться периодически, чтобы определять наличие новых данных, а также изменения существующих данных, включая изменения определения таблиц.