我正在使用来传递到Redshift数据库。当火龙试图从S3桶上保存的流中执行复制查询时,我被困住了。
错误是
ERROR:Invalid value.就这样。为了减少这个错误,我尝试在没有显式的情况下复制错误;
COPY firehose_test_table FROM 's3://xx/terraform-kinesis-firehose-test-stream-2-1-2022-05-19-14-37-02-53dc5a65-ae25-4089-8acf-77e199fd007c.gz' CREDENTIALS 'aws_iam_role=arn:aws:iam::xx' format as json 'auto ignorecase';.gz中的数据是默认的AWS流数据,
{"CHANGE":0.58,"PRICE":13.09,"TICKER_SYMBOL":"WAS","SECTOR":"RETAIL"}{"CHANGE":1.17,"PRICE":177.33,"TICKER_SYMBOL":"BNM","SECTOR":"TECHNOLOGY"}{"CHANGE":-0.78,"PRICE":29.5,"TICKER_SYMBOL":"PPL","SECTOR":"HEALTHCARE"}{"CHANGE":-0.5,"PRICE":41.47,"TICKER_SYMBOL":"KFU","SECTOR":"ENERGY"}以及对象本身和目标表作为
Create table firehose_test_table
(
ticker_symbol varchar(4),
sector varchar(16),
change float,
price float
);我不知道下一步该怎么做,这个错误太没有启发性,无法理解问题。我还通过定义JSONpaths来尝试
{
"jsonpaths": [
"$['change']",
"$['price']",
"$['ticker_symbol']",
"$['sector']"
]
}但是,也引发了同样的错误。我遗漏了什么?
发布于 2022-05-20 14:54:37
有几件事要尝试..。
GZIP选项配置中指定COPY。这在动态交付流文档中得到了明确的说明。可以在Amazon命令中指定的参数。这些可能是您的配置所必需的。例如,如果启用了Amazon数据压缩,则需要"GZIP“。
change,price,ticker_symbol,sector中字段的顺序相匹配。STL_LOAD_ERRORS红移表(错误文档)以查看COPY命令的错误详细信息。你应该能看到准确的错误。示例:select * from stl_load_errors order by starttime desc limit 10;varchar字段不超过列大小限制。如果用例( TRUNCATECOLUMNS COPY )是可以接受的,您可以指定COPY选项。https://stackoverflow.com/questions/72315078
复制相似问题