query = PyDruid("http://ip:端口", ‘druid/v2‘)

#可以有where条件过滤任务的状态或id

sql = "SELECT task_id,status,datasource,duration FROM sys.tasks"

curs = self.query.cursor()

curs.execute(str(sql))

#可循环curs获取结果

print(curs)

2.presto可以用pyhive或prestdb,测试是prestodb性能稳定,pyhive有秒级超时,包括使用了pyhive方式连接presto数据库的superset也存在耗时问题:

(1)连接mysql

在presto的etc/catalgo里创建属性文件,.properties后缀:

connector.name=mysql

connection-url=jdbc:mysql://ip:端口

connection-user=mysql 登录用户

connection-password=mysql密码

prestodb库代码:

import prestodb

conn=prestodb.dbapi.connect(

host=‘ip‘,

port=8080, #端口

user=‘mysql数据库连接用户名,在properties文件里有配置connection-user‘,

catalog=‘属性文件名,不带后缀‘,

schema=‘数据库名称‘,

)

cur = conn.cursor()

sql = "SELECT 字段名 FROM 数据表名 GROUP BY 字段名,字段名"

cur.execute(sql)

rows = cur.fetchall()

#打印结果

print(rows)

(2)连接mongodb:在mongodb里需要添加属性文件配置的用户名和密码,不必生效,数据库有记录就可以,获取数据代码同连接mysql

在presto的etc/catalgo里创建属性文件,.properties后缀:

connector.name=mongodb

mongodb.seeds=ip:端口

mongodb.schema-collection=自动创建字段信息的表名

mongodb.credentials=用户名:[email protected]

原文:https://blog.51cto.com/hjun169/2481071

Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