news 2026/9/15 6:48:11

Apache DolphinScheduler Trino 数据源接入指南:参数配置、JDBC 连接原理与插件激活

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Apache DolphinScheduler Trino 数据源接入指南:参数配置、JDBC 连接原理与插件激活

Apache DolphinScheduler Trino 数据源接入指南:参数配置、JDBC 连接原理与插件激活

【免费下载链接】dolphinschedulerApache DolphinScheduler is the modern data orchestration platform. Agile to create high performance workflow with low-code项目地址: https://gitcode.com/GitHub_Trending/dol/dolphinscheduler

本指南基于 Apache DolphinScheduler 当前仓库中的 Trino 数据源官方文档(docs/docs/en/guide/datasource/trino.md),系统讲解在 DolphinScheduler 中创建 Trino 数据源所需的全部表单参数、TRINO 驱动与 JDBC URL 的组装原理、底层连接通道实现,以及如何在伪集群(pseudo-cluster)部署下激活该数据源插件。读完本文,你将能够独立完成 Trino 数据源的新建、连通性测试、上线使用,并理解插件在数据源 SPI 体系中的加载与运行机制。

一、Trino 数据源是什么

Trino(原 PrestoSQL)是一个分布式 SQL 查询引擎,支持跨异构数据源进行联邦查询。在 DolphinScheduler 中,Trino 被纳入数据源中心(Datasource)的统一管理体系:用户只需在界面上配置一次连接信息,后续编写 SQL 类任务(如 SQL 任务节点)时即可直接引用该数据源,而无需在任务中重复填写主机、端口、用户名与密码。

Trino 数据源在整个 DolphinScheduler 中由独立的数据源插件模块承载,位于仓库的 dolphinscheduler-datasource-plugin/dolphinscheduler-datasource-trino 目录,模块名为dolphinscheduler-datasource-trino,其 Maven 插件名称为datasource.trino(见 pom.xml)。该插件通过 SPI 机制注册到数据源 API 层,供 API 服务端与任务执行端统一调用。

二、数据源参数说明(表单逐项解析)

在 DolphinScheduler Web UI 中,进入数据源中心页面,点击新建数据源并选择TRINO类型,即可看到如下表单字段(截图即为该表单的真实界面):

表单字段说明
数据源类型(Datasource)下拉框中选择TRINO
数据源名称(Datasource Name)输入数据源名称,必填项,任务中通过该名称引用数据源
描述(Description)输入数据源描述,可选填
IP/主机名(IP/Host Name)输入 Trino 服务的 IP 或主机名,必填
端口(Port)输入 Trino 服务端口,必填。Trino 协调器(Coordinator)默认 HTTP 端口为 8080,截图示例中表单默认展示 8000,请以你的实际服务端口为准
用户名(Username)设置连接 Trino 的用户名,必填
密码(Password)设置连接 Trino 的密码,必填
数据库名(Database Name)输入要连接的 Trino Catalog 下的数据库(Schema)名称,必填
JDBC 连接参数(jdbc connect parameters)用于 Trino 连接的参数设置,以 JSON 格式填写,可选填
数据源定义(Datasource Definition)定义该数据源是测试数据源(Test data source)还是线上数据源(Online data source)

注意:表单中带红色星号(*)的字段为必填项;底部提供Test Connect(测试连接)Confirm(确认)Cancel(取消)三个操作按钮,其中Test Connect可在保存前立即验证配置是否正确。

2.1 各字段在源码中的落点

上述表单字段与数据源插件的 DTO 一一对应。在 TrinoDataSourceParamDTO.java 中,参数对象包含name(数据源名称)、note(描述)、host(主机)、port(端口)、database(数据库名)、userName(用户名)与other(JDBC 连接参数)等字段,并通过getType()返回DbType.TRINO标识自身类型。

其中JDBC 连接参数字段在提交时以 JSON 字符串形式传入,例如{"SSL":"true","SSLKeyStorePath":"/home/dolphinscheduler/trino.jks","SSLKeyStorePassword":"******"}。从测试用例 TrinoDataSourceProcessorTest.java#L97-L107 可以看到,checkDatasourceParam会校验此类参数并通过,可用于配置 Trino 的 SSL 认证等高级连接选项。

三、底层实现:JDBC URL 组装与连接管理

Trino 数据源插件遵循 DolphinScheduler 数据源 SPI 的设计:每个数据源类型由DataSourceProcessor(参数与连接处理)、DataSourceChannel(连接通道)及对应的 Client 组成。

