【发布时间】:2018-11-15 06:13:09
【问题描述】:
使用 COPY 命令加载带有清单的 Amazon Redshift 时发生以下错误。
ERROR: XX000: Manifest file is not in correct json format
我认为 manifestfile 的 json 文本是错误的,但我不确定哪里错了。
复制命令详情如下:
・建表命令
enter code here
CREATE TABLE mddb.test
(
parent INTEGER ENCODE lzo,
parentname VARCHAR(100) ENCODE lzo,
child INTEGER ENCODE lzo,
childname VARCHAR(100) ENCODE lzo
)
DISTSTYLE EVEN;
・S3目录
217444159777-japan-manufacturing-data
|
----testmani.manifest
|
----abcd----CopyCommadTest.csv
|
----efgh----CopyCommadTest.csv
・CSV 文件
parentid parentname childid childname
3 kenta 4 kentachild
・清单文件
{
"entries": [
{
"url": "s3://217444159777-japan-manufacturing-data/abcd/CopyCommadTest.csv",
"mandatory": true
},
{
"url": "s3://217444159777-japan-manufacturing-data/efgh/CopyCommadTest.csv",
"mandatory": true
}
]
}
・加载命令
COPY mddb.test
FROM 's3://217444159777-japan-manufacturing-data/testmani.manifest'
CREDENTIALS 'aws_iam_role=arn:aws:iam::xxxxxxxxx'
MANIFEST
DELIMITER '\t'
ACCEPTANYDATE
IGNOREHEADER as 1
IGNOREBLANKLINES
FILLRECORD
TRIMBLANKS
BLANKSASNULL
DATEFORMAT 'YYYY-MM-DD'
TIMEFORMAT 'YYYY-MM-DD HH:MI:SS'
null as '\0' -
MAXERROR 10
我成功执行了以下命令:
COPY mddb.test
FROM 's3://217444159777-japan-manufacturing-data/abcd/CopyCommadTest.csv'
CREDENTIALS 'aws_iam_role=arn:aws:iam::xxxxxxx'
DELIMITER '\t'
ACCEPTANYDATE
IGNOREHEADER as 1
IGNOREBLANKLINES
FILLRECORD
TRIMBLANKS
EMPTYASNULL
BLANKSASNULL
DATEFORMAT 'YYYY-MM-DD'
TIMEFORMAT 'YYYY-MM-DD HH:MI:SS'
null as '\0'
MAXERROR 10
请告诉我哪里错了。
【问题讨论】:
-
清单看起来不错 - 检查权限?否则我认为这可能是 AWS 支持人员需要考虑的问题。
-
我已经允许了以下权限 AmazonS3FullAccess AWSGlueConsoleFullAccess 这还不够吗?
标签: json amazon-web-services amazon-redshift