【问题标题】:Load CSV into Redshift, with header?将 CSV 加载到 Redshift 中,带有标题?
【发布时间】:2015-05-01 14:04:43
【问题描述】:

是否可以选择将带有标题的 CSV 加载到 Redshift 中?我看到了 CSV 的文档,但它没有说明标题。理想情况下,它可以使用标题来确定要加载的列。

【问题讨论】:

标签: csv amazon-web-services amazon-redshift etl


【解决方案1】:

使用COPY 命令时使用IGNOREHEADER 1 选项:

IGNOREHEADER [ AS ] number_rows

将指定的 number_rows 视为文件头并且不加载它们。使用 IGNOREHEADER 在并行加载中跳过所有文件中的文件头。

见:Amazon Redshift COPY command documentation

【讨论】:

  • 有没有办法让它使用标题来知道要加载哪些列?理想情况下,我可以说 LOAD mytable FROM myfile.csv USING HEADER FOR COLUMNS,或类似的东西。
  • 不,标题不会用于标识列。您必须提供列名作为 COPY 命令的一部分,它们将按照文件中提供的顺序加载。
  • 从dococ中很清楚,但经过实验我发现格式是COPY schema.table FROM.... CREDENTIALS...... IGNOREHEADER 1。不要忘记 1(跳过一行)
  • 我写的一个工具会根据 CSV 列标题为你创建一个表,但是 Redshift 一个人不知道如何根据你提供的 CSV 创建一个表:github.com/bluelabsio/records-mover(到公平地说,我不确定 OP 是否只想加载某些列(并将其余列保留为 NULL?)或创建表。)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-07-20
  • 2018-01-23
  • 1970-01-01
  • 2014-07-04
  • 1970-01-01
  • 2018-01-26
  • 2019-07-05
相关资源
最近更新 更多