Apache Drill 1.22.0 介绍与选型指南

Apache Drill 1.22.0 认知篇:schema-free 分布式 SQL 引擎的 Drillbit 架构、存储插件体系、官方 10 分钟快速上手示例与 Presto/Trino/DuckDB 选型对比,信息基于官方来源联网溯源(查询日期 2026-10-18)。

Apache DrillApache Drill2026/10/18

Apache Drill 1.22.0 介绍与选型指南

目标:本篇为 A1 认知篇,基于 Apache Drill 官方网站、GitHub 官方仓库 Release 与官方文档联网溯源整理(查询日期 2026-10-18),不涉及本地安装实测;本地安装实测属 B1 安装指南职责。

一、信息基准

1.1 查询日期与版本依据

项目内容
查询日期2026-10-18
本次介绍版本Apache Drill 1.22.0(官方最新稳定版)
版本依据GitHub 官方仓库 apache/drill releases/latest 实查:tag drill-1.22.0,发布时间 2025-06-29
Java 支持1.22.0 官方 Release Notes 明示:Java 大版本支持调整为 Java 11、17、21,并移除 Hadoop 2 发行版(来源:1.22.0 Release 说明,查询日期 2026-10-18)

1.2 官方来源清单

来源URL
项目主页https://drill.apache.org/
官方文档https://drill.apache.org/docs/
Drill in 10 Minuteshttps://drill.apache.org/docs/drill-in-10-minutes/
GitHub 官方仓库https://github.com/apache/drill
1.22.0 Releasehttps://github.com/apache/drill/releases
安装指引https://drill.apache.org/docs/installing-drill-in-embedded-mode/

二、软件概述

本文介绍 Apache Drill 1.22.0(最新稳定版,2025-06-29 发布)。Drill 是一款开源的分布式 SQL 查询引擎,主打"无 schema(schema-free)即查":无需预先建表、无需 ETL 落地,即可对 JSON、Parquet、CSV 等自描述/半结构化文件以及 HDFS/S3、Hive、HBase、Kafka、关系库(JDBC)等数据源直接下发标准 SQL 查询。Drill 遵循 SQL:2011 标准并针对嵌套数据做了方言扩展,架构上由一组对等的 Drillbit 进程组成,支持内嵌(embedded)与分布式(distributed)两种运行模式(来源:drill.apache.org/docs/drill-in-10-minutes/,查询日期 2026-10-18)。

  • 许可:Apache License 2.0。
  • 维护方:Apache Software Foundation 顶级项目(源自 MapR,2014 年进入 ASF 孵化并毕业)。
  • 形态:独立服务/进程(Drillbit),无独立持久化存储,数据留在原系统。
  • 社区活跃度:GitHub 2027 stars / 988 forks,主分支最近推送 2026-10-14(查询日期 2026-10-18,GitHub API 实查)。

三、核心架构与核心概念

3.1 架构

组件职责
Drillbit核心服务进程,承担 SQL 解析、规划(cost-based optimizer)、分布式执行与本地数据访问;节点间对等(无主从),客户端经 JDBC/ODBC 连接任意 Drillbit
ZooKeeper分布式模式下用于集群发现与状态协调(内嵌模式使用 zk=local)
Web Console每个 Drillbit 内置 HTTP 控制台(默认 8047),查看查询 profile、存储插件配置
Storage Plugin数据源适配层:文件系统(本地/HDFS/S3)、Hive、HBase、Kafka、MongoDB、JDBC、HTTP 等,插件配置决定"数据在哪、怎么读"

3.2 核心概念

  • Schema-free 查询:同一列可容纳异构类型,字段缺失即 NULL;无需上游建表即可查询 JSON/Parquet。
  • cp 插件:classpath 存储插件,指向 Drill 发行包内置示例数据目录(如 cp.employee.json),常用于快速验证。
  • 动态列与嵌套访问:以 tbl.field.subfield 点路径访问嵌套结构,配合 FLATTEN/KVGEN 等函数处理变长结构。
  • UDF 动态加载:无需重启集群即可注册自定义函数。

四、功能特性

以下特性均可在官方文档与 1.22.0 Release Notes 查证(查询日期 2026-10-18):

特性域说明
标准 SQLSQL:2011 + 嵌套数据扩展,JDBC/ODBC 驱动接入 BI 工具
多数据源直查文件(JSON/Parquet/CSV/TSV/PSV/AVRO)、HDFS/S3、Hive、HBase、Kafka、MongoDB、JDBC、HTTP、Splunk 等存储插件
分布式执行多 Drillbit 对等集群,查询自动并行切分(Fragments)与汇聚
安全与权限Kerberos/认证、行级过滤与列掩码(Views + 政策函数)、会话/系统级参数
1.22.0 变更亮点Java 11/17/21 支持、移除 Hadoop 2 发行版、大量第三方依赖安全升级、File/HTTP/Splunk/XML 插件增强
  • 1.22.0 后未见更高版本发布(截至查询日 releases/latest 仍为 1.22.0),版本节奏约为年级大版本 + 补丁。

