当前位置: 首页 > news >正文

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 数据库
    1. 在 Plugin Name 输入框中自定义插件名称(如 mysql,小写无空格)。

    2. 在配置编辑框中粘贴以下 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
      }
      
    3. 点击页面底部的 Create 按钮保存配置。

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

    场景 B:连接 PostgreSQL 数据库
    1. 在 Plugin Name 输入框中自定义插件名称(如 postgresql)。

    2. 在配置编辑框中粘贴以下 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
      }
      
    3. 点击 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 交互界面验证
    1. 在终端中进入 Drill 交互模式(已启动drill-embedded的情况下)。
    2. 执行类似查询:
      -- MySQL
      SELECT * FROM mysql.`user` LIMIT 10;  -- 表名若含特殊字符,用反引号包裹-- PostgreSQL
      SELECT * FROM postgresql.pg_tables LIMIT 10;
      
      若返回结果,说明连接正常。

    http://www.dtcms.com/a/576801.html

    相关文章:

  1. React Native App 图表绘制完整实现指南
  2. 做招商加盟网站怎么样济南网站优化的周期
  3. 怡梦姗网站做么动漫与游戏制作专业就业方向
  4. js原生、vue导出、react导出、axios ( post请求方式)跨平台导出下载四种方式的demo
  5. Springboot + vue 宿舍管理系统
  6. 【Python3教程】Python3高级篇之pip标准包管理工具
  7. 段权限检查(Segement Privilege Check)
  8. JD京东线下HR面(准备)
  9. 构建高可靠 OpenEuler 运维体系:从虚拟化部署到 Systemd 自动化核心实践
  10. 让医学影像跨越“域”的鸿沟:FAMNet 的频域觉知匹配新思路
  11. 麒麟Server版安装EMQX
  12. 数字机器人教学项目开发:基于Python的教育技术创新实践
  13. 《C语言疑难点 --- C语内存函数专题》
  14. 公司网站建设文章wordpress cms主题教程
  15. 第十天~ARXML IPDU Group全面解析:从基础到高级批量控制策略
  16. 【029】智能停车计费系统
  17. 51CTO学院个人网站开发视频经典 wordpress主题下载
  18. Java大厂面试真题:Spring Boot + 微服务 + 缓存架构三轮技术拷问实录
  19. 患者随访管理抖音快手微信小程序看广告流量主开源
  20. 做视频资源网站有哪些内容网站浮动代码
  21. c#笔记之类的继承
  22. Flink 流式计算的状态之道从 Table/SQL 语义到算子状态与 TTL 精准控制
  23. 嘉兴做微网站多少钱有哪些好的网站
  24. ps -ef | grep redis
  25. 网站开发语言有哪些网站开发的问题
  26. 在 JavaScript 中, `Map` 和 `Object` 都可用于存储键值对,但设计目标、特性和适用场景有显著差异。
  27. Vue 3中reactive函数如何通过Proxy实现响应式?使用时要避开哪些误区?
  28. MySQL备份完全指南:mysqldump语法、高级技巧与恢复实战
  29. vue递归组件-笔记
  30. C++ 继承特殊场景解析:友元、静态成员与菱形继承的底层逻辑