跨库查询

更新时间: 2023-09-19 09:52:36

跨库查询功能已停止升级且即将下线,若您有跨库查询的业务需求请使用逻辑数仓功能。

前提条件

数据库类型如下:

  • MySQL:RDS MySQLPolarDB MySQL版MyBase MySQLPolarDB分布式版AnalyticDB MySQL 3.0、其他来源MySQL

  • SQL Server:RDS SQL ServerMyBase SQL Server、其他来源SQL Server

  • PostgreSQL:RDS PostgreSQLPolarDB PostgreSQL版MyBase PostgreSQLAnalyticDB PostgreSQL版、其他来源PostgreSQL

  • PolarDB PostgreSQL版(兼容Oracle)

  • Redis

说明

仅支持物理库的跨库查询。

  • 物理库:具体的某个数据库。

  • 逻辑库:由单个或多个物理库配置而成,可便捷的进行分库分表的操作。更多信息,请参见逻辑库

使用场景

  • 跨实例查询

  • 异构数据库的关联查询

费用说明

该功能免费使用。

注意事项

仅支持在DMS中进行跨库查询,不支持在客户端或程序代码等其他端进行跨库查询。

步骤一:开启DBLink

说明

若实例已开启DBLink,请直接进行跨库查询操作。具体操作,请参见跨库查询

前提条件

  • 待开启DBLink的数据库实例的管控模式为安全协同。变更管控模式,请参见变更管控模式

  • 系统角色为DBA或管理员。查看系统角色的具体操作,请参见查看我的系统角色

注意事项

进行跨实例的数据查询,涉及的每个实例都需要开启DBLink。

  1. 登录数据管理DMS 5.0
  2. 在首页左侧的数据库实例列表中,右键单击目标数据库实例,在选项框中单击编辑实例

    说明

    您还可以在顶部菜单栏中,选择数据资产 > 实例管理,选择目标数据库实例,编辑实例信息。

  3. 编辑实例对话框中,单击高级信息

  4. 选中开启DBLink复选框,输入DBLink名称。关于DBLink的更多信息,请参见名词解释

    说明

    DBLink名称有如下限制:

    • 由小写字母、数字和下划线(_)组成,且以字母开头。

    • DBLink名称需要在租户内保持全局唯一性。

  5. 单击保存

步骤二:跨库查询

  1. 登录数据管理DMS 5.0
  2. 在顶部菜单栏中,选择SQL窗口 > 跨库查询

    说明

    您还可以在开启跨库查询的数据库的SQL窗口中,在SQL命令区域的菜单栏,单击逻辑数仓

  3. 确认您拥有目标数据库的访问权限。

    可视化操作区域各选项的含义:

    权限

    对象

    有权限:开启跨库查询功能且拥有访问权限的实例、数据库和表所在的数据库。管理员和DBA对所有实例都有访问权限。

    DBLink:符合条件的实例对应的DBLink列表。

    全部:该租户下所有开启跨库查询功能的实例或数据库。

    数据库:符合条件的数据库列表。

    查看是否有该库的访问权限

    在页面左侧的可视化操作区域,右键单击目标数据库,选择查看该库权限

    • 有权限:可进行下一步操作。

    • 没有权限:若没有该库的访问权限,您可根据下面的操作步骤申请权限。

      1. 单击申请库权限

      2. 权限申请对话框中,选中您需要的权限类型。2SQL窗口 垮库权限申请

      3. 期限列表中,选择您需要的权限期限。

      4. 权限类型文本框中,输入申请权限的原因、背景,减少审批流程中的沟通成本。

        说明

        系统默认输入SQLConsole查询操作无权限,一键生成工单。

      5. 单击确认

      审批通过后,您会拥有该数据库的权限,可以进行下一步操作。

  4. 在SQL命令区域,输入跨库查询的SQL语句,单击执行跨库查询支持的SQL语法及函数,请参见逻辑数仓SQL语法介绍

    示例SQL如下:

    SELECT *    
    FROM dblink1.db1.table1 t1,         
         dblink2.db2.table2 t2    
    where t1.id= t2.id;
  5. 在执行结果区域,查看SQL的执行结果。

    说明
    • 您还可以在安全与规范 > 操作审计中,查看跨库查询的操作日志。

    • 跨库查询最大返回行数默认100行,如果您想要查看更多数据,进入运维管理 > 配置管理,在参数跨库查询最大返回行数操作列中,单击编辑,设置跨库查询最大返回行数,允许设置的最大返回行数为3000行。

    • 如果您想要查询超过3000行的跨库查询数据,可以在任务编排中创建Spark SQL任务,将目标结果集写入一个新的临时表,然后对临时表进行单库查询。关于Spark SQL任务,请参见配置跨库Spark SQL节点

阿里云首页 数据管理 DMS 相关技术圈