我正在使用varchar
命令将数据从压缩的平面文件上传到redshift,我想了解是否有任何方法可以验证文件的列顺序是否正确? (例如,如果字段都是{{1}},那么数据可能会上传到错误的列)。
在复制命令documentation中,它显示您可以指定列顺序,但不能指定平面文件,但我想知道是否有任何其他方法可以让我检查列是如何提供的(例如,仅将标题行上传到虚拟表中进行检查,但这似乎不太可能)。
答案 0 :(得分:1)
你无法在Redshift中真正做到这一点。 COPY
没有提供任何选项来仅加载特定数量的行或执行任何验证。
您最好的选择是在安排负载的工具中执行此操作。您可以轻松地从压缩文件中获取第一行(zcat < file.z|head -1
)但是对于S3上的文件,您可能必须先下载整个文件。
FWIW,生成加载文件的过程应该完全自动化,使列顺序不能改变。如果这些文件是手动准备的,那你就会遇到各种各样的麻烦。