Skip to main content
Version: 2.14.0

JDBC 表函数配置

有时候期望使用不同的数据库,需要不同的 JDBC driver,由于一些原因无法打包所有的 JDBC driver

  • 多个不同版本的driver之间会有class冲突
  • 我们没有验证和测试过一些数据库
  • 某些JDBC driver法律上不允许商业re-distribute

因此,JDBC 表函数配置能够允许用户上传自己所需的JDBC driver,并对 JDBC 数据源进行配置。

JDBC表函数表格 包含三列数据

  • 驱动目录
  • Jar包:该jdbc驱动文件
  • 是否为内置:系统默认会为用户提供常见数据库的jdbc驱动 jdbc_dir_list

新建/编辑 JDBC 驱动目录

点击右上角按钮 新建 JDBC 驱动目录 即可弹出新建弹框。若需要新建一个 JDBC驱动目录,我们需要录入两个信息:

  • 驱动目录:该驱动目录名称
    • 我们推荐的驱动目录名称格式为 <driver_class_name>_<driver_version>
    • 自定义的 JDBC驱动目录 名称无法重名,但我们可以录入与内置驱动目录相同的名称以覆盖内置驱动目录。
  • 驱动文件
    • 仅允许上传单个文件,请上传 jar 包或多个 jar 包的压缩包(支持.zip, .tar, .tar.gz, .tgz)

create_new_jdbc_dir

删除 JDBC 驱动目录

我们允许删除自定义的 JDBC 驱动目录,点击操作列中的删除按钮,即可删除该JDBC 驱动目录。 delete_jdbc_dir

JDBC 数据源配置

点击右上角按钮 JDBC 数据源配置 即可弹出JDBC 数据源配置弹框。 jdbc_config_modal

JDBC数据源配置由两部分组成

  • 辅助配置:一个辅助用户生成数据源配置,简化数据源配置流程的工具
  • 配置文件:JDBC 数据源配置文件,用户可自行输入配置项,或复制辅助配置生成内容至该区域

辅助配置

辅助配置提供六个默认选项

  • 数据源名称:配置项表头,必要选项

    • 数据源名称不可重复
    • 数据源名称只包含字母、数字、小数点(.)、中括号('[', ']')、下划线(_)、连接线(-)
  • 驱动目录(driver_dir)

    • 该选项为dropdown,用户可选择内置jdbc以及自定义jdbc

    • 当选择内置驱动目录时,右侧将不会出现driver_dir值。 jdbc_driver_option

      炎凰数据平台提供了几个默认的JDBC驱动,如下

      ```java
      com.mysql.jdbc.Driver // MySql
      org.postgresql.Driver // PostgreSQL
      org.h2.Driver // H2
      oracle.jdbc.driver.OracleDriver // Oracle
      org.hsqldb.jdbcDriver // HSQLDB
      com.microsoft.sqlserver.jdbc.SQLServerDriver // SQL Server
      org.mariadb.jdbc.Driver // MariaDB
      com.clickhouse.jdbc.ClickHouseDriver // ClickHouse
      ```
  • 驱动名称(driver_dir)

    • 当选择内置驱动目录时,驱动名称无法修改,为默认名称。
    • 当选择自定义驱动目录时,可自定义驱动名称,我们推荐的驱动名称为类似于com.mysql.jdbc.Driver的完整类名
  • 链接(url)

    • 通常由jdbc type, db host, db port, db database组成。
  • 用户名(user)

  • 密码(password)

    • 此处密码可以是明文密码,当密码为明文密码时,右侧对应的键名为password
    • 我们也可对密码进行加密,当点击右侧加密按钮时,将会对密码进行加密,此时右侧对应的键名为encrypted_passwordjdbc_encrypted_password

完成以上选项配置后,可点击右下复制按钮,即可复制生成的配置内容。如需再次辅助配置,直接点击重置,即可回到初始状态 copy_jdbc_config

数据源文件配置

  • 配置文件

    1. 配置文件位置:
    • ${STONEWAVE_HOME}/var/conf/custom/jdbc_data_sources.toml:UI上可更改的数据源配置目录

    • ${STONEWAVE_HOME}/var/conf/default/jdbc_data_sources.toml:内置上传built-in数据源配置,配置无法通过UI界面更改。

      note

      可以通过terminal登录,手动更改。 需要注意避免两个配置文件有同名数据源。

    1. JDBC数据源信息 参考上面辅助配置项说明。

      例如:

       # ${STONEWAVE_HOME}/var/conf/custom/jdbc_data_sources.toml

      # 内置驱动配置数据源
      [data_source_name]
      url = "jdbc:postgresql://127.0.0.1:5432/mydatabase"
      driver = "org.postgresql.Driver"
      user = "root"
      password = "root"

      # 使用非内置驱动配置数据源
      [data_source_name]
      url = "jdbc:postgresql://127.0.0.1:5432/mydatabase"
      driver = "org.postgresql.Driver"
      driver_dir = "org.postgresql.Driver_v5" # 这里需填写具体上传驱动文件目录名称
      user = "root"
      password = "root"

      # 加密数据源配置
      [encrypted_data_source]
      url = "jdbc:postgresql://127.0.0.1:5432/mydatabase"
      driver = "org.postgresql.Driver"
      driver_dir = "org.postgresql.Driver_v5" # 这里需填写具体上传驱动文件目录名称
      user = "root"
      encrypted_password = "f/KdklKy/+u1zsOsXNAhzOX03121bGGMtr6Zpg7Mq+4"
    2. 运行对应JDBC表函数 通过UI将<example_database_driver.jar>驱动文件上传后。 然后运行table function。示例如下。 直接使用jdbc url 运行:

      SELECT * FROM jdbc('SELECT 1',
      '{"url":"jdbc:postgresql://127.0.0.1:5432/mydatabase",
      "driver":"org.postgresql.Driver",
      "user":"root",
      "password":"root"}'

      使用配置数据源进行查询

      SELECT * FROM jdbc('SELECT 1', 'data_source_name')
注意事项
  非内置驱动信息需通过文档查询该驱动class。