我們正在探索將Redshift用於倉庫,並且我們需要將新數據從現有的本地postgres數據庫移至Redshift。看起來你可以用Pipeline和模板來做到這一點,如果你的主數據庫在RDS中,但是如果你的數據庫是本地數據庫,你能用Pipeline來做到嗎?使用AWS Pipeline將本地postgres的增量副本轉換爲Redshift
0
A
回答
0
由於您定期批量同步,因此您可能需要考慮將數據推送到S3,這很容易從本地執行,然後通過COPY命令將其加載到紅移中。它速度快,可靠,你可以在s3中獲得免費(便宜)的備份作爲副作用。
您可以使用aws s3 cp
從awscli蟒蛇工具來推你的CSV的Postgres轉儲喜歡的東西(把你的訪問密鑰以便在.aws/config
後):
aws s3 cp current_dump.csv.gz s3://yourbucket/20170108/dump.csv.gz
然後定期的Postgres psql實用程序來執行在紅移COPY像這樣:
PGPASSWORD='YOURPASS' psql -h your.redshift.end.point.com -U youruser -d yourdb -p 5439 -c "COPY yourtable FROM 's3://yourbucket/20170108/dump.csv.gz' CREDENTIALS 'aws_access_key_id=[YOURKEY];aws_secret_access_key=[YOURSECRET]' DELIMITER ',' NULL 'NULL' IGNOREBLANKLINES EMPTYASNULL BLANKSASNULL TIMEFORMAT 'auto' FILLRECORD MAXERROR 1 CSV GZIP;"
你可以把你的Postgres傾倒,並與時間值的位腳本一個shell腳本這些命令並運行它作爲一個cron作業。
對於最佳實踐,您希望upload to a staging table and then merge到您的主表以支持更新,如果需要並防止重複。
+0
謝謝@systemjack!我們一定會考慮這個工作流程。 – gignosko
相關問題
- 1. 如何將DynamoDB Map/List類型通過AWS Pipeline轉換爲Redshift?
- 2. Postgres變量替換使用\副本
- 3. Postgres/AWS Redshift:將數據透視數據轉換爲長格式
- 4. 使用AWS Data Pipeline將本地數據複製到S3
- 5. 將Hive地圖轉換爲Redshift JSON
- 6. 將分支轉換爲分叉副本
- 7. Postgres:將varchar轉換爲文本
- 8. 將UTC轉換爲本地
- 9. 在Redshift中將多行轉換爲列
- 10. 適用於AWS RedShift的沙箱版本
- 11. redshift副本中的布爾字段
- 12. 將Matlab的FFT轉換爲本地Java
- 13. AWS Redshift:如何將varchar(7)YYYY/MM中的數據有效地轉換爲Redshift中的日期類型?
- 14. 將本地圖像轉換爲base64 javascript
- 15. 將UTC時間轉換爲本地android
- 16. 將GMT時間轉換爲本地
- 17. 將本地向量轉換爲RDD [矢量]
- 18. 將本地int []轉換爲jintarray
- 19. 將jar轉換爲本地dll
- 20. 將DateTime轉換爲本地不工作
- 21. 將DataContext轉換爲本地值
- 22. 的本地副本價值爲指針
- 23. 將datetime轉換爲本地python
- 24. 將.Net ref(%)轉換爲本地(&)
- 25. 將文本安全地轉換爲XML
- 26. 將文本轉換爲變量
- 27. php將文本轉換爲json變量
- 28. 將文本數組轉換爲向量
- 29. GIT - 將現有本地副本與克隆副本合併
- 30. 使用PDFSharp將PDF轉換爲文本
你可以做到這一點,但管道不是爲那個perpose做的... –