Hacktoberfest 2026: the issues maintainers tagged for October, open and beginner-friendly. Browse Hacktoberfest issues

[Feature][Datasource] Support Kyuubi three-segment JDBC URL syntax (<sessionVars>?<hiveVars>#<kyuubiVars>) in Kyuubi datasource plugin

Open
#18,725 0 comments 0 reactions 1 assignee View on GitHub

Maintainers usually reply within 1 day

@silvermissile is already working on this.

Since Oct 22, 2026.

  • #18727 by @silvermissile — open

Assessment

This issue has not been assessed yet.

Description

backend feature
Search before asking
  • I had searched in the issues first to see whether the same feature was requested already.
Description

Currently, in dolphinscheduler-datasource-kyuubi (and dolphinscheduler-datasource-hive), DolphinScheduler constructs the JDBC URL by forcibly concatenating parameters using semicolons (;):

// KyuubiDataSourceProcessor.java
@Override
public String getJdbcUrl(ConnectionParam connectionParam) {
    KyuubiConnectionParam kyuubiConnectionParam = (KyuubiConnectionParam) connectionParam;
    String jdbcUrl = kyuubiConnectionParam.getJdbcUrl();

    if (MapUtils.isNotEmpty(kyuubiConnectionParam.getOther())) {
        return jdbcUrl + ";" + transformOther(kyuubiConnectionParam.getOther());
    }
    return jdbcUrl;
}

private String transformOther(Map<String, String> otherMap) {
    if (MapUtils.isEmpty(otherMap)) {
        return null;
    }
    List<String> otherList = new ArrayList<>();
    otherMap.forEach((key, value) -> otherList.add(String.format("%s=%s", key, value)));
    return String.join(";", otherList);
}

However, according to the official Apache Kyuubi JDBC URL Specification, Kyuubi relies on a standard three-segment URL structure:

jdbc:hive2://<host>:<port>/<db>;<sessionVars>?<hiveVars>#<kyuubiSessionVars>

Where:

  1. ; precedes <sessionVars> (Engine / Hadoop / Spark session configurations)
  2. ? precedes <hiveVars> (Script-level variable substitution)
  3. # precedes <kyuubiSessionVars> (Kyuubi Server-level engine routing and lifecycle control, e.g., #kyuubi.engine.share.level=USER, #kyuubi.engine.type=SPARK_SQL, #spark.driver.memory=4g)
Problem & Real-world Impact
  1. Broken Engine Routing: When users attempt to configure Kyuubi engine isolation (e.g. kyuubi.engine.share.level=USER) via the other configuration map, DolphinScheduler joins it with ;. Kyuubi server treats this as an ordinary SQL session configuration instead of recognizing it as a Kyuubi-level engine directive.
  2. Driver Syntax Error: If users prefix the key with # (e.g., #kyuubi.engine.share.level), DolphinScheduler renders it as .../default;;#kyuubi... or ;#kyuubi..., causing Thrift / Kyuubi JDBC driver parsing exceptions.
  3. Lack of Raw URL Passthrough: Enterprise users cannot pass custom, fine-tuned Kyuubi JDBC connection strings through the REST API or Web UI, forcing them to manually hack the metadata table (t_ds_datasource.connection_params) directly in MySQL.
Use case

In enterprise Lakehouse environments (Spark on Kyuubi / Trino on Kyuubi), different scheduling tenants or critical workflows require dedicated Spark Driver instances and custom RPC timeouts (e.g., #kyuubi.engine.share.level=USER, #kyuubi.engine.initialize.timeout=PT3M).
Users should be able to:

  1. Either specify the full custom JDBC URL directly via an optional rawJdbcUrl parameter;
  2. Or configure Kyuubi session variables (#) and hive variables (?) cleanly through dedicated parameters in KyuubiDataSourceParamDTO without having them flattened into semicolon-separated strings.
Related issues

None found.

Are you willing to submit a PR?
  • Yes I am willing to submit a PR!
Code of Conduct
Dominant language
Java
Stars
14.5k
Forks
5.1k
Avg merge
2d 10h
Merged PRs (30d)
22

Getting set up

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from apache/dolphinscheduler

All issues in apache/dolphinscheduler

Similar issues

More Java issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.