CN116450609A - 基于统一语法在异构数据源上建模的方法及设备 - Google Patents

基于统一语法在异构数据源上建模的方法及设备 Download PDF

Info

Publication number
CN116450609A
CN116450609A CN202310403520.6A CN202310403520A CN116450609A CN 116450609 A CN116450609 A CN 116450609A CN 202310403520 A CN202310403520 A CN 202310403520A CN 116450609 A CN116450609 A CN 116450609A
Authority
CN
China
Prior art keywords
data source
modeling
name
target data
unified
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202310403520.6A
Other languages
English (en)
Other versions
CN116450609B (zh
Inventor
姚宏宇
朱朝强
王刚
王彬
于艳波
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
BEIJING YOYO TIANYU SYSTEM TECHNOLOGY CO LTD
Original Assignee
BEIJING YOYO TIANYU SYSTEM TECHNOLOGY CO LTD
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by BEIJING YOYO TIANYU SYSTEM TECHNOLOGY CO LTD filed Critical BEIJING YOYO TIANYU SYSTEM TECHNOLOGY CO LTD
Priority to CN202310403520.6A priority Critical patent/CN116450609B/zh
Publication of CN116450609A publication Critical patent/CN116450609A/zh
Application granted granted Critical
Publication of CN116450609B publication Critical patent/CN116450609B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/21Design, administration or maintenance of databases
    • G06F16/211Schema design and management
    • G06F16/212Schema design and management with details for data modelling support
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/242Query formulation
    • G06F16/2433Query languages
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Computational Linguistics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明涉及数据库技术领域,具体涉及一种基于统一语法在异构数据源上建模的方法及设备,旨在提高数据源的维护效率。本发明的基于统一语法在异构数据源上建模的方法包括:统一数据访问平台对原始建模语句进行解析,并获取建模信息,其中原始建模语句所用语法为统一语法;根据目标数据源的类型,获取统一数据访问平台和目标数据源的字段类型映射关系;根据建模信息以及字段类型映射关系,生成应用于目标数据源的新建模语句;根据目标数据源的名称,向目标数据源的管理系统发送新建模语句,以使目标数据源的管理系统利用新建模语句在目标数据源中创建物理表。利用本发明的方法,既提高了维护效率,又降低了维护成本。

Description

基于统一语法在异构数据源上建模的方法及设备
技术领域
本发明涉及数据库技术领域,具体涉及一种基于统一语法在异构数据源上建模的方法及设备。
背景技术
随着数据仓库、数据湖技术的兴起,数据的组织往往存储于多种异构数据源中,各种“混搭”架构的数据湖也越来越多出现在企业信息化建设规划中。如何在混搭的数据仓库或数据湖等异构存储平台进行统一管理与建模是一个比较复杂的系统问题,传统情况下我们会使用各个数据存储厂商提供的数据库管理工具来进行数据库的管理,例如建模,这些建模工具大部分都是针对特定类型的数据库,使用该类型数据库对应的语法进行建模。
不同厂商提供的数据存储服务没有统一的建模语句,不易于统一管理。同时,在目标数据源上建模成功后,如果要进行数据同步还需要编写专门的数据抽取代码或引入ETL(Extract-Transform-Load,将数据从来源端经过抽取、转换、加载至目的端)中间件处理,大大增加了维护成本。
发明内容
为了解决现有技术中的上述问题,本发明提出了一种基于统一语法在异构数据源上建模的方法及设备,统一了建模语句,提高了数据源的维护效率,降低了维护成本。
本发明的第一方面,提出一种基于统一语法在异构数据源上建模的方法,所述方法包括:
统一数据访问平台对原始建模语句进行解析,并获取建模信息;所述建模信息包括:目标数据源的名称、欲创建的物理表的名称,以及所述物理表中的字段信息;
根据所述目标数据源的名称,从对应的数据源连接信息中获取所述目标数据源的类型,并根据所述目标数据源的类型,获取所述统一数据访问平台和所述目标数据源的字段类型映射关系;
根据所述建模信息以及所述字段类型映射关系,生成应用于所述目标数据源的新建模语句;
根据所述目标数据源的名称,向所述目标数据源的管理系统发送所述新建模语句,以使所述目标数据源的管理系统利用所述新建模语句在所述目标数据源中创建所述物理表。
优选地,所述获取建模信息的步骤包括:
从所述原始建模语句中获取所述建模信息。
优选地,所述建模信息还包括:数据来源对应的第一逻辑表的名称,以及所述第一逻辑表所属的第一逻辑库的名称;
所述获取建模信息的步骤包括:
从所述原始建模语句中获取所述目标数据源的名称、欲创建的物理表的名称、数据来源对应的第一逻辑表的名称,以及所述第一逻辑表所属的第一逻辑库的名称;
从所述原始建模语句中获取所述字段信息;或者,
根据所述第一逻辑库的名称和所述第一逻辑表的名称,从所述统一数据访问平台中获取所述字段信息。
优选地,所述字段信息包括:字段的名称和类型;
所述方法还包括:
根据所述字段信息,通过所述数据来源的管理系统从所述数据来源中提取相应的字段值;
将提取的字段值发送给所述目标数据源的管理系统,以使所述目标数据源的管理系统将所述提取的字段值加载到所述物理表中。
优选地,“将提取的字段值发送给所述目标数据源的管理系统,以使所述目标数据源的管理系统将所述提取的字段值加载到所述物理表中”,包括:
将所述提取的字段值以批量方式发送给所述目标数据源的管理系统,以使所述目标数据源的管理系统将所述提取的字段值加载到所述物理表中;或者,
将所述提取的字段值写入数据文件,并将所述数据文件发送给所述目标数据源的管理系统,以使所述目标数据源的管理系统将所述提取的字段值加载到所述物理表中。
优选地,所述数据来源为一个或多个,且多个所述数据源的类型相同或不同;
在“将提取的字段值发送给所述目标数据源的管理系统,以使所述目标数据源的管理系统将所述提取的字段值加载到所述物理表中”之前,所述方法还包括:
利用处理函数对所述提取的字段值进行加工。
优选地,
所述原始建模语句的语法为:
CREATE TABLETYPE TABLE table_name
['('column[,column]*')']
options(optionKey optionVal[,optionKey optionVal]*)
[select query]
其中,
CREATE为关键字,必须项,定义为DDL语句操作;
TABLETYPE为关键字,必须项,设置为remote时在远程数据源上操作,设置为local或temporary时在本地数据源上操作;
TABLE为关键字,必须项,表示要创建物理表;
column为关键字,可选项,定义为字段名称和类型;
options为关键字,当TABLETYPE为remote时,options为必填项,定义需要创建物理表的所述目标数据源的名称、库和模式,同时指定要映射的逻辑表名称;当TABLETYPE设置为local或temporary时,不使用options;
select query为可选项,定义查询子句;
所述方法还包括:
通过人机交互界面获取所述原始建模语句,或者根据所述人机交互界面的输入信息和所述语法生成所述原始建模语句。
优选地,所述方法还包括:
将所述物理表映射到所述统一数据访问平台的第二逻辑表;
所述建模信息还包括:所述目标数据源的库和模式,以及所述第二逻辑表的名称;
在所述统一数据访问平台上对所述第二逻辑表设置统一的用户权限认证体系。
优选地,所述方法还包括:
所述统一数据访问平台对原始修改/清空/删除语句进行解析,并获取操作对象的逻辑表名称;
根据所述操作对象的逻辑表名称,获取所述操作对象的类型、数据源名称和物理表名称;
根据所述操作对象的类型,将所述原始修改/清空/删除语句转换为应用于所述操作对象的操作语句;
根据所述操作对象的数据源名称和物理表名称,向所述操作对象的管理系统发送所述操作语句,以使所述操作对象的管理系统对所述操作对象的物理表执行修改/清空/删除操作。
本发明的第二方面,提出一种存储设备,存储有能够被处理器加载并执行如上面所述方法的计算机程序。
与最接近的现有技术相比,本发明具有如下有益效果:
本发明提出的基于统一语法在异构数据源上建模的方法,通过对原始建模语句进行解析,并根据目标数据源的类型生成相应的建模语句,然后控制目标数据源的管理系统执行创建物理表的操作,并将新创建的物理表映射为统一数据访问平台上的逻辑表,使得数据源维护人员只需根据统一语法编写原始建模语句,就能实现在各种远程/本地的异构数据源上创建物理表并传递数据,易于学习与使用,提高了工作效率。
本发明只需一条建模语句就能够实现将来自多源异构数据来源中指定物理表的数据转移到指定的目标数据源中,既不需要了解建模中涉及到的多种异构数据源的语法,也不需要编写专门的数据抽取代码或引入ETL中间件处理。如果在子查询中加上处理函数,还可以在将数据加载到新创建的物理表之前先对提取的字段值进行加工。
而且,数据来源可以为一个或多个,当为多个数据源时,它们的类型可以相同或不同,屏蔽了底层异构差异性。
基于本发明,维护人员还可以利用统一语法编写修改、清空或删除物理表的语句,实现对多种异构数据源的修改、清空或删除操作。
因此,本发明可以在统一数据访问平台上通过创建全局集中的逻辑库,映射全局虚拟化逻辑表、逻辑表字段,基于全局逻辑库、逻辑表进行统一访问,从而显著地减少维护时间、提高维护效率。
另外,在现有技术中每个数据源上都设置了相应的用户权限,当维护人员要登录不同的数据源进行维护时,都需要输入用户名和密码进行认证。使用本发明的方法,可以在统一数据访问平台上设置统一的用户权限认证体系,维护人员只需一次认证,即可以执行本人权限范围内的所有操作。
附图说明
图1是本发明的基于统一语法在异构数据源上建模的方法实施例一的主要步骤示意图;
图2本发明的基于统一语法在异构数据源上建模的方法实施例二的主要步骤示意图。
具体实施方式
下面参照附图来描述本发明的优选实施方式。本领域技术人员应当理解的是,这些实施方式仅用于解释本发明的技术原理,并非旨在限制本发明的保护范围。
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明的一部分实施例,而不是全部的实施例。基于本申请的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明的是,在本发明的描述中,术语“第一”、“第二”仅仅是为了便于描述,而不是指示或暗示所述装置、元件或参数的相对重要性,因此不能理解为对本发明的限制。另外,本发明中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,如无特殊说明,一般表示前后关联对象是一种“或”的关系。
本发明的主要思路是,在统一数据访问平台上通过数据虚拟化技术接入各种异构存储数据源,即创建全局集中的逻辑库,映射全局虚拟化逻辑表、逻辑表字段,基于全局逻辑库、逻辑表进行统一访问,通过统一语法解析与转换技术实现在各种异构数据存储系统上创建模型并进行数据传输。
本发明的实施例中,利用统一数据访问平台来接收用户的原始建模语句,原始建模语句采用的统一语法为:
CREATE TABLETYPE TABLE table_name
['('column[,column]*')']
options(optionKey optionVal[,optionKey optionVal]*)
[select query]
说明:
CREATE为关键字,必须项,定义为DDL语句操作;
TABLETYPE为关键字,必须项,设置为remote时在远程数据源上操作,设置为local或temporary时在本地数据源上操作;
TABLE为关键字,必须项,表示要创建物理表;
column为关键字,可选项,定义为字段名称和类型;
options为关键字,当TABLETYPE设置为remote时,options为必填项,定义需要创建物理表的所述目标数据源的名称、库和模式,同时指定要映射的逻辑表名称;当TABLETYPE设置为local或temporary时,不使用options;
select query为可选项,定义查询子句。
图1是本发明的基于统一语法在异构数据源上建模的方法实施例一的主要步骤示意图。如图1所示,本实施例的方法包括步骤A10-A50:
步骤A10,统一数据访问平台对原始建模语句进行解析,并获取建模信息。
其中,建模信息包括:目标数据源的名称、欲创建的物理表的名称、物理表中的字段信息、目标数据源的库和模式,以及第二逻辑库名称和第二逻辑表名称等。
为了描述方便,本发明中将新构建的物理表映射到统一数据访问平台的逻辑表称为第二逻辑表,其所属的逻辑库称为第二逻辑库;将“数据来源”映射到统一数据访问平台的逻辑库和逻辑表分别称为第一逻辑库和第一逻辑表。因为本实施例中只是在目标数据源中创建了一个空的物理表,并不涉及从“数据来源”中读取数据加载到该物理表中,因此暂时不会提到第一逻辑库和第一逻辑表。
例如,下面的原始建模语句示例1:
create remote table call_center(id int,name string,address varchar(200))options(datasource'tpcds_oracle',catalog'tpcds_oracle',schema'TPCDS_ORACLE',logicdb'tpcds_oracle',logictable'call_center');
参数说明:
options:指定要创建远程表的远程目标数据源的信息。
options参数的参数项:
datasource:指定目标数据源名称,区分大小写;catalog:指定目标数据源的库名称,不区分大小写;schema:指定目标数据源的模式名称,不区分大小写;logicdb:指定第二逻辑表映射到的第二逻辑库名称,不区分大小写,在统一数据访问平台中已经存在的逻辑库(如果此属性不填或者为空时,在当前连接的逻辑库下创建);logictable:指定将要创建的远程表映射到统一数据访问平台的第二逻辑表名称(当此属性不填或者为空时与远程表名称一致)。
统一数据访问平台针对上述原始建模语句示例1会执行如下解析建模语句并获取建模信息的操作:(1)解析SQL语句,进行词法分析、语法分析和语义分析;(2)解析option子句,提取目标数据源名称(tpcds_oracle)、库(tpcds_oracle)和模式(TPCDS_ORACLE),以及逻辑库名称(tpcds_oracle)和逻辑表名称(call_center);(3)解析并提取字段信息:字段名称(id、name和address)和字段类型(int、string和varchar)、长度(address字段的长度为200);(4)获取要创建的物理表名称(call_center)。
步骤A20,根据目标数据源的名称,从对应的数据源连接信息中获取目标数据源的类型,并根据目标数据源的类型,获取统一数据访问平台和目标数据源的字段类型映射关系。
其中,数据源连接信息预先保存在统一数据访问平台中,数据源连接信息包括:数据源的用户名称、密码、IP地址、端口,以及数据源的类型等。
在统一数据访问平台中预先保存了该平台的字段类型与各种不同类型数据源的字段类型映射关系表。
例如,统一数据访问平台中的字段类型int和string分别对应oracle数据库中的字段类型number和varchar2,另外,这两个字段类型分别对应mysql数据库中的字段类型int和text,这些映射关系都预先保存在了平台中。
步骤A30,根据建模信息以及字段类型映射关系,生成应用于目标数据源的新建模语句。
对于上面的建模语句示例1来说,在本步骤中需要生成一个能在oracle数据库管理系统中执行的新建模语句,以便在下面的步骤A40中实现在目标数据源tpcds_oracle中创建一个名称为call_center的物理表。
步骤A40,根据目标数据源的名称,向目标数据源的管理系统发送新建模语句,以使目标数据源的管理系统利用新建模语句在目标数据源中创建物理表。
步骤A50,将物理表映射到统一数据访问平台的第二逻辑表。
对于本实施例中的建模语句示例1来说,将新创建的名称为call_center的物理表映射到名称为call_center的第二逻辑表。如果没有指定第二逻辑表的名称则默认第二逻辑表的名称与物理表的名称一致。
在一种可选的实施例中,在步骤A10之前还可以包括步骤A5:
步骤A5,通过人机交互界面获取原始建模语句,或者根据人机交互界面的输入信息和语法生成原始建模语句。
统一数据访问平台包括客户端和管理端,上述步骤A5-A40可以在客户端执行,步骤A50可以由客户端发送指令到管理端执行,以便在映射关系建立好之后,其他客户端也可以通过管理端访问到新创建的物理表。
图2是本发明的基于统一语法在异构数据源上建模的方法实施例二的主要步骤示意图。如图2所示,本实施例的方法包括步骤B10-B80:
步骤B10,统一数据访问平台通过人机交互界面获取原始建模语句,或者根据人机交互界面的输入信息和统一数据访问平台的语法生成原始建模语句。
步骤B20,对原始建模语句进行解析,并获取建模信息。
其中,建模信息包括:目标数据源的名称、欲创建的物理表的名称、物理表中的字段信息、目标数据源的库和模式,以及第二逻辑表的名称和第二逻辑表所属第二逻辑库的名称、数据来源对应的第一逻辑表的名称和第一逻辑表所属的第一逻辑库的名称。
如果原始建模语句中单独指定了模型结构,则建模信息中的字段信息就从原始建模语句中获取;否则,字段信息可以从查询子句中指定的数据来源中获取;其他建模信息均从原始建模语句中获取。
例如,原始建模语句示例2:
create remote table call_center(id int,name string,address varchar(200))options(datasource'tpcds_oracle',catalog'tpcds_oracle',schema'TPCDS_ORACLE',logicdb'tpcds_oracle',logictable'call_center')as select id,name,address from tpcds_mysql.call_center;
在示例2中指定了模型结构(id int,name string,address varchar(200)),就可以从原始建模语句中获取到字段信息(字段名称为id、name和address,字段类型为int、string和varchar,address字段的长度为200)。
又如,原始建模语句示例3:
create remote table call_center options(datasource'ds_mysql',catalog'ds_mysql',schema'ds_mysql',logicdb'logicdb_mysql',logictable'call_center')asselect*from tpcds_oracle.call_center;
在示例3中未指定模型结构,就需要从查询子句中指定的数据来源tpcds_oracle.call_center中获取字段信息。示例3中指定数据来源所对应的第一逻辑库名称为tpcds_oracle,第一逻辑表名称为call_center,可以根据第一逻辑库的名称和第一逻辑表的名称从统一数据访问平台中获取字段信息。因为第一逻辑表中的字段信息已经被转换成了统一数据访问平台中对应的字段信息,所以这里可以直接从统一数据访问平台的第一逻辑表中读取。
步骤B30,根据目标数据源的名称,从对应的数据源连接信息中获取目标数据源的类型,并根据目标数据源的类型,获取统一数据访问平台和目标数据源的字段类型映射关系。
步骤B40,根据建模信息以及字段类型映射关系,生成应用于目标数据源的新建模语句。
步骤B50,根据目标数据源的名称,向目标数据源的管理系统发送新建模语句,以使目标数据源的管理系统利用新建模语句在目标数据源中创建物理表。
步骤B60,将物理表映射到统一数据访问平台的第二逻辑表。
例如,对于原始建模语句示例3,步骤B50中新创建的物理表call_center,将被映射到第二逻辑库logicdb_mysql中的第二逻辑表call_center。
步骤B70,根据字段信息,通过数据来源的管理系统从数据来源中提取相应的字段值。
例如,对于原始建模语句示例2,将会从第一逻辑表tpcds_mysql.call_center对应的物理表中提取id、name和address的字段值;对于原始建模语句示例3,在步骤B20中会从tpcds_oracle.call_center对应的物理表中获取全部字段信息,在步骤B70中就会从该表中提取全部字段值。
步骤B80,将提取的字段值发送给目标数据源的管理系统,以使目标数据源的管理系统将提取的字段值加载到物理表中。
例如,对于原始建模语句示例3,就会将第一逻辑表tpcds_oracle.call_center对应的物理表中提取到的字段值加载到目标数据源中新创建的物理表call_center中。
具体地,可以将提取的字段值以批量方式发送给目标数据源的管理系统,以使目标数据源的管理系统将提取的字段值加载到物理表中;或者,将提取的字段值写入数据文件,并将数据文件发送给目标数据源的管理系统,以使目标数据源的管理系统将提取的字段值加载到物理表中。
在一种可选的实施例中,查询子句中还可以包括处理函数,在步骤B70和步骤B80之间还可以包括步骤B75:
步骤B75,利用处理函数对提取的字段值进行加工。
例如,下面的原始建模语句示例4:
create remote table call_center(id int,name string,week string)options(datasource'ds_mysql',catalog'ds_mysql',schema'ds_mysql',logicdb'logicdb_mysql',logictable'call_center')as select id,name,decode(day_of_week,1,"星期一",2,"星期二",3,"星期三",4,"星期四",5,"星期五",6,"星期六",7,"星期日","未知")from tpcds_oracle.call_center;
其中,处理函数decode()将提取到的day_of_week字段的字段值做字典转换,之后才会加载到新创建的物理表中。
本发明中,数据来源可以为一个或多个,且多个数据源的类型可以相同或不同。例如,下面的原始建模语句示例5:
create remote table rm_join_tb options(datasource'ds_mysql',catalog'ds_mysql',schema'ds_mysql',logicdb'logicdb_mysql',logictable'call_center')asselect a.*,b.*from ldb_mysql.tb1 as a left join ldb_pg.tb2 as b on tb1.id=tb2.id;
在示例5中,在远程数据源上新构建的物理表rm_join_tb中字段结构和字段值来源于mysql的表和postgresql的表的跨库关联查询,即将ldb_mysql.tb1中的所有字段名称、字段类型和字段值存入a中,同时将ldb_pg.tb2中的所有字段名称、字段类型和字段值存入b中,然后a和b的内容一起存入新构建的物理表rm_join_tb中。on tb1.id=tb2.id表示两个表查询数据的关联条件,id相等的数据才会组合成一条数据。
在一种可选的实施例中,可以在统一数据访问平台上对第二逻辑表设置统一的用户权限认证体系,避免了在各种数据源的管理系统中进行繁琐的认证操作。
上述实施例中虽然将各个步骤按照上述先后次序的方式进行了描述,但是本领域技术人员可以理解,为了实现本实施例的效果,不同的步骤之间不必按照这样的次序执行,其可以同时(并行)执行或以颠倒的次序执行,这些简单的变化都在本发明的保护范围之内。
通过上述实施例可以看出,数据管理和维护人员不必要针对每种数据源都去撰写相应语法的建模语句,只需要撰写出能够在统一数据访问平台运行的原始建模语句,然后统一数据访问平台会自动生成适用于目标数据源的建模语句,至于从数据来源中获取数据,并进行数据加工、加载到新创建物理表的过程均可以通过统一数据访问平台与数据来源和目标数据源的相应管理系统进行信息交互来完成。例如上面的示例2中目标数据源的类型为oracle,示例3中目标数据源的类型为mysql,维护人员不必要去掌握这两种数据库的语法,只需要了解统一数据访问平台的SQL语法即可。例如在示例2中,只需一条建模语句就实现了将mysql数据库中某个物理表的数据转移到了oracle数据库中,既不需要了解这两种不同数据库的语法,也不需要编写专门的数据抽取代码或引入ETL中间件处理,既节约了维护人员的时间,又降低了维护成本。
上面示例1至示例5的目标数据源均是远程库,与统一数据访问平台不在同一个集群下。本发明的方法同样适用于本地库,本地库是与统一数据访问平台处于同一个集群下的库,创建本地库目的是为了存储本地表和临时表。当用户在统一数据访问平台执行了复杂耗时的计算,可以将计算的结果存储到本地库的表中,称为本地表,这样在访问数据时由于统一数据访问平台和本地库属于同一个集群,在访问时会有更高的网络IO和读取效率。当用户在做一些代价高昂的数据计算,计算后的结果只是做临时验证,无需永久性的存储,就可以创建临时表来解决问题。
如,用来创建本地表的原始建模语句示例6:
create local table IF NOT EXISTS my_db.student(name string,age int,contact int)
该语句的含义为:若名称为my_db的本地数据库中不存在名称为student的物理表,则创建物理表student,该物理表中包含三个字段,字段名称分别为:name、age、contact,字段类型分别为string、int、int。
又如,用来创建临时表的原始建模语句示例7:
create temporary table dbtest_wg.temp_tb1 as select*from tpcds_mysql.reason
该语句的含义为:在名称为dbtest_wg的本地库中创建一个临时表,该临时表名称为temp_tb1,其结构来源于子查询,即临时表temp_tb1的结构从tpcds_mysql.reason中获取。
创建临时表时,统一数据访问平台会在本地库中创建一个真实的物理表,用于保存插入的数据。创建临时表默认48小时后,统一数据访问平台将删除该表。这样做是为了防止表的数据无限期地保留在本地数据库中。
在一种可选的实施例中,还可以包括对各种异构数据源进行修改、清空或删除的操作:
(1)统一数据访问平台对原始修改/清空/删除语句进行解析,并获取操作对象(某个数据源)的逻辑表名称;
(2)根据该操作对象的逻辑表名称,获取该操作对象的类型、数据源名称和物理表名称(这些信息都事先保存在统一数据访问平台上);
(3)根据该操作对象的类型,将原始修改/清空/删除语句转换为应用于该操作对象的操作语句;
(4)根据该操作对象的数据源名称和物理表名称,向该操作对象的管理系统发送操作语句,以使该操作对象的管理系统对该操作对象的物理表执行修改/清空/删除操作。
本实施例中,对操作对象的修改操作可以包括对某个表进行重命名:
alter remote table[old_db_name.]old_table_name rename to[new_db_name.]new_table_name
此外,修改操作还可以包括:向远程表/本地表/临时表追加新的列、删除远程表/本地表/临时表的指定列和修改远程表/本地表/临时表的列类型,等等。
本实施例中,删除一个远程表的语句可以为:
drop remote table[if exists]table_name
其中,table_name为欲删除的远程表在统一数据访问平台上映射的逻辑表名。统一数据访问平台将执行如下操作:判断要删除的表类型是否为远程表;判断远程数据源中此表是否存在;删除远程数据源中的此表;删除此远程表映射的逻辑表。
本实施例中,清空一个本地表的语句可以为:
truncate local table tableName
其中,tableName为欲执行清空操作的本地表在统一数据访问平台上映射的逻辑表名称。
进一步地,本发明还提供了一种存储设备的实施例,本实施例的存储设备中存储有能够被处理器加载并执行上面所述方法的计算机程序。
所述存储设备包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
本领域技术人员应该能够意识到,结合本文中所公开的实施例描述的各示例的方法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明电子硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以电子硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。本领域技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
至此,已经结合附图所示的优选实施方式描述了本发明的技术方案。但是,本领域技术人员容易理解的是,本发明的保护范围显然不局限于这些具体实施方式。在不偏离本发明的原理的前提下,本领域技术人员可以对相关技术特征做出等同的更改或替换,这些更改或替换之后的技术方案都将落入本发明的保护范围之内。

Claims (10)

1.一种基于统一语法在异构数据源上建模的方法,其特征在于,所述方法包括:
统一数据访问平台对原始建模语句进行解析,并获取建模信息;所述建模信息包括:目标数据源的名称、欲创建的物理表的名称,以及所述物理表中的字段信息;
根据所述目标数据源的名称,从对应的数据源连接信息中获取所述目标数据源的类型,并根据所述目标数据源的类型,获取所述统一数据访问平台和所述目标数据源的字段类型映射关系;
根据所述建模信息以及所述字段类型映射关系,生成应用于所述目标数据源的新建模语句;
根据所述目标数据源的名称,向所述目标数据源的管理系统发送所述新建模语句,以使所述目标数据源的管理系统利用所述新建模语句在所述目标数据源中创建所述物理表;
其中,所述原始建模语句采用的语法为所述统一语法。
2.根据权利要求1所述的基于统一语法在异构数据源上建模的方法,其特征在于,
所述获取建模信息的步骤包括:
从所述原始建模语句中获取所述建模信息。
3.根据权利要求1所述的基于统一语法在异构数据源上建模的方法,其特征在于,
所述建模信息还包括:数据来源对应的第一逻辑表的名称,以及所述第一逻辑表所属的第一逻辑库的名称;
所述获取建模信息的步骤包括:
从所述原始建模语句中获取所述目标数据源的名称、欲创建的物理表的名称、数据来源对应的第一逻辑表的名称,以及所述第一逻辑表所属的第一逻辑库的名称;
从所述原始建模语句中获取所述字段信息;或者,
根据所述第一逻辑库的名称和所述第一逻辑表的名称,从所述统一数据访问平台中获取所述字段信息。
4.根据权利要求3所述的基于统一语法在异构数据源上建模的方法,其特征在于,所述字段信息包括:字段的名称和类型;
所述方法还包括:
根据所述字段信息,通过所述数据来源的管理系统从所述数据来源中提取相应的字段值;
将提取的字段值发送给所述目标数据源的管理系统,以使所述目标数据源的管理系统将所述提取的字段值加载到所述物理表中。
5.根据权利要求4所述的基于统一语法在异构数据源上建模的方法,其特征在于,“将提取的字段值发送给所述目标数据源的管理系统,以使所述目标数据源的管理系统将所述提取的字段值加载到所述物理表中”,包括:
将所述提取的字段值以批量方式发送给所述目标数据源的管理系统,以使所述目标数据源的管理系统将所述提取的字段值加载到所述物理表中;或者,
将所述提取的字段值写入数据文件,并将所述数据文件发送给所述目标数据源的管理系统,以使所述目标数据源的管理系统将所述提取的字段值加载到所述物理表中。
6.根据权利要求4所述的基于统一语法在异构数据源上建模的方法,其特征在于,
所述数据来源为一个或多个,且多个所述数据源的类型相同或不同;
在“将提取的字段值发送给所述目标数据源的管理系统,以使所述目标数据源的管理系统将所述提取的字段值加载到所述物理表中”之前,所述方法还包括:
利用处理函数对所述提取的字段值进行加工。
7.根据权利要求1所述的基于统一语法在异构数据源上建模的方法,其特征在于,
所述统一语法为:
CREATE TABLETYPE TABLE table_name
['('column[,column]*')']
options(optionKey optionVal[,optionKey optionVal]*)
[select query]
其中,
CREATE为关键字,必须项,定义为DDL语句操作;
TABLETYPE为关键字,必须项,设置为remote时在远程数据源上操作,设置为local或temporary时在本地数据源上操作;
TABLE为关键字,必须项,表示要创建物理表;
column为关键字,可选项,定义为字段名称和类型;
options为关键字,当TABLETYPE设置为remote时,options为必填项,定义需要创建物理表的所述目标数据源的名称、库和模式,同时指定要映射的逻辑表名称;当TABLETYPE设置为local或temporary时,不使用options;
select query为可选项,定义查询子句;
所述方法还包括:
通过人机交互界面获取所述原始建模语句,或者根据所述人机交互界面的输入信息和所述语法生成所述原始建模语句。
8.根据权利要求7所述的基于统一语法在异构数据源上建模的方法,其特征在于,
所述方法还包括:
将所述物理表映射到所述统一数据访问平台的第二逻辑表;
所述建模信息还包括:所述目标数据源的库和模式,以及所述第二逻辑表的名称;
在所述统一数据访问平台上对所述第二逻辑表设置统一的用户权限认证体系。
9.根据权利要求1-8中任一项所述的基于统一语法在异构数据源上建模的方法,其特征在于,所述方法还包括:
所述统一数据访问平台对原始修改/清空/删除语句进行解析,并获取操作对象的逻辑表名称;
根据所述操作对象的逻辑表名称,获取所述操作对象的类型、数据源名称和物理表名称;
根据所述操作对象的类型,将所述原始修改/清空/删除语句转换为应用于所述操作对象的操作语句;
根据所述操作对象的数据源名称和物理表名称,向所述操作对象的管理系统发送所述操作语句,以使所述操作对象的管理系统对所述操作对象的物理表执行修改/清空/删除操作。
10.一种存储设备,其特征在于,存储有能够被处理器加载并执行如权利要求1-8中任一项所述方法的计算机程序。
CN202310403520.6A 2023-04-14 2023-04-14 基于统一语法在异构数据源上建模的方法及设备 Active CN116450609B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310403520.6A CN116450609B (zh) 2023-04-14 2023-04-14 基于统一语法在异构数据源上建模的方法及设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310403520.6A CN116450609B (zh) 2023-04-14 2023-04-14 基于统一语法在异构数据源上建模的方法及设备

Publications (2)

Publication Number Publication Date
CN116450609A true CN116450609A (zh) 2023-07-18
CN116450609B CN116450609B (zh) 2024-01-30

Family

ID=87119725

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310403520.6A Active CN116450609B (zh) 2023-04-14 2023-04-14 基于统一语法在异构数据源上建模的方法及设备

Country Status (1)

Country Link
CN (1) CN116450609B (zh)

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102063509A (zh) * 2011-01-12 2011-05-18 南京南瑞继保电气有限公司 电力信息系统异构数据库多维数据集成的模型及建模方法
CN102682122A (zh) * 2012-05-15 2012-09-19 北京科技大学 基于本体构建材料科学领域语义数据模型的方法
WO2015062182A1 (zh) * 2013-11-04 2015-05-07 广东电子工业研究院有限公司 大规模分布异构数据的虚拟化方法
CN110399388A (zh) * 2019-07-29 2019-11-01 中国工商银行股份有限公司 数据查询方法、系统和设备
CN112100261A (zh) * 2020-09-14 2020-12-18 南京国睿信维软件有限公司 基于异构数据源连接的物模型建模方法
CN112597199A (zh) * 2020-12-22 2021-04-02 南京三眼精灵信息技术有限公司 异构多数据源适配方法及装置
CN114547076A (zh) * 2022-02-21 2022-05-27 京东方科技集团股份有限公司 数据处理方法和数据处理系统
CN114756577A (zh) * 2022-03-25 2022-07-15 北京友友天宇系统技术有限公司 多源异构数据的处理方法、计算机设备及存储介质

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102063509A (zh) * 2011-01-12 2011-05-18 南京南瑞继保电气有限公司 电力信息系统异构数据库多维数据集成的模型及建模方法
CN102682122A (zh) * 2012-05-15 2012-09-19 北京科技大学 基于本体构建材料科学领域语义数据模型的方法
WO2015062182A1 (zh) * 2013-11-04 2015-05-07 广东电子工业研究院有限公司 大规模分布异构数据的虚拟化方法
US20160267155A1 (en) * 2013-11-04 2016-09-15 Guangdong Electronics Industry Institute Ltd. Virtualization method for large-scale distributed heterogeneous data
CN110399388A (zh) * 2019-07-29 2019-11-01 中国工商银行股份有限公司 数据查询方法、系统和设备
CN112100261A (zh) * 2020-09-14 2020-12-18 南京国睿信维软件有限公司 基于异构数据源连接的物模型建模方法
CN112597199A (zh) * 2020-12-22 2021-04-02 南京三眼精灵信息技术有限公司 异构多数据源适配方法及装置
CN114547076A (zh) * 2022-02-21 2022-05-27 京东方科技集团股份有限公司 数据处理方法和数据处理系统
CN114756577A (zh) * 2022-03-25 2022-07-15 北京友友天宇系统技术有限公司 多源异构数据的处理方法、计算机设备及存储介质

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
郑垒;曹宝香;: "基于SDO的异构数据集成研究与应用", 计算机技术与发展, no. 11, pages 169 - 172 *

Also Published As

Publication number Publication date
CN116450609B (zh) 2024-01-30

Similar Documents

Publication Publication Date Title
CN107402988B (zh) 一种分布式NewSQL数据库系统和半结构化数据查询方法
CN110032604B (zh) 数据存储装置、转译装置及数据库访问方法
US9501529B2 (en) Searching content managed by a search engine using relational database type queries
US6163776A (en) System and method for exchanging data and commands between an object oriented system and relational system
US6374252B1 (en) Modeling of object-oriented database structures, translation to relational database structures, and dynamic searches thereon
US8433684B2 (en) Managing data backup of an in-memory database in a database management system
US8260824B2 (en) Object-relational based data access for nested relational and hierarchical databases
US7096231B2 (en) Export engine which builds relational database directly from object model
US8311974B2 (en) Modularized extraction, transformation, and loading for a database
US10606839B2 (en) Preventing staleness in query results when using asynchronously updated indexes
KR20060045622A (ko) 컴퓨터화된 재무 시스템의 추출, 변환 및 로딩 설계자 모듈
US8881127B2 (en) Systems and methods to automatically generate classes from API source code
US9971820B2 (en) Distributed system with accelerator-created containers
WO2019237333A1 (en) Converting database language statements between dialects
US20140201192A1 (en) Automatic data index establishment method
US20170140000A1 (en) Pseudo columns for data retreival
US20160092503A1 (en) Virtualizing schema relations over a single database relation
CN110334545B (zh) 一种基于sql的权限控制方法、装置和电子设备
US20100030726A1 (en) Mechanism For Deferred Rewrite Of Multiple Xpath Evaluations Over Binary XML
CN113467785A (zh) 一种拟态数据库的sql转译方法和系统
CN116450609B (zh) 基于统一语法在异构数据源上建模的方法及设备
US20060190476A1 (en) Database storage system and associated method
US7185004B1 (en) System and method for reverse routing materialized query tables in a database
Fehily SQL
KR100984976B1 (ko) 이질적인 2차원 테이블의 데이터를 통합하여 검색하는 방법

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant