我试图通过Python脚本将数据从S3复制到amazonredshift
command =
("COPY {qualname}\n"
"FROM 's3://{keypath}' \n"
"CREDENTIALS 'aws_access_key_id={key};aws_secret_access_key={secret}' "
"{gzip} "
"{null_as} "
#"{emptyasnull}"
"CSV IGNOREHEADER 1;").format(qualname=qualname,
keypath=url,
key=aws_access_key_id,
secret=aws_secret_access_key,
gzip="GZIP " if compress else " ",
null_as="NULL AS '{}'".format(null_as) if null_as is not None else "",
emptyasnull="EMPTYASNULLL " if emptyasnull else " ")```
keypath
是s3://{bucket-name}/daily sku-benefits/2018-12-27qualname
是表名但是我得到一个错误:
(psycopg2.InternalError) Load into table 'daily_sku_benefits' failed. Check 'stl_load_errors' system table for details. [SQL: "COPY daily_sku_benefits\nFROM 's3://{bucket - name}/daily-sku-benefits/2018-12-27.csv.gzip' \nCREDENTIALS 'aws_access_key_id={access key};aws_secret_access_key={secret-key} GZIP CSV IGNOREHEADER 1;"] (Background on this error at: http://sqlalche.me/e/2j85)
在检查stl_load_error
时,我得到了这个错误:
有人知道吗?在
错误清楚地显示了解决问题的方法,
timestamp
数据的格式必须是[YYYY-MM-DD HH24:MI:SS]
。在您的数据应该如下所示(我有分隔符作为管道(|),不过,也可以)
例如结构为-
^{pr2}$还有一个技巧可以应用,因为您完成的数据可能不是
bad
,而是some percentage
,因此可以在Copy
命令中使用MAXERROR
属性。这里是Maxerror解释。在希望有帮助。在
相关问题 更多 >
编程相关推荐