Python 如何連接並操作 Aws 上 PB 級雲數據倉庫 Redshift


Python 如何連接並操作 AwsPB 級雲數據倉庫 Redshift

一、簡介

Amazon Redshift 是一個快速、可擴展的數據倉庫,可以簡單、經濟高效地分析數據倉庫和數據湖中的所有數據。
Redshift 通過在高性能磁盤上使用 Machine Learning、大規模並行查詢執行和列式存儲可提供比其他數據倉庫快十倍的性能。
您可以在幾分鍾內設置和部署新的數據倉庫,並在 Redshift 數據倉庫中對 PB 級數據,以及對在 Amazon S3 上構建的數據湖中的 EB 級數據運行查詢。

二、連接 RedShift

這里使用的是 postgres 的驅動,原因是:redshift 數據倉庫是 aws 基於 postgres 二次開發的衍生產品。

注:這里需要用到 orator 庫,可以運行命令 pip3 install orator 安裝。

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)

三、基本操作

這里主要介紹最基本的增刪改查操作,想要了解更高級的操作可以查看官方文檔:傳送門

# 查詢
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, 所以就在網上搜索連接 RedShiftPython driver,但是 一直沒有找到比較好用的 Drvier。偶然一次在 Aws 的官方文檔了解到 RedShift 是基於 postgres 二次開發的衍生產品,所以就嘗試用 postgres driver,結果還真連接上來。 這樣就可以像操作 postgresmysql 一樣操作 RedShift


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM