自助式对接外部数据库
概述
自助式对接外部数据库是观远数据推出的一项功能,支持对接BI 标准数据库范围外的云厂商、国产化等各类数据库,以快速支撑售前客户的新型数据库 POC 以及服务中客户的国产数据库接入场景。该功能提高了数据接入的灵活性,缩短了数据库接入的时间等待周期。
前提条件
在进行外部数据库接入配置之前,需要收集以下信息:
- 驱动 Jar 包及可用的 Driver Class:需要获取对应数据库的 JDBC 驱动 Jar 包和 Driver Class 名称
- 接入数据库的方言标准:表列表获取方式和方言数据库是否相同
- 数据库连接信息:数据库所在服务器的 IP 地址和端口号
- 数据库信息:数据库的名称
- 认证信息:数据库的用户名和密码
- 连接方式:需支持以 JDBC 的方式进行连接
操作步骤
配置驱动
-
进入「管理中心 > 系统设置 > 通用设置 > 驱动与连接器」页面。
-
点击「驱动管理 > 新增驱动」按钮,编辑驱动名称,点击「保存」即可完成新建驱动。

-
点击刚才新建的驱动,上传驱动 Jar 包及可用的 Driver Class,点击「应用」即可完成驱动配置。

配置数据库连接器
-
在「驱动和连接器管理」页面,点击「数据库连接器管理 > 新建数据库连接器」按钮,开始新建和配置数据库连接器。

-
配置连接器参数

| 配置项 | 说明 |
|---|---|
| 显示 ICON | 设置自定义数据连接的图片 ICON,用于在数据账户以及数据库数据集新建环节的展示 |
| 连接器名称 | 按照用户习惯自行定义,不支持特殊字符 |
| 默认方言支持 | 目前开放支持的方言有 MySQL、Oracle、POSTGRES,已验证支持的数据库可参考方言支持情况。 |
| 获取表列表 SQL | 不同数据库在表列表获取逻辑上和方言数据库会出现不一致的情况,该功能支持用户按照对应的数据库自定义获取逻辑,指定表列表获取的 SQL 以及返回结果集中表名所在列的 index,已验证支持的数据库可参考表列表获取 SQL。 若表列表获取SQL 中指定了 schema参数后,在创建数据账户时候动态展示 schema 选项,由用户输入。![]() |
| 获取表注释 | 用于配置查询数据库中所有表的注释的 SQL 语句。 |
| 获取字段注释 | 用于配置查询表中所有字段(列)的注释的 SQL 语句。 |
| 用户名密码显示开关 | 用户名密码显示开关,例如 Azure DataBricks 的认证方式中用户名/密码是包含在 URL 中,不支持传统的传参。![]() |
| 默认驱动 | 选择默认的JDBC 驱动。 |
| 连接可用测试SQL | 用于配置验证数据库连接是否有效的测试查询语句。 |
创建数据账户
-
驱动和连接建立完成后,进入「数据准备 > 数据账户 」页面,点击「新建数据账户」。

-
在「选择连接器」界面点击刚建好的连接器。

-
填写数据库的「用户名」、「密码」、「JDBC URL」和「自定义驱动」。对于自定义账户,考虑到非 JDBC URL 方式下的参数差异化,当前仅支持 JDBC URL 的连接方式。

接入数据库
前往「数据准备 > 数据集」页面点击「新建数据集 > 数据库按钮」进行数据库接入,可按照 标准数据库连接指南 接入外部数据库。

