数据管理DMS提供的逻辑数仓具有强大的数据源管理能力,可以实现将企业的异构数据源进行逻辑聚合,形成物理分散、逻辑统一的虚拟数仓,然后快速地提供数据分析和访问服务,满足业务人员、BI分析师、运营人员等各种角色的需求。
背景信息
企业在数字化转型过程中,越来越意识到数据作为生产要素的重要性,期望通过数据驱动业务和决策,提升企业竞争力。但在实际落地过程中有两个常见问题影响了数据驱动的实现和效率:
资源和成本问题
建仓和管仓成本高,中小企业缺少资源和技术手段构建数仓支持业务分析和决策,使得大多数企业望而却步。
大型企业业务复杂度高,数仓开发门槛高,专业开发人员少,难以高效支撑日益增长的各项运营分析需求。
灵活多变的分析需求
数仓通过数据清洗、数仓建模、集中化等方式标准化业务数据,能够有效提高数据获取、统计和分析的效率,但在应对业务迭代较快的场景,标准数仓难以适用于新的业务,无法满足灵活多变的业务分析需求。
从近年客户的需求来看,数据价值的发掘地越来越靠近业务的发生地。业务发生后相关数据在何时何地发挥价值将是评估企业数字化程度的重要依据。
数据分析的链路和时效等问题,导致数仓无法有效支撑运营分析。
为解决上述问题,数据管理DMS推出了逻辑数仓功能,用户可以在不搬迁原始数据的前提下将多种异构数据源进行逻辑上的融合,形成一个逻辑仓,然后通过DMS内置的跨库查询引擎 (支持SQL)创建逻辑视图进行数据的融合分析。这种方式避免了繁琐的ETL过程,让数据分析更加敏捷,同时也可以让了解业务数据的人员直接操作、按需分析,消除了业务人员与开发人员之间的沟通成本。
关于视图的SQL语法,请参见逻辑数仓SQL语法介绍。
使用限制
查询操作支持的数据源类型如下:
操作类别
支持的数据源类型
查询操作
云数据库:RDS MySQL、AnalyticDB MySQL版、PolarDB、RDS SQL Server、RDS PostgreSQL、AnalyticDB PostgreSQL版、ClickHouse。
ECS上的自建数据库:MySQL、SQL Server、PostgreSQL、Oracle。
公网数据库:MySQL、SQL Server、PostgreSQL、Oracle、ClickHouse。
逻辑视图支持CREATE、DROP语句,暂不支持ALTER、UPDATE、DELETE语句。
核心功能
提供跨源、跨Region的SQL联邦查询服务,支持RDS MySQL、RDS SQL Server、云原生数仓AnalyticDB MySQL版、云数据库ClickHouse、对象存储OSS、PolarDB、PG等多种数据源。
支持查询鉴权和脱敏,数据权限与底层数据源保持一致。
支持逻辑视图,通过视图定义简化查询,方便分享。
兼容DSQL跨库查询语法,可通过
dblink.schema.table
方式引用表。
名词解释
名词 | 描述 |
逻辑数仓 | 逻辑数仓是架构在用户数据源基础上的一个虚拟数仓,由数据源、虚拟库和逻辑视图组成,并提供了虚拟库管理界面,以及视图的管理和查询界面。 用户可在逻辑数仓中直接跨库查询数据,也可以创建和管理虚拟库并基于查询语句保存为逻辑视图。 |
数据源 | 数据源对应于一个数据库实例的连接,即DBLink。在设置实例的DBLink名称后(在实例编辑界面设置),可使用基于DBLink的三段式语法引用物理表进行查询,如 |
虚拟库 | 虚拟库类似于一般数据库中的Schema概念,用户需要在虚拟库下创建和管理视图。 |
逻辑视图(Logical VIEW) | 类似于数据库普通视图,逻辑视图定义了数据的加工计算过程,不存放数据,仅存放定义。 查询逻辑视图时,逻辑视图从源端提取数据,在DMS计算引擎中进行加工(如:Join、聚合、过滤、计算等),然后展示数据,把复杂SQL保存为视图,再执行对视图的查询,可简化手动输入复杂SQL的流程,同时视图支持嵌套定义,能够达到SQL的复用目的。 |
应用场景
不同用户角色使用逻辑数仓支持的应用场景:
数据库及数仓开发人员:
跨库查询与开发,业务数据逻辑归档、数据准备与供应、轻量数仓、数仓构建模拟、敏捷建仓、入仓等。
运营分析及BI人员:
数据准备与分析、跨库查询、查询与分析加速、周期性报表等。
使用流程
进入逻辑数仓页面后,可在数据源页签中查看可查询的数据源列表。
说明若没有显示可查询的数据源,请检查相应的实例是否开启跨库查询并定义了DBLink名称。
展开数据源,双击数据源下的表名,可自动生成单表查询的三段式SQL,如
SELECT * FROM dblink1.schem1.table1 LIMIT 20
,单击执行查询或手动输入三段式SQL查询并执行查询。单击虚拟库页签。在此页面,您可选择添加虚拟库,还可进行如下操作:
通过界面添加视图,也可以通过
CREATE VIEW
语句添加视图。双击视图名称生成SQL,或者手动输入
SELECT * FROM <虚拟库名>.<视图名>
执行两段式的视图查询操作。
操作步骤
- 登录数据管理DMS 5.0。
配置DBLink。
在首页左侧的数据库实例列表中,右键单击目标实例,选择编辑实例。
在编辑实例对话框中,单击高级信息。
系统默认勾选开启DBLink,并指定一个DBLink名称。该名称可用于执行SQL查询命令时使用。
说明DBLink名称由小写字母、数字和下划线(_)组成,且以字母开头。
DBLink名称需要在租户内保持全局唯一性。
单击提交。
进入逻辑数仓的SQL窗口。
在首页左侧数据库实例列表区域,单击逻辑数仓。
执行跨库查询。
在左侧可视化操作区域的数据源(DBLink)中,选择目标数据源,双击目标表名,会在SQL窗口生成SELECT语句。
单击执行。
说明SQL可自由修改,根据跨库查询的多段式语法对多个不同库的不同表进行关联查询,如
SELECT * FROM dblink1.db1.table1 t1 join dblink2.db2.table2 t2 ON t1.c_id=t2.c_id WHERE t1.age > 20;
连接DBLink。
说明若实例的管控模式为自由操作或稳定变更,则在登录数据库后需要配置账号和密码连接DBLink才可以使用。
在左侧可视化操作区域的数据源中,右键单击目标DBLink,选择连接DBLink。
在连接DBLink对话框中,输入数据库账号和数据库密码。
单击确认。
在SQL Console页面执行三段式SQL语句,查询该DBLink的数据。
可选:创建DBLink。
针对同一个管控模式为自由操作或稳定变更的实例使用不同账号连接DBLink的场景,除在编辑实例界面可配置默认DBLink外,还可在逻辑数仓中创建额外的DBLink。一般情况下,建议仅使用系统默认创建的DBLink。
说明安全协同模式的实例无法额外创建DBLink,系统会为您自动生成DBLink。
选择数据源页签,单击图标新建DBLink。
在新建DBLink对话框中,配置DBLink名称、实例、数据库账号和数据库密码参数信息。
单击确认。
可选:创建虚拟库。
在虚拟库页签中,单击,选择创建虚拟库。
配置虚拟库的名称、别名等信息。
说明虚拟库名称,输入SQL时使用,创建成功后,名称不可修改。
虚拟库名称由字母、数字、下划线(_)组成,且以字母或下划线开头。
您可以直接在系统默认虚拟库
public
中创建视图。
单击确认。
创建逻辑视图。
在左侧可视化操作区域的虚拟库页签中,单击,选择创建逻辑视图。
在创建逻辑视图页面,输入视图名称,选择保存视图的虚拟数据库。
说明虚拟数据库可选择系统内置的public数据库。
输入视图定义的SELECT SQL语句。关于视图的SQL语法,请参见逻辑数仓SQL语法介绍。
您可以单击数据预览,查看SQL语句的运行结果是否符合预期。
单击提交。
说明逻辑视图创建成功后,您可以在对应虚拟库的逻辑视图分类中,查看已创建的逻辑视图。
查询逻辑视图。
在逻辑视图的SQL窗口中输入SELECT语句,并在视图名称前加视图所在虚拟库的前缀,如
public
。例如,在SQL窗口中输入
SELECT * FROM public.v_ex_customer
,单击执行,查询逻辑视图v_ex_customer。说明您还可以在页面左侧可视化操作区域的虚拟库页签中,展开虚拟库并双击目标逻辑视图,系统自动在SQL窗口中生成查询目标逻辑视图的SQL语句。