CN117312420A - 一种数据共享方法及相关系统 - Google Patents
一种数据共享方法及相关系统 Download PDFInfo
- Publication number
- CN117312420A CN117312420A CN202210705929.9A CN202210705929A CN117312420A CN 117312420 A CN117312420 A CN 117312420A CN 202210705929 A CN202210705929 A CN 202210705929A CN 117312420 A CN117312420 A CN 117312420A
- Authority
- CN
- China
- Prior art keywords
- data
- management system
- data management
- query statement
- metadata
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 68
- 238000013523 data management Methods 0.000 claims abstract description 269
- 238000004891 communication Methods 0.000 claims description 25
- 238000011161 development Methods 0.000 claims description 16
- 238000006243 chemical reaction Methods 0.000 claims description 12
- 238000007726 management method Methods 0.000 claims description 12
- 238000013473 artificial intelligence Methods 0.000 claims description 9
- 230000001960 triggered effect Effects 0.000 claims description 8
- 238000004590 computer program Methods 0.000 claims description 7
- 230000003993 interaction Effects 0.000 claims description 4
- 238000010586 diagram Methods 0.000 description 14
- 230000006870 function Effects 0.000 description 13
- 230000008569 process Effects 0.000 description 8
- 238000004458 analytical method Methods 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 4
- 238000012545 processing Methods 0.000 description 4
- 238000013500 data storage Methods 0.000 description 3
- 239000007787 solid Substances 0.000 description 3
- 238000013475 authorization Methods 0.000 description 2
- 239000000306 component Substances 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000002776 aggregation Effects 0.000 description 1
- 238000004220 aggregation Methods 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000012550 audit Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 239000008358 core component Substances 0.000 description 1
- 238000007405 data analysis Methods 0.000 description 1
- 238000000802 evaporation-induced self-assembly Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 238000002955 isolation Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- ZLIBICFPKPWGIZ-UHFFFAOYSA-N pyrimethanil Chemical compound CC1=CC(C)=NC(NC=2C=CC=CC=2)=N1 ZLIBICFPKPWGIZ-UHFFFAOYSA-N 0.000 description 1
- 239000010979 ruby Substances 0.000 description 1
- 229910001750 ruby Inorganic materials 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000010200 validation analysis Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/25—Integrating or interfacing systems involving database management systems
- G06F16/258—Data format conversion from or to a database
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/242—Query formulation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/242—Query formulation
- G06F16/2433—Query languages
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/25—Integrating or interfacing systems involving database management systems
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)
- Computational Linguistics (AREA)
- Mathematical Physics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请提供了一种数据共享方法,包括:第一数据管理系统接收第一查询语句,根据第一查询语句,通过第二数据管理系统的软件开发套件,获得第二查询语句,然后根据第二查询语句,访问第二数据管理系统的统一开放访问服务,获得第二数据管理系统中的私有格式数据。该方法中,数据管理系统可以对外提供软件开发套件SDK,使得其他数据管理系统如大数据引擎可以调用SDK,访问统一开放访问服务,从而支持私有格式数据的对外共享访问,打破仅在系统内部共享私有格式数据的界限,提高了可用性。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及一种数据共享方法、第一数据管理系统、第二数据管理系统、计算机集群、计算机可读存储介质、计算机程序产品。
背景技术
随着信息技术的不断发展,互联网中产生了大量的数据,例如是各种应用的业务数据,包括但不限于电子商务应用的订单数据、社交应用的互动数据等等。为了便于快速查找或分析数据,可以采用数据仓库(data warehouse)进行数据管理。
数据仓库是来自一个或多个不同数据源的集成数据的中央存储库,用于提供数据查询和分析功能。随着云计算的发展,逐步产生了基于云原生的数据仓库,例如Snowflake。Snowflake是一个支持多租户、事务,且安全性高,扩展能力强的弹性系统。该弹性系统在云平台中可以作为“按需付费”服务提供给用户使用。
具体地,数据提供者(如用户A)可以将数据上传到云平台,数据以数据表的形式进行存储。云平台上的Snowflake等数据仓库可以支持数据消费者(如用户B、用户C、用户D)使用熟悉的工具和界面进行管理和查询。其中,Snowflake等可以对数据表进行克隆,具体是复制数据表的元数据,无需创建数据表的副本,从而实现数据提供者与数据消费者之间的数据共享。
然而,上述方法难以实现跨数据仓库的数据共享,尤其是难以支持外部引擎对私有格式数据的高性能访问,可用性较低。
发明内容
本申请提供了一种数据共享方法,数据管理系统可以对外提供软件开发套件,使得其他数据管理系统如大数据引擎可以调用软件开发套件(software development kit,SDK),访问统一开放访问服务,从而支持私有格式数据的对外共享访问,打破仅在系统内部共享私有格式数据的界限,提高了可用性。本申请还提供了上述方法对应的第一数据管理系统、第二数据管理系统、计算机集群、计算机可读存储介质以及计算机程序产品。
第一方面,本申请提供了一种数据共享方法。该方法用于实现在不同数据管理系统之间共享数据,尤其是私有格式数据。为了便于描述,本申请实施例将不同数据管理系统分别记作第一数据管理系统、第二数据管理系统。其中,第一数据管理系统和第二数据管理系统可以是数据仓库、数据库、湖仓或大数据引擎、人工智能开发平台中的不同类型数据管理系统。第一数据管理系统实质是一种客户端。在大数据场景下,该客户端可以是具有查询功能的软件系统,如集成Spark、Flink、Presto等大数据引擎的软件系统。第二数据管理系统是与客户端连接的系统,支持客户端进行查询、分析。基于此,第二数据管理系统可以是数据仓库或数据库(如关系型数据库)。
具体地,第一数据管理系统接收第一查询语句,所述第一查询语句为基于第一查询语言的查询语句,然后第一数据管理系统根据所述第一查询语句,通过所述第二数据管理系统的软件开发套件SDK,获得第二查询语句,所述第二查询语句为基于第二查询语言的查询语句,接着第一数据管理系统根据所述第二查询语句,访问所述第二数据管理系统的统一开放访问服务,获得所述第二数据管理系统中的私有格式数据。
在该方法中,包括数据仓库在内的数据管理系统可以提供统一开放访问服务,并通过对包括大数据引擎在内的其他数据管理系统提供SDK,采用SDK整合其他数据管理系统,使得其他数据管理系统可以通过SDK进行查询语句转换,并基于转换后的查询语句,访问统一开放访问服务,从而实现对外共享数据管理系统内部的私有格式数据,通过支持私有格式数据的对外共享访问,打破了仅在数据管理系统内共享私有格式数据的界限,跟外部的数据库、数据仓库、湖仓或大数据引擎等其他数据管理系统打通了数据共享通道,提高了数据管理系统的可用性。
在一些可能的实现方式中,第二数据管理系统可以根据所述第二查询语句,通过所述统一开放访问服务中的元数据接口读取逻辑元数据,然后根据所述逻辑元数据,读取所述第二数据管理系统中的私有格式数据。
其中,逻辑元数据是指有关逻辑结构(例如表)的业务元数据。业务元数据是描述描述数据管理系统中业务领域相关概念、关系和规则的数据。基于此,第二数据管理系统可以根据逻辑元数据,读取该逻辑元数据所指向的私有格式数据。
由此打破仅在数据管理系统内共享私有格式数据的界限,在数据管理系统之间打通数据共享通道,提高数据管理系统的可用性。
在一些可能的实现方式中,第二数据管理系统在读取逻辑元数据时,可以根据所述第二查询语句创建事务,然后通过所述统一开放访问服务中的事务接口向全局事务管理获取所述事务的最新时间戳,接着通过所述统一开放访问服务中的元数据接口读取所述最新时间戳对应的元数据。
该方法通过引入事务概念,基于事务语义保障快照读的一致性,由此实现数据访问的一致性。
在一些可能的实现方式中,第二数据管理系统可以反序列化所述第二查询语句,获得待执行的算子,然后执行所述算子,并创建事务。上述事务可以保障算子执行结果要么一并提交或者一并回滚,由此可以保障数据一致性。
在一些可能的实现方式中,所述第一查询语言为结构化查询语言,所述第二查询语言为轻量级标记语言。其中,轻量级标记语言可以是脚本语言,例如为JavaScript语言。
该方法通过借助SDK进行查询语句转换,可以实现跨数据管理系统进行查询,进而实现不同数据管理系统之间进行数据共享。
在一些可能的实现方式中,所述第一数据管理系统向用户呈现共享操作界面,所述共享操作界面支持系统内共享数据的操作、向外部系统共享开放格式数据的操作、被外部系统访问私有格式数据的操作;当所述被外部系统访问私有格式数据的操作被触发时,所述第一数据管理系统返回所述第一数据管理系统的私有格式数据。
该方法中,第一数据管理系统支持多种共享模式,能够满足不同业务的需求。
在一些可能的实现方式中,所述私有格式数据包括列存单元数据。如此可以实现跨引擎共享列存单元数据等私有格式数据,全面打通了数据共享通道,具有较高可用性。
在一些可能的实现方式中,所述第一数据管理系统和所述第二数据管理系统为数据库、数据仓库、湖仓或大数据引擎、人工智能开发平台中的不同数据管理系统。例如,第一数据管理系统可以为大数据引擎、人工智能开发平台,第二数据管理系统可以为数据库、数据仓库或湖仓。
该方法打通了数据库、数据仓库、湖仓或大数据引擎、人工智能开发平台的数据共享通道,实现了数据库、数据仓库、湖仓或大数据引擎、人工智能开发平台之间的数据共享,尤其是私有格式数据共享。
在一些可能的实现方式中,所述第二数据管理系统可以根据所述逻辑元数据,通过抽象表格式,访问所述私有格式数据。抽象表格式、开放格式、私有数据均属于通用接口层,第二数据管理系统可以通过通用接口层的接口进行格式转换,从而实现通过抽象表格式访问私有格式数据。
如此可以实现私有格式数据的对外共享访问,打破了仅在数据管理系统内共享私有格式数据的界限,跟外部的数据库、数据仓库、湖仓或大数据引擎等其他数据管理系统打通了数据共享通道,提高了数据管理系统的可用性。
第二方面,本申请提供了一种第一数据管理系统。所述系统包括:
通信模块,用于接收第一查询语句,所述第一查询语句为基于第一查询语言的查询语句;
转换模块,用于根据所述第一查询语句,通过所述第二数据管理系统的软件开发套件,获得第二查询语句,所述第二查询语句为基于第二查询语言的查询语句;
访问模块,用于根据所述第二查询语句,访问所述第二数据管理系统的统一开放访问服务,获得所述第二数据管理系统中的私有格式数据。
在一些可能的实现方式中,所述第一查询语言为结构化查询语言,所述第二查询语言为轻量级标记语言。
在一些可能的实现方式中,所述系统还包括:
交互模块,用于用户呈现共享操作界面,所述共享操作界面支持系统内共享数据的操作、向外部系统共享开放格式数据的操作、被外部系统访问私有格式数据的操作;
所述通信模块,还用于当所述被外部系统访问私有格式数据的操作被触发时,返回所述第一数据管理系统的私有格式数据。
在一些可能的实现方式中,所述私有格式数据包括列存单元数据。
在一些可能的实现方式中,所述第一数据管理系统和所述第二数据管理系统为数据库、数据仓库、湖仓或大数据引擎、人工智能开发平台中的不同数据管理系统。
第三方面,本申请提供了一种第二数据管理系统。所述系统包括:
通信模块,用于接收第二查询语句;
元数据读取模块,用于根据所述第二查询语句,通过统一开放访问服务中的元数据接口读取逻辑元数据;
数据读取模块,用于根据所述逻辑元数据,读取所述第二数据管理系统中的私有格式数据。
在一些可能的实现方式中,所述元数据读取模块用于:
根据所述第二查询语句创建事务;
通过所述统一开放访问服务中的事务接口向全局事务管理获取所述事务的最新时间戳;
通过所述统一开放访问服务中的元数据接口读取所述最新时间戳对应的元数据。
在一些可能的实现方式中,所述元数据读取模块具体用于:
反序列化所述第二查询语句,获得待执行的算子;
执行所述算子,并创建事务。
在一些可能的实现方式中,所述数据读取模块具体用于:
根据所述逻辑元数据,通过抽象表格式,访问所述私有格式数据。
第四方面,本申请提供一种计算机集群。所述计算机集群包括至少一台计算机,所述至少一台计算机包括至少一个处理器和至少一个存储器。所述至少一个处理器、所述至少一个存储器进行相互的通信。所述至少一个处理器用于执行所述至少一个存储器中存储的指令,以使得计算机或计算机集群执行如第一方面或第一方面的任一种实现方式所述的数据共享方法中由第一数据管理系统或第二数据管理系统执行的步骤。
第五方面,本申请提供一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,所述指令指示计算机或计算机集群执行上述第一方面或第一方面的任一种实现方式所述的数据共享方法。
第六方面,本申请提供了一种包含指令的计算机程序产品,当其在计算机或计算机集群上运行时,使得计算机或计算机集群执行上述第一方面或第一方面的任一种实现方式所述的数据共享方法。
本申请在上述各方面提供的实现方式的基础上,还可以进行进一步组合以提供更多实现方式。
附图说明
为了更清楚地说明本申请实施例的技术方法,下面将对实施例中所需使用的附图作以简单地介绍。
图1为本申请实施例提供的一种数据共享系统的架构示意图;
图2为本申请实施例提供的一种数据共享系统的逻辑图;
图3为本申请实施例提供的一种数据管理系统的分层结构图;
图4为本申请实施例提供的一种数据共享方法的流程图;
图5为本申请实施例提供的一种不同数据共享方式的执行路线图;
图6为本申请实施例提供的一种第二数据管理系统的结构示意图;
图7为本申请实施例提供的一种计算机集群的结构示意图;
图8为本申请实施例提供的一种计算机集群的结构示意图。
具体实施方式
本申请实施例中的术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。
首先对本申请实施例中所涉及到的一些技术术语进行介绍。
数据仓库(Data Warehouse,DWS)是来自一个或多个不同数据源的集成数据的中央存储库,用于提供数据查询和分析功能。数据仓库本质,也可以称作企业数据仓库,本质是用于报告和数据分析的数据管理系统,属于商业智能(business)的核心组件。
基于云存储如公有云存储技术设计的数据仓库也称作基于元原生(cloudnative)的数据仓库。基于云原生的数据仓库充分发挥了云存储的优势,支持多租户、多事务,且安全性高,扩展能力强,能够作为“按需付费”服务提供给用户使用。
基于云原生的数据仓库如Snowflake可以实现多集群数据共享。具体地,数据提供者(如用户A)可以将写入数据的数据表上传到云平台上的Snowflake等数据仓库,数据仓库可以支持数据消费者(如用户B、用户C、用户D)使用熟悉的工具和界面进行管理和查询。其中,Snowflake等数据仓库可以对数据表进行克隆,具体是复制数据表的元数据,无需创建数据表的副本,从而实现数据提供者与多个数据消费者(可以是属于不同集群的数据消费者)之间的数据共享。
然而,上述方法支持数据仓库内部的数据共享,难以实现跨数据仓库的数据共享,尤其是难以支持外部引擎(如大数据引擎)对数据仓库中私有格式数据的高性能访问,可用性较低。
有鉴于此,本申请实施例提供了一种不同数据管理系统之间的数据共享方法。为了便于描述,本申请实施例将不同数据管理系统分别记作第一数据管理系统、第二数据管理系统。其中,第一数据管理系统和第二数据管理系统可以是数据仓库、数据库、湖仓或大数据引擎、人工智能(artificial intelligence,AI)开发平台中的不同类型数据管理系统。
具体地,第一数据管理系统(例如是大数据引擎)接收第一查询语句,第一查询语句为基于第一查询语言的查询语句,第一数据管理系统根据所述第一查询语句,通过所述第二数据管理系统(例如是数据仓库)的软件开发套件(software development toolkit,SDK),获得第二查询语句,该第二查询语句为基于第二查询语言的查询语句,然后第一数据管理系统根据所述第二查询语句,访问所述第二数据管理系统的统一开放访问服务(Unified Open Access Service,UOAS),获得所述第二数据管理系统中的私有格式数据。
在该方法中,包括数据仓库在内的数据管理系统可以提供统一开放访问服务,并通过对包括大数据引擎在内的其他数据管理系统提供SDK,采用SDK整合其他数据管理系统,使得其他数据管理系统可以通过SDK进行查询语句转换,并基于转换后的查询语句,访问统一开放访问服务,从而实现对外共享数据管理系统内部的私有格式数据,通过支持私有格式数据的对外共享访问,打破了仅在数据管理系统内共享私有格式数据的界限,跟外部的数据库、数据仓库、湖仓或大数据引擎等其他数据管理系统打通了数据共享通道,提高了数据管理系统的可用性。
参见图1所示的数据共享系统的架构图,数据共享系统10包括至少一个第一数据管理系统100和第二数据管理系统200。至少一个第一数据管理系统100与第二数据管理系统200连接。第二数据管理系统200可以作为数据提供者,至少一个第一数据管理系统100可以作为数据消费者。第一数据管理系统100用于访问第二数据管理系统200内部的私有格式数据。其中,第一数据管理系统100可以是大数据引擎,例如为Spark、Flink、Presto,或者是AI开发平台。第二数据管理系统200可以为数据库、数据仓库或者湖仓。
第一数据管理系统100包括通信模块102、转换模块104和访问模块106。第二数据管理系统200包括软件开发套件202和统一开放访问服务204。第二数据管理系统200为数据库、数据仓库或者湖仓等不同类型的数据管理系统时,软件开发套件202可以是不同的。在图1的示例中,第二数据管理系统200可以为高斯数据库(Gauss database,GaussDB),软件开发套件202可以为GaussDB SDK。
通信模块102用于接收第一查询语句。第一查询语句为基于第一查询语言的查询语句。在该示例中,第一查询语言可以是结构化查询语言(Structured Query Language,SQL),相应地,第一查询语句可以是SQL语句。第一数据管理系统100可以提供至少一种用户接口,例如是命令行接口(command line interface,CLI)、Java数据库连接(JavaDatabase Connectivity,JDBC)接口或者开放数据库连接(Open Database Connectivity,ODBC)接口中的一种或多种。用户可以通过上述接口输入查询命令,无需进行额外的代码编写,相应地,通信模块102接收上述查询命令,从而获得第一查询语句。
转换模块104用于根据第一查询语句,通过第二数据管理系统200的软件开发套件202,获得第二查询语句。所述第二查询语句为基于第二查询语言的查询语句。其中,第二查询语言可以为轻量级语言。轻量级标记语言可以是脚本语言,例如为JavaScript语言。具体地,转换模块104可以解析第一查询语句生成执行计划,然后使用软件开发套件202如GaussDB SDK将执行计划序列化为第二查询语句。
访问模块106用于根据第二查询语句,访问统一开放访问服务204,获得所述第二数据管理系统200中的私有格式数据。私有格式数据是指并未对外公开存储格式的数据,例如是列存单元(column unit,CU)数据,与私有格式数据对应的为开放格式数据,开放格式数据为对外公开存储格式的数据,包括但不限于行列混合存储(Optimized Row Columnar,ORC)数据、逗号分隔值(Comma-separated values,CSV)数据、Parquet数据。访问模块106也可以访问第二数据管理系统200中的开发格式数据。
在一些可能的实现方式中,第二数据管理系统200还支持抽象表格式(abstracttable format)。第一数据管理系统100的访问模块106可以根据私有格式数据的逻辑元数据,通过抽象表格式,访问所述私有格式数据,例如是列存表格式(column table format)中的列存单元数据。进一步地,第一数据管理系统100的访问模块106可以根据开发格式数据的逻辑元数据,通过抽象表格式,访问开放格式数据,例如是列存表格式中的Parquet数据、ORC数据,或者是行存表格式(row table format)中的MySQL数据、GaussDB数据、PostgreSQL数据(即PG数据)。
上述数据共享系统10可以从宏观上分为三层,具体包括存储服务层、计算服务层、元数据服务层。其中,存储服务层可以为统一的SQL存储服务层,该存储服务层可以包括第一数据管理系统100和第二数据管理系统200连接的、用于提供存储服务的文件系统,如对象存储(object storage,OBS)、Hadoop分布式文件系统(Hadoop Distributed FileSystem,HDFS)或本地文件系统。上述存储服务支持读写开放格式,如CSV、ORC、Parquet等文件格式,或者是湖仓Delta lake、Hudi等表格式。存储服务还支持读写私有格式,如CU。计算服务层可以为统一的SQL计算服务层,该计算服务层可以包括第一数据管理系统100和第二数据管理系统200,例如包括数据仓库、大数据引擎、湖仓(delta lake)。元数据服务层可以包括针对不同数据管理系统的元数据服务,如针对大数据引擎的Hive元数据存储(HiveMeta Store)、针对湖仓的元数据管理(记作lake cat)、针对数据仓库的元数据管理。其中,针对数据仓库的元数据管理包括逻辑元数据(logical meta)的存储和物理元数据(physical meta)的存储。
上述计算服务层提供有接口,例如是SQL接口。计算服务层与存储服务层、元数据服务层可以通过上述SQL接口进行交互。该实施例中,计算服务层为用户访问入口。用户可以通过入口触发计算服务层中不同数据管理系统,如数据仓库、大数据引擎之间的数据共享,例如数据仓库向大数据引擎共享该数据仓库内部的私有格式数据。
下面以数据仓库为例,对数据管理系统的架构进行介绍。
参见图3所示的数据仓库的架构图,该数据仓库可以进行服务化分层解耦。例如,数据仓库可以分为SQL接入服务、逻辑元数据服务(logic metadata service)、物理元数据服务(physical metadata service)。其中,SQL接入服务可以为分布式SQL服务,具体包括接入控制(access control)、语法分析及优化(parser&optimizer)和事务管理器(transaction manager中的一种或多种。进一步地,数据仓库还可以包括查询编译服务(query compilation)、后台任务服务(background task service)。其中,后台任务服务可以包括索引或空间回收vacuum。
其中,数据仓库还包括执行服务(Execution service)。上述执行服务可以包括分布式执行服务(distributed execution service)和统一开放访问服务UOAS,其中,分布式执行服务包括分布式执行引擎(distributed execution engine)和分布式数据缓存(distributed data cache)。统一开放访问服务包括元数据应用程序编程接口(application programming interface,API),其中,元数据应用程序编程接口可以简称为元数据接口。进一步地,统一开放访问服务还包括执行器(executor)和事务接口(如事务API)。
在一些可能的实现方式中,数据仓库还包括数据缓存和数据存储,数据缓存可以是分布式通用缓存。该通用缓存可以支持SQL语义,数据存储可以实现共享一致性存储,具体地,数据存储支持状态数据全局统一、支持强事务隔离和快照一致、支持跨行存表和列存表的事务,保障全局事务一致性。此外,数据存储还可以支持弹性扩缩。
进一步地,数据仓库还包括通用接口层,该通用接口层支持通过抽象表格式处理开发格式或私有格式,实现数据共享。其中,通用接口层还支持开放逻辑元数据。通用接口层也支持屏蔽执行引擎。
需要说明的是,图3所示的数据仓库可以对接AI开发平台或大数据引擎,其中,大数据引擎包括spark、flink、presto等,支持多语言多生态,例如可以支持Python、Java、Scala、R或SQL with AI,具有较高可用性。
以上对数据共享系统10、数据管理系统的架构进行了介绍,下面结合附图,对本申请实施例的数据共享方法进行介绍。
参见图4所示的数据共享方法的流程图,该方法包括:
S402:第一数据管理系统100接收第一查询语句。
第一查询语句为基于第一查询语言的语句。第一查询语言可以是SQL。基于此,第一查询语句可以是SQL语句。需要说明的是,第一查询语言也可以是第一数据管理系统100支持的其他查询语言,例如为数据查询语言(data query language)、上下文查询语言(contextual query language)。
第一数据管理系统100可以提供多种用户接口,并通该用户接口接收用户输入的第一查询语句。在一些实施例中,用户接口可以包括命令行接口CLI、JDBC接口或者ODBC接口中的一种或多种。用户可以通过上述用户接口输入查询命令,无需进行额外的代码编写,相应地,第一数据管理系统100接收上述查询命令,从而获得第一查询语句。
S404:第一数据管理系统100解析第一查询语句生成执行计划。
第一数据管理系统100可以通过解析器对第一查询语句进行解析,例如是进行语法分析,从而获得第一查询语句的语法树,然后根据该语法树生成执行计划。为了便于理解,下面以第一查询语句为SQL语句示例说明。
第一数据管理系统100提供SQL接入服务。当第一数据管理系统100接收到SQL语句时,通过SQL接入服务中的解析器parser进行语法分析,得到抽象语法树(Abstract SyntaxTree,AST)。该抽象语法树可以简称为语法树。然后,第一数据管理系统100通过分析器(analyzer)对语法树进行分析,接着使用优化器(Optimizer)对分析后的语法树进行优化转换成优化后的语法树Optimized AST。最后第一数据管理系统100将优化后的语法树进行逻辑分段,变成可供分布式分析的逻辑执行计划。
逻辑执行计划通常不能直接放到执行引擎中执行,第一数据管理系统100还可以根据不同执行引擎(presto/spark/mr/tez等)生成对应的物理执行计划,以便于执行引擎执行上述物理执行计划。以执行引擎mr为例,假设逻辑执行计划包括aggregation,表示对相同id进行合并,第一数据管理系统100可以通过hash shuffle方法,将上述逻辑执行计划转换为物理执行计划。
S406:第一数据管理系统100通过所述第二数据管理系统200的SDK对所述第一查询语句进行序列化,获得第二查询语句。
第二查询语句为基于第二查询语言的语句。第二查询语言可以是轻量级语言,例如第二查询语言可以为脚本语言。该脚本语言包括JavaScript、Ruby、Python或者是PHP。
序列化(serialization)是指将数据结构或对象状态转换成可取用格式(例如存成文件,存于缓冲,或经由网络中发送)的字节序列,以留待后续在相同或另一台计算机环境中,能恢复原先状态的过程。其中,字节序列包括对象的数据、有关对象的类型的信息和存储在对象中数据的类型。从字节序列中提取数据结构或对象状态的反向操作称为反序列化(deserializer)。具体地,根据字节序列中对象的数据、有关对象的类型的信息和存储在对象中数据的类型,可以在内存中新建对象,该新建的对象是与原始对象相同语义的副本。
第二数据管理系统200的SDK提供具有序列化功能的类,该类可以通过序列化API被第一数据管理系统100调用。具体地,第一数据管理系统100可以调用第二数据管理系统200的SDK中的序列化API,通过具有序列化功能的类,将第一查询语句序列化,从而获得第二查询语句。
上述S404至S406为第一数据管理系统100根据所述第一查询语句,通过所述第二数据管理系统200的软件开发套件,获得第二查询语句的一种具体实现方式,在本申请实施例其他可能的实现方式中,第一数据管理系统100也可以通过其他方式进行查询语句的转换。
S408:第一数据管理系统100根据所述第二查询语句,访问所述第二数据管理系统200的统一开放访问服务。
具体地,第二数据管理系统100可以向第二数据管理系统200提交第二查询语句,以访问第二数据管理系统200的统一开放访问服务UOAS。
S410:第二数据管理系统200通过统一开放访问服务反序列化第二查询语句,获得待执行的算子。
其中,统一开放访问服务UOAS包括执行器executor。第二数据管理系统200可以通过UOAS中的执行器,执行上述第二查询语句,从而实现对第二查询语句的反序列化。其中,对第二查询语句的反序列化包括根据第二查询语句中对象的数据、有关对象的类型的信息和存储在对象中数据的类型,在内存中重建对象,该对象可以是算子。也即第二数据管理系统200通过UOAS反序列化第二查询语句,获得待执行的算子。待执行的算子可以包括扫描scan、过滤filter等等,本实施例对此不作限制。
S412:第二数据管理系统200通过统一开放访问服务执行算子,并创建事务。
第二数据管理系统200执行上述算子,从而执行查询操作。由于待执行的算子包括多个,为了保障查询结果的一致性,第二数据管理系统200还可以创建事务,例如是全局事务,然后通过事务保障查询结果的一致性。
S414:第二数据管理系统200通过统一开放访问服务中的事务接口向全局事务管理获取所述事务的最新时间戳。
具体地,统一开放访问服务UOAS提供有事务接口,具体为事务API,第二数据管理系统200可以通过事务API向全局事务管理(global transaction management,GTM)获取事务的最新时间戳。
S416:第二数据管理系统200通过所述统一开放访问服务中的元数据接口读取所述最新时间戳对应的元数据。
统一开放访问服务UOAS提供有元数据接口,该元数据接口可以是元数据API。其中,元数据API用于读取元数据。其中,第二数据管理系统200的元数据API用于读取第二数据管理系统200的业务元数据。
业务元数据是描述数据管理系统中业务领域相关概念、关系和规则的数据。业务元数据可以包括业务术语、信息分类、指标、统计口径中的一种或多种。以第二数据管理系统200对机场基础信息数据管理为例,标识信息、数据质量与精度信息、空间参照信息、发布与更新信息、负责单位与联系信息均构成描述该机场基础信息数据的业务元数据。
业务元数据也可以分为逻辑元数据和物理元数据。有关逻辑结构(例如表)的业务元数据被视为逻辑元数据。逻辑元数据可以用于进行数据分类和标准化抽取转置加载(Extract-transform-load,ETL)处理。表所有者可以在业务元数据中提供有关表的审计信息。进一步地,表所有者还可以提供用于写入表的列默认值和验证规则。有关存储在表或分区中的实际数据的元数据被视为物理元数据。ETL处理在作业完成时可以存储有关实际数据的指标,稍后用于验证。相同的指标可用于分析数据的成本或空间。
鉴于两个表可以指向相同的位置,例如在Hive中,两个表可以指向相同的位置,因此,区分逻辑元数据和物理元数据很重要,因为两个表可以具有相同的物理元数据但具有不同的逻辑元数据。
基于此,第二数据管理系统200可以通过统一开放访问服务中的元数据API,读取逻辑元数据和物理元数据。为了保障一致性,第二数据管理系统200可以通过统一开放访问服务中的元数据API,读取最新时间戳对应的逻辑元数据和物理元数据。
S418:第二数据管理系统200根据元数据,读取所述第二数据管理系统200中的私有格式数据。
由于逻辑元数据描述了逻辑结构如表,物理元数据描述了实际数据,因此,第二数据管理系统200可以根据该逻辑元数据和物理元数据,读取第二数据管理系统200中的私有格式数据,如读取CU数据。
S420:第二数据管理系统200通过统一开放访问服务返回私有格式数据。
上述S408至S420为第一数据管理系统100根据所述第二查询语句,访问所述第二数据管理系统的统一开放访问服务,获得所述第二数据管理系统中的私有格式数据的一种具体实现方式。在本申请实施例其他可能的实现方式中,第一数据管理系统100也可以通过其他方式访问第二数据管理系统200中的私有格式数据。例如,第二数据管理系统100也可以不创建事务,而是在执行算子后,直接通过统一开放访问服务中元数据API读取元数据,并根据元数据读取私有格式数据,然后向第一数据管理系统200返回该私有格式数据。
图5还提供了不同数据共享方式的执行路线图,传统的执行路线为大数据引擎通过JDBC接口发送SQL语句,然后到达GaussDB的入口,具体为分布式SQL服务(distributedSQL service),通过分布式SQL服务中的解析器和优化器生成执行计划,然后通过分布式执行服务(distributed execution service)的执行器执行上述执行计划,从而实现通过抽象表格式访问列存表格式或行存表格式;本申请实施例的执行路线则是大数据引擎发送SQL语句,到达GaussDB SDK,通过GaussDB SDK转换为轻量级语言的第二查询语句,由GaussDB的统一开放访问服务UOAS基于第二查询语句,通过抽象表格式访问GaussDB的CU等私有格式数据。
基于上述内容描述,本申请实施例提供了一种支持事务语义的数据管理系统间共享数据的方法。该方法以对外发布SDK的形式将数据管理系统(如数据仓库)内部的私有格式数据(包括但不限于文件/表数据)共享给其他数据管理系统(如外部数据仓库或大数据引擎),打破了仅在系统内共享私有格式数据的界限,构建了跨系统(如跨引擎或跨数据仓库)的数据共享通道,提高了数据管理系统的可用性。进一步地,该方法还可以通过事务语义保证一致性快照读,保障了同一时间的查询结果是相同的,查询结果具有较高可靠性。
图4所示实施例主要对第二数据管理系统200向第一数据管理系统100共享私有格式数据进行了介绍。在一些可能的实现方式中,第二数据管理系统200还可以向第一数据管理系统100共享开放格式数据,或者是在第二数据管理系统100内共享数据。
与第二数据管理系统200类似,第一数据管理系统100也支持多种共享模式,如内部共享模式、系统间共享开放格式数据模式、系统间共享私有格式数据模式。第一数据管理系统100可以向用户呈现共享操作界面。该共享操作界面支持系统内共享数据的操作、向外部系统共享开放格式数据的操作、被外部系统访问私有格式数据的操作。其中,外部系统可以是第二数据管理系统200。
当所述被外部系统访问私有格式数据的操作被触发时,所述第一数据管理系统100可以返回所述第一数据管理系统100的私有格式数据。当系统内共享数据的操作被触发时,所述第一数据管理系统100可以在系统内共享私有格式数据或开放格式数据。当向外部系统共享开放格式数据的操作被触发时,第一数据管理系统100可以返回开放格式数据。
第一数据管理系统共享私有格式数据的具体实现可以参见图4所示实施例相关内容描述,下面将对系统内共享数据以及系统间共享开放格式数据进行介绍。
系统内共享数据可以通过多种方式实现。下面分别进行说明。
第一种方式为基于元数据私有的数据共享。该方式还可以按照共享粒度分为两类。一类是粗粒度的共享,通常是CU级别的改动,采用全量更新机制,并且执行写时复制(copy-on-write table)。也即在系统内部共享数据时复制元数据,不复制物理数据,只有在写时对CU数据进行全量拷贝。另一类是细粒度的共享,通常是多元组(tuple)级别的改动,采用增量更新,并且执行读时合并(merge-on-read),通常需要共享增量表(deltatable)。增量表中包括增量记录。在系统内部读共享数据时复制增量表并触发对增量记录的合并。
第二种方式为跨租户的私有表数据格式共享。通常采用授权和共享别名实现。其中,授权技术(如grant select)可以隔离多租户和用户对共享数据的权限,别名(如shareas synonyms)对统一级别(如数据库级、表级等)的共享数据做统一命名方便系统内多次共享。
系统间共享开放格式数据可以通过创建外部方式或通过逻辑元数据访问实现。下面分别进行说明。
第一种情况,数据管理系统如GaussDB或数据仓库DWS,可以通过如下方式创建外表,从而实现共享开放格式数据:
CREATE FOREIGN TABLE posts(…)SERVER x OPTIONS(FORMAT'ORC'FOLDERNAME'a-path')…
第二种情况,数据管理系统可以通过逻辑元数据访问,如Hive metastore(简称为HMS)或开放格式中自包含的元数据,实现共享开放格式数据。其中,数据管理系统可以通过逻辑元数据实现不同级别的数据共享。
具体地,数据管理系统可以通过如下语句实现访问catalog.schema.table:SELECT*FROM hr.emp,hms.sns.posts;通过如下语句实现访问schema.table:SELECT*FROMhr.emp,hms.posts;通过如下语句实现访问文件或对象路径:SELECT*FROM parquet.‘s3a://sns/posts.parquet’。
针对基于逻辑元数据访问开放格式数据的实现方式,下面以数据仓库跨引擎访问开源数据表格式进行示例说明。该示例中的引擎可以为Spark。该方法具体包括:
S1:计算服务的优化器对接元数据服务。
具体地,元数据服务包括Hive metastore或OBS元数据。针对存算分离(serverless)的系统,提供计算服务的计算节点(compute node,CN)在编译过程中直接读取Hive metastore的元数据,并读取OBS上的文件列表,然后在执行计划plan中打包上述元数据(包括OBS上的文件列表)。
其中,HMS中包括逻辑元数据,该逻辑元数据可以在生成执行计划前提前读取。
S2:计算服务对作业进行提交(commit)控制。
具体地,计算节点开始执行前创建临时输出目录,执行完成后通过loadPartition/loadTable将输出目录修改到Hive Metastore中。需要说明的是,由于数据仓库的查询不会重试,查询结果可以直接写入临时输出目录,若作业失败可以直接删除整个目录,因此,中间的执行过程可以不严格按照FileOutputCommitter逻辑执行。
基于本申请实施例提供的数据共享方法,本申请实施例还提供了一种如前述的第一数据管理系统100、第二数据管理系统200。下面将结合附图对本申请实施例提供的第一数据管理系统100、第二数据管理系统200进行介绍。
首先参见图1所示的第一数据管理系统100的结构示意图,该系统100包括:
通信模块102,用于接收第一查询语句,所述第一查询语句为基于第一查询语言的查询语句;
转换模块104,用于根据所述第一查询语句,通过所述第二数据管理系统200的软件开发套件,获得第二查询语句,所述第二查询语句为基于第二查询语言的查询语句;
访问模块106,用于根据所述第二查询语句,访问所述第二数据管理系统200的统一开放访问服务,获得所述第二数据管理系统200中的私有格式数据。
在一些可能的实现方式中,所述第一查询语言为结构化查询语言,所述第二查询语言为轻量级标记语言。
在一些可能的实现方式中,所述系统100还包括:
交互模块,用于用户呈现共享操作界面,所述共享操作界面支持系统内共享数据的操作、向外部系统共享开放格式数据的操作、被外部系统访问私有格式数据的操作;
所述通信模块102,还用于当所述被外部系统访问私有格式数据的操作被触发时,返回所述第一数据管理系统100的私有格式数据。
在一些可能的实现方式中,所述私有格式数据包括列存单元数据。
在一些可能的实现方式中,所述第一数据管理系统100和所述第二数据管理系统200为数据库、数据仓库、湖仓或大数据引擎、人工智能开发平台中的不同数据管理系统。
根据本申请实施例的第一数据管理系统100可对应于执行本申请实施例中描述的方法,并且第一数据管理系统100的各个模块/单元的上述和其它操作和/或功能分别为了实现图4所示实施例中的各个方法的相应流程,为了简洁,在此不再赘述。
接着参见图6所示的第二数据管理系统200的结构示意图,该系统200包括:
通信模块201,用于接收第二查询语句;
元数据读取模块203,用于根据所述第二查询语句,通过统一开放访问服务中的元数据接口读取逻辑元数据;
数据读取模块205,用于根据所述逻辑元数据,读取所述第二数据管理系统中的私有格式数据。
在一些可能的实现方式中,所述元数据读取模块203用于:
根据所述第二查询语句创建事务;
通过所述统一开放访问服务中的事务接口向全局事务管理获取所述事务的最新时间戳;
通过所述统一开放访问服务中的元数据接口读取所述最新时间戳对应的元数据。
在一些可能的实现方式中,所述元数据读取模块203具体用于:
反序列化所述第二查询语句,获得待执行的算子;
执行所述算子,并创建事务。
在一些可能的实现方式中,所述数据读取模块205具体用于:
根据所述逻辑元数据,通过抽象表格式,访问所述私有格式数据。
需要说明的是,图6所示实施例中第二数据管理系统200的模块在图1中未示出,图1和图6分别从不同维度对第二数据管理系统200进行模块划分,并不构成对本申请实施例的限制。
根据本申请实施例的第二数据管理系统200可对应于执行本申请实施例中描述的方法,并且第二数据管理系统200的各个模块/单元的上述和其它操作和/或功能分别为了实现图4所示实施例中的各个方法的相应流程,为了简洁,在此不再赘述。
本申请实施例还提供一种计算机集群。该计算机集群包括至少一台计算机,该至少一台计算机中的任一台计算机可以来自云环境或者边缘环境,也可以是终端设备。该计算机集群具体用于实现如图1所示实施例中第一数据管理系统100的功能。
图7提供了一种计算机集群的结构示意图,如图7所示,计算机集群70包括多台计算机700,计算机700包括总线701、处理器702、通信接口703和存储器704。处理器702、存储器704和通信接口703之间通过总线701通信。
总线701可以是外设部件互连标准(peripheral component interconnect,PCI)总线或扩展工业标准结构(extended industry standard architecture,EISA)总线等。总线可以分为地址总线、数据总线、控制总线等。为便于表示,图7中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
处理器702可以为中央处理器(central processing unit,CPU)、图形处理器(graphics processing unit,GPU)、微处理器(micro processor,MP)或者数字信号处理器(digital signal processor,DSP)等处理器中的任意一种或多种。
通信接口703用于与外部通信。例如,通信接口703用于接收第一查询语句,或者是向第二数据管理系统200发送第二查询语句等等。
存储器704可以包括易失性存储器(volatile memory),例如随机存取存储器(random access memory,RAM)。存储器704还可以包括非易失性存储器(non-volatilememory),例如只读存储器(read-only memory,ROM),快闪存储器,硬盘驱动器(hard diskdrive,HDD)或固态驱动器(solid state drive,SSD)。
存储器704中存储有计算机可读指令,处理器702执行该计算机可读指令,以使得计算机集群70执行前述数据共享方法中由第一数据管理系统100执行的步骤(或实现前述第一数据管理系统100的功能)。
具体地,在实现图1所示的第一数据管理系统100的实施例的情况下,且图1中所描述的第一数据管理系统100的各模块如通信模块102、转换模块104、访问模块106的功能为通过软件实现的情况下,执行图8中各模块的功能所需的软件或程序代码可以存储在计算机集群70中的至少一个存储器704中。至少一个处理器702执行存储器704中存储的程序代码,以使得计算机集群70执行前述数据共享方法。
本申请实施例还提供另一种计算机集群。该计算机集群包括至少一台计算机,该至少一台计算机中的任一台计算机可以来自云环境或者边缘环境,也可以是终端设备。该计算机集群具体用于实现如图6所示实施例中第二数据管理系统200的功能。
图8提供了一种计算机集群的结构示意图,如图8所示,计算机集群80包括多台计算机800,计算机800包括总线801、处理器802、通信接口803和存储器804。处理器802、存储器804和通信接口803之间通过总线801通信。
其中,总线801、处理器802、通信接口803和存储器804的相关实现可以参见图7所示实施例相关内容描述,在此不再赘述。
存储器804中存储有计算机可读指令,处理器802执行该计算机可读指令,以使得计算机集群80执行前述数据共享方法中由第二数据管理系统200执行的步骤(或实现前述第二数据管理系统200的功能)。
具体地,在实现图6所示的第二数据管理系统200的实施例的情况下,且图6中所描述的第二数据管理系统200的各模块如通信模块201、元数据读取模块203、数据读取模块205的功能为通过软件实现的情况下,执行图8中各模块的功能所需的软件或程序代码可以存储在计算机集群80中的至少一个存储器804中。至少一个处理器802执行存储器804中存储的程序代码,以使得计算机集群80执行前述数据共享方法。
本申请实施例还提供了一种计算机可读存储介质。所述计算机可读存储介质可以是计算机能够存储的任何可用介质或者是包含一个或多个可用介质的数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘)等。该计算机可读存储介质包括指令,所述指令指示计算机或计算机集群执行上述数据共享方法。
本申请实施例还提供了一种计算机程序产品。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机或数据中心进行传输。所述计算机程序产品可以为一个软件安装包,在需要使用前述数据共享方法的任一方法的情况下,可以下载该计算机程序产品并在计算机或计算机集群上执行该计算机程序产品。
上述各个附图对应的流程或结构的描述各有侧重,某个流程或结构中没有详述的部分,可以参见其他流程或结构的相关描述。
Claims (21)
1.一种数据共享方法,其特征在于,所述方法包括:
第一数据管理系统接收第一查询语句,所述第一查询语句为基于第一查询语言的查询语句;
所述第一数据管理系统根据所述第一查询语句,通过所述第二数据管理系统的软件开发套件,获得第二查询语句,所述第二查询语句为基于第二查询语言的查询语句;
所述第一数据管理系统根据所述第二查询语句,访问所述第二数据管理系统的统一开放访问服务,获得所述第二数据管理系统中的私有格式数据。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
所述第二数据管理系统根据所述第二查询语句,通过所述统一开放访问服务中的元数据接口读取逻辑元数据;
所述第二数据管理系统根据所述逻辑元数据,读取所述第二数据管理系统中的私有格式数据。
3.根据权利要求2所述的方法,其特征在于,所述第二数据管理系统根据所述第二查询语句,通过所述统一开放访问服务中的元数据接口读取逻辑元数据,包括:
所述第二数据管理系统根据所述第二查询语句创建事务;
所述第二数据管理系统通过所述统一开放访问服务中的事务接口向全局事务管理获取所述事务的最新时间戳;
所述第二数据管理系统通过所述统一开放访问服务中的元数据接口读取所述最新时间戳对应的元数据。
4.根据权利要求2所述的方法,其特征在于,所述第二数据管理系统根据所述第二查询语句创建事务,包括:
所述第二数据管理系统反序列化所述第二查询语句,获得待执行的算子;
所述第二数据管理系统执行所述算子,并创建事务。
5.根据权利要求1至4任一项所述的方法,其特征在于,所述第一查询语言为结构化查询语言,所述第二查询语言为轻量级标记语言。
6.根据权利要求1至5任一项所述的方法,其特征在于,所述方法还包括:
所述第一数据管理系统向用户呈现共享操作界面,所述共享操作界面支持系统内共享数据的操作、向外部系统共享开放格式数据的操作、被外部系统访问私有格式数据的操作;
当所述被外部系统访问私有格式数据的操作被触发时,所述第一数据管理系统返回所述第一数据管理系统的私有格式数据。
7.根据权利要求1至6任一项所述的方法,其特征在于,所述私有格式数据包括列存单元数据。
8.根据权利要求1至7任一项所述的方法,其特征在于,所述第一数据管理系统和所述第二数据管理系统为数据库、数据仓库、湖仓或大数据引擎、人工智能开发平台中的不同数据管理系统。
9.根据权利要求2至4任一项所述的方法,其特征在于,所述第二数据管理系统根据所述逻辑元数据,读取所述第二数据管理系统中的私有格式数据,包括:
所述第二数据管理系统根据所述逻辑元数据,通过抽象表格式,访问所述私有格式数据。
10.一种第一数据管理系统,其特征在于,所述系统包括:
通信模块,用于接收第一查询语句,所述第一查询语句为基于第一查询语言的查询语句;
转换模块,用于根据所述第一查询语句,通过所述第二数据管理系统的软件开发套件,获得第二查询语句,所述第二查询语句为基于第二查询语言的查询语句;
访问模块,用于根据所述第二查询语句,访问所述第二数据管理系统的统一开放访问服务,获得所述第二数据管理系统中的私有格式数据。
11.根据权利要求10所述的系统,其特征在于,所述第一查询语言为结构化查询语言,所述第二查询语言为轻量级标记语言。
12.根据权利要求10或11所述的系统,其特征在于,所述系统还包括:
交互模块,用于用户呈现共享操作界面,所述共享操作界面支持系统内共享数据的操作、向外部系统共享开放格式数据的操作、被外部系统访问私有格式数据的操作;
所述通信模块,还用于当所述被外部系统访问私有格式数据的操作被触发时,返回所述第一数据管理系统的私有格式数据。
13.根据权利要求10至12任一项所述的系统,其特征在于,所述私有格式数据包括列存单元数据。
14.根据权利要求10至13任一项所述的方法,其特征在于,所述第一数据管理系统和所述第二数据管理系统为数据库、数据仓库、湖仓或大数据引擎、人工智能开发平台中的不同数据管理系统。
15.一种第二数据管理系统,其特征在于,所述系统包括:
通信模块,用于接收第二查询语句;
元数据读取模块,用于根据所述第二查询语句,通过统一开放访问服务中的元数据接口读取逻辑元数据;
数据读取模块,用于根据所述逻辑元数据,读取所述第二数据管理系统中的私有格式数据。
16.根据权利要求15所述的系统,其特征在于,所述元数据读取模块用于:
根据所述第二查询语句创建事务;
通过所述统一开放访问服务中的事务接口向全局事务管理获取所述事务的最新时间戳;
通过所述统一开放访问服务中的元数据接口读取所述最新时间戳对应的元数据。
17.根据权利要求16所述的方法,其特征在于,所述元数据读取模块具体用于:
反序列化所述第二查询语句,获得待执行的算子;
执行所述算子,并创建事务。
18.根据权利要求15至17任一项所述的方法,其特征在于,所述数据读取模块具体用于:
根据所述逻辑元数据,通过抽象表格式,访问所述私有格式数据。
19.一种计算机集群,其特征在于,所述计算机集群包括至少一台计算机,所述至少一台计算机包括至少一个处理器和至少一个存储器,所述至少一个存储器中存储有计算机可读指令;所述至少一个处理器执行所述计算机可读指令,以使得所述计算机集群执行如权利要求1至9中任一项所述的方法中由第一数据管理系统或第二数据管理系统执行的步骤。
20.一种计算机可读存储介质,其特征在于,包括计算机可读指令;所述计算机可读指令用于实现权利要求1至9任一项所述的方法。
21.一种计算机程序产品,其特征在于,包括计算机可读指令;所述计算机可读指令用于实现权利要求1至9任一项所述的方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210705929.9A CN117312420A (zh) | 2022-06-21 | 2022-06-21 | 一种数据共享方法及相关系统 |
PCT/CN2023/081373 WO2023246188A1 (zh) | 2022-06-21 | 2023-03-14 | 一种数据共享方法及相关系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210705929.9A CN117312420A (zh) | 2022-06-21 | 2022-06-21 | 一种数据共享方法及相关系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117312420A true CN117312420A (zh) | 2023-12-29 |
Family
ID=89285326
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210705929.9A Pending CN117312420A (zh) | 2022-06-21 | 2022-06-21 | 一种数据共享方法及相关系统 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN117312420A (zh) |
WO (1) | WO2023246188A1 (zh) |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7818352B2 (en) * | 2007-11-26 | 2010-10-19 | Microsoft Corporation | Converting SPARQL queries to SQL queries |
CN105868204B (zh) * | 2015-01-21 | 2019-06-21 | 中移信息技术有限公司 | 一种转换Oracle脚本语言SQL的方法及装置 |
CN106570022B (zh) * | 2015-10-10 | 2020-06-23 | 菜鸟智能物流控股有限公司 | 一种跨数据源查询方法、装置及系统 |
CN110020006B (zh) * | 2017-07-27 | 2021-04-27 | 北京国双科技有限公司 | 查询语句的生成方法及相关设备 |
CN114116767A (zh) * | 2021-11-26 | 2022-03-01 | 北京人大金仓信息技术股份有限公司 | 数据库sql查询语句转换方法及装置 |
-
2022
- 2022-06-21 CN CN202210705929.9A patent/CN117312420A/zh active Pending
-
2023
- 2023-03-14 WO PCT/CN2023/081373 patent/WO2023246188A1/zh unknown
Also Published As
Publication number | Publication date |
---|---|
WO2023246188A1 (zh) | 2023-12-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10853338B2 (en) | Universal data pipeline | |
US10803197B1 (en) | Masking sensitive information in records of filtered accesses to unstructured data | |
US11907247B2 (en) | Metadata hub for metadata models of database objects | |
WO2019237333A1 (en) | Converting database language statements between dialects | |
US10452628B2 (en) | Data analysis schema and method of use in parallel processing of check methods | |
US10664508B1 (en) | Server-side filtering of unstructured data items at object storage services | |
CN113204571B (zh) | 涉及写入操作的sql执行方法、装置及存储介质 | |
CN112434015A (zh) | 数据存储的方法、装置、电子设备及介质 | |
US20230418808A1 (en) | Maintaining data separation for data consolidated from multiple data artifact instances | |
US11704114B2 (en) | Data structures for managing configuration versions of cloud-based applications | |
US8396858B2 (en) | Adding entries to an index based on use of the index | |
US11966732B2 (en) | Data structures for managing configuration versions of cloud-based applications | |
CN112912870A (zh) | 租户标识符的转换 | |
CN113987337A (zh) | 基于组件化动态编排的搜索方法、系统、设备及存储介质 | |
US11500833B2 (en) | Archiving accelerator-only database tables | |
CN117421302A (zh) | 一种数据处理方法及相关设备 | |
US20230418803A1 (en) | Techniques for integrating data for multple instances of a data artifact | |
KR101260436B1 (ko) | 구조화 질의어 자동 처리 시스템과 방법 및 그를 실행하기 위한 프로그램이 기록되는 컴퓨터로 읽을 수 있는 기록매체 | |
CN113343036B (zh) | 基于关键拓扑结构分析的数据血缘关系解析方法和系统 | |
US20230066110A1 (en) | Creating virtualized data assets using existing definitions of etl/elt jobs | |
CN117312420A (zh) | 一种数据共享方法及相关系统 | |
US11720553B2 (en) | Schema with methods specifying data rules, and method of use | |
EP4361834A1 (en) | Fine-grained decision on propagation of revalidation | |
US20240134842A1 (en) | Fine-grained decision on propagation of revalidation | |
US20210406259A1 (en) | Virtual archiving of database records |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication |