presto支持jdbc驅動連接,從外表來看,和一般的關係型資料庫連接相似。 目前發現有兩個包支持直接使用,分別是: pyhive : https://github.com/dropbox/PyHive presto python client : https://github.com/presto ...
presto支持jdbc驅動連接,從外表來看,和一般的關係型資料庫連接相似。
目前發現有兩個包支持直接使用,分別是:
pyhive : https://github.com/dropbox/PyHive
presto-python-client : https://github.com/prestodb/presto-python-client
其中第二個是官方自己弄的,不過看起來使用率沒有第一個高。在superset中也是用pyhive來連接的。
所以只說一下怎麼用pyhive來連接presto。
pyhive實質是安裝了一個驅動,所以任何python里能創建一般化的資料庫連接的模塊都可以用來創建presto連接,下麵是來自官方的例子
from sqlalchemy import *
from sqlalchemy.engine import create_engine
from sqlalchemy.schema import *
# Presto
engine = create_engine('presto://localhost:8080/hive/default') # 只需要簡單地改一下所用的方言。需要說明的是,這裡的hive指的是catalog,default是schema,因為presto的構造與MySQL稍有不一樣
# Hive
engine = create_engine('hive://localhost:10000/default')
logs = Table('my_awesome_data', MetaData(bind=engine), autoload=True)
print select([func.count('*')], from_obj=logs).scalar()