我有一個大的清單文件,其中包含大約460,000個條目(所有S3文件),我希望加載到Redshift。由於我無法控制的問題,這些條目中的一些(可能是一打或更多)包含錯誤的JSON,如果我一次傳入整個清單,會導致COPY命令失敗。使用帶鍵前綴的COPY也會以相同的方式失敗。使用多個清單文件從S3加載到Redshift?
爲了解決這個問題,我編寫了一個Python腳本,它將一次一次通過清單文件一個URL,併爲每個使用psycopg2的COPY命令發出一個COPY命令。該腳本還會捕獲並記錄任何錯誤,以確保腳本即使在遇到錯誤文件時也能運行,並允許我們找到並修復錯誤的文件。
這個腳本現在已經運行了一個多星期,在一個備用的EC2實例上運行了一個多星期,並且只完成了大約75%。我想降低運行時間,因爲此腳本將再次使用。
我對Redshift的理解是,COPY命令是並行執行的,而且我有一個想法 - 將清單文件拆分爲更小的塊,然後運行腳本,每個塊都會減少加載所有塊的時間文件?