Apache Drill支持查询某些RDBMS实例。这使得您能将您的传统数据库连接到你的Drill集群中来,您将能够用一个系统中用同一个视图来处理关系数据库和NO-SQL 数据库。 不管是哪一种源,Drill都支持在系统内和多个系统之间进行Join。这包括在一些关系数据库上进行对像join,where,group 这样的语句的推演。
使用关系数据库插件
Drill设计生来就可以和提供了JDBC 驱动的关系数据库一起工作。Drill在Postgres,MySQL,Oracle, MSSQL和Apache Derby 上进行了活跃的测试。针对每一个系统,你都只需要三个基础的步骤来进行启动:
- 安装Drill,如果您还没有安装的话;
- 把该数据库的JDBC驱动拷贝到jars/3rdparty 目录下(每个节点都需要这么做)
- 通过WEB UI给Drill添加新插件的配置。Oracle,SQL Server,Mysql和Postgres的例子马上给出。
示例:和MySQL 一起工作
Drill使用您从WEB UI或是REST API设定的插件配置,通过JDBC 驱动来和MySQL 通信。 在您配置插件之前,请确保Mysql 的服务已经启来了,并且jar文件已经拷贝在指定目录了。 ### 配置JDBC插件的方法:
启动Drill ;
打开Drill WEB控制台;
在Storage Tab页,在”New Storage Plugin”区域键入一个名字,例如:
myplugin
。Drill里面注册的每一个插件都需要一个唯一的名字,名字是大小写敏感的。点击“Create”。
在配置区域,像下面这样,用JSON格式来设置属性。请做必要的修改,以匹配你自己的实际环境。
{
"type": "jdbc", "driver": "com.mysql.jdbc.Driver", "url": "jdbc:mysql://localhost:3306", "username": "root", "password": "mypassword", "enabled": true
}
点击”Create”。
你可以使用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"
}