Apache Drill支持查询某些RDBMS实例。这使得您能将您的传统数据库连接到你的Drill集群中来,您将能够用一个系统中用同一个视图来处理关系数据库和NO-SQL 数据库。 不管是哪一种源,Drill都支持在系统内和多个系统之间进行Join。这包括在一些关系数据库上进行对像join,where,group 这样的语句的推演。

使用关系数据库插件

Drill设计生来就可以和提供了JDBC 驱动的关系数据库一起工作。Drill在Postgres,MySQL,Oracle, MSSQL和Apache Derby 上进行了活跃的测试。针对每一个系统,你都只需要三个基础的步骤来进行启动:

示例:和MySQL 一起工作

Drill使用您从WEB UI或是REST API设定的插件配置,通过JDBC 驱动来和MySQL 通信。 在您配置插件之前,请确保Mysql 的服务已经启来了,并且jar文件已经拷贝在指定目录了。 ### 配置JDBC插件的方法:

你可以使用performance_schema数据库来访问随着Mysql安装的performance_schema数据库。请在Where子句里,用小圆点连接插件配置,数据库,表名这种语法;就像下面给出来的一样:

0: jdbc:drill:zk=local> select * from myplugin.performance_schema.accounts;
  +--------+------------+----------------------+--------------------+
  |  USER  |    HOST    | CURRENT_CONNECTIONS  | TOTAL_CONNECTIONS  |
  +--------+------------+----------------------+--------------------+
  | null   | null       | 18                   | 20                 |
  | jdoe   | localhost  | 0                    | 813                |
  | root   | localhost  | 3                    | 5                  |
  +--------+------------+----------------------+--------------------+
  3 rows selected (0.171 seconds)

Oracle 配置示例

下载并将ojdbc7.12.1.0.2.jar 安装到您 的每个Drill节点上:

{
  type: "jdbc",
  enabled: true,
  driver: "oracle.jdbc.OracleDriver",
  url:"jdbc:oracle:thin:user/password@1.2.3.4:1521/ORCL"
}

SQL Server的示例配置

对于SQL Server,Drill已经测试过微软的 sqljdbc41.4.2.6420.100.jar 驱动。将这个文件拷贝到所有的Drill节点上。 您需要在JDBC的连接字符串中提供数据库的名字,以帮助Drill识别MSSQL 协议。

{
  type: "jdbc",
  enabled: true,
  driver: "com.microsoft.sqlserver.jdbc.SQLServerDriver",
  url:"jdbc:sqlserver://1.2.3.4:1433;databaseName=mydatabase",
  username:"user",
  password:"password"
}

MySQL 的配置示例

对于MySQL,Drill已经在 mysql-connector-java-5.1.37-bin.jar 这个驱动上测试过。把它拷贝到所有的Drill节点上。

{
  type: "jdbc",
  enabled: true,
  driver: "com.mysql.jdbc.Driver",
  url:"jdbc:mysql://1.2.3.4",
  username:"user",
  password:"password"
}

Postgres 配置示例

对于Postgres,Drill测试过 9.1-901-1.jdbc4 驱动(近期的版本应该都可以);拷贝这个jar到所有的Drill节点上。

{
  type: "jdbc",
  enabled: true,
  driver: "org.postgresql.Driver",
  url:"jdbc:postgresql://1.2.3.4/mydatabase",
  username:"user",
  password:"password"
}