已验证支持的数据库
方言支持情况
| 方言 | 已验证支持的数据库 |
|---|---|
| MySQL | OceanBase(MySQL)、Azure DataBricks、云器 LakeHouse、ByteHouse |
| Oracle | 人大金仓 KES、OceanBase(Oracle)、Aloudata Air Engine |
| POSTGRES | GaussDB(DWS)、AWS Athena、CnosDB |
表列表获取 SQL
| 数据库 | 驱动下载地址 | 表列表获取 SQL | |
|---|---|---|---|
| 1 | 电科金仓 KES | 官网kingbaseES下载中心 注:在官网 kingbaseES 下载中心中选择 kingbaseES,根据数据库部署对应机器架构选择下载相应 JDBC 驱动 | {"sql": "SHOW TABLES from |database|", "tableNameIdx": 1} |
| 2 | Azure DataBircks | 官方下载地址 | {"sql": "SHOW TABLES", "tableNameIdx": 2} 会默认查询名为 default schema 下的表 |
| 3 | {"sql": "SHOW TABLES IN |schema|", "tableNamfeIdx": 2},需要在创建账号时候有额外表单项 schema,查询指定 schema 下表 | ||
| 4 | 云器 LakeHouse | 官方下载地址 | 若 JDBC URL 中指定了 schema(例如:schema=public),则语句为:{"sql":"SHOW TABLES", "tableNameIdx": 2} |
| 5 | 如果没有指定,则为:{"sql": "SHOW TABLES IN |schema|", "tableNameIdx": 2},并在创建账号时候有额外表单项 schema | ||
| 6 | OceanBase(MySQL) | 官方下载地址 注:根据 CPU 架构选择下载 | {"sql": "SHOW TABLES", "tableNameIdx": 1} |
| 7 | OceanBase(Oracle) | 官方下载地址 注:根据 CPU 架构选择下载 | {"sql": "SHOW TABLES from |database|", "tableNameIdx": 1} |
| 8 | Aloudata Air Engine | 联系官方支持获取 | {"sql": "SHOW TABLES IN |schema|", "tableNameIdx": 1} |
| 9 | CnosDB | 联系官方支持获取 | {"sql": "SHOW TABLES", "tableNameIdx": 2, "withSchemaPrepend": true, "schemaOrDatabaseNameIdx": 1} |
| 10 | GaussDB-DWS | 联系官方支持获取 | {"sql": "SHOW TABLES from |database|", "tableNameIdx": 1} |
| 11 | Aws-Athena | 官方下载地址 | {"sql": "select "table_name" from "information_schema"."tables" where (lower(cast("table_catalog" as varchar)) = |catalog| and lower(cast("table_schema" as varchar)) = |database|) order by "TABLE_NAME"", "tableNameIdx": 1} |
| 12 | ByteHouse 云数仓 | 官方下载地址 注:官方驱动 github 仓库有直接下载链接 | {"sql": "SHOW TABLES from |database|", "tableNameIdx": 1} 注意:ByteHouse 企业版不能使用云数仓接入,可以直接使用 ClickHouse 连接接入。 |
术语表
- 自助式对接:用户通过配置驱动和连接器,自行完成外部数据库的接入
- 驱动 Jar 包:数据库厂商提供的 Java 驱动文件,用于建立与数据库的连接
- Driver Class:驱动包中用于初始化数据库连接的类名
- 数据库连接器:观远 BI 中用于连接特定类型数据库的配置
- 方言:数据库支持的 SQL 语法标准,如 MySQL、Oracle、POSTGRES 等
- 表列表获取 SQL:用于获取数据库中表列表的 SQL 语句
- JDBC:Java Database Connectivity,Java 数据库连接标准
- POC:Proof of Concept,概念验证,用于验证技术方案的可行性
- ByteHouse:字节跳动推出的云原生数据仓库
- OceanBase:阿里巴巴推出的分布式关系型数据库
- 电科金仓 KES:国产数据库,由中电科金仓公司开发
- GaussDB(DWS):华为推出的分布式数据仓库服务
- AWS Athena:亚马逊云提供的交互式查询服务
- CnosDB:国产时序数据库
- Aloudata Air Engine:国产数据仓库
- Azure DataBricks:微软 Azure 云提供的大数据分析服务
- 云器 LakeHouse:云原生数据湖仓服务

