[英]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.