【问题标题】:Athena can't resolve CSV files from AWS DMSAthena 无法从 AWS DMS 解析 CSV 文件
【发布时间】:2018-04-09 14:15:18
【问题描述】:

我已将 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,查询结果 通过组合来自两者的数据来包含现有和新的数据插入 文件。

我错过了什么吗?

【问题讨论】:

  • 你好,有这方面的消息吗?我也遇到了同样的问题

标签: amazon-athena aws-dms


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-01-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多