快速指导
目的
花 10 分钟的时间去使用 Drill 查询示例数据。为了简单起见,你可以直接运行在嵌入模式下,而不需要使用分布式模式去尝试,为你免去设置步骤。
安装概述
你可以在 Linux,Mac OS X 或是 Windows 上安装 Drill。
此安装过程包含如何去下载 Apache Drill 安装包以及解压该文件到你机器的一个目录中。Apache Drill 安装包中包含示例的 JSON 和 Parquet 文件,供你去使用。
在安装好 Drill 后,你可以启动 Drill Shell。它是一个基于纯 Java 控制台,用于连接关系型数据库和执行 SQL 命令。Drill 遵循 SQL:2011 标准,并且易于扩展嵌套数据格式和其他功能。
嵌入模式安装的先决条件
你需要准备以下先决条件去运行 Drill:
- Linux,Mac OS X,和 Windows:Oracle Java SE Development (JDK) Kit 7 安装
- Windows 需要:
- 在安装 JDK 后,需要设置 JAVA_HOME 环境变量
- PATH 环境变量需要指明 JDK 安装目录的 bin 目录
- 利用第三方工具去解压一个 .tzr.gz 的文件
Java 安装检测
运行以下命令在终端(Linux 和 Max OS X) 或者使用 CMD(Windows)中,去验证 Java 7 版本的有效性:
1. java -version
若是安装成功,输出结果如下所示:
1. java version "1.7.0_79"
2. Java(TM) SE Runtime Environment (build 1.7.0_7965-b15)
3. Java HotSpot(TM) 64-Bit Server VM (build 24.79-b02, mixed mode)
安装 Drill 到 Linux 或 Mac OS X 上
安装 Drill 需要完成以下步骤:
- 在终端中,进入到需要安装 Drill 的目录中。
- 下载最新版本的 Apache Drill,从 Drill 官网下载 Drill 或者运行以下命令去下载安装包。
```
- wget http://getdrill.org/drill/download/apache-drill-1.4.0.tar.gz ```
```
- curl -o apache-drill-1.4.0.tar.gz http://getdrill.org/drill/download/apache-drill-1.4.0.tar.gz ```
- 拷贝下载文件到安装 Drill 的目录。
- 抽取 Drill 的 .tar.gz 文件,如果非 Root 用户,需要使用 sudo 命令:
```
- tar -zxvf apache-drill-1.4.0.tar.gz ```
等待解压完成之后,此时,你就可以去启动 Drill 了。
在 Linux 和 Mac OS X 上启动 Drill
启动 Drill 内嵌模式使用 drill-embedded 命令:
- 定位到 Drill 的安装目录。例如:
```
- cd apache-drill-1.4.0 ```
- 使用以下命令去启动:
```
- bin/drill-embedded ```
然后会出现以下信息0: jdbc:drill:zk=local> prompt。
之后,你可以在 Drill 中提交查询请求。
在 Windows 中安装 Drill
你可以在 Windows 中安装 Drill。首先,需要设置 JAVA_HOME 环境变量,然后在安装 Drill。完成步骤如下所示:
- 点击下面的超链接去下载最新版本的 Apache Drill:http://getdrill.org/drill/download/apache-drill-1.4.0.tar.gz
- 移动 apache-drill-.tar.gz 文件到你需要安装 Drill 的目录中。
- 使用第三方工具解压
TAR.GZ文件。
此时,你可以开始启动 Drill。
在 Windows 中启动 Drill
启动 Drill 使用 sqlline.bat 文件,并且指明连接信息。zk=local 在连接信息当中表示使用本地节点的 ZooKeeper:
开始启动 Drill Shell 使用 sqlline 命令,完成以下步骤来启动 Drill Shell:
- 打开 CMD。
- 打开 Apache Drill 的目录文件。
- 进入到 bin 目录。例如:
```
- cd bin ```
- 输入下列命令到控制台:
sqlline.bat -u "jdbc:drill:zk=local"
另外,zk=local 表示使用本地节点的 ZooKeeper。之后,你可以开始运行查询请求。
停止 Drill
当我们想退出 Drill 时,可以使用以下命令:
1. !quit
查询示例数据
在 Drill 安装根目录下,有一个 sample-data 文件夹,其中包含 JSON 和 Parquet 文件供查询使用。当你安装了嵌入模式在你的机器上,会有一个默认的 dfs 存储插件会在 Web UI Console 显示,用于本地文件系统。
在本地文件系统,使用 SQL 查询示例 JSON 和 Parquet 文件于 sample-data 文件夹。
查询一个 JSON 文件
一个 JSON 示例文件(employee.json),包含模拟的员工数据。为了可视化 employee.json 文件中的数据,提交以下 SQL 查询到 Drill,你可以到 Web UI Console 配置 cp 存储插件。
1. 0: jdbc:drill:zk=local> SELECT * FROM cp.`employee.json` LIMIT 3;
查询结果如下所示:
1. +--------------+------------------+-------------+------------+--------------+---------------------+-----------+----------------+-------------+------------------------+----------+----------------+------------------+-----------------+---------+--------------------+
2. | employee_id | full_name | first_name | last_name | position_id | position_title | store_id | department_id | birth_date | hire_date | salary | supervisor_id | education_level | marital_status | gender | management_role |
3. +--------------+------------------+-------------+------------+--------------+---------------------+-----------+----------------+-------------+------------------------+----------+----------------+------------------+-----------------+---------+--------------------+
4. | 1 | Sheri Nowmer | Sheri | Nowmer | 1 | President | 0 | 1 | 1961-08-26 | 1994-12-01 00:00:00.0 | 80000.0 | 0 | Graduate Degree | S | F | Senior Management |
5. | 2 | Derrick Whelply | Derrick | Whelply | 2 | VP Country Manager | 0 | 1 | 1915-07-03 | 1994-12-01 00:00:00.0 | 40000.0 | 1 | Graduate Degree | M | M | Senior Management |
6. | 4 | Michael Spence | Michael | Spence | 2 | VP Country Manager | 0 | 1 | 1969-06-20 | 1998-01-01 00:00:00.0 | 40000.0 | 1 | Graduate Degree | S | M | Senior Management |
7. +--------------+------------------+-------------+------------+--------------+---------------------+-----------+----------------+-------------+------------------------+----------+----------------+------------------+-----------------+---------+--------------------+
8. 3 rows selected (0.827 seconds)
查询一个 Parquet 文件
查询一个 region.parquet 和 nation.parquet 文件,在你本地文件系统中的 sample-data 文件夹下。
Region 文件
如果你是安装 Apache Drill 的 10 分钟介绍,来一步步安装的嵌入式模式,在不同的操作系统中,文件的路径会有所不同。
为了可视化 region.parquet 文件中的数据,在你的 Drill 安装目录下,使用实际的路径去完成查询:
1. SELECT * FROM dfs.`<path-to-installation>/apache-drill-<version>/sample-data/region.parquet`;
查询返回如下结果:
1. +--------------+--------------+-----------------------+
2. | R_REGIONKEY | R_NAME | R_COMMENT |
3. +--------------+--------------+-----------------------+
4. | 0 | AFRICA | lar deposits. blithe |
5. | 1 | AMERICA | hs use ironic, even |
6. | 2 | ASIA | ges. thinly even pin |
7. | 3 | EUROPE | ly final courts cajo |
8. | 4 | MIDDLE EAST | uickly special accou |
9. +--------------+--------------+-----------------------+
10. 5 rows selected (0.409 seconds)
Nation 文件
由于不同操作系统的 parquet 文件的路径不一样。这里,我们使用实际的路径去完成本次查询:
1. SELECT * FROM dfs.`<path-to-installation>/apache-drill-<version>/sample-data/nation.parquet`;
查询返回如下结果:
1. SELECT * FROM dfs.`Users/drilluser/apache-drill/sample-data/nation.parquet`;
2. +--------------+-----------------+--------------+-----------------------+
3. | N_NATIONKEY | N_NAME | N_REGIONKEY | N_COMMENT |
4. +--------------+-----------------+--------------+-----------------------+
5. | 0 | ALGERIA | 0 | haggle. carefully f |
6. | 1 | ARGENTINA | 1 | al foxes promise sly |
7. | 2 | BRAZIL | 1 | y alongside of the p |
8. | 3 | CANADA | 1 | eas hang ironic, sil |
9. | 4 | EGYPT | 4 | y above the carefull |
10. | 5 | ETHIOPIA | 0 | ven packages wake qu |
11. | 6 | FRANCE | 3 | refully final reques |
12. | 7 | GERMANY | 3 | l platelets. regular |
13. | 8 | INDIA | 2 | ss excuses cajole sl |
14. | 9 | INDONESIA | 2 | slyly express asymp |
15. | 10 | IRAN | 4 | efully alongside of |
16. | 11 | IRAQ | 4 | nic deposits boost a |
17. | 12 | JAPAN | 2 | ously. final, expres |
18. | 13 | JORDAN | 4 | ic deposits are blit |
19. | 14 | KENYA | 0 | pending excuses hag |
20. | 15 | MOROCCO | 0 | rns. blithely bold c |
21. | 16 | MOZAMBIQUE | 0 | s. ironic, unusual a |
22. | 17 | PERU | 1 | platelets. blithely |
23. | 18 | CHINA | 2 | c dependencies. furi |
24. | 19 | ROMANIA | 3 | ular asymptotes are |
25. | 20 | SAUDI ARABIA | 4 | ts. silent requests |
26. | 21 | VIETNAM | 2 | hely enticingly expr |
27. | 22 | RUSSIA | 3 | requests against th |
28. | 23 | UNITED KINGDOM | 3 | eans boost carefully |
29. | 24 | UNITED STATES | 1 | y final packages. sl |
30. +--------------+-----------------+--------------+-----------------------+
31. 25 rows selected (0.101 seconds)
总结
Apache Drill 支持数据嵌套,schema-less 执行,分散的元数据。基于这些点,你可以知道如何去创建一个简单的查询在 JSON 和 Parquet 文件上。
