© 2025 Rocky. All rights reserved.

|浙ICP备2025179428号-3|

魔法施展中...

技术文章

技术实践

Apache Drill 核心模块

2017-04-04
5 分钟
...

下面列出drillbit里的关键组件:

RPC endpoint

Drill开发了一种基于Probobuf的损耗非常低的RPC通信协议来跟客户端打交道。另外,客户端程序也可以使用C++或是JAVA api层来跟Drill交互。客户端可以直接指定跟哪些Drillbit节点打交道,也可以在提交查询前通过zookeeper服务来获取一定数量的drillbit节点信息。 我们推荐客户端总是通过zookeeper,以隔离集群管理的复杂性,不用关心像添加或是删除节点等等。

SQL解析器

Drill 使用calcite 这个开源的SQL解析框架来解析接收到的SQL查询。这个解析组件的输出是一个人类语言无法描述,但是机器易于理解的逻辑计划,这个逻辑计划能够刚好描述这个sql查询。

Storage plugin interface:

Drill为好几种不同的数据源充当上面的查询层的角色。Drill里的存储层插件就描述了Drill怎样和这些数据源交互的抽象。存储插件给Drill提供以下信息:

  • 在数据源里能得到的元数据;
  • Drill读写数据源的接口;
  • 数据的位置 ,以及一系列优化规则,这些优化规则能够让在特定的数据源上的drill规则执行的更高效; 在Hadoop的场景下,Drill是在提供了存储插件来处理分布式的文件和HBase.Drill也通过提供存储插件来集成了Hive的支持。 当用户通过Drill来查询文件或是HBase,他们可以直接执行,如果Hive有定义元数据的话,也可以通过Hive来执行。Drill集成Hive仅仅是为了元数据,Drill处理任何请求的时候都不执行Hive的查询执行引擎。

💡 关于技术判断: 本文反映了我在真实系统中评估技术风险的思考方式。 我现在专注于为创始人和决策者提供独立的后端与架构风险评估服务。 如果您在重大技术决策前需要第三方意见,了解评估服务或联系咨询。

感谢阅读!如果您觉得这篇文章有帮助,欢迎分享给更多的朋友。

上一篇
技术分享

新生

曾经有一个从2004年开始写的blog;一直以来坚持着,想保留自己不成熟的一面,但是忽然有一天就不想把这一面展示出来了。于是决定新生,于是有了这个 https://83d.me/ 。

下一篇
技术实践

Apache Drill 架构总览

Apache drill是在大规模数据集场景下,可以低延迟地进行结构和半结构化/嵌套数据结构查询的一个分布式查询引擎。受到谷歌公司的Dremel的启发,Drill被设计出来以支持几千个节点和PB级别的数据规模下,支持交互响应级别的商务智能分析和查询。 Drill也适用到在大规模数据集场景下进行...

📮 订阅更新
每周收到最新文章推送,不错过精彩内容

💡 我们尊重您的隐私,不会将邮箱用于其他用途

加载中...

猜你喜欢

职业发展

日常随想

- 不要教育人,要学会筛选人。有人的始终是无法教育的,别浪费时光。

2022-05-26
技术实践

语音转写「又快又准」:我的双路径并行策略实现

在实时语音转文字场景中,速度和准确率往往是一对矛盾。本文分享我如何通过「快路径+准路径」双路径并行策略,在保持低延迟的同时显著提升转写准确率。

2025-11-23
Swift
技术实践

Tiktok 初探3

1. 直播和短视频,服务器体系是分开的;我能明显感受到速度不同,连通性也不一样;

2024-12-19
tiktok