例如,在AWS Athena查询中,我得到的结果是:+51218-09-22 03:06:40.000
,而实际值为2019-04-01-14.27.04 -0300
。如您所见,日期是完全错误的。所有其他类型的迁移都很好
有人遇到过这个问题吗?
例如,在AWS Athena查询中,我得到的结果是:+51218-09-22 03:06:40.000
,而实际值为2019-04-01-14.27.04 -0300
。如您所见,日期是完全错误的。所有其他类型的迁移都很好
有人遇到过这个问题吗?
解决方案在这里找到:https://forums.aws.amazon.com/thread.jspa?threadID=302156
显然,DMS迁移数据的默认时间戳与Athena如何映射此时间戳(毫秒/纳秒)之间不匹配。
“将parquetTimestampInMillisecond = true添加到目标端点的额外连接属性中以解决此问题” ,然后再次运行DMS和Crawler
,TL;DR:除以 1000 和 CAST 以从 Parquet v2 格式转换为 Parquet v1 格式
SELECT id,CAST("from_unixtime"(CAST(("to_unixtime"("created_at") / 1000) AS bigint)) AS timestamp) "created_at",FROM <YOUR_ATHENA_TABLE>
日期/时间戳问题源于 Athena 期望的内容与 S3 parquet 文件(由 RDS 快照导出或 DMS 创建)中提供的内容不兼容。
Athena 需要 Parquet V1 文件,而 RDS 以 Parquet V2 格式导出。 Parquet V1 时间戳是 INT96 而 V2 是 INT64。因此问题。我花了一段时间才弄明白,但功劳归于 him。