UXDB提供了postgres_adaptor插件,使第三方工具能够正常访问UXDB,达到良好的功能与性能效果。通过适配与UXDB的交互方式,使以SQL语句为手段提供专用功能的第三方工具与UXDB完全兼容。
通过postgres_adaptor使第三方工具与UXDB适配,允许第三方工具使用其自身的变量、函数命名与函数调用方式。将第三方工具的存储过程存储在数据库系统中,并在系统信息中进行注册,使得在调用的过程中能够获取并执行相应过程。
postgres_adaptor分为两部分,输入的适配与输出的适配:
输入适配指的是第三方工具的输入能使UXDB识别并正确执行;
输出适配指的是第三方工具需要读取UXDB的系统信息并进行判断与验证时,能识别UXDB输出的数据格式。
表?8.1.?输入适配与输出适配
适配类型 | 项目 | 描述 |
---|---|---|
输入适配 | 配置文件 | uxsinodb.conf/shared_preload_libraries参数。 |
功能描述 | 输入的SQL语句、存储过程和函数等,转换为postgres兼容的格式。 | |
参数说明 | shared_preload_libraries 参数选项中包含 'postgres_adaptor'时,本功能开启;否则本功能关闭。修改后需要重启UXDB服务器。 | |
输出适配 | 配置文件 | uxsinodb.conf/adaptor_pg_ux_mode_switch参数。 |
功能描述 | SQL语句、存储过程和函数等输出的执行结果,转换为postgres兼容的格式。 | |
参数说明 | 在输入适配开启的前提下:
adaptor_pg_ux_mode_switch = on时,本功能开启;否则本功能关闭。修改后需要重启UXDB服务器。 |
UXDB使用ux_*作为内部系统的命名标识,所有系统函数、系统信息以ux_开头。为了使UXDB兼容第三方工具,在adaptor内完成数据库对象从pg_*到ux_*的重命名,以及适配一系列对应的存储过程和函数的调用过程。
数据库对象名称pg_* -> ux_*之间的转换是一对一的转换表, 采用文本文件的方式进行配置:
文件为UXDB安装目录下的dbsql/share/extension/postgres_adaptor.data,可在版本发布后根据需要增加或者删除转换项目。如果转换列表文件有变化,需要重启DB server服务使其生效;
每个配置项的最大长度为63个字符,最大支持2048个转换项目;
数据格式为:
pg_catalog = ux_catalog
pg_class = ux_class
这些配置项需要保证字典序排序;
以#开始的行为注释行。