Apache Drill 连接 MySQL 或 PostgreSQL 数据库的详细步骤

 更新时间:2025年11月10日 11:44:23   作者:Zhao_yani  
Drill 连接 MySQL或PostgreSQL 数据库需要通过配置JDBC存储插件实现,核心是通过JDBC 驱动连接外部数据库,下面给大家介绍Apache Drill 连接 MySQL 或 PostgreSQL 数据库的详细步骤,感兴趣的朋友跟随小编一起看看吧

Drill 连接 MySQL 或 PostgreSQL 数据库需要通过 配置 JDBC 存储插件 实现,核心是通过 JDBC 驱动连接外部数据库。以下是详细步骤(基于 Web UI 操作,无需手动修改配置文件):

前置条件

1.确保 MySQL/PostgreSQL 数据库已启动,且网络通畅(Drill 所在机器能访问数据库端口,如 MySQL 默认 3306,PostgreSQL 默认 5432)。

2.准备数据库的 连接信息:主机 IP(或域名)、端口、数据库名、用户名、密码。

3.下载对应数据库的 JDBC 驱动(Drill 需通过驱动连接数据库):

MySQL:下载 MySQL Connector/J(选择与数据库版本兼容的驱动,如 8.0.x 或 5.1.x)

PostgreSQL:下载 PostgreSQL JDBC Driver(选择与数据库版本兼容的驱动,如 42.2.x)

步骤 1:放置 JDBC 驱动到 Drill 目录

Drill 需要加载数据库的 JDBC 驱动才能建立连接,需将下载的驱动 JAR 包放到 Drill 的第三方库目录:

  1. 解压下载的驱动包,得到 JAR 文件(如mysql-connector-java-8.0.33.jarpostgresql-42.2.20.jar)。
  2. 将 JAR 文件复制到 Drill 安装目录的 jars/3rdparty 文件夹下:
# 示例(替换为你的Drill路径和驱动文件名)
sudo cp /path/to/mysql-connector-java-8.0.33.jar /opt/drill-1.21.2/jars/3rdparty/

3.重启 Drill 使驱动生效(先在 Drill 交互界面输入 !quit 退出,再重新启动 bin/drill-embedded)。

步骤 2:通过 Web UI 配置存储插件

  1. 打开 Drill Web UI(http://localhost:8047),点击左侧导航栏的 Storage(存储插件管理)。
  2. 在存储插件页面,点击右上角的 Create(创建新插件)。

场景 A:连接 MySQL 数据库

在 Plugin Name 输入框中自定义插件名称(如 mysql,小写无空格)。

在配置编辑框中粘贴以下 JSON 配置,替换占位符为你的 MySQL 信息

{
  "type": "jdbc",
  "driver": "com.mysql.cj.jdbc.Driver",  // MySQL 8.0+用此驱动;5.x版本用"com.mysql.jdbc.Driver"
  "url": "jdbc:mysql://<MySQL主机IP>:<端口>/<数据库名>?useSSL=false&serverTimezone=UTC",  // 如jdbc:mysql://127.0.0.1:3306/mydb?useSSL=false&serverTimezone=UTC
  "username": "<MySQL用户名>",  // 如root
  "password": "<MySQL密码>",    // 如123456
  "enabled": true
}

点击页面底部的 Create 按钮保存配置。

配置成功后,插件列表中会显示 mysql,状态为 ENABLED(绿色)。

场景 B:连接 PostgreSQL 数据库

在 Plugin Name 输入框中自定义插件名称(如 postgresql)。

在配置编辑框中粘贴以下 JSON 配置,替换占位符为你的 PostgreSQL 信息

{
  "type": "jdbc",
  "driver": "org.postgresql.Driver",  // PostgreSQL固定驱动类
  "url": "jdbc:postgresql://<PostgreSQL主机IP>:<端口>/<数据库名>",  // 如jdbc:postgresql://127.0.0.1:5432/mydb
  "username": "<PostgreSQL用户名>",  // 如postgres
  "password": "<PostgreSQL密码>",    // 如123456
  "enabled": true
}

点击 Create 按钮保存配置,插件列表中会显示 postgresql,状态为 ENABLED

步骤 3:验证连接是否成功

通过 Drill 的 SQL 交互界面(Web UI 或终端)执行查询,验证是否能访问数据库表。

方式 1:通过 Web UI 的 Query Editor 验证

  1. 在 Drill Web UI 点击左侧 Query
  2. 输入查询语句(格式:SELECT * FROM <插件名>.<表名> LIMIT 10;):
    • MySQL 示例:SELECT * FROM mysql.user LIMIT 10;(查询 MySQL 的 user 表)
    • PostgreSQL 示例:SELECT * FROM postgresql.pg_tables LIMIT 10;(查询 PostgreSQL 的系统表)
  3. 点击 Run 按钮,若返回数据,说明连接成功。

方式 2:通过终端的 Drill 交互界面验证

  • 在终端中进入 Drill 交互模式(已启动drill-embedded的情况下)。
  • 执行类似查询:
-- MySQL
SELECT * FROM mysql.`user` LIMIT 10;  -- 表名若含特殊字符,用反引号包裹
-- PostgreSQL
SELECT * FROM postgresql.pg_tables LIMIT 10;

若返回结果,说明连接正常。

到此这篇关于Apache Drill 连接 MySQL 或 PostgreSQL 数据库的详细步骤的文章就介绍到这了,更多相关Apache Drill 连接数据库内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 详解MySQL主键唯一键重复插入解决方法

    详解MySQL主键唯一键重复插入解决方法

    我们插入数据的时候,有可能碰到重复数据插入的问题,那么MySQL主键唯一键重复插入如何解决,本文就详细的来介绍一下,感兴趣的可以了解一下
    2021-09-09
  • mysql 8.0.22压缩包完整安装与配置教程图解(亲测安装有效)

    mysql 8.0.22压缩包完整安装与配置教程图解(亲测安装有效)

    这篇文章主要介绍了mysql 8.0.22压缩包完整安装与配置教程图解(亲测安装有效),本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-12-12
  • php开启mysqli扩展之后如何连接数据库

    php开启mysqli扩展之后如何连接数据库

    Mysqli是php5之后才有的功能,没有开启扩展的朋友可以打开您的php.ini的配置文件;相对于mysql有很多新的特性和优势,需要了解的朋友可以参考下
    2012-12-12
  • MySQL中字段的实际长度的实现示例代码

    MySQL中字段的实际长度的实现示例代码

    MySQL字段的存储长度不仅取决于数据类型,还受字符编码和存储内容的影响,CHAR和VARCHAR字段可以使用LENGTH()和CHAR_LENGTH()函数获取长度信息,下面就来具体介绍一下
    2024-09-09
  • Mysql分区表的管理与维护

    Mysql分区表的管理与维护

    改变一个表的分区方案只需使用alter table 加 partition_options 子句就可以了。这篇文章主要介绍了Mysql分区表的管理与维护,非常不错,感兴趣的朋友一起学习吧,需要的朋友可以参考下
    2016-08-08
  • Mac下忘记Mysql的root用户密码的解决方法

    Mac下忘记Mysql的root用户密码的解决方法

    mac中安装MySQL时系统会自动为root 账户生成一个密码(改密码一般为一个不好记的字符串),若自己没有记住改密码,这时 mysql 就无法进入了。解决方案是修改root 账户的密码,问题是mysql进不去如何修改,下面就是改问题的解决方法:
    2017-03-03
  • mysql数据库远程访问设置方法

    mysql数据库远程访问设置方法

    MySQL数据库不允许从远程访问怎么办?本文提供了三种解决方法,需要的朋友可以参考下
    2008-02-02
  • MySQL replace into 语句浅析(一)

    MySQL replace into 语句浅析(一)

    这篇文章主要介绍了MySQL replace into 语句浅析(一),本文讲解了replace into的原理、使用方法及使用的场景和使用示例,需要的朋友可以参考下
    2015-05-05
  • mysql释放表空间的方法示例

    mysql释放表空间的方法示例

    本文主要介绍了mysql释放表空间的方法示例,可以使用OPTIMIZE TABLE命令,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2024-08-08
  • MySql约束超详细介绍

    MySql约束超详细介绍

    MySQL唯一约束(Unique Key)是指所有记录中字段的值不能重复出现。例如,为 id 字段加上唯一性约束后,每条记录的 id 值都是唯一的,不能出现重复的情况
    2022-09-09

最新评论