2017-02-15 29 views
0

我使用copy命令將數據從壓縮平面文件上傳到紅移,我想了解是否有任何方法可以驗證列文件的順序是否正確? (例如,如果字段全部爲varchar,則數據可能會上傳到錯誤的列)。當使用aws複製命令從平面文件上傳數據時,是否可以驗證列順序

在複製命令documentation它顯示您可以指定列順序,但不是平面文件,但我想知道是否有任何其他方法可以讓我檢查列是如何提供的(例如,只將標題行上傳到一個虛擬表中進行檢查,但這似乎不是一種可能性)。

+0

什麼*確切*你想驗證? –

+0

平面文件中列的順序是正確的。 –

+0

你是什麼意思?你想檢查每個列名稱的文本文件的標題值嗎? –

回答

1

你不能在Redshift中做到這一點。 COPY不提供任何選項來只加載特定數量的行或執行任何驗證。

您最好的選擇是在安排負載的工具中執行此操作。您可以輕鬆地從壓縮文件中獲得第一行(zcat < file.z|head -1),但對於S3上的文件,您可能必須先下載整個文件。

FWIW,生成加載文件的過程應該完全自動化,以便列順序不能更改。如果這些文件正在手動準備,您正在尋求各種各樣的麻煩。

+0

感謝您的建議,它可以突出顯示。流程已經得到認可和自動化等,但如果能夠在我們這邊進行檢查,將會更加舒適,將調查是否可以從zip中提取而不必移動整個文件。 –

相關問題