五、快速上手(引自官方文档,不本地实测)

官方 "Drill in 10 Minutes" 以内嵌模式体验(原文引自 https://drill.apache.org/docs/drill-in-10-minutes/ ,查询日期 2026-10-18):

  1. 下载解压:从官方下载页获取二进制包并解压(官方示例命令):
tar -xvzf <.tar.gz file name>
cd apache-drill-<version>
  1. 以内嵌模式启动(官方原文命令):
bin/drill-embedded

启动后出现 0: jdbc:drill:zk=local> 提示符(官方回显)。

  1. 查询内置示例数据(官方原文 SQL 与回显节选):
SELECT * FROM cp.`employee.json` LIMIT 3;

官方文档回显(节选):

| employee_id  |    full_name     | first_name  | last_name  | ... |
|--------------|------------------|-------------|------------|-----|
| 1            | Sheri Nowmer     | Sheri       | Nowmer     | ... |
| 2            | Derrick Whelply  | Derrick     | Whelply    | ... |
| 4            | Michael Spence   | Michael     | Spence     | ... |

说明:内嵌模式单进程即可完成体验;分布式模式(多 Drillbit + ZooKeeper)的安装与部署见官方文档 Installing Drill in Distributed Mode 与本专栏 B1 安装指南。1.22.0 的 Java 运行环境要求以 Release Notes(Java 11/17/21)为准。

六、适用场景与限制

6.1 适用场景

  • 数据湖/文件湖 ad-hoc 探索:数据科学家/分析师直接对 S3/HDFS 上的 JSON/Parquet/CSV 下发 SQL,零建模起步。
  • 多源联邦即席查询:一个引擎同时查 Hive、Kafka、MongoDB、JDBC 关系库,替代"每源一套脚本"。
  • 嵌套半结构化数据分析:JSON 多层结构与 schema 演进频繁的日志类数据。
  • 原型验证:内嵌模式 10 分钟起步,适合 PoC 与本地开发。

6.2 限制与风险

  • 面向分析型即席查询,不追求高并发在线报表;无内置持久化与物化能力,性能依赖底层数据组织(Parquet 分区等)。
  • 社区规模与活跃度中等(2000+ stars),版本节奏慢(1.21 → 1.22 间隔约一年半,查询日期 2026-10-18),路线图推进不及 Trino/DuckDB。
  • 复杂资源隔离与多租户治理能力有限,大规模生产建议搭配 YARN/K8s 资源管控并谨慎评估。
  • 无 schema 意味着"灵活性换确定性":类型推断错误与脏数据问题需在查询侧处理。

七、同类选型对比

对比维度:许可、社区活跃度(GitHub stars + 最近发版)、版本节奏、兼容矩阵。数据为 GitHub API 实查,查询日期 2026-10-18。

项目定位许可GitHub stars最近发版(2026-10-18 实查)兼容矩阵
Apache Drill 1.22.0schema-free 分布式 SQL 查询引擎Apache-2.02027(apache/drill)1.22.0(2025-06-29)Java 11/17/21;JDBC/ODBC;文件/HDFS/S3/Hive/HBase/Kafka/JDBC/HTTP 插件
Presto分布式联邦查询引擎(Facebook 系起源)Apache-2.016762(prestodb/presto)0.299(2026-08-28)数百种 Connector;ANSI SQL;社区版本节奏快
TrinoPresto 的社区延续分支,联邦查询事实主流Apache-2.013343(trinodb/trino)484(2026-10-16)丰富 Connector 生态;周度发版;无 Hadoop 依赖
DuckDB嵌入式分析型 SQL 引擎(单机进程内)MIT42232(duckdb/duckdb)v1.5.6(2026-09-28)进程内库/CLI;Parquet/CSV/JSON 直查;扩展生态活跃

选型建议:需要分布式联邦查询与活跃生态时优先 Trino(社区延续最快、Connector 最全);老 Hadoop/Hive 体系且已用 Presto 的场景继续 Presto;单机分析/嵌入式场景直接选 DuckDB(体量小、性能强、许可宽松);仅当强调"不建表直接查 JSON/嵌套数据 + 内嵌单进程起步"的 Drill 特有组合,或维护既有 Drill 集群时选 Drill,并接受其较慢的演进节奏。

八、参考链接