Python 将压缩文件从S3复制到红移(stl加载错误)
我正试图通过Python脚本将数据从S3复制到AmazonRedshiftPython 将压缩文件从S3复制到红移(stl加载错误),python,amazon-web-services,amazon-redshift,Python,Amazon Web Services,Amazon Redshift,我正试图通过Python脚本将数据从S3复制到AmazonRedshift command = ("COPY {qualname}\n" "FROM 's3://{keypath}' \n" "CREDENTIALS 'aws_access_key_id={key};aws_secret_access_key={secret}' " "{gzip} " "{
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 " ")```
是s3://{bucket-name}/每日sku福利/2018-12-27keypath
是表名qualname
stl\u load\u error
时,我得到了这个错误:
Invalid timestamp format or value [YYYY-MM-DD HH24:MI:SS]
有人知道吗?错误清楚地向您显示了解决问题的方法,您的
时间戳
数据必须是[YYYY-MM-DD HH24:MI:SS]
格式
您的数据应该如下所示(我使用了分隔符作为管道(|),但也很好)
例如,具有结构的表-
create table daily_sku_benefits(
Colunm1 varchar(55),
Colunm2 varchar(255),
updated_at timestamp);
您还可以应用另一个技巧,因为您完成的数据可能不是坏的
,可能是某个百分比的
,因此您可以在复制
命令中使用MAXERROR
属性。下面是解释
希望有帮助。当您无法保证值的完整性时,请先将这些时间戳加载到varchar中,然后对其进行后期处理。它试图加载的日期的格式是什么?
envar\u date\u string=os.environ.get(key='BILL\u date',default=datetime.today().strftime(%Y-%m-%d))
envar\u date=datetime.strptime(环境日期字符串,“%Y-%m-%d”)
计费日期=日期时间(环境日期.年,环境日期.月,环境日期.日)
我有6个数据类型为时间戳的日期列,没有时区,还有一个数据类型为日期的列……这可能是问题吗?如果你想一想,一点也不可能,因为你在数据|
或,
之间放置了一个分隔符,那么所有这些数据点都不同,一个数据点不会与另一个数据点混淆。但是很明显,yo你可能需要做一些额外的测试和一些修复,以确保一切顺利。
create table daily_sku_benefits(
Colunm1 varchar(55),
Colunm2 varchar(255),
updated_at timestamp);