数据管理DMS提供的逻辑数仓具有强大的数据源管理能力,可以实现将企业的异构数据源进行逻辑聚合,形成物理分散、逻辑统一的虚拟数仓,然后快速地提供数据分析和访问服务,满足业务人员、BI分析师、运营人员等各种角色的需求。

背景信息

企业在数字化转型过程中,越来越意识到数据作为生产要素的重要性,期望通过数据驱动业务和决策,提升企业竞争力。但在实际落地过程中有两个常见问题影响了数据驱动的实现和效率:
  • 资源和成本问题
    • 建仓和管仓成本高,中小企业缺少资源和技术手段构建数仓支持业务分析和决策,使得大多数企业望而却步。
    • 大型企业业务复杂度高,数仓开发门槛高,专业开发人员少,难以高效支撑日益增长的各项运营分析需求。
  • 灵活多变的分析需求
    • 数仓通过数据清洗、数仓建模、集中化等方式标准化业务数据,能够有效提高数据获取、统计和分析的效率,但在应对业务迭代较快的场景,标准数仓难以适用于新的业务,无法满足灵活多变的业务分析需求。
    • 从近年客户的需求来看,数据价值的发掘地越来越靠近业务的发生地。业务发生后相关数据在何时何地发挥价值将是评估企业数字化程度的重要依据。
    • 数据分析的链路和时效等问题,导致数仓无法有效支撑运营分析。
为解决上述问题,数据管理DMS推出了逻辑数仓功能,用户可以在不搬迁原始数据的前提下将多种异构数据源进行逻辑上的融合,形成一个逻辑仓,然后通过DMS内置的跨库查询引擎 (支持SQL)创建逻辑视图进行数据的融合分析。这种方式避免了繁琐的ETL过程,让数据分析更加敏捷,同时也可以让了解业务数据的人员直接操作、按需分析,消除了业务人员与开发人员之间的沟通成本。

关于视图的SQL语法,请参见逻辑数仓SQL语法介绍

使用限制

  • 查询操作支持的数据源类型如下:
    操作类别支持的数据源类型
    查询操作
    • 云数据库:RDS MySQLAnalyticDB MySQL版、PolarDB、RDS SQL ServerRDS PostgreSQLAnalyticDB PostgreSQL版ClickHouse
    • ECS上的自建数据库:MySQL、SQL Server、PostgreSQL、Oracle
    • 公网数据库:MySQL、SQL Server、PostgreSQL、OracleClickHouse
  • 逻辑视图支持CREATE、DROP语句,暂不支持ALTER、UPDATE、DELETE语句。

核心功能

  • 提供跨源、跨Region的SQL联邦查询服务,支持RDS MySQLRDS SQL Server云原生数仓AnalyticDB MySQL版云数据库ClickHouse对象存储OSS、PolarDB、PG等多种数据源。
  • 支持查询鉴权和脱敏,数据权限与底层数据源保持一致。
  • 支持逻辑视图,通过视图定义简化查询,方便分享。
  • 兼容DSQL跨库查询语法,可通过dblink.schema.table方式引用表。

名词解释

jiagoutu
名词描述
逻辑数仓逻辑数仓是架构在用户数据源基础上的一个虚拟数仓,由数据源、虚拟库和逻辑视图组成,并提供了虚拟库管理界面,以及视图的管理和查询界面。

用户可在逻辑数仓中直接跨库查询数据,也可以创建和管理虚拟库并基于查询语句保存为逻辑视图。

数据源数据源对应于一个数据库实例的连接,即DBLink。在设置实例的DBLink名称后(在实例编辑界面设置),可使用基于DBLink的三段式语法引用物理表进行查询,如select * from dblink1.schema1.table1。使用三段式语法,再通过JOIN语句即可对多个数据源进行跨库查询。
虚拟库虚拟库类似于一般数据库中的Schema概念,用户需要在虚拟库下创建和管理视图。
逻辑视图(Logical VIEW)类似于数据库普通视图,逻辑视图定义了数据的加工计算过程,不存放数据,仅存放定义。

查询逻辑视图时,逻辑视图从源端提取数据,在DMS计算引擎中进行加工(如:Join、聚合、过滤、计算等),然后展示数据,把复杂SQL保存为视图,再执行对视图的查询,可简化手动输入复杂SQL的流程,同时视图支持嵌套定义,能够达到SQL的复用目的。

应用场景

不同用户角色使用逻辑数仓支持的应用场景:
  • 数据库及数仓开发人员:

    跨库查询与开发,业务数据逻辑归档、数据准备与供应、轻量数仓、数仓构建模拟、敏捷建仓、入仓等。

  • 运营分析及BI人员:

    数据准备与分析、跨库查询、查询与分析加速、周期性报表等。

使用流程

