CN111079172B - 一种数据子集提取方法 - Google Patents
一种数据子集提取方法 Download PDFInfo
- Publication number
- CN111079172B CN111079172B CN201911102793.7A CN201911102793A CN111079172B CN 111079172 B CN111079172 B CN 111079172B CN 201911102793 A CN201911102793 A CN 201911102793A CN 111079172 B CN111079172 B CN 111079172B
- Authority
- CN
- China
- Prior art keywords
- data
- data table
- downstream
- upstream
- subset
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
- G06F21/6227—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database where protection concerns the structure of data, e.g. records, types, queries
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
- G06F21/6245—Protecting personal data, e.g. for financial or medical purposes
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Medical Informatics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明实施例公开了一种数据子集提取方法,所述方法包括:根据输入的过滤条件,从满足过滤条件的数据表处提取数据至数据子集;采用递归算法通过逆向分解顺次提取上游数据表中具有引用关系的上游数据至数据子集;采用递归算法通过关联调度顺次提取下游数据表中具有被引用关系的下游数据至数据子集。本发明实施例提供的数据子集提取方法能够快速、高效地提取测试和分析所需的数据子集;能够提升数据子集的获取效率,降低对数据库的影响;利于提升查询效率,降低人员和硬件成本,有效地提升数据脱敏工具的可用性。
Description
技术领域
本发明实施例涉及数据安全技术领域,具体涉及一种数据子集提取方法。
背景技术
数据脱敏(Data Masking)是数据安全的一个子领域,提取数据子集是数据脱敏的一个子功能,它的目的是从数据全集中获取相关的部分数据,即数据子集。例如,从客户关系管理系统中获取客户性别为男性、年龄大于的30岁的客户信息及其与这些客户相关的交易、活动数据等。
在现有的数据脱敏产品中,主要采用SQL的过滤语句和关联方法提取客户信息的数据子集,这种方法当数据全集模型系统比较复杂,数据量比较大时,性能非常慢。
例如:客户关系管理系统包括部门表、客户表、客户明细表以及若干级子表,他们的关联关系和表里的数据量如图1所示。采用SQL的过滤语句和关联方法提取客户信息的数据子集缺陷主要表现为:
1)在获取部门表中客户的关联信息时,数据库中执行的关联200*2亿;
2)在获取客户明细表中该客户的关联信息时,数据库中执行的关联是2亿*10亿。假设还有客户表明细子表的话,数据库中执行的关联将是2亿*10亿*X亿(假设客户明细子表代表的数据为X亿)。
3)假如关联深度继续加深,关联的次数将为:2亿*10亿*X亿*Y亿
由于传统获取数据子集的方式存在着上述多次数据表关联,存在即使数据库资源被耗尽,最终也可能无法获取需要的数据子集的问题。
在大数据时代,数据全集模型越来越复杂,数据量越来越大,客户对数据安全诉求越来越强,对获取数据子集的需求越来越强。
发明内容
为此,本发明实施例提供一种数据子集提取方法,以解决现有技术中由于获取数据子集的方式存在着由于多次数据表关联而导致的无法获取需要的数据的问题。
为了实现上述目的,本发明实施例提供如下技术方案:
根据本发明实施例的一种数据子集提取方法,所述方法包括:
根据输入的过滤条件,从满足过滤条件的数据表处提取数据至数据子集;
采用递归算法通过逆向分解顺次提取上游数据表中具有引用关系的上游数据至数据子集;
采用递归算法通过关联调度顺次提取下游数据表中具有被引用关系的下游数据至数据子集。
进一步地,所述采用递归算法通过逆向分解顺次提取具有引用关系的上游数据至数据子集,具体包括,
采用递归算法通过逆向分解顺次执行:
S201将所述上游数据表作为当前数据表,判断所述当前数据表是否引用上游数据表:
如果当前数据表引用上游数据表,则获取当前数据表与上游数据表的上游关联条件,根据所述上游关联条件生成当前数据表的上游索引,获取当前数据表的上游数据表,根据当前数据表的上游索引查询上游数据表,获得上游数据,提取上游数据至数据子集,执行S201;
如果当前数据表没有引用上游数据表,则递归算法结束。
进一步地,所述采用递归算法通过关联调度顺次提取具有被引用关系的下游数据至数据子集,具体包括,
采用递归算法通过关联调度顺次执行:
S301将所述下游数据表作为当前数据表,判断所述当前数据表是否被下游数据表引用:
如果当前数据表被下游数据表引用,则获取当前数据表与下游数据表的下游关联条件,根据所述下游关联条件生成下游索引,获取所述当前数据表的下游数据表,根据所述当前数据表的下游索引查询下游数据表,获得下游数据,将所述下游数据提取至数据子集,执行S301;
如果当前数据表没有被下游数据表引用,则递归算法结束。
进一步地,所述方法还包括根据所述数据表的引用关系,获得上游关联条件,根据所述上游关联条件索引上游数据表,获取上游数据的步骤:
根据所述数据表的引用关系,获取数据表的上游关联条件;
根据上游关联条件生成上游索引,
获取所述数据表的上游数据表;
根据所述数据表的上游索引查询上游数据表,
将查询到的上游数据提取至数据子集。
进一步地,所述方法还包括根据数据表的被引用关系,获得下游关联条件,根据所述下游关联条件索引下游数据表,获得下游数据的步骤:
根据数据表的被引用关系,获取所述数据表的下游关联条件;
根据所述下游关联条件生成下游索引,
获取数据表的下游数据表;
根据所述数据表的下游索引查询下游数据表;
获得下游数据提取至数据子集。
本发明实施例具有如下优点:
1、本发明实施例提供的数据子集提取方法应用于数据脱敏和数据归档产品中,能够快速、高效地提取测试和分析所需的数据子集;
2、本发明实施例提供的数据子集提取方法能够提升数据子集的获取效率,降低对数据库的影响;
3、本发明实施例提供的数据子集提取方法利于提升查询效率,降低人员和硬件成本,有效的提升数据脱敏工具的可用性。
附图说明
为了更清楚地说明本发明的实施方式或现有技术中的技术方案,下面将对实施方式或现有技术描述中所需要使用的附图作简单地介绍。显而易见地,下面描述中的附图仅仅是示例性的,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图引伸获得其它的实施附图。
本说明书所绘示的结构、比例、大小等,均仅用以配合说明书所揭示的内容,以供熟悉此技术的人士了解与阅读,并非用以限定本发明可实施的限定条件,故不具技术上的实质意义,任何结构的修饰、比例关系的改变或大小的调整,在不影响本发明所能产生的功效及所能达成的目的下,均应仍落在本发明所揭示的技术内容能涵盖的范围内。
图1为现有技术提供的客户关系管理系统的数据表关联关系示意图;
图2为本发明实施例1提供的数据子集提取方法流程图;
图3为本发明实施例1提供的数据子集提取方法提取上游数据的递归算法流程图;
图4为本发明实施例1提供的数据子集提取方法提取下游数据的递归算法流程图。
具体实施方式
以下由特定的具体实施例说明本发明的实施方式,熟悉此技术的人士可由本说明书所揭露的内容轻易地了解本发明的其他优点及功效,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在本文中,术语“上游”是指当前数据表/数据的上一级;“下游”是指当前数据表/数据的下一级。
实施例1
本发明实施例1提出一种数据子集提取方法,所述方法根据用户输入的过滤条件,从满足过滤条件的数据表处提取数据至数据子集;采用递归算法通过逆向分解顺次提取上游数据表中具有引用关系的上游数据至数据子集;采用递归算法通过关联调度顺次提取下游数据表中具有被引用关系的下游数据至数据子集。
本发明实施例1提出所述数据子集提取方法具体执行步骤如下:
S101用户输入的过滤条件;
S102判断数据表是否满足过滤条件;
S103从满足过滤条件的初始数据表处提取数据,将所述数据添加至数据子集;
将初始数据表作为当前数据表;
获取所述当前数据表的上游关联条件和下游关联条件;
根据上游关联条件生成当前数据表的上游索引,根据下游关联条件生成当前数据表的下游索引,
获取当前数据表的上游数据表和下游数据表;
根据所述数据表的上游索引查询上游数据表,
将查询到的上游数据提取至数据子集。
S104如果所述上游数据表还引用其他数据表,则采用递归算法通过逆向分解顺次执行以下步骤:
S201将所述上游数据表作为当前数据表,判断所述当前数据表是否引用上游数据表:
如果当前数据表引用上游数据表,则获取当前数据表与上游数据表的上游关联条件,根据所述上游关联条件生成当前数据表的上游索引,根据当前数据表的上游索引查询上游数据表,获得上游数据,将所述上游数据添加至数据子集;执行S201;
如果当前数据表没有上游数据表,则结束递归算法,执行以下步骤:
将初始数据表作为当前数据表;
获取当前数据表的下游数据表;
根据下游索引查询下游数据表;
根据当前数据表的下游索引查询下游数据表,获得下游数据,将所述下游数据添加至数据子集;
S105如果所述下游数据表还被其他数据表引用,则采用递归算法通过关联调度顺次执行:
S301将所述下游数据表作为当前数据表,所述下游数据作为当前数据,判断所述当前数据表是否有下游数据表:
如果当前数据表有下游数据表,则获取当前数据表与下游数据表的下游关联条件,根据所述下游关联条件生成下游索引,获取所述当前数据表的下游数据表,根据所述当前数据表的下游索引查询下游数据表,获得下游数据,将所述下游数据提取至数据子集,执行S301;
S106如果当前数据表没有下游数据表,则提取数据子集,完成自动生成数据子集。
本发明实施例1的数据子集提取方法依赖数据表的引用和被引用关系,通过递归算法采用逆向分解和关联调度进行自动查询,快速提取数据子集。
如上所述,通过本发明实施例1提出的数据子集提取方法,能够快速高效地提取测试和分析所需的数据子集;由逆向分解算法驱动的调度和关联提升了数据子集的获取效率,降低对数据库的影响。
本发明实施例1提出的数据子集提取方法能够提升检索效率,降低人员和硬件成本,有效地提升数据脱敏工具的可用性。
实施例2
本发明实施例2提出一种数据子集提取方法,所述方法应用于银行客户关系管理系统中,所述银行客户关系管理系统包括部门表(Dept)、客户表(Customer)、客户明细表(Customer_detail)以及若干级子表(xxx);具体步骤包括:
从客户表中提取客户数据,添加至客户数据子集;根据客户表与上游部门表的关联条件和下游客户明细表的关联条件的信息,提取上游关联条件和下游关联条件,生成客户表与部门表的上游索引和客户表与客户明细表的下游索引,索引的类型包括B+树,并存储所述上游索引和下游索引;
获取上游的部门表,通过客户表与部门表的索引查询,获取部门表中的客户数据,添加至客户数据子集;(此步骤关联复杂度为需查询200*2亿子集)以部门表为当前数据表;
判断当前数据表是否还存在具有引用关系的上游数据表,如果存在上游数据表,提取当前数据表与其上游数据表的关联条件生成上游索引;获取上游数据表,通过上游索引查询,获取上游数据表中的客户数据,添加至客户数据子集;以所述上游数据表为当前数据表,继续向上游查询,直至不存在具有引用关系的上游数据表;
如果当前数据表不存在具有引用关系的上游数据表则执行以下步骤:
获取客户表下游的客户明细表,通过客户表与客户明细表的下游索引查询,并获取客户明细表中客户数据,添加至客户数据子集;(此步骤关联复杂度为需查询2亿*10亿子集)以客户明细表为当前数据表;
判断当前数据表是否还被下游数据表引用,如果被下游数据表引用,提取当前数据表与其下游数据表的下游关联条件生成下游索引,获取下游数据表,通过下游索引查询,提取下游数据表中的客户数据,添加至客户数据子集;以所述下游数据表为当前数据表,继续向下游查询,直至不再被下游数据表引用;
如果当前数据表不再被下游数据表引用则自动生成客户数据子集。
假设下游数据表名为xxx,数据为x亿条,提取表xxx的数据子集,查询复杂度为需查询x亿*10亿个子集,传统方法查询复杂度为需查询2亿*10亿*x亿个子集,当数据表的深度越深时,查询的复杂度越高。
采用本发明实施例提出的数据子集提取方法能够提升查询效率,降低人员和硬件成本,有效的提升数据脱敏工具的可用性。
本发明实施例提出的数据子集提取方法,还可应用于保险公司的电子档案信息生命周期管理系统中,用于在保险公司的庞大的电子档案数据库系统中提取客户档案数据子集,提升档案查询效率,降低人员和硬件成本,有效的提升数据归档工具的可用性。
虽然,上文中已经用一般性说明及具体实施例对本发明作了详尽的描述,但在本发明基础上,可以对之作一些修改或改进,这对本领域技术人员而言是显而易见的。因此,在不偏离本发明精神的基础上所做的这些修改或改进,均属于本发明要求保护的范围。
Claims (1)
1.一种数据子集提取方法,所述方法包括:
根据输入的过滤条件,从满足过滤条件的数据表处提取数据至数据子集;
采用递归算法通过逆向分解顺次提取上游数据表中具有引用关系的上游数据至数据子集;
采用递归算法通过关联调度顺次提取下游数据表中具有被引用关系的下游数据至数据子集;
所述采用递归算法通过逆向分解顺次提取具有引用关系的上游数据至数据子集,具体包括,
采用递归算法通过逆向分解顺次执行:
S201将所述上游数据表作为当前数据表,判断所述当前数据表是否引用上游数据表:
如果当前数据表引用上游数据表,则获取当前数据表与上游数据表的上游关联条件,根据所述上游关联条件生成当前数据表的上游索引,获取当前数据表的上游数据表,根据当前数据表的上游索引查询上游数据表,获得上游数据,提取上游数据至数据子集,执行S201;
如果当前数据表没有引用上游数据表,则递归算法结束;
所述采用递归算法通过关联调度顺次提取具有被引用关系的下游数据至数据子集,具体包括,
采用递归算法通过关联调度顺次执行:
S301将所述下游数据表作为当前数据表,判断所述当前数据表是否被下游数据表引用:
如果当前数据表被下游数据表引用,则获取当前数据表与下游数据表的下游关联条件,根据所述下游关联条件生成下游索引,获取所述当前数据表的下游数据表,根据所述当前数据表的下游索引查询下游数据表,获得下游数据;
将所述下游数据提取至数据子集,执行S301;
如果当前数据表没有被下游数据表引用,则递归算法结束。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911102793.7A CN111079172B (zh) | 2019-11-12 | 2019-11-12 | 一种数据子集提取方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911102793.7A CN111079172B (zh) | 2019-11-12 | 2019-11-12 | 一种数据子集提取方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111079172A CN111079172A (zh) | 2020-04-28 |
CN111079172B true CN111079172B (zh) | 2022-09-20 |
Family
ID=70310879
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911102793.7A Active CN111079172B (zh) | 2019-11-12 | 2019-11-12 | 一种数据子集提取方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111079172B (zh) |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9087116B2 (en) * | 2011-12-16 | 2015-07-21 | International Business Machines Corporation | Data extraction and sparseness discovery from multidimensional databases |
CN105843605B (zh) * | 2016-03-17 | 2019-03-08 | 中国银行股份有限公司 | 一种数据映射方法及装置 |
CN108288001B (zh) * | 2017-01-10 | 2022-11-08 | 中兴通讯股份有限公司 | 一种组织架构的构建方法及装置 |
-
2019
- 2019-11-12 CN CN201911102793.7A patent/CN111079172B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN111079172A (zh) | 2020-04-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI521363B (zh) | Method, device and system for implementing incremental data extraction | |
CN107247811B (zh) | 基于Oracle数据库的SQL语句性能优化方法及装置 | |
CN111008020B (zh) | 将逻辑表达式解析为通用查询语句的方法 | |
US20190188302A1 (en) | Group-by-time operations with returned time context | |
CN111241059B (zh) | 一种基于数据库的数据库优化方法及装置 | |
CN113515564B (zh) | 基于j2ee的数据访问方法、装置、设备及存储介质 | |
CN110909126A (zh) | 一种信息查询方法及装置 | |
CN114116764A (zh) | 一种基于语法树的指标查询方法、装置、介质及电子设备 | |
CN103678396B (zh) | 一种基于数据模型的数据备份方法和装置 | |
CN111858730A (zh) | 一种图数据库的数据导入导出装置、方法、设备及介质 | |
CN111079172B (zh) | 一种数据子集提取方法 | |
CN111625596B (zh) | 新能源实时消纳调度的多源数据同步共享方法及系统 | |
CN116049193A (zh) | 数据存储方法及装置 | |
CN111143329A (zh) | 一种数据处理方法及装置 | |
CN111125045A (zh) | 一种轻量级etl处理平台 | |
CN116090413A (zh) | 一种基于序列化的通用rdf数据压缩方法 | |
CN108228592B (zh) | 基于二进制日志的数据归档方法及数据归档装置 | |
Patil et al. | Code clone detection using decentralized architecture and code reduction | |
CN109785099B (zh) | 一种自动对业务数据信息进行处理的方法及系统 | |
CN103577560B (zh) | 一种输入数据库操作指令的方法和装置 | |
CN111078960A (zh) | 一种电力调度系统设备实时检索的实现方法及系统 | |
CN111966727A (zh) | 基于Spark和Hive的分布式OLAP即席查询方法 | |
CN114090627B (zh) | 一种数据查询方法及装置 | |
CN115186674B (zh) | 一种航空失效案例管理方法、装置、设备及存储介质 | |
CN110515913B (zh) | 日志处理方法及装置 |
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 |