presto和druid获取数据

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了presto和druid获取数据相关的知识,希望对你有一定的参考价值。

apache druid和presto用于大数据处理,都借助内存处理大数据的聚合统计,支持python
1.druid读取数据的python代码:使用pydruid
from pydruid.client import *
from pydruid.utils import aggregators

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=用户名:密码@用户所在的collection

以上是关于presto和druid获取数据的主要内容,如果未能解决你的问题,请参考以下文章

SQL数据分析概览——HiveImpalaSpark SQLDrillHAWQ 以及Presto+druid

获取特定表中特定列的数据类型的 Presto 查询是啥?

Presto sql获取上个月的数据直到当天的数据?

如何在毯子[]中获取文本(Presto)

Presto TIMESTAMP 从 2 天前获取数据而不输入年月日期?

Presto系列 | 五Tuning Presto SQL Query