Python
如何鏈接並操做 Aws
上 PB
級雲數據倉庫 Redshift
Amazon Redshift 是一個快速、可擴展的數據倉庫,能夠簡單、經濟高效地分析數據倉庫和數據湖中的全部數據。
Redshift 經過在高性能磁盤上使用 Machine Learning、大規模並行查詢執行和列式存儲可提供比其餘數據倉庫快十倍的性能。
您能夠在幾分鐘內設置和部署新的數據倉庫,並在 Redshift 數據倉庫中對 PB 級數據,以及對在 Amazon S3 上構建的數據湖中的 EB 級數據運行查詢。html
RedShift
這裏使用的是 postgres
的驅動,緣由是:redshift
數據倉庫是 aws
基於 postgres
二次開發的衍生產品。python
注:這裏須要用到 orator
庫,能夠運行命令 pip3 install orator
安裝。mysql
from orator import DatabaseManager config = { 'postgres': { 'driver': 'postgres', 'host': 'xxxxxx-cluster.xxxxx.xxxx.redshift.amazonaws.com', 'port': '5439', 'database': 'db_name', 'user': 'root', 'password': 'root', 'prefix': '', 'log_queries': true } } db = DatabaseManager(config)
這裏主要介紹最基本的增刪改查操做,想要了解更高級的操做能夠查看官方文檔:傳送門sql
# 查詢 row = db.table('users').first() # 新增 db.table('users').insert({ 'email': 'foo@bar.com', 'votes': 0 }) # 更新 db.table('users').where('id', 1).update({'votes': 1}) # 刪除 db.table('users').where('age', '<', 25).delete()
由於 aws
官方只提供了 JDBC Drvier
, 因此就在網上搜索鏈接 RedShift
的 Python driver
,可是 一直沒有找到比較好用的 Drvier
。偶然一次在 Aws
的官方文檔瞭解到 RedShift
是基於 postgres
二次開發的衍生產品,因此就嘗試用 postgres driver
,結果還真鏈接上來。 這樣就能夠像操做 postgres
或 mysql
同樣操做 RedShift
。數據庫