快速指导

目的

花 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 版本的有效性:

java -version

若是安装成功,输出结果如下所示:

java version "1.7.0_79"
Java(TM) SE Runtime Environment (build 1.7.0_7965-b15)
Java HotSpot(TM) 64-Bit Server VM (build 24.79-b02, mixed mode)

安装 Drill 到 Linux 或 Mac OS X 上

安装 Drill 需要完成以下步骤:

  1. 在终端中,进入到需要安装 Drill 的目录中。

  2. 下载最新版本的 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
    
  3. 拷贝下载文件到安装 Drill 的目录。

  4. 抽取 Drill 的 .tar.gz 文件,如果非 Root 用户,需要使用 sudo 命令:

    tar -zxvf apache-drill-1.4.0.tar.gz
    

等待解压完成之后,此时,你就可以去启动 Drill 了。

在 Linux 和 Mac OS X 上启动 Drill

启动 Drill 内嵌模式使用 drill-embedded 命令:

  1. 定位到 Drill 的安装目录。例如:
    cd apache-drill-1.4.0
    
  2. 使用以下命令去启动:
    bin/drill-embedded
    
    然后会出现以下信息0: jdbc:drill:zk=local> prompt

之后,你可以在 Drill 中提交查询请求。

在 Windows 中安装 Drill

你可以在 Windows 中安装 Drill。首先,需要设置 JAVA_HOME 环境变量,然后在安装 Drill。完成步骤如下所示:

  1. 点击下面的超链接去下载最新版本的 Apache Drill: http://getdrill.org/drill/download/apache-drill-1.4.0.tar.gz

  2. 移动 apache-drill-.tar.gz 文件到你需要安装 Drill 的目录中。

  3. 使用第三方工具解压 TAR.GZ 文件。

此时,你可以开始启动 Drill。

在 Windows 中启动 Drill

启动 Drill 使用 sqlline.bat 文件,并且指明连接信息。zk=local 在连接信息当中表示使用本地节点的 ZooKeeper:

开始启动 Drill Shell 使用 sqlline 命令,完成以下步骤来启动 Drill Shell:

  1. 打开 CMD。

  2. 打开 Apache Drill 的目录文件。

  3. 进入到 bin 目录。例如:

    cd bin
    
  4. 输入下列命令到控制台:sqlline.bat -u "jdbc:drill:zk=local" sqlline1.png

另外,zk=local 表示使用本地节点的 ZooKeeper。之后,你可以开始运行查询请求。

停止 Drill

当我们想退出 Drill 时,可以使用以下命令:

!quit

查询示例数据

在 Drill 安装根目录下,有一个 sample-data 文件夹,其中包含 JSON 和 Parquet 文件供查询使用。当你安装了嵌入模式在你的机器上,会有一个默认的 dfs 存储插件会在 Web UI Console 显示,用于本地文件系统。

在本地文件系统,使用 SQL 查询示例 JSONParquet 文件于 sample-data 文件夹。

查询一个 JSON 文件

一个 JSON 示例文件(employee.json),包含模拟的员工数据。为了可视化 employee.json 文件中的数据,提交以下 SQL 查询到 Drill,你可以到 Web UI Console 配置 cp 存储插件。

0: jdbc:drill:zk=local> SELECT * FROM cp.`employee.json` LIMIT 3;

查询结果如下所示:

+--------------+------------------+-------------+------------+--------------+---------------------+-----------+----------------+-------------+------------------------+----------+----------------+------------------+-----------------+---------+--------------------+
| 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   |
+--------------+------------------+-------------+------------+--------------+---------------------+-----------+----------------+-------------+------------------------+----------+----------------+------------------+-----------------+---------+--------------------+
| 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  |
| 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  |
| 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  |
+--------------+------------------+-------------+------------+--------------+---------------------+-----------+----------------+-------------+------------------------+----------+----------------+------------------+-----------------+---------+--------------------+
3 rows selected (0.827 seconds)

