【问题标题】:AWS Redshift COPY csv from S3来自 S3 的 AWS Redshift COPY csv
【发布时间】:2019-08-01 15:40:22
【问题描述】:

在从 S3 加载 CSV 文件时,我对 AWS Redshift COPY 命令有两个疑问。我预计在这两种情况下会出错,但没有出错并且工作正常。因此,请帮助我了解 COPY 命令在这些条件下的工作原理:

  1. CSV 中的必填字段为空。
  2. CSV 的列数比 Redshift 多。

【问题讨论】:

  • “必填字段”是什么意思?您是否使用标记为NOT NULL 的列定义了表?你能告诉我们定义吗?
  • 是的,我的意思是必填字段为 NOT NULL 列。
  • Loading Default Column Values - Amazon Redshift 说:“如果 COPY 尝试将 NULL 分配给定义为 NOT NULL 的列,则 COPY 命令将失败。”它可能将空列视为空白字符串,而不是 NULL。

标签: amazon-web-services amazon-s3 amazon-redshift


【解决方案1】:

COPY 命令在上述情况下的工作:

  1. 如果列是 VARCHAR 或 CHAR,则该字段将被视为空白(它不是 NULL)并按原样加载该字段。如果我们想将空白视为空,请使用 BLANKSASNULL 参数。
  2. 如果表包含的列少于 CSV,COPY 命令将跳过多余的列并从左侧加载。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-12-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-21
    • 2018-11-01
    • 1970-01-01
    相关资源
    最近更新 更多