CN116860390A - 一种基于数据虚拟化的数据分组方法、装置、设备及介质 - Google Patents
一种基于数据虚拟化的数据分组方法、装置、设备及介质 Download PDFInfo
- Publication number
- CN116860390A CN116860390A CN202310792937.6A CN202310792937A CN116860390A CN 116860390 A CN116860390 A CN 116860390A CN 202310792937 A CN202310792937 A CN 202310792937A CN 116860390 A CN116860390 A CN 116860390A
- Authority
- CN
- China
- Prior art keywords
- data
- virtualization
- data table
- virtualization layer
- grouping
- 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 58
- 238000001914 filtration Methods 0.000 claims abstract description 16
- 238000005538 encapsulation Methods 0.000 claims description 23
- 238000003860 storage Methods 0.000 claims description 14
- 230000004044 response Effects 0.000 claims description 12
- 238000004891 communication Methods 0.000 claims description 4
- 239000003999 initiator Substances 0.000 claims description 3
- 239000000758 substrate Substances 0.000 claims 4
- 239000000523 sample Substances 0.000 claims 2
- 238000007726 management method Methods 0.000 description 24
- 230000008569 process Effects 0.000 description 13
- 238000013507 mapping Methods 0.000 description 12
- 238000010586 diagram Methods 0.000 description 8
- 230000006870 function Effects 0.000 description 7
- 230000008520 organization Effects 0.000 description 6
- 230000005540 biological transmission Effects 0.000 description 5
- 238000013506 data mapping Methods 0.000 description 5
- 230000010354 integration Effects 0.000 description 5
- 238000012545 processing Methods 0.000 description 5
- 238000006243 chemical reaction Methods 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 238000013475 authorization Methods 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 3
- 230000008859 change Effects 0.000 description 3
- 238000011084 recovery Methods 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 2
- 150000001875 compounds Chemical class 0.000 description 2
- 201000010099 disease Diseases 0.000 description 2
- 208000037265 diseases, disorders, signs and symptoms Diseases 0.000 description 2
- 238000009826 distribution Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000012423 maintenance Methods 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- OKTJSMMVPCPJKN-UHFFFAOYSA-N Carbon Chemical compound [C] OKTJSMMVPCPJKN-UHFFFAOYSA-N 0.000 description 1
- 230000002776 aggregation Effects 0.000 description 1
- 238000004220 aggregation Methods 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000004140 cleaning Methods 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000013075 data extraction Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 229910021389 graphene Inorganic materials 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000013215 result calculation Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- 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/21—Design, administration or maintenance of databases
- G06F16/215—Improving data quality; Data cleansing, e.g. de-duplication, removing invalid entries or correcting typographical errors
-
- 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/22—Indexing; Data structures therefor; Storage structures
- G06F16/2282—Tablespace storage structures; Management thereof
-
- 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
- G06F16/244—Grouping and aggregation
-
- 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/2458—Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
-
- 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/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
- G06F16/275—Synchronous replication
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Abstract
本申请提供一种基于数据虚拟化的数据分组方法、装置、设备及介质。所述方法应用于数据虚拟化连接网关,数据虚拟化网关与数据虚拟化层和数据源连接。所述方法包括:获取各数据虚拟化层对应的数据表分组规则和各数据源中的数据表的属性特征信息;数据表分组规则指示允许被数据虚拟化层访问的数据的属性特征;基于各数据虚拟化层对应的分组规则,分别对数据表进行分组,得到数据表分组;响应于接收到目标数据虚拟化层发起的元数据同步请求,发送给各数据源,以接收返回的元数据;基于目标数据虚拟化层对应的目标数据表分组包含的目标数据表,对元数据进行过滤,得到允许目标数据虚拟化层接收的元数据;将过滤后的元数据返回给目标数据虚拟化层。
Description
技术领域
本申请涉及大数据领域,尤其涉及一种基于数据虚拟化的数据分组方法、装置、设备及介质。
背景技术
在大数据领域中,针对多个不同数据源的数据进行统一管理时,可以使用数据虚拟化技术,将数据从其物理存储位置、格式和结构中解耦,以便在需要时能够以一种虚拟的方式访问和操作数据。
数据虚拟化技术可以通过创建一个抽象的数据虚拟化层,将来自多个数据源的不同格式和结构的数据整合在一起,提供一个统一的数据访问接口。这样,用户可以通过查询和操作这个抽象接口来获取数据。
发明内容
有鉴于此,本说明书提供以下方法、装置、设备及介质。
在本申请的第一方面,提供一种基于数据虚拟化的数据分组方法,所述方法应用于数据虚拟化连接网关,所述数据虚拟化网关与至少一个数据虚拟化层和数据源连接;所述方法包括:
获取各所述数据虚拟化层对应的数据表分组规则和各所述数据源提供的所述数据源中的数据表的属性特征信息;所述数据表分组规则指示允许被所述数据虚拟化层访问的数据的属性特征;
基于各所述数据虚拟化层对应的所述分组规则,分别对所述数据源中的数据表进行分组,得到与各所述数据虚拟化层分别对应的数据表分组;
响应于接收到所述至少一个数据虚拟化层中的目标数据虚拟化层发起的元数据同步请求,将所述元数据同步请求发送给各所述数据源,以接收各所述数据源返回的元数据;
基于所述目标数据虚拟化层对应的目标数据表分组包含的目标数据表,对所述元数据进行过滤,得到允许所述目标数据虚拟化层接收的元数据;
将过滤后的元数据返回给所述目标数据虚拟化层。
在本申请的第二方面,提供了一种基于数据虚拟化的数据分组装置,所述装置应用于数据虚拟化连接网关,所述数据虚拟化网关与至少一个数据虚拟化层和数据源连接;所述装置包括:
获取单元,用于获取各所述数据虚拟化层对应的数据表分组规则和各所述数据源提供的所述数据源中的数据表的属性特征信息;所述数据表分组规则指示允许被所述数据虚拟化层访问的数据的属性特征;
分组单元,用于基于各所述数据虚拟化层对应的所述分组规则,分别对所述数据源中的数据表进行分组,得到与各所述数据虚拟化层分别对应的数据表分组;
发送单元,用于响应于接收到所述至少一个数据虚拟化层中的目标数据虚拟化层发起的元数据同步请求,将所述元数据同步请求发送给各所述数据源,以接收各所述数据源返回的元数据;
过滤单元,用于基于所述目标数据虚拟化层对应的目标数据表分组包含的目标数据表,对所述元数据进行过滤,得到允许所述目标数据虚拟化层接收的元数据;
返回单元,用于将过滤后的元数据返回给所述目标数据虚拟化层。
在本申请的第三方面,提供了一种电子设备,包括通信接口、处理器、存储器和总线,所述通信接口、所述处理器和所述存储器之间通过总线相互连接;
所述存储器中存储机器可读指令,所述处理器通过调用所述机器可读指令,执行以下方法:
获取各所述数据虚拟化层对应的数据表分组规则和各所述数据源提供的所述数据源中的数据表的属性特征信息;所述数据表分组规则指示允许被所述数据虚拟化层访问的数据的属性特征;
基于各所述数据虚拟化层对应的所述分组规则,分别对所述数据源中的数据表进行分组,得到与各所述数据虚拟化层分别对应的数据表分组;
响应于接收到所述至少一个数据虚拟化层中的目标数据虚拟化层发起的元数据同步请求,将所述元数据同步请求发送给各所述数据源,以接收各所述数据源返回的元数据;
基于所述目标数据虚拟化层对应的目标数据表分组包含的目标数据表,对所述元数据进行过滤,得到允许所述目标数据虚拟化层接收的元数据;
将过滤后的元数据返回给所述目标数据虚拟化层。
在本申请的第四方面,提供了一种机器可读存储介质,所述机器可读存储介质存储有机器可读指令,所述机器可读指令在被处理器调用和执行时,实现以下方法:
获取各所述数据虚拟化层对应的数据表分组规则和各所述数据源提供的所述数据源中的数据表的属性特征信息;所述数据表分组规则指示允许被所述数据虚拟化层访问的数据的属性特征;
基于各所述数据虚拟化层对应的所述分组规则,分别对所述数据源中的数据表进行分组,得到与各所述数据虚拟化层分别对应的数据表分组;
响应于接收到所述至少一个数据虚拟化层中的目标数据虚拟化层发起的元数据同步请求,将所述元数据同步请求发送给各所述数据源,以接收各所述数据源返回的元数据;
基于所述目标数据虚拟化层对应的目标数据表分组包含的目标数据表,对所述元数据进行过滤,得到允许所述目标数据虚拟化层接收的元数据;
将过滤后的元数据返回给所述目标数据虚拟化层。
本说明书以上的实施方式,至少具有如下的有益效果:
本申请通过数据虚拟化网关实现数据表分组范围管理,基于数据表分组,实现按照分组进行元数据同步,实现对数据源中数据表发布范围的控制,同时数据虚拟化层能汇集到需要获取的数据表信息,实现对数据更灵活、安全的控制。
附图说明
图1是一示例性的实施例示出的一种数据虚拟化系统架构的示意图;
图2是一示例性的实施例示出的一种基于数据虚拟化的数据分组方法的流程图;
图3是一示例性的实施例示出的一种数据虚拟化连接网关的示意图;
图4是一示例性的实施例示出的一种基于数据虚拟化的数据分组装置所在电子设备的硬件结构图;
图5是一示例性的实施例示出的一种基于数据虚拟化的数据分组装置的框图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
需要说明的是:在其他实施例中并不一定按照本说明书示出和描述的顺序来执行相应方法的步骤。在一些其他实施例中,其方法所包括的步骤可以比本说明书所描述的更多或更少。此外,本说明书中所描述的单个步骤,在其他实施例中可能被分解为多个步骤进行描述;而本说明书中所描述的多个步骤,在其他实施例中也可能被合并为单个步骤进行描述。
为了使本技术领域的人员更好地理解本说明书实施例中的技术方案,下面先对本说明书实施例涉及的家具溯源的相关技术,进行简要说明。
数据虚拟化(Data Virtualization)是一种用于创建和管理虚拟数据视图的技术。它通过软件层面的抽象和整合,将多个数据源的数据集成到一个统一的数据访问接口中,使用户能够以一种虚拟的方式访问和操作数据,而不需要了解底层数据存储的细节。
异构数据源,是指具有不同结构、格式和类型的数据源。这些数据源可能包括关系型数据库、非关系型数据库、文件系统、Web服务、传感器等。
封装表(Virtual Tables)是数据虚拟化的一个关键概念,它是数据虚拟化网关在逻辑上定义的虚拟数据表。封装表是由数据虚拟化网关根据底层数据源的数据生成的,它们可以包含来自一个或多个底层数据库表的数据。封装表提供了一种统一的视图,将底层数据源的数据整合在一起,并以一种逻辑上一致的方式呈现给数据消费者。
虚拟表(Virtual Table):虚拟表是数据虚拟化中的另一个关键概念,它是基于查询语句从一个或多个数据源中动态生成的表。虚拟表不实际存储数据,而是在查询时根据需要从底层数据源中提取数据,并按照表的形式进行呈现。虚拟表的内容是实时生成的,与底层数据源的更新保持同步。用户可以像查询普通表一样查询虚拟表,而无需了解底层数据源的细节。虚拟表可以基于单个封装表或虚拟表的联合查询生成,可以对数据进行过滤、聚合和转换等操作,以满足用户的查询需求。
数据虚拟化网关:数据虚拟化网关是一种用于管理和控制数据虚拟化环境的中间件组件。它作为一个接入点,连接数据虚拟化层和底层数据源,并提供数据访问、查询和转换的功能。数据虚拟化网关充当了数据虚拟化系统中的代理,负责处理数据请求和响应。
请参见图1,图1是一示例性的实施例示出的一种数据虚拟化系统架构的示意图。
数据虚拟化系统架构可以包含3层:应用层,数据虚拟化层和源数据层。
其中,数据虚拟化层可以包括数据虚拟化平面和管理平面,二者相互结合执行全方位的查询、处理、集成和管理功能。
应用层主要是面向前端各种各样的数据查询访问应用,将用户的查询请求传递到数据虚拟化层。系统为数据消费者的查询请求提供多种访问接口,用于访问数据虚拟化系统,如某些数据消费者可以用JDBC/SQL接口访问,另一些数据消费者可以采用MDX(multi-dimensional expressions)接口或基于SOAP(simple object access protocol)接口访问相同的数据服务,对数据消费者而言可以根据自己确定的访问方式发起查询请求。
数据虚拟化层是整个数据虚拟化系统的核心,包括两个平面:数据虚拟化平面和管理平面。其中,数据虚拟化平面包含4个层次的内容,完成数据的抽象、元数据建模、数据源映射、查询驱动与响应等功能;管理平面进行系统配置、管理、监测、安全、数据检查与维护等工作。下面对数据虚拟化平面及管理平面分别进行介绍。
数据虚拟化平面可以包括查询响应层、数据服务层、元数据组织层和数据映射层。
查询响应层:该层针对用户的查询需求,主要任务是制定最佳的查询处理策略和性能优化措施。其中处理策略是数据虚拟化系统根据用户查询请求对目标数据的访问方式给出执行方案与流程;优化器是系统确定数据访问方式之后,对查询过程作出优化以提高查询效率。
数据服务层:数据虚拟化系统面向用户会创建各种数据服务。数据服务的最常用对象是数据视图或虚拟表。整体上看,数据虚拟化系统中会定义2种类型的表:即虚拟表和数据封装表。由于不同的数据源所有者会开放全部或部分的数据给虚拟化系统,这些开放数据可能是原始数据,更多的是加工后的数据。封装表对应于不同的数据源,实现对开放源数据的接口封装,并作为这些数据源的代理供虚拟化系统调用。在数据服务层进行数据视图/虚拟表的定义、认证和授权;数据服务的封装、发布与组合。视图/虚拟表的定义是建立在封装表或其他虚拟表之上,虚拟表之间可以进行组合与嵌套,虚拟表在定义之后可以作为一种数据服务发布出去。数据服务更多关注数据资源的获取与集成方式,而虚拟表的定义关注的是数据本身,因此数据虚拟化系统可以以虚拟表的方式呈现数据服务所需的底层数据。
元数据组织层:数据虚拟化系统不会存储数据源的物理数据,但是针对不同的数据源开放数据,需要对开放数据源的元数据进行组织存储与管理,并面向数据服务层作为其定义数据视图或虚拟表的基础。针对用户的查询请求,高性能的元数据组织、存储与快速查找是保证用户获取所需数据资源的关键。该层主要包括2个方面的内容:元数据的抽取、存储与元数据组织模型。
数据映射层:数据映射层实现虚拟表到数据源的映射,从而保证数据虚拟化平台向数据消费者交付正确的数据。在此应该理清虚拟表、映射与封装表三者之间的关系。虚拟表是建立在封装表基础之上,而封装表是以数据源为基础的。封装表与数据源之间是多对一的关系,根据一个数据源可以定义一个或多个封装表。定义虚拟表的过程也是定义映射的过程,在封装表基础上定义虚拟表。映射对于虚拟表而言相当于查询定义,包含虚拟表的结构(行、列选择;列转换;表名称改变;分组等)、数据如何被转换为虚拟表的内容等。如果没有映射,虚拟表就是一个没有内容的空表。因此,要保证正确的映射,必须正确分析封装表中数据间关系,保证从数据源到封装表再到虚拟表的定义是准确的。数据虚拟化系统中也允许少量虚拟表在起初不定义映射,它们是从数据消费者角度来定义的(自顶向下),因此定义时只关心数据消费需求而不考虑数据源表中数据类型、列间关系等,但是在后期必需执行映射的再定义。
总结来说,当用户发起一个查询请求,查询引擎确定查询策略并进行查询结果计算、优化及结果响应。若数据服务层没有预先定义该查询对应的虚拟表,则元数据组织层需根据系统存储的元数据对查询所需的相关元数据进行组织,生成对应的临时虚拟表。数据映射层实施相应虚拟表与封装表的映射,进而访问底层数据源。
管理平面的目标是通过配置、监测、管理控制等手段支撑整个虚拟化系统的安全、可靠、高效运行。通过对数据虚拟化系统的配置,完成生产、备份、故障切换等任务。数据虚拟化平台中的整合管理工具支持软件供应,对源数据访问的授权,与LDAP(light weightdirectory access protocol)的整合以及其他安全工具等。系统管理工具管理服务器会话、数据服务、元数据等。
针对数据虚拟化平面的4个层次,管理平面也要完成对应的管理功能。对于数据映射层而言,要实现每个应用所需数据的映射,管理层必须实现对封装表、源数据、源数据间关系的管理;在元数据组织层,管理环境要实施对元数据的清洗、一致性检测等任务,保证元数据缓存的高效性;在数据服务层,管理环境要完成对虚拟表或数据服务组合、更新过程的维护等,部署管理器完成对数据服务的扩展部署,确保其持续可用;针对查询响应层,控制器、监测器、管理器等共同作用保证整个查询过程的正确实施。
源数据层针对各个数据所有者提供的多源异构数据源进行统一的接口管理,实现数据虚拟化系统中各种不同数据源的访问细节对用户进行屏蔽。通过ODBC/JDBC,JSON,API等接口,实现源数据的获取和传输,最终完成用户所需数据资源的交付。
当前数据库或者大数据平台最小的管理单元是数据库实例或者项目空间,数据开发者在数据库实例中或者项目空间中设计数据表和存储数据,只需要有数据库实例或者项目空间的访问权限,都可以查看同个数据库实例或者项目空间内的所有表和对应的数据。在数据虚拟化场景中,数据虚拟化层的虚拟化平面会采集对接数据源的元数据,并提供查询响应。对原有数据库数据开发者而言,不希望同一个数据库实例或者项目空间内的所有表都被虚拟化平面采集。
在相关技术中,为了避免数据信息泄露,而将部分数据迁移到新的数据库或者项目空间中,独立开放授权,需要改造原有的业务系统;如果仅是复制数据,则又造成存储资源浪费,同时还要资源保障实时数据同步。
有鉴于此,本说明书旨在提出一种通过数据虚拟化连接网关,在对接数据源时,进行分组授权,实现对元数据的分组发布;并根据分组权限,实现数据表查询控制。
下面通过具体实施例,并结合具体的应用场景对本申请进行描述。
请参见图2,图2是一示例性的实施例示出的一种基于数据虚拟化的数据分组方法的流程图。
所述方法应用于数据虚拟化连接网关,所述数据虚拟化网关与至少一个数据虚拟化层和数据源连接;
数据虚拟化网关可以作为数据虚拟化系统中连接数据虚拟化个和数据源之间的网管,实现数据权限控制和SQL转换。
上述方法可以执行以下步骤:
步骤202:获取各所述数据虚拟化层对应的数据表分组规则和各所述数据源提供的所述数据源中的数据表的属性特征信息;所述数据表分组规则指示允许被所述数据虚拟化层访问的数据的属性特征。
数据虚拟化层开发人员可以在不同的数据虚拟化层可以定义不同的数据表分组规则。数据表分组规则可以将不同的数据表分到不同的分组中。属于不同的分组的数据表可以设定不同的访问权限。
数据虚拟化网关可以获取数据源提供的数据源中的数据表的属性特征信息。
数据表分组规则可以指示允许被数据虚拟化层访问的数据的属性特征。
结合数据表分组规则和数据表的属性特征信息,可以将数据表划分到不同的数据表分组中。
例如,可以根据能否被数据虚拟化层访问定义本地组和对外组。其中,对外组中的数据可以被数据虚拟化层访问,本地组中的数据不能被数据虚拟化层访问。
此外,还可以设定更详细的权限,例如设定某些分组的数据只能被具有特定权限的用户访问等。
对于如何定义不同的分组规则,本说明书不进行具体限定。
数据虚拟化连接网关连接到数据虚拟化层后,可以从数据虚拟化层中获取上述数据表分组范围。
数据虚拟化网关通过数据源的访问权限,连接到数据源后,可以获取到数据源中的数据表分组信息。
步骤204:基于各所述数据虚拟化层对应的所述分组规则,分别对所述数据源中的数据表进行分组,得到与各所述数据虚拟化层分别对应的数据表分组。
结合数据源中的数据表的属性特征信息,和数据虚拟化层对应的数据表分组规则的定义,即可以确定数据源中各数据表的分组划分。
确定为不能被访问的分组的数据表,其信息将不通过数据虚拟化层对外进行发布,也不能通过数据虚拟化层被访问。
数据化虚拟网关可以将确定可以被数据虚拟化层访问的数据表分组中的数据表的分组保存为数据虚拟化层对应的目标数据表分组。
步骤206:响应于接收到所述至少一个数据虚拟化层中的目标数据虚拟化层发起的元数据同步请求,将所述元数据同步请求发送给各所述数据源,以接收各所述数据源返回的元数据。
数据虚拟化系统通过数据虚拟化层对数据源中的数据进行管理。具体的,数据虚拟化层通过管理数据源的元数据,来实现对数据源的管理。
数据虚拟化层会向数据源发起元数据同步请求,以使元数据向其同步自身的元数据。元数据同步到数据虚拟化层,则对应的数据源上的数据向数据虚拟化层进行发布。数据虚拟化层可以构建相应的虚拟表,以访问元数据对应的数据表。
元数据同步请求可以通过数据虚拟化网关向数据源进行发送。
步骤208:基于所述目标数据虚拟化层对应的目标数据表分组包含的目标数据表,对所述元数据进行过滤,得到允许所述目标数据虚拟化层接收的元数据。
数据源接收到数据虚拟化层发送的元数据同步请求后,可以将数据源中所有数据表的元数据返回。
数据源返回的元数据经过数据虚拟化网关时,数据虚拟化网关可以对返回的元数据进行过滤。
对于不在数据虚拟化层对应的目标数据表分组中的数据表的元数据进行过滤,只保留在数据虚拟化层对应的目标数据表分组中的数据表的元数据,得到允许目标数据虚拟化层接收的元数据。
步骤210:将过滤后的元数据返回给所述目标数据虚拟化层。
数据虚拟化网关可以将进行过滤后的元数据返回到数据虚拟化层。
数据虚拟化层接收到经数据虚拟化网关过滤后的元数据后,可以根据元数据,建立虚拟表,与元数据对应的数据源中的数据表建立连接。
数据源中可以对外进行发布的数据即通过上述元数据实现对外发布。
用户可以通过虚拟化数据层中的虚拟表了解数据库中对外发布的数据表的信息,以使用户可以基于元数据针对上述对外发布的数据表进行数据查询。
上述实施例,通过数据虚拟化网关实现数据表分组范围管理,基于数据表分组,实现按照分组进行元数据同步,实现对数据源中数据表发布范围的控制,同时数据虚拟化层能汇集到需要获取的数据表信息,实现对数据更灵活、安全的控制。
在本说明书示出的一个示意性的实施例中,分组规则指示不同数据表分组分别对应的属性特征。
数据虚拟化层对应的数据表分组规则可以根据数据表的属性特征,来对数据表进行分组划分。
其中,数据表的属性特征信息可以包括数据源中的数据表的如下信息:数据结构信息,如数据表和列的名称、数据类型、长度、精度、是否为空等信息;数据定义信息,如数据表的创建语句、视图的定义、存储过程和函数的代码等信息;数据关系信息,如数据表之间的关联关系、外键约束、主键-外键关系等信息;数据访问权限信息,如数据表和列的访问权限、用户和角色的权限设置等信息;数据质量规则信息,如数据有效性规则、约束条件、验证规则等信息;数据源和数据提供者信息,如数据来源、数据提供者、数据提取和转换过程等信息;数据变更历史信息,如数据的创建、修改和删除的时间戳信息;数据备份和恢复信息,如数据备份策略、恢复点、恢复过程等信息;数据文档和注释信息,如数据表和列的说明、业务规则、数据字典等信息。
可以根据是否允许数据虚拟化层访问,将数据源中的数据表划分为两个数据表分组:允许数据虚拟化层访问的对外组和不允许数据虚拟化层访问的本地组。
可以将具有或不具有特定属性特征的数据表划分到同一数据表分组中,将具有不同属性特征的数据表划分到不同数据表分组中。
例如,可以将包含特定字段的数据表划分到一个数据表分组中。
比如当不想将姓名信息被数据虚拟化层访问的场景,可以将包含姓名字段的数据表划分到不允许数据虚拟化层访问的本地组中,而将不包含姓名字段的数据表划分到允许数据虚拟化层访问的对外组中。
又例如,也可以根据数据表的最晚数据修改时间对数据表进行分组划分。
比如可以将数据修改时间早于某个时间阈值的数据表划分到本地组中,而将数据修改时间不早于改时间阈值的数据表划分到对外组中。
除了将数据表根据能否被虚拟化层访问划分为本地组和对外组以外,还可以对对外组中的数据表进行进一步分组。数据表可以被划分到一个或多个主体组中。
例如,可以根据数据表中的数据相关的业务对数据表进行分组,将数据表分组为多个主体组。例如,主题组可以包括与医疗业务相关的医疗主题组、与人口业务相关的人口主题组、与教育业务相关的教育主题组等。
比如,可以将包含疾病字段的数据表划分到医疗主题组中,将包含课程字段的数据表划分到教育主题组中,而同时包含疾病字段和课程字段的数据表,则可以同时划分到医疗主题组和教育主题组中。
在本说明书示出的一个示意性的实施例中,数据化虚拟网关还可以对数据虚拟化网关发送到数据源的SQL查询语句进行过滤控制。
用户可以通过SQL查询语句对数据源中的数据发起数据查询请求。
SQL语句中可以包含待查询的目标数据表的信息,数据虚拟化网关可以通过判断目标表是否为可以被外部访问的数据表,即是否在数据虚拟化网关对应的目标数据表分组中,来判断SQL查询语句是否合法。
对于目标数据表不在目标数据表分组中的SQL语句,可以认为其为非法的查询语句。针对非法查询语句,数据虚拟化网关可以将其拦截,不将其发送给数据源,并向非法查询语句的发送者发送指示目标数据表不存在的信息。
对于目标数据表在目标数据表分组中的SQL语句,则可以认为其为合法的正常查询语句。针对正常查询语句,可以正常向数据源进行透传,以使其正常完成数据查询。
上述实施例,通过数据虚拟化网关实现数据表分组范围管理,基于数据表分组,按照分组进行SQL语句透传,实现对数据源中数据表查询权限的控制,实现对数据更灵活、安全的控制。
用户在使用SQL查询语句进行查询时,是通过数据虚拟化层的虚拟表;根据虚拟表与数据源上的封装表之间的映射关系,将SQL查询语句发送到对应的数据源上,针对封装表进行查询。
而本说明书中的数据虚拟化网关直接连接数据源,目标数据表分组是直接针对数据源中的底层数据表的,因此,对于SQL查询语句进行过滤时,可以先确定其针对的目标数据表对应的数据源上的底层表,通过判断上述底层表是否为上述目标数据表分组中的数据表,来确定是否要对其进行过滤。
在本说明书示出的一个示例性的实施例中,所述获取各所述数据虚拟化层对应的数据表分组规则和各所述数据源提供的所述数据源中的数据表的属性特征信息;所述数据表分组规则指示允许被所述数据虚拟化层访问的数据的属性特征,包括:从所述数据虚拟化层获取各所述数据虚拟化层对应的数据表分组规则和各所述数据源提供的所述数据源中的数据表的属性特征信息;所述数据表分组规则指示允许被所述数据虚拟化层访问的数据的属性特征。
数据虚拟化网关连接数据虚拟化时,可以从数据虚拟化层获取数据表分组范围的定义。
根据不同的业务需求,可以采用多种方式对数据表进行分组。
不同的数据表可以被划分到相同的分组中,也可以被划分到不同的分组中;
一张数据表可以被划分到一个分组中,也可以同时被划分到多个分组中,或者不被划分到任何分组中。
例如,可以直接根据数据表能否被数据虚拟化层访问,将数据表划分为可以被访问的对外组和无法被访问的本地组。
本地组的数据表既无法被数据虚拟化层访问,也不会发布到数据虚拟化层中。
也可以根据业务范围,将数据表划分为若干主题组。例如,主题组可以包括与人口数据相关的人口主题组,与医疗数据相关的医疗主题组,和教育数据相关的教育主题组等。
通常,主题组范围内的数据能被所述数据虚拟化层访问;而主题组范围外的数据不能让被所述数据虚拟化层访问。
除了直接根据从数据源获取的数据表的属性特征指定分组规则进行数据表分组外,还可以根据数据表中字段的值的取值特征指定分组规则,对数据表进行分组。
例如,在某些数据表中,可能存在一些包含敏感数据的字段,例如包含真实姓名、手机号等敏感信息的字段。但是,这些字段的字段名可能并不是直观的姓名、手机号,而是例如员工、账号、班次等,而这些字段名无法穷举,因此此时无法直接通过字段名判断该字段是否包含上述敏感数据,需要针对字段的值进行计算分析,才能判断该数据表是否为包含敏感数据字段的数据
在本说明示出的一个示意性的实施例中,上述敏感的字段的值为真实的姓名。分组规则可以指示数据表中至少一个字段的值为真实姓名的数据表划分到敏感的数据表分组中。
当数据虚拟化网关从数据虚拟化层获取到上述分组规则时,可以针对数据源中的数据表进行计算分析,判断数据源中的数据表是否存在字段的值为姓名的数据表。
具体的,可以对数据表的字段的值与姓名的取值特征进行比对判断,将字段中的值符合姓名的取值特征的比例超过预设的阈值的字段,确定为姓名字段。比如可以将阈值设定为80%,字段中的值超80%符合姓名的取值特征,则认为该字段为姓名字段。
对于如何将字段的值确定为姓名字段,可以通过该字段的值的字符数,以及是否符合姓和名的结构来进行判断。
例如,以一般汉字姓名为例,姓名由2至6个汉字构成,为提升准确率和计算效率,也可以只考虑常规情况,即姓名由2至3个汉字,或2至4个汉字构成情况。姓名包含姓和名两部分,并且姓总是在名的前面。其中,姓的取值是有规律的,通常只会在固定的取值范围中,可以通过和姓氏数据库比对确定。
因此,在确定字段的值符合由字符数条件后,可以将字段的值的第一个字符与姓氏数据库中的姓进行比对,确定该字段的值是否满足包含姓和名的结构。对于复姓的情况,也可以通过比对复姓的第一个字符的方式进行比对;或者对于第一个字符不是姓的字段的值,再将前两个字符,与姓氏数据库中的复姓进行进一步比对,来确定是否符合姓的特征。
当确定字段的值的字符数符合条件,并且符合姓和名的结构,可以确定该值为姓名,当字段中的各个值都确认完成,确定段中的值符合姓名的上述取值特征的比例超过预设的阈值时,即可以确定该字段为姓名字段。包含姓名字段的数据表,为符合上述分组规则的数据表,可以将其划分到上述敏感的数据表分组中。
以上实施例,通过计算分析数据表中是否存在字段的值为敏感的数据,例如姓名、手机号等,作为将包含该字段的数据表划分到敏感的数据表分组的依据,实现了无法直接通过字段名等可以直接获取到的数据特征属性来识别特定数据信息的分组划分,实现了更灵活地数据表权限控制。
此外,还可以针对不同的用户赋予不同的访问权限,形成不同的权限组。不同的权限组可以被允许访问不同的主题组中的数据。
例如,可以令权限组为普通的用户能够访问医疗主题组,而不能访问教育主题组和人口主题组;令权限组为管理的用户能够访问所有主题组等。
通常,各个主题组中的数据表中对应的元数据都可以同步到数据虚拟化层,各个主题组的数据在数据虚拟化层进行发布。但是仅有对应权限组的用户可以针对主题组中的数据表进行访问和查询。
当用户向数据源发起SQL查询请求时,数据虚拟化网关可以基于用户所在的权限组,确定该用户对应的目标数据表分组。该用户对应的目标数据表分组的范围即为该用户所在的权限组所能访问的主题组范围内的数据表。
例如,在一实施例中,某用户发起查询请求中,包含4条指向某数据源中的数据表的SQL查询语句,其中4条SQL查询语句指向如下:SQL查询语句1指向数据表A、SQL查询语句2指向数据表B、SQL查询语句3指向数据表C、SQL语句查询4指向数据表D;
其中,数据表A、数据表B和数据表C均为该数据源中的数据表,数据表D不存在;数据表A属于本地组,数据表B属于医疗主题组,数据表C属于教育主题组;该用户所在的权限组能够访问医疗主题组,不能访问教育主题组。
当数据虚拟化网关接收到上述SQL查询请求时,可以分别针对4条SQL查询语句进行分析。可知,该用户发起的4条SQL查询语句指向的数据表中,只有SQL查询语句2指向的数据表B可以被其合法访问。因此,数据虚拟化网关可以将SQL查询请求中的SQL查询语句2进行透传,发送到上述数据源,已完成其对数据表B的查询;而SQL查询语句1、SQL查询语句2和SQL语句3都会被过滤,不会发送给数据源,并且,数据虚拟化网关可以向上述用户返回数据表A、数据表C和数据表D不存在的信息。
针对不存在的数据表B,未发布的数据表A和无权限访问的数据表D,用户得到的返回信息均为数据表不存在,因此,使用上述SQL查询语句过滤方法可以组织不合法的查询请求,并且不合法的查询请求发起者也无法通过返回信息了解数据源中是否存在目标数据表。
以上实施例,通过数据虚拟化网关实现数据表分组范围管理,基于数据表分组,实现按照分组进行元数据同步,实现对数据源中数据表发布范围的控制,同时数据虚拟化层能汇集到需要获取的数据表信息,实现对数据更灵活、安全的控制。
在本说明示出的一个示例性的实施例中,所述数据虚拟化连接网关连接多个数据源和多个数据虚拟化层。
一个数据虚拟化网关可以分别连接多个数据源和多个数据虚拟化层。针对不同的数据源和不同的数据虚拟化层,数据虚拟化网关可以分别维护不同的目标数据表分组,以实现针对不同数据虚拟化层和不同数据源的分组化权限管理。
如图3所示,图3是一示例性的实施例示出的一种数据虚拟化连接网关的示意图;
数据虚拟化网关1连接作为数据源的关系型数据库,并同时连接数据虚拟化层1和数据虚拟化层2;数据虚拟化网关2则连接作为数据源的大数据引擎,并同时连接数据虚拟化层1和数据虚拟化层2。
数据虚拟化网关1和数据虚拟化网关2能同时针对数据虚拟化层1和数据虚拟化层2实现本说明中的访问控制。
以下,结合一个实施例综合描述本说明书的方案。
在一数据虚拟化系统中,数据虚拟化层通过数据虚拟化网关连接到数据源。
数据虚拟化网关从数据虚拟化网关获取数据表分组范围,并依据数据表分组范围,将数据源中的数据表分别划分到对应的数据表分组中;
其中,数据表分组可以根据能否被数据虚拟化层访问定义本地组和对外组,对外组中的数据可以被数据虚拟化层访问,本地组中的数据不能被数据虚拟化层访问。
此外,数据源中的数据表还能根据相关业务划分若干不同的主题组;不同权限的用户可以访问不同主题组中的数据。
通常,对外组中的数据和各主题组中的数据,都可以向外发布。
具体的,数据虚拟化层发起针对数据源的元数据同步请求时,数据虚拟化网关可以将元数据同步请求发送给数据源,并在数据源返回元数据时进行元数据过滤,仅将对外组和各主题组中的数据表的元数据返回到数据虚拟化层,实现这些表的发布。
当用户通过数据虚拟化层下发SQL查询请求时,数据虚拟化网关可以解析SQL查询请求,基于所述SQL查询请求对应的封装表的映射关系,查询请求中各个SQL查询语句针对的数据源上的目标数据表,只透传针对该用户所在的权限组能访问的主题组中的数据表的SQL语句,并向该用户返回其他目标数据表不存在的信息。
以上实施例,通过数据虚拟化网关实现数据表分组范围管理,基于数据表分组,实现按照分组进行元数据同步,实现对数据源中数据表发布范围的控制;并同时,按照分组进行SQL语句透传,实现对数据源中数据表查询权限的控制;实现了对数据更灵活、安全的权限控制。
请参见图4,图4是一示例性的实施例示出的一种基于数据虚拟化的数据分组装置所在电子设备的硬件结构图。在硬件层面,该设备包括处理器402、内部总线404、网络接口406、内存408以及非易失性存储器410,当然还可能包括其他业务所需要的硬件。本说明书一个或多个实施例可以基于软件方式来实现,比如由处理器402从非易失性存储器410中读取对应的计算机程序到内存408中然后运行。当然,除了软件实现方式之外,本说明书一个或多个实施例并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻辑单元,也可以是硬件或逻辑器件。
请参见图5,图5是一示例性的实施例示出的一种基于数据虚拟化的数据分组装置的框图。
上述基于数据虚拟化的数据分组装置可以包括:
获取单元510,用于获取各所述数据虚拟化层对应的数据表分组规则和各所述数据源提供的所述数据源中的数据表的属性特征信息;所述数据表分组规则指示允许被所述数据虚拟化层访问的数据的属性特征;
分组单元520,用于基于各所述数据虚拟化层对应的所述分组规则,分别对所述数据源中的数据表进行分组,得到与各所述数据虚拟化层分别对应的数据表分组;
发送单元530,用于响应于接收到所述至少一个数据虚拟化层中的目标数据虚拟化层发起的元数据同步请求,将所述元数据同步请求发送给各所述数据源,以接收各所述数据源返回的元数据;
过滤单元540,用于基于所述目标数据虚拟化层对应的目标数据表分组包含的目标数据表,对所述元数据进行过滤,得到允许所述目标数据虚拟化层接收的元数据;
返回单元550,用于将过滤后的元数据返回给所述目标数据虚拟化层。
在一实施例中,所述分组规则指示不同数据表分组分别对应的属性特征;
所述分组单元520,具体用于基于所述数据库中的数据表的属性特征信息,以及所述分组规则,分别对所述数据源中的数据表进行分组,得到与各所述数据虚拟化层分别对应的数据表分组。
在一实施例中,所述获取单元510,具体用于分别从各所述数据虚拟化层获取各所述数据虚拟化层对应的数据表分组规则。
在一实施例中,所述数据表分组规则根据数据表是否允许被所述数据虚拟化层访问将数据表划分为本地组和对外组;
其中,所述本地组范围内的数据表无法被所述数据虚拟化层访问;
所述对外组范围内的数据表能被所述数据虚拟化层访问。
在一实施例中,所述数据表分组规则根据数据表业务关系将数据表划分为多个主题组;
其中,主题组范围内的数据能被所述数据虚拟化层访问;
主题组范围外的数据不能让被所述数据虚拟化层访问。
一实施例中,所述分组规则包括指示不同数据表分组中的数据表分别对应的至少一个字段的值是否为真实姓名;
所述分组单元520,具体用于针对所述数据源中的各数据表,分别针对所述数据表的各个字段的值进行计算,判断其是否符合真实姓名的字符数且包含姓和名的结构;
如果所述数据表中存在目标字段,该字段的值符合真实姓名的字符数且包含姓和名的结构的比例超过预设的阈值,则确定所述目标字段的值为真实姓名,将所述数据表划分到所述数据表分组中。
在一实施例中,所述装置还包括:
响应单元560,用于响应于接到所述数据虚拟化网关发起的针对所述数据源的SQL查询请求,确定所述SQL查询请求对应的目标数据表;
确定所述目标数据表是否在能被所述数据虚拟化层访问的目标数据表分组中;
如果所述目标数据表在所述目标数据表分组中,向所述数据源透传所述SQL查询请求;
如果所述目标数据表不在所述目标数据表分组中,向所述数据虚拟化层返回指示所述目标数据表不存在的信息。
在一实施例中,所述确定所述SQL查询请求对应的目标数据表,包括:
基于所述SQL查询请求对应的封装表,确定所述SQL请求对应的目标数据表。
在一实施例中,所述装置还包括:
权限单元570,用于确定所述SQL查询请求的发起者对应的权限组,以及所述权限组能访问的主题组的范围;
将所述权限组能访问的主题组的范围内的主题组确定为目标数据表分组。
在一实施例中,所述数据虚拟化连接网关连接多个数据源和多个数据虚拟化层。
上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例只是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本说明书方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。
在一个典型的配置中,计算机包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带、磁盘存储、量子存储器、基于石墨烯的存储介质或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、家具或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、家具或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、家具或者设备中还存在另外的相同要素。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
在本说明书一个或多个实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书一个或多个实施例。在本说明书一个或多个实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本说明书一个或多个实施例可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书一个或多个实施例范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
以上所述仅为本说明书一个或多个实施例的较佳实施例而已,并不用以限制本说明书一个或多个实施例,凡在本说明书一个或多个实施例的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本说明书一个或多个实施例保护的范围之内。
Claims (10)
1.一种基于数据虚拟化的数据分组方法,应用于数据虚拟化连接网关,所述数据虚拟化网关与至少一个数据虚拟化层和数据源连接;其特征在于,所述方法包括:
获取各所述数据虚拟化层对应的数据表分组规则和各所述数据源提供的所述数据源中的数据表的属性特征信息;所述数据表分组规则指示允许被所述数据虚拟化层访问的数据的属性特征;
基于各所述数据虚拟化层对应的所述分组规则,分别对所述数据源中的数据表进行分组,得到与各所述数据虚拟化层分别对应的数据表分组;
响应于接收到所述至少一个数据虚拟化层中的目标数据虚拟化层发起的元数据同步请求,将所述元数据同步请求发送给各所述数据源,以接收各所述数据源返回的元数据;
基于所述目标数据虚拟化层对应的目标数据表分组包含的目标数据表,对所述元数据进行过滤,得到允许所述目标数据虚拟化层接收的元数据;
将过滤后的元数据返回给所述目标数据虚拟化层。
2.根据权利要求1所述的方法,其特征在于,
所述数据表分组规则根据数据表是否允许被所述数据虚拟化层访问将数据表划分为本地组和对外组;
其中,所述本地组范围内的数据表无法被所述数据虚拟化层访问;
所述对外组范围内的数据表能被所述数据虚拟化层访问。
3.根据权利要求1所述的方法,其特征在于,
所述数据表分组规则根据数据表业务关系将数据表划分为多个主题组;
其中,主题组范围内的数据能被所述数据虚拟化层访问;
主题组范围外的数据不能让被所述数据虚拟化层访问。
4.根据权利要求1所述的方法,其特征在于,
所述分组规则包括指示不同数据表分组中的数据表分别对应的至少一个字段的值是否为真实姓名;
所述基于各所述数据虚拟化层对应的所述分组规则,分别对所述数据源中的数据表进行分组,得到与各所述数据虚拟化层分别对应的数据表分组,包括:
针对所述数据源中的各数据表,分别针对所述数据表的各个字段的值进行计算,判断其是否符合真实姓名的字符数且包含姓和名的结构;
如果所述数据表中存在目标字段,该字段的值符合真实姓名的字符数且包含姓和名的结构的比例超过预设的阈值,则确定所述目标字段的值为真实姓名,将所述数据表划分到所述数据表分组中。
5.根据权利要求1所述的方法,其特征在于,
所述方法还包括:
响应于接到所述数据虚拟化网关发起的针对所述数据源的SQL查询请求,确定所述SQL查询请求对应的目标数据表;
确定所述目标数据表是否在能被所述数据虚拟化层访问的目标数据表分组中;
如果所述目标数据表在所述目标数据表分组中,向所述数据源透传所述SQL查询请求;
如果所述目标数据表不在所述目标数据表分组中,向所述数据虚拟化层返回指示所述目标数据表不存在的信息。
6.根据权利要求5所述的方法,其特征在于,
所述确定所述SQL查询请求对应的目标数据表,包括:
基于所述SQL查询请求对应的封装表,确定所述SQL请求对应的目标数据表。
7.根据权利要求5所述的方法,其特征在于,
所述方法还包括:
确定所述SQL查询请求的发起者对应的权限组,以及所述权限组能访问的主题组的范围;
将所述权限组能访问的主题组的范围内的主题组确定为目标数据表分组。
8.一种基于数据虚拟化的数据分组装置,应用于数据虚拟化网关,所述数据虚拟化网关与至少一个数据虚拟化层和数据源连接;其特征在于,所述装置包括:
获取单元,用于获取各所述数据虚拟化层对应的数据表分组规则和各所述数据源提供的所述数据源中的数据表的属性特征信息;所述数据表分组规则指示允许被所述数据虚拟化层访问的数据的属性特征;
分组单元,用于基于各所述数据虚拟化层对应的所述分组规则,分别对所述数据源中的数据表进行分组,得到与各所述数据虚拟化层分别对应的数据表分组;
发送单元,用于响应于接收到所述至少一个数据虚拟化层中的目标数据虚拟化层发起的元数据同步请求,将所述元数据同步请求发送给各所述数据源,以接收各所述数据源返回的元数据;
过滤单元,用于基于所述目标数据虚拟化层对应的目标数据表分组包含的目标数据表,对所述元数据进行过滤,得到允许所述目标数据虚拟化层接收的元数据;
返回单元,用于将过滤后的元数据返回给所述目标数据虚拟化层。
9.一种电子设备,其特征在于,包括通信接口、处理器、存储器和总线,所述通信接口、所述处理器和所述存储器之间通过总线相互连接;
所述存储器中存储机器可读指令,所述处理器通过调用所述机器可读指令,执行权利要求1-7任一项所述的方法。
10.一种机器可读存储介质,其特征在于,所述机器可读存储介质存储有机器可读指令,所述机器可读指令在被处理器调用和执行时,实现权利要求1-7任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310792937.6A CN116860390A (zh) | 2023-06-29 | 2023-06-29 | 一种基于数据虚拟化的数据分组方法、装置、设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310792937.6A CN116860390A (zh) | 2023-06-29 | 2023-06-29 | 一种基于数据虚拟化的数据分组方法、装置、设备及介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116860390A true CN116860390A (zh) | 2023-10-10 |
Family
ID=88220953
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310792937.6A Pending CN116860390A (zh) | 2023-06-29 | 2023-06-29 | 一种基于数据虚拟化的数据分组方法、装置、设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116860390A (zh) |
-
2023
- 2023-06-29 CN CN202310792937.6A patent/CN116860390A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107463632B (zh) | 一种分布式NewSQL数据库系统和数据查询方法 | |
US20220067025A1 (en) | Ordering transaction requests in a distributed database according to an independently assigned sequence | |
TWI706259B (zh) | 資料的查詢方法及查詢裝置 | |
EP2608075B1 (en) | Dynamic hierarchical bloom filters for network data routing | |
US9418101B2 (en) | Query optimization | |
JP6434154B2 (ja) | トランザクションアクセスパターンに基づいた結合関係の識別 | |
US9507807B1 (en) | Meta file system for big data | |
US10970300B2 (en) | Supporting multi-tenancy in a federated data management system | |
EP2778972B1 (en) | Shared cache used to provide zero copy memory mapped database | |
US9201700B2 (en) | Provisioning computer resources on a network | |
US20170212931A1 (en) | Searching relational and graph databases | |
CN101566986A (zh) | 联机事务处理中的数据处理方法和装置 | |
US20190311051A1 (en) | Virtual columns to expose row specific details for query execution in column store databases | |
CN103455335A (zh) | 一种多级分类的Web实现方法 | |
EP3311313B1 (en) | Network server, methods and computer program product for providing data as a service (daas) in real-time | |
CN111966692A (zh) | 针对数据仓库的数据处理方法、介质、装置和计算设备 | |
Singh et al. | Big data-a review | |
CN113609141B (zh) | 一种基于api拼接的无侵入式跨库数据融合方法 | |
WO2016011677A1 (en) | Local database cache | |
CN113934713A (zh) | 一种订单数据索引方法、系统、计算机设备以及存储介质 | |
US9275059B1 (en) | Genome big data indexing | |
CN116860390A (zh) | 一种基于数据虚拟化的数据分组方法、装置、设备及介质 | |
CN115905313A (zh) | 一种MySQL大表关联查询系统及方法 | |
KR101566884B1 (ko) | 비정형 데이터 관리를 위한 분산 저장 시스템 | |
Ding et al. | RDB-KV: A cloud database framework for managing massive heterogeneous sensor stream data |
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 |