查询一个 Parquet 文件

查询一个 region.parquetnation.parquet 文件,在你本地文件系统中的 sample-data 文件夹下。

Region 文件

如果你是安装 Apache Drill 的 10 分钟介绍,来一步步安装的嵌入式模式,在不同的操作系统中,文件的路径会有所不同。

为了可视化 region.parquet 文件中的数据,在你的 Drill 安装目录下,使用实际的路径去完成查询:

SELECT * FROM dfs.`<path-to-installation>/apache-drill-<version>/sample-data/region.parquet`;

查询返回如下结果:

+--------------+--------------+-----------------------+
| R_REGIONKEY  |    R_NAME    |       R_COMMENT       |
+--------------+--------------+-----------------------+
| 0            | AFRICA       | lar deposits. blithe  |
| 1            | AMERICA      | hs use ironic, even   |
| 2            | ASIA         | ges. thinly even pin  |
| 3            | EUROPE       | ly final courts cajo  |
| 4            | MIDDLE EAST  | uickly special accou  |
+--------------+--------------+-----------------------+
5 rows selected (0.409 seconds)

Nation 文件

由于不同操作系统的 parquet 文件的路径不一样。这里,我们使用实际的路径去完成本次查询:

SELECT * FROM dfs.`<path-to-installation>/apache-drill-<version>/sample-data/nation.parquet`;

查询返回如下结果:

SELECT * FROM dfs.`Users/drilluser/apache-drill/sample-data/nation.parquet`;
+--------------+-----------------+--------------+-----------------------+
| N_NATIONKEY  |     N_NAME      | N_REGIONKEY  |       N_COMMENT       |
+--------------+-----------------+--------------+-----------------------+
| 0            | ALGERIA         | 0            |  haggle. carefully f  |
| 1            | ARGENTINA       | 1            | al foxes promise sly  |
| 2            | BRAZIL          | 1            | y alongside of the p  |
| 3            | CANADA          | 1            | eas hang ironic, sil  |
| 4            | EGYPT           | 4            | y above the carefull  |
| 5            | ETHIOPIA        | 0            | ven packages wake qu  |
| 6            | FRANCE          | 3            | refully final reques  |
| 7            | GERMANY         | 3            | l platelets. regular  |
| 8            | INDIA           | 2            | ss excuses cajole sl  |
| 9            | INDONESIA       | 2            |  slyly express asymp  |
| 10           | IRAN            | 4            | efully alongside of   |
| 11           | IRAQ            | 4            | nic deposits boost a  |
| 12           | JAPAN           | 2            | ously. final, expres  |
| 13           | JORDAN          | 4            | ic deposits are blit  |
| 14           | KENYA           | 0            |  pending excuses hag  |
| 15           | MOROCCO         | 0            | rns. blithely bold c  |
| 16           | MOZAMBIQUE      | 0            | s. ironic, unusual a  |
| 17           | PERU            | 1            | platelets. blithely   |
| 18           | CHINA           | 2            | c dependencies. furi  |
| 19           | ROMANIA         | 3            | ular asymptotes are   |
| 20           | SAUDI ARABIA    | 4            | ts. silent requests   |
| 21           | VIETNAM         | 2            | hely enticingly expr  |
| 22           | RUSSIA          | 3            |  requests against th  |
| 23           | UNITED KINGDOM  | 3            | eans boost carefully  |
| 24           | UNITED STATES   | 1            | y final packages. sl  |
+--------------+-----------------+--------------+-----------------------+
25 rows selected (0.101 seconds)

总结

Apache Drill 支持数据嵌套,schema-less 执行,分散的元数据。基于这些点,你可以知道如何去创建一个简单的查询在 JSON 和 Parquet 文件上。

Copyright © smartloli 2016 all right reserved,powered by GitbookModify: 2016-08-26 06:59:28