我知道这个问题在 Stack Overflow 中已经被问过好几次了,但是我读到的答案都不能解决我遇到的问题。
我有一个 Boto3 脚本来将 MySQL 表复制到 Kinesis Streams。然后在另一端,有一个 KCL Node JS 脚本,用于从 Kinesis Streams 读取流并写入 S3。到现在为止还挺好。
我在同一区域设置了 Kinesis Firehose、Redshift 和 S3。然后我将 Firehose 设置为从 S3 读取并写入 Redshift。使用 Firehose 提供的演示数据进行测试时,一切都很好。
然后我设置了一个 Redshift 表,其中包含 MySQL 表中的所有列。Redshift 不支持某些数据类型,因此我使用了不同的数据类型,但我确信 Firehose 能够毫无问题地写入 Redshift 表。
下面是 MySQL 表截图。
下面是 Redshift 表格截图。
如您所见,数据类型并不完全相同。我想知道Redshift对级别是否如此敏感,以至于每个数据类型都必须与MySQL表相同。
顺便说一句,我确实在 Firehost COPY 命令中指定了JSON 'auto'并启用了日志记录。不幸的是,没有记录错误。