数据管理DMS的跨库查询功能可便捷地对库表进行跨实例的关联查询。本文介绍开启DBLink及使用跨库查询的方法。
前提条件
数据库类型如下:- MySQL:RDS MySQL、PolarDB MySQL版、MyBase MySQL、PolarDB分布式版、AnalyticDB MySQL 3.0、其他来源MySQL
- SQL Server:RDS SQL Server、MyBase SQL Server、其他来源SQL Server
- PostgreSQL:RDS PostgreSQL、PolarDB PostgreSQL版、MyBase PostgreSQL、AnalyticDB PostgreSQL版、其他来源PostgreSQL
- PolarDB PostgreSQL版(兼容Oracle)
- Redis
说明 仅支持物理库的跨库查询。
- 物理库:具体的某个数据库。
- 逻辑库:由单个或多个物理库配置而成,可便捷的进行分库分表的操作。更多信息,请参见逻辑库。
使用场景
- 跨实例查询
- 异构数据库的关联查询
费用说明
该功能免费使用。
注意事项
仅支持在DMS中进行跨库查询,不支持在客户端或程序代码等其他端进行跨库查询。
步骤一:开启DBLink
说明 若实例已开启DBLink,请直接进行跨库查询操作。具体操作,请参见跨库查询。
前提条件
注意事项
进行跨实例的数据查询,涉及的每个实例都需要开启DBLink。
- 登录数据管理DMS 5.0。
- 在首页左侧的数据库实例列表中,右键单击目标数据库实例,在选项框中单击编辑实例。说明 您还可以在顶部菜单栏中,选择,选择目标数据库实例,编辑实例信息。
- 在编辑实例对话框中,单击高级信息。
- 选中开启DBLink复选框,输入DBLink名称。说明 DBLink名称有如下限制:
- 由小写字母和下划线(_)组成。
- DBLink名称需要在租户内保持全局唯一性。
- 单击保存。
步骤二:跨库查询
- 登录数据管理DMS 5.0。
- 在顶部菜单栏中,选择 。
- 确认您拥有目标数据库的访问权限。可视化操作区域各选项的含义:
权限 对象 有权限:开启跨库查询功能且拥有访问权限的实例、数据库和表所在的数据库。管理员和DBA对所有实例都有访问权限。 DBLink:符合条件的实例对应的DBLink列表。 全部:该租户下所有开启跨库查询功能的实例或数据库。 数据库:符合条件的数据库列表。 查看是否有该库的访问权限
在页面左侧的可视化操作区域,右键单击目标数据库,选择查看该库权限。- 有权限:可进行下一步操作。
- 没有权限:若没有该库的访问权限,您可根据下面的操作步骤申请权限。
- 单击申请库权限。
- 在权限申请对话框中,选中您需要的权限类型。
- 从期限列表中,选择您需要的权限期限。
- 在权限类型文本框中,输入申请权限的原因、背景,减少审批流程中的沟通成本。说明 系统默认输入SQLConsole查询操作无权限,一键生成工单。
- 单击确认。
审批通过后,您会拥有该数据库的权限,可以进行下一步操作。
- 在SQL命令区域,输入跨库查询的SQL语句,单击执行。示例SQL如下:
SELECT * FROM dblink1.db1.table1 t1, dblink2.db2.table2 t2 where t1.id= t2.id;
- 在执行结果区域,查看SQL的执行结果。说明
- 您还可以在 中,查看跨库查询的操作日志。
- 跨库查询最大返回行数默认100行,如果您想要查看更多数据,进入跨库查询最大返回行数的操作列中,单击编辑,设置跨库查询最大返回行数,允许设置的最大返回行数为3000行。 ,在参数
- 如果您想要查询超过3000行的跨库查询数据,可以在任务编排中创建Spark SQL任务,将目标结果集写入一个新的临时表,然后对临时表进行单库查询。关于Spark SQL任务,请参见配置跨库Spark SQL节点。