元素星在线活动查询中心

元素星在线活动查询中心

shape
  • Home
  • 玩家问答
  • Apache Drill 入门

Apache Drill 入门

  • 2025-10-26 00:27:49
  • admin

Apache Drill 入门

官网地址: Apache Drill

视频教程地址1: Apache Drill

为什么选择Apache Drill

无处不在

几乎可以查询任何类型的NoSQL数据库

Drill支持多种类型的NoSQL数据库和文件系统, 包含 Hbase、MongoDB、ElasticSearch、Cassandra、Druid、Kudu、Kafka、OpenTSDB、HDFS、Amazon S3、Azure Blob Storage、Google Cloud Storage、Swift、NAS和本地文件。可以在单次查询中组合多个数据源(联邦查询)。

Drill的存储感知优化器会利用数据存储的内部处理能力来重构查询计划。Drill还支持数据本地性(Data Locality),所以将Drill和数据节点部署在一起可以充分优化性能。

告别繁冗

充分享受数据应用的敏捷性

SELECT * FROM dfs.root.`/web/logs`;

SELECT country, count(*)

FROM mongodb.web.users

GROUP BY country;

SELECT timestamp

FROM s3.root.`clicks.json`

WHERE user_id = 'jdoe';

传统的查询引擎需要大量的IT交互才允许查询数据。Drill直接省去了这些冗余,可以快速原地查询这些原始数据。没有Schema创建和维护,也没有数据加载、转换和ETL操作。只需要在查询语句中指定数据的位置,如 Hadoop、S3或MongoDB。

Drill利用先进的查询编译和重编译,来优化查询性能,而不必对数据模式有预先了解。

化繁为简

将任何数据当表格形式一样使用

Drill设计了专有的JSON数据模型,能够支持复杂/嵌套数据的查询,对现代应用程序以及NoSQL中快速衍化的数据结构进行分析。不仅于此,还提供了SQL的扩展性,轻松查询更复杂的数据结构。

Drill是一款支持复杂数据的列式查询引擎。而且支持在内存中用列式表达复杂数据,所以查询JSON数据模型的速度可以媲美列式格式。

简单易用

继续使用你喜欢的BI工具

Drill支持标准的 ANSI SQL。商务用户,分析师,数据科学家可以通过Drill的JDBC或者ODBC驱动在标准的BI和分析工具上运行,例如:Tableau, Qlik, MicroStrategy, Spotfire, SAS 和 Excel,开发者也可以在他们的应用中使用 RESTful API(支持流式响应)来定制数据可视化。

Drill的虚拟数据集可以将复杂的NoSQL数据结构对应到兼容BI的结构,帮助用户挖掘和可视化数据。

水平扩展

从一台主机到一千台服务器

$ curl -L "" | tar xzf -

$ cd apache-drill-

$ bin/drill-embedded

Drill开箱即用的特点可以支持在Mac、Windows和Linux上快速完成安装(分钟级)。针对大规模的数据集,也可以部署到商用服务器上,充分利用高性能引擎。

Drill的对称性架构(所有节点职责相同)和易于安装的特点,方便部署及运行在大规模集群上。

快速响应

不再需要等待你的咖啡

Drill并不是世界上第一款查询引擎,却是第一个兼顾数据复杂性和查询速度的MPP引擎。Drill设计了与众不同的架构,不仅能够支持JSON数据模型,还做到了非凡的响应速度。

列式执行引擎 (第一款支持复杂数据的列式执行引擎)

支持运行时期的 Data-driven 编译和重编译

专有的内存管理技术以减少内存占用和避免频繁垃圾回收

通过将Drill和数据节点部署在一起来支持数据本地性(Data Locality)

利用查询优化器的CBO和RBO技术将查询尽可能下推到数据库

部署使用Apache Dirll

官方教程:官方部署教程

通过docker compose 部署

version: "3"

services:

apache-drill:

image: apache/drill:1.21.2-openjdk-17

container_name: apache-drill

restart: always

stdin_open: true # 开启标准输入(相当于 -i)

tty: true # 分配伪终端(相当于 -t)

volumes:

- /data/drill/mnt/big/data:/mnt

- /data/drill/data:/data

ports:

- "8047:8047"

- "31010:31010"

jdbc连接地址:YourIp:31010

webUI的地址:YourIp:8047

通过webUI使用

启用mysql和mongo数据库的支持

mongo

编辑配置文件

{

"type": "mongo",

"connection": "mongodb://root:BICItech%40123@192.168.100.196:27017/data-plus",

"pluginOptimizations": {

"supportsProjectPushdown": true,

"supportsFilterPushdown": true,

"supportsAggregatePushdown": true,

"supportsSortPushdown": true,

"supportsUnionPushdown": true,

"supportsLimitPushdown": true

},

"batchSize": 100,

"authMode": "SHARED_USER"

}

mysql

新建

​​

基本查询

​show databases;​

执行结果

​select * from mongo.`data-plus`.api_definition​

查询结果

​select * from mysql.`data-plus`.area​

查询结果

特殊查询

​show databases​

查询结果

​show tables​

​show tables​ 前必须先使用 use schema​指定schema

查询结果

特殊的schema-information_schema

查看表名

查询结果

cloumns 表

存储了所有schema对应的表的字段相关信息

查询

结果

深入了解

EXPLAIIN

官方文档地址: Explain

查询计划 Query Plans

官方文档地址: Query Plans

‍

Previous Post
电话手表怎么充电
Copyright © 2088 元素星在线活动查询中心 All Rights Reserved.
友情链接