Я настроил DMS для непрерывной репликации данных из MySQL RDS в S3. Это создает два типа файлов CSV: полная загрузка и сбор данных об изменениях (CDC). Согласно моим тестам, у меня есть следующие файлы:
testdb/addresses/LOAD001.csv.gz
testdb/addresses/20180405_205807186_csv.gz
После правильной работы DMS я запускаю AWS Glue Crawler для создания каталога данных для S3 Bucket, который содержит файлы репликации MySQL, чтобы пользователи Athena могли создавать запросы в нашем озере данных на основе S3.
К сожалению, поисковые роботы не создают правильную схему таблиц для таблиц, хранящихся в S3. В приведенном выше примере он создает две таблицы для Афины:
addresses
20180405_205807186_csv_gz
Файл 20180405_205807186_csv.gz содержит однострочное обновление, но поисковый робот не может объединить две информации (беря первую загрузку из LOAD001.csv.gz и выполняя updpate, описанный в 20180405_205807186_csv.gz).
Я также попытался создать таблицу в консоли Athena, как описано в этом сообщении блога: https://aws.amazon.com/pt/blogs/database/using-aws-database-migration-service-and-amazon-athena-to-replicate-and-run-ad-hoc-questions-on-a-sql-server-database/. Но это не дает желаемого результата.
Из сообщения в блоге:
Когда вы запрашиваете данные с помощью Amazon Athena (далее в этом посте), вы просто указываете местоположение папки на Athena, и результаты запроса включают существующие и новые вставки данных путем объединения данных из обоих файлов.
Я что-то упускаю?