3.1 连接参数处理:TrinoDataSourceProcessor

TrinoDataSourceProcessor.java 是 Trino 数据源的核心处理类,它通过@AutoService(DataSourceProcessor.class)注册到数据源 SPI 中,主要职责包括:

  • 组装 JDBC 地址与 URLcreateConnectionParams方法将表单的 host、port、database 拼接为标准的 Trino JDBC 连接串:

    String address = String.format("%s%s:%s", DataSourceConstants.JDBC_TRINO, TrinoParam.getHost(), TrinoParam.getPort()); String jdbcUrl = address + "/" + TrinoParam.getDatabase();

    其中JDBC_TRINO的取值为jdbc:trino://(见 DataSourceConstants.java)。因此,在主机localhost:8080、数据库default的场景下,最终生成的 JDBC URL 为jdbc:trino://localhost:8080/default——这与测试用例 TrinoDataSourceProcessorTest.java#L40-L57 中断言的结果完全一致。

  • 加载驱动类getDatasourceDriver()返回io.trino.jdbc.TrinoDriver,即 Trino 官方 JDBC 驱动(见 DataSourceConstants.java#L39);驱动依赖io.trino:trino-jdbc由插件自身的 pom.xml 声明。

  • 连通性校验getValidationQuery()返回select 1(见 DataSourceConstants.java#L88),用于连接池创建连接时的探活校验,对应界面上的Test Connect功能。

  • 密码加密存储:保存时通过PasswordUtils.encodePassword加密密码,读取连接时通过PasswordUtils.decodePassword解密,避免明文密码直接入库(见 TrinoDataSourceProcessor.java#L76-L84 与 #L115-L124)。

  • JDBC 参数拼接getJdbcUrl会把表单中填写的 JSON 格式 JDBC 连接参数转换为key=value形式并用&连接,作为 URL 的 query 参数附加到 JDBC URL 之后;transformOther方法完成了这一转换(见 TrinoDataSourceProcessor.java#L105-L112 与 #L142-L149)。例如 JSON 中的{"SSL":"true"}最终会拼入 URL 形成...?SSL=true

  • SQL 切分与注释去除splitAndRemoveComment使用 Druid 的 SQL 解析能力(com.alibaba.druid.DbType.trino)去除 SQL 注释并按 TRINO 方言切分多语句 SQL(见 TrinoDataSourceProcessor.java#L136-L140),这保证 SQL 任务节点中多语句脚本能够被正确逐条执行。

3.2 连接通道:TrinoDataSourceChannel

TrinoDataSourceChannel.java 实现DataSourceChannel接口,提供两类客户端:

  • TrinoAdHocDataSourceClient:即席(Ad Hoc)连接客户端,适用于临时性、一次性执行的查询;
  • TrinoPooledDataSourceClient:连接池客户端,适用于需要频繁复用连接的任务执行场景。

连接参数实体TrinoConnectionParam继承BaseConnectionParam,完整封装了 user、address、database、jdbcUrl、driverClassName、validationQuery 与 other 等属性(见 TrinoConnectionParam.java),通过createDatasourceParamDTO可以将已保存的连接 JSON 反解析回表单 DTO,支持数据源信息的回显与编辑。

四、是否原生支持与插件激活

官方结论:不支持原生(预置)依赖。从版本 3.3.0 开始,DolphinScheduler 二进制发行包不再内置各数据源插件的第三方依赖,需要使用者按需手动下载激活。详见 pseudo-cluster 部署文档 的 “Download Plugins Dependencies” 章节。

如果跳过此步骤直接使用 Trino 数据源,服务启动或测试连接时通常会抛出ClassNotFoundException(例如找不到io.trino.jdbc.TrinoDriver)。

4.1 一键脚本安装插件依赖

在 DolphinScheduler 安装目录下执行仓库提供的安装脚本 script/install-plugins.sh,即可从 Maven 中央仓库下载所需插件依赖包:

bash ./bin/install-plugins.sh 3.3.0

该脚本会读取conf/plugins_config配置文件(仓库中的示例见 config/plugins_config),按配置清单逐个下载插件。其循环读取逻辑位于 install-plugins.sh#L61(done < ${DOLPHINSCHEDULER_HOME}/conf/plugins_config)。

4.2 按需裁剪:只激活 Trino 数据源

通常无需安装全部连接器插件,可通过修改conf/plugins_config只保留所需插件。以仅启用dolphinscheduler-datasource-trino为例,将配置文件调整为:

--datasource-plugins-- dolphinscheduler-datasource-trino --end--

注意:插件依赖包通常不包含在二进制发行包中。若启动服务或测试连接时出现ClassNotFoundException,请优先检查对应数据源类型的插件依赖是否已下载。例如dolphinscheduler-datasource-mysql不包含mysql-connector-java.jar,同理 Trino 数据源需要确保trino-jdbc驱动随插件一并就位。

五、创建与验证数据源

  1. 使用管理员账号登录 DolphinScheduler Web UI,进入数据源中心
  2. 点击创建数据源,类型选择TRINO
  3. 按第二节参数表填写主机、端口、用户名、密码、数据库名(Catalog 下的 Schema),必要时以 JSON 填写 JDBC 连接参数;
  4. 数据源定义中选择测试数据源线上数据源,测试阶段建议先选择测试数据源,验证通过后再切换为线上数据源;
  5. 点击Test Connect验证连通性——后台会加载io.trino.jdbc.TrinoDriver并执行探活查询select 1(DataSourceConstants.java#L88);
  6. 测试通过后点击Confirm保存。

保存后的数据源即被持久化,SQL 类任务节点可在配置中直接选择该 Trino 数据源执行查询。若测试连接失败,请依次检查:插件依赖是否已按第四章安装、Trino 服务端口与防火墙是否放行、用户名密码与数据库名是否正确、JDBC 连接参数(如 SSL 配置)是否匹配 Trino 服务端的安全设置。

六、小结

维度关键信息
支持状态非原生预置,需按 pseudo-cluster 部署文档 下载插件依赖
JDBC URL 格式jdbc:trino://<host>:<port>/<database>,JDBC 参数以?key=value&...追加
驱动类io.trino.jdbc.TrinoDriver
探活语句select 1
连接类型即席连接(AdHoc)与连接池(Pooled)双通道
插件模块dolphinscheduler-datasource-trino(Maven 插件名datasource.trino

按照本文步骤完成插件激活与表单配置后,DolphinScheduler 即可稳定接入 Trino,为联邦查询类 SQL 任务提供统一、可复用的数据源管理能力。

【免费下载链接】dolphinschedulerApache DolphinScheduler is the modern data orchestration platform. Agile to create high performance workflow with low-code项目地址: https://gitcode.com/GitHub_Trending/dol/dolphinscheduler

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/15 6:47:11

Node-RED Range节点实战:从Modbus到OPC UA的量程换算与上位机开发

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/15 6:47:07

冰岛大学云计算和大数据笔记(二)

标准流程&#xff1a;CRISP-DM 上述所有步骤都契合一个行业标准流程——跨行业数据挖掘标准流程&#xff08;CRISP-DM&#xff09;。它强调项目的循环迭代特性&#xff0c;包含六个阶段&#xff1a;业务理解、数据理解、数据准备、建模、评估和部署。始终在这一框架下思考&…

作者头像 李华
网站建设 2026/9/15 6:46:57

机顶盒搭建OSCam软卡服务器:从RAR解压到配置调优全攻略

简介&#xff1a;面向机顶盒编程与OScam二次开发的资源包&#xff0c;适合熟悉C、关注卫星解密共享技术的开发者或高级用户。压缩包围绕OScam的集成与自动更新展开&#xff0c;共五十七个文件&#xff0c;以C源码、VC工程文件、配置文件及帮助文档为主&#xff0c;整体仅约四百…

作者头像 李华
网站建设 2026/9/15 6:46:30

Java内存溢出的3种常见姿势,第2种我查了三天

凌晨两点&#xff0c;监控告警像疯了一样刷屏。服务日志里赫然躺着一行红字&#xff1a;java.lang.OutOfMemoryError。我原以为是个简单的堆溢出&#xff0c;重启一下就能撑到天亮&#xff0c;没想到这一查&#xff0c;就是三天。 今天我把这次踩坑经历整理成三种最常见的Java…

作者头像 李华
网站建设 2026/9/15 6:46:01

国产MQTT协议栈替代选型指南:从Mosquitto迁移到自主可控方案实践

这篇文章我压了很久没写。做物联网的应该都懂&#xff0c;MQTT 协议栈选型这件事&#xff0c;早几年根本不用纠结——Mosquitto 轻量、EMQX 功能全&#xff0c;开源免费还稳定&#xff0c;一个 broker 部署上去基本就不用管了。但这两年的实际情况是&#xff0c;越来越多的国内…

作者头像 李华
网站建设 2026/9/15 6:45:25

10个真正值得反复推荐的免费学习网站:从名校课程到数学计算

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华