使用aws copy命令从平面文件上载数据时是否可以验证列顺序

时间:2017-02-15 17:38:16

标签: amazon-web-services amazon-redshift

我正在使用varchar命令将数据从压缩的平面文件上传到redshift,我想了解是否有任何方法可以验证文件的列顺序是否正确? (例如,如果字段都是{{1}},那么数据可能会上传到错误的列)。

在复制命令documentation中,它显示您可以指定列顺序,但不能指定平面文件,但我想知道是否有任何其他方法可以让我检查列是如何提供的(例如,仅将标题行上传到虚拟表中进行检查,但这似乎不太可能)。

1 个答案:

答案 0 :(得分:1)

你无法在Redshift中真正做到这一点。 COPY没有提供任何选项来仅加载特定数量的行或执行任何验证。

您最好的选择是在安排负载的工具中执行此操作。您可以轻松地从压缩文件中获取第一行(zcat < file.z|head -1)但是对于S3上的文件,您可能必须先下载整个文件。

FWIW,生成加载文件的过程应该完全自动化,使列顺序不能改变。如果这些文件是手动准备的,那你就会遇到各种各样的麻烦。