【问题标题】:How to skip end few records when loading external table in Amazon Redshift Spectrum?在 Amazon Redshift Spectrum 中加载外部表时如何跳过最后几条记录?
【发布时间】:2019-02-04 11:02:59
【问题描述】:

我的文件末尾有文本。

在创建外部表时,我正在从 S3 加载文件,我不想将其加载到我的表中。

如何从末尾跳过该文本?

【问题讨论】:

  • 你不能这样做 - 你需要找到另一种方法。请使用您正在使用的复制命令和 s3 数据示例更新您的问题
  • 请同时描述您的 ETL 流程,即文件如何到达 s3,有多少,您复制到 redshift 的频率等
  • 嗨 Rishant,您实际上是在将数据加载(使用 COPY)到 Redshift,还是使用存储在 S3 上的文件和 Spectrum(外部表)来表示数据?从你的问题看不清楚。
  • 其实我并没有使用复制命令,我使用的是存储在 S3 中的文件和频谱来表示数据

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


【解决方案1】:

您不能在末尾显式跳过行,但可以使用 MAXERROR 参数允许一定数量的错误。应该可以将其设置为 (number of lines to skip * number of files to be loaded)。

https://docs.aws.amazon.com/redshift/latest/dg/copy-parameters-data-load.html#copy-maxerror

【讨论】:

  • 乔,每行不能有 >1 个错误吗?对于大量数据不是理想的解决方案 - 或者当您需要确保数据准确性时 - 最大值 = 1,000,000
  • 这可能是危险的,除了 OP 打算跳过最后 n 行之外,它可能会引入更多数据问题,允许错误通过。
  • 这是使用复制命令时的解决方案,但我没有使用复制命令
猜你喜欢
  • 1970-01-01
  • 2019-08-10
  • 2017-12-01
  • 2019-08-22
  • 1970-01-01
  • 2019-08-19
  • 1970-01-01
  • 1970-01-01
  • 2017-11-23
相关资源
最近更新 更多