我正在嘗試使用 COPY 命令將 CSV 檔案從 Amazon Simple Storage Service (Amazon S3) 載入到 Amazon Redshift。但是,即使檔案包含記錄,也沒有載入任何內容及傳回任何錯誤。如何解決此問題?
如果 CSV 檔案使用歸位字元 (以十六進位表示的 "\r"、"^M" 或 "0x0D") 作為行結束字元,COPY 無法將資料載入到 Amazon Redshift。由於 Amazon Redshift 無法將歸位字元識別為行結束字元,因此會將檔案剖析為一行。當 COPY 命令將 IGNOREHEADER 參數設定為非零數字時,Amazon Redshift 會略過第一行,因此會略過整個檔案。不會傳回任何載入錯誤,因為操作在技術上是成功的。
若要解決此問題,請以 CRLF (以十六進位表示的 "\r\n" 或 "0x0D0A") 或 LF (以十六進位表示的 "\n" 或 "0x0A") 取代歸位字元。將修改的檔案上傳至 S3 儲存貯體,然後再次嘗試 COPY 命令。
資料來源
COPY 範例
STV_WLM_QUERY_STATE