Amazon Redshift 错误:XX000:清单文件的 json 格式不正确。请告诉我哪里错了

Posted

技术标签:

【中文标题】Amazon Redshift 错误:XX000:清单文件的 json 格式不正确。请告诉我哪里错了【英文标题】:Amazon Redshift ERROR: XX000: Manifest file is not in correct json format . Please tell me where is wrong 【发布时间】: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 这还不够吗? 【参考方案1】:

遇到了同样的错误,我能够修复它 注 1. 该文件是文本文件,但为 json 格式,它不是 json 文件。 文件名 -> 清单并保存为 .txt


    "entries": [
      "url":"s3://redshiftcontainer/testdt/Book3.txt","mandatory":true
    ]

在红移查询中: 抄本2 来自's3://redshiftcontainer/manifest/manifest.txt' iam_role 'arn:aws:iam:::role/RedshiftRole' 分隔符 ',' 清单;

【讨论】:

以上是关于Amazon Redshift 错误:XX000:清单文件的 json 格式不正确。请告诉我哪里错了的主要内容,如果未能解决你的问题,请参考以下文章

RedShift Error when using COUNT (Distinct XXX) ERROR: XX000: This type of associated subquery patter

错误:XX000:ValueError:需要一个日期时间对象。请查看 svl_udf_log 了解更多信息

Redshift 存储过程 - [Amazon](500310) 无效操作:“$1”处或附近的语法错误;

Redshift 中的 DAU WAU MAU 错误:[Amazon](500310) 无效操作:由于内部错误,不支持此类关联子查询模式;

如何清除 Amazon Redshift 中的以下语法错误

amazon redshift 分析型数据库特点——本质还是列存储