我正在使用Kinesis消防软管通过S3向Redshift传输数据。我有一个非常简单的csv文件,如下所示。消防水管把它放到s3,但红移错误,分隔符没有找到错误。我已经查看了与此错误相关的所有帖子,但我确保包括了分隔符。
GOOG,2017-03-16T16:00:01Z,2017-03-17 06:23:56.986397,848.78
GOOG,2017-03-16T16:00:01Z,2017-03-17 06:24:02.061263,848.78
GOOG,2017-03-16T16:00:01Z,2017-03-17 06:24:07.143044,848.78
GOOG,2017-03-16T16:00:01Z,2017-03-17 06:24:12.217930,848.78
"GOOG","2017-03-17T16:00:02Z","2017-03-18 05:48:59.993260","852.12"
"GOOG","2017-03-17T16:00:02Z","2017-03-18 05:49:07.034945","852.12"
"GOOG","2017-03-17T16:00:02Z","2017-03-18 05:49:12.306484","852.12"
"GOOG","2017-03-17T16:00:02Z","2017-03-18 05:49:18.020833","852.12"
"GOOG","2017-03-17T16:00:02Z","2017-03-18 05:49:24.203464","852.12"
CREATE TABLE stockvalue
( symbol VARCHAR(4),
streamdate VARCHAR(20),
writedate VARCHAR(26),
stockprice VARCHAR(6)
);
以防万一,这是我的kinesis流看起来像消防水管
有人能指出文件可能有什么问题吗?我在字段之间加了一个逗号。目标表中的所有列都是varchar,因此不应该有datatype错误的原因。此外,列长度在文件和红移表之间完全匹配。我尝试过将列嵌入双引号和不嵌入。
你能发布完整的复制命令吗?截图里剪掉了。
我猜您的复制命令中缺少分隔符','
。尝试将其添加到复制命令中。
Json格式对我来说很好,数据被加载到redshift表中。 用于JSON的复制命令: 从's3://foldername/'CREDENTIALS'aws_iam_role=arn:aws:iam:::role/'MANIFEST json'auto'复制products_json; 用于CSV的复制命令: 从's3://foldername/'CREDENTIALS'aws_iam_role=
null 我如何解决这个问题?
基于我对Kinesis数据流的阅读,我必须创建一个分析应用程序,然后将用于调用一个lambda。然后,我将不得不使用lambda写入S3。或者Kinesis数据流可以以某种方式直接写入lambda?我找不到任何表明相同的东西。 消防水带不按小时收费(而溪流是)。那么消防水管对我来说是更好的选择吗?
我读过很多关于在firehose中添加换行符的类似问题,但都是关于在源代码中添加换行符。问题是我没有访问源的权限,第三方正在将数据传输到我们的Kinesis实例,我无法将“\n”添加到源。 我尝试使用以下代码进行firehose数据转换: 但是,这条新线仍然丢失了。我也尝试了JSON。stringify(record.data)“\n”但是我得到了一个无效的输出结构错误。
什么是S3扩展目标配置,在AWS文档中的什么地方清楚地解释了它的用途? null 如果有文章或博客有明确的解释,请提供指针。 我一直在下面的文档中寻找线索,但就像AWS文档一样,它并不清楚。它看起来部分与输入记录转换或记录处理有关。 > Amazon Kinesis Data Firehose API参考-ExtendedS3DestinationConfiguration ExtendedS3D