delete-wuhua
  1. 进入逻辑数仓页面后,可在数据源页签中查看可查询的数据源列表。
    说明 若没有显示可查询的数据源,请检查相应的实例是否开启跨库查询并定义了DBLink名称。
  2. 展开数据源,双击数据源下的表名,可自动生成单表查询的三段式SQL,如SELECT * FROM dblink1.schem1.table1 LIMIT 20,单击执行查询或手动输入三段式SQL查询并执行查询。
  3. 单击虚拟库页签。
    说明 在此页面,您可选择添加虚拟库。
  4. 虚拟库页签下,通过界面添加视图,也可以通过CREATE VIEW语句添加视图。
  5. 虚拟库页签下,双击视图名称生成SQL,或者手动输入SELECT * FROM <虚拟库名>.<视图名>执行两段式的视图查询操作。

操作步骤

  1. 登录数据管理DMS 5.0
  2. 配置数据源(DBLink)。
    1. 在控制台首页左侧的实例列表中,右键单击目标实例,选择编辑实例
      说明 您还可以在顶部菜单栏中,选择数据资产 > 实例管理,单击实例列表页签,在目标实例行的操作列下,选择更多 > 编辑实例
    2. 编辑实例对话框中,单击高级信息
    3. 系统默认勾选开启跨库查询,并指定一个DBLink名称。该名称可用于执行SQL查询命令时使用。
      说明
      • DBLink名称只能由小写字母和下划线(_)组成。
      • DBLink名称需要在租户内保持全局唯一性。
      DBLink
    4. 单击提交
  3. 进入逻辑数仓的SQL窗口。
    有如下两种方式:
    • 在首页左侧实例列表中,选择并单击逻辑数仓区域。
    • 在页面顶部导航栏中,选择SQL窗口 > 逻辑数仓
  4. 执行跨库查询。
    1. 在左侧可视化操作区域的数据源(DBLink)中,选择目标数据源,双击目标表名,会在SQL窗口生成SELECT语句。
    2. 单击执行
      说明 SQL可自由修改,根据跨库查询的多段式语法对多个不同库的不同表进行关联查询,如
      SELECT * FROM dblink1.db1.table1 t1 join dblink2.db2.table2 t2 ON t1.c_id=t2.c_id WHERE t1.age > 20; 
  5. 连接DBLink。
    说明 若实例的管控模式为自由操作或稳定变更,则在登录数据库后需要配置账号和密码连接DBLink才可以使用。
    1. 在左侧可视化操作区域的数据源中,右键单击目标DBLink,选择连接DBLink
    2. 连接DBLink对话框中,输入数据库账号数据库密码
    3. 单击确认
    4. 在SQL Console页面执行三段式SQL语句,查询该DBLink的数据。
  6. 可选:创建DBLink。

    针对同一个管控模式为自由操作或稳定变更的实例使用不同账号连接DBLink的场景,除在编辑实例界面可配置默认DBLink外,还可在逻辑数仓中创建额外的DBLink。一般情况下,建议仅使用系统默认创建的DBLink。

    说明 安全协同模式的实例无法额外创建DBLink,系统会为您自动生成DBLink。
    1. 选择数据源页签,单击新建图标新建DBLink。
    2. 新建DBLink对话框中,配置如下信息:
      配置项是否必填说明
      DBLink名称DBLink名称,输入SQL时使用,创建成功后,名称不可修改。命名需遵循如下规则:
      • 由字母、数字、下划线(_)组成。
      • 必须以字母开头。
      • 字母不区分大小写。
      选择实例选择需要创建DBLink的数据库实例。
      数据库账号输入数据库账号。
      数据库密码输入数据库密码。
    3. 单击确认
  7. 可选:创建虚拟库。
    1. 虚拟库页签中,单击tianjia,选择创建虚拟库
    2. 配置虚拟库。
      说明 您可以直接在系统默认虚拟库public中创建视图。
      配置项是否必填描述
      库名虚拟库名称,输入SQL时使用,创建成功后,名称不可修改。
      说明 虚拟库名称由字母()、数字、非特殊符号等字符组成。
      别名虚拟库的显示名称,在可视化界面中展示。
      描述虚拟库的描述。
    3. 单击确认
  8. 创建逻辑视图。
    1. 在左侧可视化操作区域的虚拟库页签中,单击tianjia,选择创建逻辑视图
    2. 创建逻辑视图页面,输入视图名称,选择保存视图的虚拟数据库
      说明 虚拟数据库可选择系统内置的public数据库。
    3. 输入视图定义的SELECT SQL语句。关于视图的SQL语法,请参见逻辑数仓SQL语法介绍
      您可以单击数据预览,查看SQL语句的运行结果是否符合预期。
    4. 单击提交
      说明 逻辑视图创建成功后,您可以在对应虚拟库的逻辑视图分类中,查看已创建的逻辑视图。
  9. 查询逻辑视图。
    在逻辑视图的SQL窗口中输入SELECT语句,并在视图名称前加视图所在虚拟库的前缀,如public

    例如,在SQL窗口中输入SELECT * FROM public.v_ex_customer,单击执行,查询逻辑视图v_ex_customer

    说明 您还可以在页面左侧可视化操作区域的虚拟库页签中,展开虚拟库并双击目标逻辑视图,系统自动在SQL窗口中生成查询目标逻辑视图的SQL语句。