amazon-web-services - 亚马逊红移中的数据类型转变
问题描述
我正在将我的数据从 s3 加载到 redshift。我注意到红移错误日志中查询中的数据类型发生了变化。
这是我正在创建的表...
main_covid_table_create = ("""
CREATE TABLE IF NOT EXISTS main_covid_table(
SNo INT IDENTITY(1, 1),
ObservationDate DATE,
state VARCHAR,
country VARCHAR,
lastUpdate DATE,
Confirmed DOUBLE PRECISION,
Deaths DOUBLE PRECISION,
Recovered DOUBLE PRECISION
)
""")
使用复制命令作为
staging_main_covid_table_copy = ("""
COPY main_covid_table
FROM {}
iam_role {}
DELIMITER ','
IGNOREHEADER 1
DATEFORMAT AS 'auto'
NULL AS 'NA'
""").format(COVID_DATA, IAM_ROLE)
运行脚本后,我从 redshift 得到他的错误:
我对这个错误的解释是数据类型lastUpdate
被用于国家列。有人能帮忙吗?
解决方案
据推测,您的错误输出来自STL_LOAD_ERRORS
,在这种情况下,倒数第三列定义为:“导致解析错误的字段“colname”的预解析值。”。
因此,它表示 存在问题country
,并且试图将其解释为日期。鉴于您提供的定义,这没有意义。事实上,它看起来好像是在尝试将标题行作为数据加载,考虑到IGNOREHEADER 1
. 看起来也有列未对齐。
我建议您检查STL_LOAD_ERRORS
包括 在内的行中的完整错误详细信息,colname
并尝试弄清楚数据发生了什么。您可以从文件中的一行数据开始,看看它是否有效,然后继续添加数据以找出破坏负载的原因。
推荐阅读
- node.js - 节点如何添加所需的验证和自定义消息
- npm - 错误:在 Angular 中找不到模块'symbol-observable'
- rest - REST Web 服务是有状态的吗?
- julia - 如何在 Flux.jl 中冻结图层参数
- python - 预期类型'None',改为'str',python pandas
- python - Python输入和随机系统
- python - Tkinter 消息框中的编辑按钮
- javascript - 如何为我的 javascript 启用 Youtube API
- vba - 如果在用户表单 excel VBA 中禁用,则启用所有命令按钮
- github - Github:拥有一个无法检索秘密的维护者