外部数据库接入
1. 外部数据库接入功能概述
国产数据库正呈现出快速发展的势头,随着国家政策的支持和技术创新的推动,国产数据库在性能、安全性和可靠性等方面取得了显著进步,逐渐赢得了企业和政府部门的青睐。因此,BI推出自助式外部数据库接入方式,支持对接BI标准支持数据库范围外的云厂商、国产化等各类数据库以快速支撑售前客户的新型数据库POC以及服务中客户的国产数据库接入场景,提高了数据接入的灵活性,缩短数据库接入的时间等待周期。
2. 准备工作
在进行外部数据库接入配置之前,请收集以下信息:
-
驱动Jar包及可用的Driver Class;
-
接入数据库的方言标准,表列表获取方式和方言数据库是否相同;
-
数据库所在服务器的 IP地址和端口号;
-
数据库的名称;
-
数据库的用户名和密码;
-
需支持以JDBC的方式进行连接。
3. 操作步骤
3.1. 新建配置驱动和数据库连接器
单击"管理中心 - 资源管理 - 驱动和连接器管理"开始新建、配置驱动和数据库连接器。
新建/配置驱动信息
单击“驱动管理”-“新增驱动”开始新建、配置驱动:
- 编辑驱动名称,单击“保存”即可完成驱动新建。
- 选择刚才新建的驱动,上传驱动Jar包及可用的Driver Class,单击“应用”完成驱动配置。
新建配置数据库连接器
单击“数据库连接器管理”-“新建数据库连接器”开始新建、配置数据库连接器:
-
显示ICON,设置自定义数据连接的图片ICON,用于在数据账户以及数据库数据集新建环节的展示。
-
连接器名称,按照用户习惯自行定义,不支持特殊字符。
-
默认方言支持,目前开放支持的方言有MySQL、Oracle、POSTGRES,已经验证支持的数据库如下:
方言 | 已验证支持的数据库 |
MySQL | OceanBase(MySQL)、Azure DataBricks、云器LakeHouse、ByteHouse |
Oracle | 人大金仓KES、Oceanbase(Oracle)、Aloudata Air Engine |
POSTGRES | GaussDB(DWS)、Aws Athena、CnosDB |
- 获取表列表SQL,不同数据库在表列表获取逻辑上和方言数据库会出现不一致的情况,该功能支持用户按照对应的数据库自定义获取逻辑,指定表列表获取的SQL以及返回结果集中表名所在列的index,已验证的数据库参考如下:
数据库 | 驱动下载地址 | 表列表获取SQL |
人大金仓KES | 官网kingbaseES下载中心注:在官网kingbaseES下载中心中选择kingbaseES,根据数据库部署对应机器架构选择下载相应JDBC驱动 | {"sql": "SHOW TABLES from ||database||", "tableNameIdx": 1} |
Azure DataBircks | 官方下载地址 | {"sql": "SHOW TABLES", "tableNameIdx": 2} 会默认查询名为default schema下的表{"sql": "SHOW TABLES IN ||schema||", "tableNamfeIdx": 2} ,需要在创建账号时候有额外表单项schema ,查询指定schema下表 |
云器LakeHouse | 官方下载地址 | 若JDBCURL中指定了schema(例如:schema=public),则语句为:{"sql": "SHOW TABLES IN ||schema||", "tableNamfeIdx": 1} 如果没有指定,则为:{"sql": "SHOW TABLES", "tableNameIdx": 1} |
OceanBase(MySQL) | 官方下载地址注:根据CPU架构选择下载 | {"sql": "SHOW TABLES", "tableNameIdx": 1} |
OceanBase(Oracle) | 官方下载地址注:根据CPU架构选择下载 | {"sql": "SHOW TABLES from ||database||", "tableNameIdx": 1} |
Aloudata Air Engine | 联系官方支持获取 | {"sql": "SHOW TABLES IN ||schema||", "tableNameIdx": 1} |
CnosDB | 联系官方支持获取 | {"sql": "SHOW TABLES", "tableNameIdx": 2, "withSchemaPrepend": true, "schemaOrDatabaseNameIdx": 1} |
GaussDB-DWS | 联系官方支持获取 | {"sql": "SHOW TABLES from ||database||", "tableNameIdx": 1} |
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} |
ByteHouse云数仓 | 官方下载地址注:官方驱动github仓库有直接下载链接 | {"sql": "SHOW TABLES from ||database||", "tableNameIdx": 1} 注意:ByteHouse企业版不能使用云数仓接入,可以直接使用ClickHouse连接接入。 |
说明:SQL中指定了||schema||参数后,在创建数据账户时候动态展示schema选项,由用户输入
- 用户名密码显示开关,例如Azure DataBricks的认证方式中用户名/密码是包含在URL中,不支持传统的传参方式,可以通过开关控制是否显示。
3.2. 创建数据账户
驱动和连接建立完成后,在“数据中心”-“数据账户”-“新建数据账户”页面可以选择对应的连接以及驱动映射关系,完成数据账户的创建,对于自定义账户,考虑到非JDBC URL方式下的参数差异化,当前仅支持JDBC URL的连接方式。
已创建的数据账户都会保存在“数据账户”中,具体创建步骤可参考《数据账户》。