簡體   English   中英

想要將Redshift表數據卸載到S3,並在文件名上附加日期

[英]Wanted to unload redshift table data to S3 with appending date on the file name

UNLOAD ('SELECT * FROM cn.test') TO 's3://bucket/archive/stage/test-#{format(@scheduledStartTime,'YYYY-MM-dd-HH')}.csv' credentials 'aws_access_key_id=###;aws_secret_access_key=###' DELIMITER '|' ADDQUOTES PARALLEL OFF ALLOWOVERWRITE

我嘗試了上述命令將其卸載到S3。 得到錯誤:Amazon無效操作:“ YYYY ”或附近的語法錯誤; 1條語句失敗。

如果我提供的轉義字符接近日期,則文件名將類似於test-# {format(@scheduledStartTime,'YYYY-MM-dd-HH')}.csv而不是實際的sysdate

誰能幫我

一個已知問題。 我有類似的要求。 作為解決方案,我用unload語句編寫了一個shell腳本,當它成功執行時,我觸發了一個mv命令來重命名s3存儲桶上的文件。

腳本:

psql -U$user -h hostname -p port -c "unload (...) to 's3://bucket-name' credentials 'aws_access_key_id; aws_secret_access_key' [switch1][switch2]..."

    if [ "$?" != "0" ]
        then
                echo "\nS3 Error: Error in unloading CSV to S3"
                echo "\nS3 Error: Error in unloading CSV to S3" >> $log_file

        else    aws s3 mv s3://bucket-name/"$file_name".csv000 s3://bucket-name/"$file_name$from_date".csv
                echo "$file_name$from_date successfully copied to s3" >> $status_file
                return 0
        fi

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM