AWS Glue синхронизирует данные из RDS (необходимо синхронизировать 4 таблицы из всей схемы) в S3 (формат apache parque)

Мы используем экземпляр Postgres RDS (db.t3.2xlarge с объемом данных около 2 ТБ). У нас есть мультитенантное приложение, поэтому для всех организаций, которые регистрируются в нашем продукте, мы создаем отдельную схему, которая копирует нашу модель данных. Теперь пара наших схем (от 5 до 10 схем) содержит пару больших таблиц (от 5 до 7 больших таблиц, каждая из которых содержит от 10 до 200 миллионов строк). Для пользовательского интерфейса нам нужно показать некоторую статику, а также графики и вычислить эту статику, а также данные графиков, которые нам нужны для выполнения соединений с большими таблицами, и это замедляет весь наш сервер базы данных. Иногда нам нужно выполнять этот тип запроса в ночное время, чтобы пользователи не сталкивались с проблемами производительности. Таким образом, мы планируем создать озеро данных в S3, чтобы всю аналитическую нагрузку мы могли перенести с РСУБД на решение OLAP.

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

  1. Нам необходимо обновлять данные за последние 3 дня ежечасно. Мы хотим постоянно обновлять последние данные, потому что в течение трех дней они могут измениться. Через 3 дня мы можем рассматривать данные "в состоянии покоя", и они могут оставаться в озере данных без каких-либо изменений в будущем.
  2. В настоящее время мы используем систему с несколькими арендаторами, и у нас есть ~350 схем, но они будут расти по мере того, как все больше организаций будут подписываться на наш продукт.
  3. Мы планируем сделать ETL, поэтому при преобразовании мы планируем объединить все таблицы и создать одну денормализованную таблицу и хранить данные в формате apache parque в S3. Чтобы мы могли выполнять аналитические запросы к этой таблице, используя Redshift Spectrum, EMR или какой-либо другой инструмент.

0 ответов

Я недавно узнал об AWS Data Lake, а также на основании своих исследований (которые, надеюсь, помогут вам найти наилучшее возможное решение).

AWS Athena может разделять данные, и вы можете захотеть разделить свои данные на основе идентификатора клиента (идентификатора клиента).

В AWS Glue есть сканеры:

Сканеры могут запускаться периодически, чтобы определять наличие новых данных, а также изменения существующих данных, включая изменения определения таблиц.

Другие вопросы по тегам