mysql - AWS Kinesis Firehose不在Redshift中插入数据

标签 mysql amazon-web-services amazon-s3 amazon-redshift amazon-kinesis-firehose

我知道这个问题在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表的屏幕截图。

MySQL table

下面是Redshift表的屏幕截图。

Redshift table

如您所见,数据类型并不完全相同。我想知道Redshift是否对级别如此敏感,以至于每种数据类型都必须与MySQL表相同。

顺便说一句,我确实在Firehost COPY命令中指定了JSON'auto'并启用了日志记录。不幸的是,没有记录错误。

最佳答案

为什么您在Redshift中看不到记录有很多原因。在Firehose将记录放入S3之后,将从Redshift执行COPY命令以将文件从S3获取并进入群集。

如果未看到STL_LOAD_ERRORS,则Firehose无法连接到Redshift。您可以在Firehose控制台中对此进行验证,您将在Redshift Logs标签下找到更多信息。

另外,请确保您已允许在Redshift的VPC下的区域中通过Firehose的IP范围的传入连接。

关于mysql - AWS Kinesis Firehose不在Redshift中插入数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44124575/

相关文章:

php - zend db 查询获取不需要的列

tomcat - 在 Amazon ec2 上运行 Tomcat 7,但在浏览器中看不到欢迎

apache - htaccess在localhost中有效,但在EC2实例中无效

javascript - Google 文档查看器不适用于 Amazon s3 签名的网址

amazon-web-services - 在没有 SageMaker 的情况下将 Jupyter Notebook(本地)连接到 AWS s3

mysql - MySQL:将“喜欢”搜索转换为全文吗?

mysql - MySQL:根据条件拆分表的最快方法

node.js - 如何 - AWS Rest API 身份验证

amazon-web-services - 在 amazon aws S3 上用 moviepy 编写的视频是空的

php - #1046-未选择数据库