1

我已将 DMS 配置为将数据从 MySQL RDS 连续复制到 S3。这将创建两种类型的 CSV 文件:完整加载和更改数据捕获 (CDC)。根据我的测试,我有以下文件:

testdb/addresses/LOAD001.csv.gz
testdb/addresses/20180405_205807186_csv.gz

DMS 正常运行后,我触发 AWS Glue Crawler 为包含 MySQL 复制文件的 S3 存储桶构建数据目录,因此 Athena 用户将能够在我们基于 S3 的数据湖中构建查询。

不幸的是,爬虫没有为存储在 S3 中的表构建正确的表模式。对于上面的示例,它为 Athena 创建了两个表:

addresses
20180405_205807186_csv_gz

文件20180405_205807186_csv.gz包含一行更新,但爬虫无法合并这两个信息(从LOAD001.csv.gz获取第一个加载并进行 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-queries-on-a-sql-server-database/。但它不会产生所需的输出。

来自博客文章:

当您使用 Amazon Athena(本文后面)查询数据时,您只需将文件夹位置指向 Athena,查询结果包括通过组合来自两个文件的数据而插入的现有数据和新数据。

我错过了什么吗?

4

2 回答 2

1

AWS Glue 爬网程序无法协调每个表的初始 LOAD csv 和增量 CDC csv 中的不同架构。这篇来自 AWS 的博文及其相关的 cloudformation 模板演示了如何使用 AWS Glue 作业来处理和组合这两种类型的 DMS 目标输出。

于 2021-03-10T16:25:50.690 回答
0

如果文件结构相同,Athena 将合并 am S3 中的文件。该博客仅涉及在 cdc 文件中插入新数据。您必须构建一个流程来合并 CDC 文件。不是你想听到的,我敢肯定。

来自博客文章:“当您使用 Amazon Athena 查询数据时(本文稍后),由于 AWS DMS 向作为 CDC 复制的一部分创建的新文件添加指示插入、删除和更新的列的方式,我们不会能够通过组合来自两个文件(初始加载和 CDC 文件)的数据来运行 Athena 查询。”

于 2019-11-04T00:01:11.090 回答