大数据druid查询不支持分页_大数据查询引擎Drill 开箱即用不需要同步数据

Apache Drill提供了一种低延迟的方式对多种数据源进行SQL查询,无需预先定义元数据。它支持Hive、Hbase、Kafka等多种数据源,通过JDBC插件可扩展到更多数据库。 Drill以其动态查询、嵌套数据支持和高性能(使用柱状矢量引擎)为特点,适用于BI工具集成。查询过程涉及客户端发起请求,Drillbit节点分析、优化并分布式执行计划,确保数据局部性。
摘要由CSDN通过智能技术生成

简介

d1150090a9f483dc4eed26a5166f6162.png

drill

Apache Drill是一个引擎,可以连接到许多不同的数据源,并为它们提供SQL接口。 它不仅是遍历任何复杂事物SQL界面,而且是功能强大的界面, 其中包括对许多内置函数和窗口函数的支持。 尽管它可以连接到可以使用SQL进行查询的标准数据源(例如Oracle或MySQL),但它还可以处理诸如CSV或JSON等平面文件以及Avro和Parquet格式。

官方默认支持的数据源有hive、hbase、kafka、kudu、mongo、opentsdb、jdbc等,其中jdbc storage plugin可以覆盖所有支持jdbc协议的数据源,如:mysql、oracle等关系型数据库。所有数据源的接入都是通过drill的storage plugin实现的,理论上Drill通过storage plugin机制可以支持对任何数据源进行异构查询。

优势

1. 学习成本低

2. 低延迟的SQL查询

3. 动态查询自描述数据文件(json,text,Parquet),MPR-DB/Hbase表,不需要元数据定义的hive元数据。ANSI SQL

4. 嵌套数据支持

5. 与ApacheHive一体化(Hive表和视图的查询,支持所有的Hive文件格式和HiveUDFS)

6. BI/SQL工具集成使用标准的JDBC驱动程序

7. 访问多个数据源

8. 用户自定义UDF

9. 高性能(设计上高吞吐量和低延迟,不使用通用的执行引擎,柱形矢量引擎)

结构

Drill是一个无主节点的分布式查询工具,每一个部署节点(Drillbit)都包含有以下核心模块

71b4cb111eee6b4a73bad19a090a17a5.png

drill架构

RPC Endpoint: 基于RPC协议的客户端通信接口

SQL Parser: SQL解析工具,输出Logical plan, 它使用了开源工具:Calcite

Storage Engine interface: 面对多种数据源的统一读写抽象接口,它提供几种功能: 1.提供Metadata。 2.数据读写接口。3.数据定位和优化规则帮助提高查询效率。

查询过程

b23dc18c9073494167ba4623f71a29d5.png

查询过程

查询的流程常包括以下步骤:

1. drill客户端发起查询,客户端可以是一个JDBC、ODBC、命令行界面或REST API。集群中任何drill单元可以接受来自客户端的查询,没有主从概念。

2. drill单元对查询进行分析、优化,并针对快速高效执行生成一个最优的分布式执行计划。

3. 收到请求的drill单元成为该查询的drill单元驱动节点。这个节点从ZooKeeper获取整个集群可用的一个drill单元列表。驱动节点确定合适的节点来执行各种查询计划片段到达最大化数据局部性。

4. 各个节点查询片段执行计划按照它们的drill单元计划表执行。

5. 各个节点完成它们的执行后返回结果数据给驱动节点。

6. 驱动节点以流的形式将结果返回给客户端。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值