跨库查询
跨库查询功能已停止升级且即将下线,若您有跨库查询的业务需求请使用逻辑数仓功能。
前提条件
数据库类型如下:
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名称有如下限制:
由小写字母、数字和下划线(_)组成,且以字母开头。
DBLink名称需要在租户内保持全局唯一性。
单击保存。
步骤二:跨库查询
- 登录数据管理DMS 5.0。
在顶部菜单栏中,选择 。
说明您还可以在开启跨库查询的数据库的SQL窗口中,在SQL命令区域的菜单栏,单击逻辑数仓。
确认您拥有目标数据库的访问权限。
可视化操作区域各选项的含义:
权限
对象
有权限:开启跨库查询功能且拥有访问权限的实例、数据库和表所在的数据库。管理员和DBA对所有实例都有访问权限。
DBLink:符合条件的实例对应的DBLink列表。
全部:该租户下所有开启跨库查询功能的实例或数据库。
数据库:符合条件的数据库列表。
查看是否有该库的访问权限
在页面左侧的可视化操作区域,右键单击目标数据库,选择查看该库权限。
有权限:可进行下一步操作。
没有权限:若没有该库的访问权限,您可根据下面的操作步骤申请权限。
单击申请库权限。
在权限申请对话框中,选中您需要的权限类型。
从期限列表中,选择您需要的权限期限。
在权限类型文本框中,输入申请权限的原因、背景,减少审批流程中的沟通成本。
说明系统默认输入SQLConsole查询操作无权限,一键生成工单。
单击确认。
审批通过后,您会拥有该数据库的权限,可以进行下一步操作。
在SQL命令区域,输入跨库查询的SQL语句,单击执行。跨库查询支持的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节点。