CN104484478A - 一种关联聚类数据瘦身方法及系统 - Google Patents
一种关联聚类数据瘦身方法及系统 Download PDFInfo
- Publication number
- CN104484478A CN104484478A CN201410854209.4A CN201410854209A CN104484478A CN 104484478 A CN104484478 A CN 104484478A CN 201410854209 A CN201410854209 A CN 201410854209A CN 104484478 A CN104484478 A CN 104484478A
- Authority
- CN
- China
- Prior art keywords
- class node
- association class
- data
- node
- key
- 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
Links
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/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/284—Relational databases
- G06F16/285—Clustering or classification
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种关联聚类数据瘦身方法,基于预生成的树形结构,对所述树形结构中的根关联类节点的缓存表进行初始化,选择符合预设瘦身条件的数据填入所述根节点缓存表中;从根节点开始,按照广度优先遍历依次对树形结构中的每个关联类节点进行瘦身操作;得到所述树形结构中所有目标表对应的瘦身结果文件。本发明实施例提供的关联聚类数据瘦身方法,数据表按照业务特征进行聚类为树形结构,用以抽象数据特征,根据关联键对数据进行关联瘦身,可以在完整保留原数据业务逻辑关系的情况下对数据完成瘦身。
Description
技术领域
本发明涉及数据瘦身领域,特别是涉及一种关联聚类数据瘦身的方法及系统。
背景技术
商业银行的业务数据表众多,业务关联很复杂,有着很庞大的业务数据量,这些数据占用了大量的资源,也使得开发、测试或者演练的效率底下,所以需要对数据表进行数据瘦身,在保障测试需求的基础上,尽可能压缩测试数据规模。
现在数据瘦身有按比例瘦身的方法,是对要瘦身的目标表数据按照约定的比例进行抽取,如1:10的比例就是只抽取目标表10%的数据,可以抽取每张表前10%的数据,也可以对目标表进行轮询,每隔若干条数据抽取一条。商业银行的业务数据具有很复杂的逻辑关联,采用这种方法对数据瘦身会破坏全量数据的业务逻辑关系,导致大量数据可能在开发、测试或者演练环境中失效。
发明内容
有鉴于此,本发明提供一种关联聚类数据瘦身方法及系统,可以在完整保留原数据业务逻辑关系的情况下对数据完成瘦身。
为实现上述目的,本发明提供了一种关联聚类数据瘦身方法,所述方法基于预生成的树形结构,所述树形结构包括:至少一个关联类节点;所述各个关联类节点构成所述树形结构的节点;每个关联类节点下挂载有至少一个目标表,所述目标表用于存储待瘦身数据;每个关联类节点对应一个关联键和一个缓存表;所述缓存表用于存储数据瘦身过程中生成的中间数据;所述关联键是关联类节点下挂载的目标表主键,包括条件关联键和非条件关联键;所述关联类节点通过所述关联键指向与其相关联的下一级关联类节点;
所述方法包括:
对所述树形结构中根关联类节点的缓存表进行初始化,选择符合预设瘦身条件的数据填入所述根节点缓存表中;
从根节点开始,按照广度优先遍历依次对树形结构中的每个关联类节点进行瘦身操作;得到所述树形结构中所有目标表对应的瘦身结果文件;
所述瘦身操作包括:
获取当前关联类节点对应的所有目标表,并确定所述目标表主键的类型及目标表所有的主键列名;
遍历当前关联类节点的所有子节点;
获取当前关联类节点对应的缓存表名,组成查询语句,对当前关联类节点中的数据进行查询筛选,以实现对所述当前关联类节点对应的数据进行瘦身。
上述方法,优选的,所述遍历当前关联类节点的所有子节点包括:
获取每一个子关联类节点的关联键信息及对应的缓存表名,依次获取各个子关联类节点的非条件关联键列名。
上述方法,优选的,所述获取当前关联类节点对应的缓存表名,组成查询语句,对当前关联类节点中的数据进行查询筛选包括:
遍历当前关联类节点下的目标表;
获取所述目标表的表名,根据所述表名组成查询语句;
依据预设顺序依次取出当前关联类节点下缓存表中当前记录的每一列数据值;
取出预设列值下条件关联键的序号,并获取该序号对应的条件关联值;
依据所述每一列数据值、条件关联值对组成的查询语句进行拼接;
执行所述经过拼接的查询语句,对当前关联类节点中的数据进行查询筛选。
上述方法,优选的,所述执行所述经过拼接的查询语句,对当前关联类节点中的数据进行查询筛选包括:
动态执行查询语句,按序获取当前记录的所有列信息,写入目标表相对应的瘦身结果文件;
遍历当前关联类节点下的子关联类节点信息。
一种关联聚类数据瘦身系统,所述系统基于预生成的树形结构,所述树形结构包括:至少一个关联类节点;所述各个关联类节点构成所述树形结构的节点;每个关联类节点下挂载有至少一个目标表,所述目标表用于存储待瘦身数据;每个关联类节点对应一个关联键和一个缓存表;所述缓存表用于存储数据瘦身过程中生成的中间数据;所述关联键是关联类节点下挂载的目标表主键,包括条件关联键和非条件关联键;所述关联类节点通过所述关联键指向与其相关联的下一级关联类节点;
所述系统包括:
选择模块,用于对所述树形结构中根关联类节点的缓存表进行初始化,选择符合预设瘦身条件的数据填入所述根节点缓存表中;
瘦身模块,用于从根节点开始,按照广度优先遍历依次对树形结构中的每个关联类节点进行瘦身操作;得到所述树形结构中所有目标表对应的瘦身结果文件;
所述瘦身模块包括:
获取单元,用于获取当前关联类节点对应的所有目标表,并确定所述目标表主键的类型及目标表所有的主键列名;
遍历单元,用于遍历当前关联类节点的所有子节点;
查询单元,用于获取当前关联类节点对应的缓存表名,组成查询语句,对当前关联类节点中的数据进行查询筛选,以实现对所述当前关联类节点对应的数据进行瘦身。
上述系统,优选的,所述遍历单元包括:
获取子单元,用于获取每一个子关联类节点的关联键信息及对应的缓存表名,依次获取各个子关联类节点的非条件关联键列名。
上述系统,优选的,所述查询单元包括:
遍历子单元,用于遍历当前关联类节点下的目标表;
组成子单元,用于获取所述目标表的表名,根据所述表名组成查询语句;
第一取出子单元,用于依据预设顺序依次取出当前关联类节点下缓存表中当前记录的每一列数据值;
第二取出子单元,用于取出预设列值下条件关联键的序号,并获取该序号对应的条件关联值;
拼接子单元,用于依据所述每一列数据值、条件关联值对组成的查询语句进行拼接;
查询子单元,用于执行所述经过拼接的查询语句,对当前关联类节点中的数据进行查询筛选。
应用本发明提供的关联聚类数据瘦身方法,基于预生成的树形结构,对所述树形结构中的根关联类节点的缓存表进行初始化,选择符合预设瘦身条件的数据填入所述根节点缓存表中;从根节点开始,按照广度优先遍历依次对树形结构中的每个关联类节点进行瘦身操作;得到所述树形结构中所有目标表对应的瘦身结果文件;所述瘦身操作包括:获取当前关联类节点对应的所有目标表,并确定所述目标表主键的类型及目标表所有的主键列名;遍历当前关联类节点的所有子节点;获取当前关联类节点对应的缓存表名,组成查询语句,对当前关联类节点中的数据进行查询筛选,以实现对所述当前关联类节点对应的数据进行瘦身。本发明实施例提供的关联聚类数据瘦身方法,数据表按照业务特征进行聚类为树形结构,用以抽象数据特征,根据关联键对数据进行关联瘦身,可以在完整保留原数据业务逻辑关系的情况下对数据完成瘦身。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本发明一种关联聚类数据瘦身方法的流程图;
图2为本发明一种关联聚类数据瘦身方法的具体流程图;
图3为本发明一种关联聚类数据瘦身方法的又一流程图;
图4为本发明一种关联聚类数据瘦身方法的又一流程图;
图5为本发明一种关联聚类数据瘦身的树形结构示意图;
图6为本发明一种关联聚类数据瘦身方法具体实施例的树形结构示意图;
图7为本发明一种关联聚类数据瘦身的树形装置的数据结构图;
图8为本发明一种关联聚类数据瘦身的树形装置的又一数据结构图;
图9为本发明一种关联聚类数据瘦身的树形装置的又一数据结构图;
图10为本发明一种关联聚类数据瘦身的树形装置的又一数据结构图;
图11为本发明一种关联聚类数据瘦身系统的结构示意图。
具体实施方式
本发明的核心是提供一种关联聚类数据瘦身的方法,可以在完整保留原数据业务逻辑关系的情况下对数据完成瘦身。
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
结合图1及图2,示出了本发明实施例提供的一种关联聚类数据瘦身方法的流程图,本发明中提供的数据瘦身方法基于预生成的树形结构,所述树形结构包括:至少一个关联类节点;所述各个关联类节点构成所述树形结构的节点;每个关联类节点下挂载有至少一个目标表,所述目标表用于存储待瘦身数据;每个关联类节点对应一个关联键和一个缓存表;所述缓存表用于存储数据瘦身过程中生成的中间数据;所述关联键是关联类节点下挂载的目标表主键,包括条件关联键和非条件关联键;所述关联类节点通过所述关联键指向与其相关联的下一级关联类节点;
所述方法包括:
步骤S101:对所述树形结构中根关联类节点的缓存表进行初始化,选择符合预设瘦身条件的数据填入所述根节点缓存表中;
步骤S102:从根节点开始,按照广度优先遍历依次对树形结构中的每个关联类节点进行瘦身操作;得到所述树形结构中所有目标表对应的瘦身结果文件;
所述瘦身操作包括:
步骤S201:获取当前关联类节点对应的所有目标表,并确定所述目标表主键的类型及目标表所有的主键列名;
步骤S202:遍历当前关联类节点的所有子节点;
步骤S203:获取当前关联类节点对应的缓存表名,组成查询语句,对当前关联类节点中的数据进行查询筛选,以实现对所述当前关联类节点对应的数据进行瘦身。
本发明实施例中,当需要对数据进行瘦身时,首先将所有数据生成树形结构,所述树形结构包括:关联类节点、关联键、目标表和缓存表;所述关联类节点下至少挂载有一个所述目标表,用来存储需要瘦身的数据;所述关联类节点对应一个关联键和一个缓存表,所述缓存表用于存储数据瘦身过程中生成的中间数据,所述关联键是关联类节点下挂载的目标表主键,包括条件关联键与非条件关联键,所述关联类节点通过关联键指向下一级关联类节点的关联键有向连接实现与下一级关联类节点的关联关系。
如图5所示,为树形结构的示意图,以关联类节点A为例,关联类节点A对应一个关联键A和缓存表A,关联类节点A下挂载的目标表为目标表1,目标表2…目标表n1,关联键A由一个或多个有序数据列组成,这些有序数据列是关联类节点A下挂载的所有目标表主键或主唯一索引的前若干列,目标表1,目标表2…目标表n1具有相同的关联键A,缓存表A用于存储数据瘦身过程中生成的中间数据,以实现关联类节点数据之间的关联抽取,如图中关联键A和关联键B之间的有向箭头,构成了关联类节点A与关联类节点B之间的父子关系,B关联类节点的非条件关联键中,按前后顺序至少有一个或多个在A关联类节点的关联键中存在,或者能从A关联类节点的关联键中提取。
本发明实施例提供的瘦身方法中,对根关联类节点的缓存表进行初始化,选择符合瘦身条件的数据填入根关联类节点的缓存表中;从根关联类开始,初始化根关联类节点对应的缓存表,将符合瘦身条件的数据存入跟关联类节点的缓存表中,瘦身时可以从缓存表中读取要瘦身的条件键值从而对目标表进行瘦身。
从根关联类节点开始依次对树形结构中的关联类节点下的目标表进行瘦身操作;
从根关联类节点开始对其下的目标表进行瘦身操作,之后继续依次对根关联类节点下的各子关联类节点下的目标表进行瘦身,依次类推,直至遍历完整个树形结构,完成数据关联瘦身。以图5为例,关联类节点A为根关联类节点,以关联类节点A为入口,对目标表1至目标表n1进行瘦身,之后再对关联类节点B下的目标表3至目标表n2和关联类节点C下的目标表5至目标表n3进行瘦身,直到遍历完整个树形结构。
如图3,为本发明实施例提供的一种关联聚类数据瘦身方法的一种实现方式,包括:
步骤S301:判断所述关联键是否为条件关联键,如果是,进入步骤S302;如果否,进入步骤S303;
步骤S302:关联类节点通过对应的缓存表的关联键值对所述关联类节点下的目标表进行瘦身;
步骤S303:判断所述关联键是否为非条件关联键,如果是,进入步骤S304;
步骤S304:关联类节点通过配置枚举值对所述关联类节点下的目标表进行瘦身。
每个关联类节点对应的关联键类型分为条件关联键和非条件关联键,所述关联键为条件关联键时,关联类节点通过对应的缓存表的关联键值对所述关联类节点下的目标表进行瘦身;所述关联键为非条件关联键时,关联类节点通过配置枚举值对所述关联类节点下的目标表进行瘦身。
应用本发明提供的关联聚类数据瘦身方法,根据所有数据生成树形结构,从根关联类节点开始依次遍历树形结构中的关联类节点对其下的目标表进行瘦身操作,关联类节点的关联键为条件关联键时,关联类节点通过对应的缓存表的关联键值对所述关联类节点下的目标表进行瘦身;关联类节点的关联键为非条件关联键时,关联类节点通过配置枚举值对所述关联类节点下的目标表进行瘦身,数据表按照业务特征进行聚类为树形结构,用以抽象数据特征,根据关联键对数据进行关联瘦身,可以在完整保留原数据业务逻辑关系的情况下对数据完成瘦身。
如图4,为本发明关联聚类数据瘦身方法的又一流程图;
包括:
步骤S401:根据所有数据生成树形结构;
步骤S402:对根关联节点的缓存表进行初始化,选择符合瘦身条件的数据填入根关联节点的缓存表中;
步骤S402:在目标表瘦身过程中生成下一级关联类节点所需要的缓存表;
在每一个关联类节点瘦身过程时生成其子关联类节点所对应的缓存表,在子关联类节点进行瘦身时读取其对应的缓存表进行瘦身。
完成数据的瘦身操作首先要生成树形结构,而构建树形结构的关键是梳理出关联键,以商业银行的数据为例,由于商业银行要进行瘦身的目标表的主键或者主唯一索引一般由较多的列组成,而关联键只需要其中前若干列,选取其中前若干列作为关联键的原则如下:
1.瘦身目标表应当至少符合以下一个特征:
(1)属于商业银行重点业务范畴;
(2)表数据量较大。
2.选取商业银行重要业务对象的主键关键列,如客户号,合约号,账号,组织机构号,地址号,财产号等等;
3.尽可能让一个关联类节点包含更多目标表,即关联键设计能反映更多目标表主键或主唯一索引前若干列的特征,以减少关联类节点的数目;
根据瘦身条件和瘦身目标,一般以客户主档表所属的关联类节点为树的根,将每个关联类节点的关联键按上述原则建立树形结构中的父子关系,最终构建出完整的基于关联聚类的树形结构。
如图6所示,为商业银行数据构建出的基于关联聚类的树形结构示意图,图中,方框代表关联类节点,节点中为关联键列的名称,有星号(*)的列名称代表条件关联键列,没有星号的列名称代表非条件关联键列,箭头由父关联类节点指向子关联类节点,其树形结构父子关系如箭头所示。
图6中,子关联类中的非条件关联键中,按前后顺序至少有一个或多个在父关联类的关联键中存在,或者能从父关联类的关联键中提取,图6中601所指关联类节点是602所指关联类节点的父类关联类节点,601中的合约号中包含了602中第一个非条件关联键的组织机构号。
图6中,关联键为金融实体号、客户号的关联类节点下挂载的目标表可能有客户主档表、客户财产信息表等,这些表的主键或者主唯一索引的前两列都为金融实体号、客户号。
图6中,关联键为金融实体号、客户号的关联类节点中,金融实体号可以为条件关联键,瘦身时的取值从配置的固定枚举值中获取,枚举值如农行为0103,客户号可以为非条件关联键,瘦身时的取值从缓存表中获取。被聚类到关联类节点下的瘦身目标表通过该节点的缓存表数据来进行筛选。例如合约信息主表和合约账单表就可以被聚类到同一节点下,该节点的缓存表关联键值就是合约号这一个字段,通过合约号可以查找筛选这两张表的数据。
在具体实施方式中,数据瘦身的树形结构用数据结构来进行描述,如图7所示,为树形结构中关联类节点的数据结构示意图,每个节点都有对应的节点名,节点有若干抽象出来的关联键,本数据结构中记录了关联键的数量和关联键数组,关联键数组指向包含的所有关联键的数据结构,具体的关联键信息通过下面的关联键数据结构描述。目标表数量纪录了该关联类下挂载有多少个目标表,目标表数组指向了该关联类下的所有目标表。本数据结构还记录了子关联类节点的数量和数组,子关联类节点数组指向下一级节点的关联键数据结构。缓存表表名字段表示该关联类节点对应的缓存表名称。
如图8所示,为树形结构中关联键的数据结构示意图,与关联类节点数据结构的关联建数组相对应,描述了所有关联键列名和类型即是否为条件关联键。非条件关联键是需要与缓存表的键值相匹配的关联键,条件关联键是在目标表索引时需要部分固定键值的键,这些键的值预先在关联条件列中指定,并且都采用枚举的形式,保证在瘦身时可以命中索引。关联键列名的命名有一个原则,即如果父关联类节点的某关联键列与子关联类节点的某关联键列相关联的话,这个关联键的列名在父子节点需要相同,这样在处理父关联类节点的时候,就知道哪些键值需要存储到对应的子关联类节点的缓存表中。
如图9所示,为树形结构中目标表的数据结构示意图,目标表节点数据结构记录了所有需要瘦身的目标表情况,包含了每个目标表对应的主键列数量和主键列的清单。如图10所示,为树形结构中主键列的数据结构示意图,记录了目标表节点主键列清单中所有列的信息,包含了列的长度、类型、列名。对应目标表列序号记录了该主键列是目标表的第几列数据。
本发明实施例在数据的关联抽取中,缓存表是在数据瘦身过程中生成的中间数据的存储形式,用于关联类节点数据之间的关联抽取。对于中间数据,可以有多种存储方式,比如文件、临时数据表、临时缓存表、或者直接存储在内存中,由于商业银行的数据量庞大,直接存储在内存中不是最合适的选择,因此将中间数据存储在缓存表中,这样既可以满足大数据量存储的需求,也便于剔除重复数据,还便于检索。
缓存表的设计如下:缓存表的列由所属关联类节点的非条件关联键构成,并且字段顺序与其保持一致,所有字段一起建立主键索引。缓存表的字段类型统一为字符串类型,默认值为空字符串。
根据上述实施例树形结构的数据结构设计,具体的数据瘦身方法实施方式如下,用执行SQL语句实现数据瘦身,以根关联类节点为关联类节点A,子关联类节点为关联类节点B为例,关联类节点A下对应的目标表为a、b、c等
步骤S1:首先对根节点对应的缓存表初始化,根据瘦身目标可以选择符合瘦身条件的数据填入根节点缓存表中。比如以客户主档所属的关联类节点为根节点,选取符合瘦身目标的一部分客户号作为其缓存表的初始化值;
步骤S2:从根节点开始,按照广度优先依次遍历树形装置中的每个节点;
步骤S2.1:获取关联类节点对应的所有目标表a、b、c等以及是否为条件关联键、条件关联值、目标表所有的主键列名;
步骤S2.2:遍历当前关联类节点的所有子关联类节点;
步骤S2.2.1:获取当前子关联类节点的关联键信息及缓存表名B,按序取出子关联类节点的非条件关联键列名,
如果该列名在父关联类节点A的关联键中存在,则将该列对应的序号及缓存表名A记录到该缓存表对应的关联键对应的序号清单文件B.list中,B.list记录需要从父节点按序写入缓存表B的所有列序号。
如果该列名在父关联类节点A的关联键中不存在,则进入步骤S2.3继续处理。
以一个包含两个子关联类节点(对应的缓存表名分别为P和Q)的父关联类节点为例,步骤S2.2结束后会生成两个对应两个子关联类节点的P.list和Q.list,其中分别存储了处理父关联类节点的目标表时,需要向两个缓存表P、Q写入的所有关联键列序号。
步骤S2.3:根据关联类节点获取对应的缓存表名A,组成SQL语句select*from A,定义缓存表游标执行上述SQL语句,使用动态SQL遍历游标每一条结果;
步骤S2.3.1:遍历当前关联类节点下的目标表;
步骤S2.3.1.1:取出当前目标表的信息,根据目标表表名a,组成SQL语句“select*from a where”(SQL语句1);
步骤S2.3.1.2:按序取出缓存表当前记录每一列数据值,假设为A.val1,A.val2...A.valn。
如果第n列数据值A.valn不为空,则按序取出第n条非条件关联键的序号m,在目标表主键列数组中找到序号为m的列名,假设为a.colm,则拼接SQL查询条件如下:“a.colm=A.valn”(SQL语句2);
如果第n列数据值A.valn为空,则进入2.3.1.2步骤处理。
步骤S2.3.1.3:按序取出第x条条件关联键的序号y,同时取其对应的条件关联值,假设值为in(val1,val2,val3....),在目标表主键列数组中找到序号为y的列名,假设为a.coly,将列名与条件关联值拼接SQL查询条件如下:“a.colyin(val1,val2,val3....)”(SQL语句3);
步骤S2.3.1.4:将以上SQL语句1、SQL语句2、和SQL语句3进行拼接,其中SQL语句2和SQL语句3是查询条件,在每两个查询条件之间用“and”连接。
以a表为例,假设a表的第一个字段col1是条件关联键,且条件关联值为in(‘0103’),农行枚举值为0103,表的第二个字段col2是非条件关联键,缓存表A的只有一个字段,值是A.val1,则拼接SQL语句如下:
Select*from a where a.col1in(‘0103’)and a.col2=A.val1;
步骤S2.3.1.5:定义游标,游标是系统为用户开设的一个数据缓冲区,存放SQL语句的执行结果,执行2.3.1.4步骤拼接完成的SQL语句,遍历游标。
步骤S2.3.1.5.1:用动态SQL按序取出当前记录的所有列信息,写入目标表同名的瘦身结果文件;
步骤S2.3.1.5.2:遍历当前关联类节点下的子关联类节点信息。
步骤S2.3.1.5.2.1:根据当前子关联类节点的缓存表名B,组成SQL语句“insert into B values”(SQL语句4);
步骤S2.3.1.5.2.2:根据当前子关联类节点对应的序号清单文件B.list中列出的序号k,取出当前处理目标表a中主键列序号为k的“对应目标表列序号”,假设为k’,使用2.3.1.5.1中的当前记录结果中第k’列的数据值valk拼接SQL语句:“’valk’”(SQL语句5);
步骤S2.3.1.5.3:将以上SQL语句4、SQL语句5进行拼接,其中SQL语句5是插入列值,在每两个插入列值之间用“,”连接。
以a表为例,假设B.list取出的列值为val1,val2,则拼接SQL语句如下:
Insert into B values(‘val1’,’val2’);
步骤S2.3.1.6:执行步骤S 2.3.1.5.3拼接完成的SQL语句。
步骤S3:步骤2中所有关联类节点处理完成后,整个瘦身处理完成,得到所有目标表对应的瘦身结果文件。
图1所述的一种关联聚类数据瘦身方法相对应,本发明实施例还提供了一种关联聚类数据瘦身系统,其结构示意图如图11所示,所述系统基于预生成的树形结构,所述树形结构包括:至少一个关联类节点;所述各个关联类节点构成所述树形结构的节点;每个关联类节点下挂载有至少一个目标表,所述目标表用于存储待瘦身数据;每个关联类节点对应一个关联键和一个缓存表;所述缓存表用于存储数据瘦身过程中生成的中间数据;所述关联键是关联类节点下挂载的目标表主键,包括条件关联键和非条件关联键;所述关联类节点通过所述关联键指向与其相关联的下一级关联类节点;
所述系统包括:
选择模块701,用于对所述树形结构中根关联类节点的缓存表进行初始化,选择符合预设瘦身条件的数据填入所述根节点缓存表中;
瘦身模块702,用于从根节点开始,按照广度优先遍历依次对树形结构中的每个关联类节点进行瘦身操作;得到所述树形结构中所有目标表对应的瘦身结果文件;
所述瘦身模块包括:
获取单元703,用于获取当前关联类节点对应的所有目标表,并确定所述目标表主键的类型及目标表所有的主键列名;
遍历单元704,用于遍历当前关联类节点的所有子节点;
查询单元705,用于获取当前关联类节点对应的缓存表名,组成查询语句,对当前关联类节点中的数据进行查询筛选,以实现对所述当前关联类节点对应的数据进行瘦身。
本发明实施例提供的关联聚类数据瘦身系统中,所述遍历单元包括:
获取子单元,用于获取每一个子关联类节点的关联键信息及对应的缓存表名,依次获取各个子关联类节点的非条件关联键列名。
所述查询单元包括:
遍历子单元,用于遍历当前关联类节点下的目标表;
组成子单元,用于获取所述目标表的表名,根据所述表名组成查询语句;
第一取出子单元,用于依据预设顺序依次取出当前关联类节点下缓存表中当前记录的每一列数据值;
第二取出子单元,用于取出预设列值下条件关联键的序号,并获取该序号对应的条件关联值;
拼接子单元,用于依据所述每一列数据值、条件关联值对组成的查询语句进行拼接;
查询子单元,用于执行所述经过拼接的查询语句,对当前关联类节点中的数据进行查询筛选。
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
以上对本发明所提供的系统及方法进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (7)
1.一种关联聚类数据瘦身方法,其特征在于,所述方法基于预生成的树形结构,所述树形结构包括:至少一个关联类节点;所述各个关联类节点构成所述树形结构的节点;每个关联类节点下挂载有至少一个目标表,所述目标表用于存储待瘦身数据;每个关联类节点对应一个关联键和一个缓存表;所述缓存表用于存储数据瘦身过程中生成的中间数据;所述关联键是关联类节点下挂载的目标表主键,包括条件关联键和非条件关联键;所述关联类节点通过所述关联键指向与其相关联的下一级关联类节点;
所述方法包括:
对所述树形结构中根关联类节点的缓存表进行初始化,选择符合预设瘦身条件的数据填入所述根节点缓存表中;
从根节点开始,按照广度优先遍历依次对树形结构中的每个关联类节点进行瘦身操作;得到所述树形结构中所有目标表对应的瘦身结果文件;
所述瘦身操作包括:
获取当前关联类节点对应的所有目标表,并确定所述目标表主键的类型及目标表所有的主键列名;
遍历当前关联类节点的所有子节点;
获取当前关联类节点对应的缓存表名,组成查询语句,对当前关联类节点中的数据进行查询筛选,以实现对所述当前关联类节点对应的数据进行瘦身。
2.根据权利要求1所述的方法,其特征在于,所述遍历当前关联类节点的所有子节点包括:
获取每一个子关联类节点的关联键信息及对应的缓存表名,依次获取各个子关联类节点的非条件关联键列名。
3.根据权利要求1所述的方法,其特征在于,所述获取当前关联类节点对应的缓存表名,组成查询语句,对当前关联类节点中的数据进行查询筛选包括:
遍历当前关联类节点下的目标表;
获取所述目标表的表名,根据所述表名组成查询语句;
依据预设顺序依次取出当前关联类节点下缓存表中当前记录的每一列数据值;
取出预设列值下条件关联键的序号,并获取该序号对应的条件关联值;
依据所述每一列数据值、条件关联值对组成的查询语句进行拼接;
执行所述经过拼接的查询语句,对当前关联类节点中的数据进行查询筛选。
4.根据权利要求3所述的方法,其特征在于,所述执行所述经过拼接的查询语句,对当前关联类节点中的数据进行查询筛选包括:
动态执行查询语句,按序获取当前记录的所有列信息,写入目标表相对应的瘦身结果文件;
遍历当前关联类节点下的子关联类节点信息。
5.一种关联聚类数据瘦身系统,其特征在于,所述系统基于预生成的树形结构,所述树形结构包括:至少一个关联类节点;所述各个关联类节点构成所述树形结构的节点;每个关联类节点下挂载有至少一个目标表,所述目标表用于存储待瘦身数据;每个关联类节点对应一个关联键和一个缓存表;所述缓存表用于存储数据瘦身过程中生成的中间数据;所述关联键是关联类节点下挂载的目标表主键,包括条件关联键和非条件关联键;所述关联类节点通过所述关联键指向与其相关联的下一级关联类节点;
所述系统包括:
选择模块,用于对所述树形结构中根关联类节点的缓存表进行初始化,选择符合预设瘦身条件的数据填入所述根节点缓存表中;
瘦身模块,用于从根节点开始,按照广度优先遍历依次对树形结构中的每个关联类节点进行瘦身操作;得到所述树形结构中所有目标表对应的瘦身结果文件;
所述瘦身模块包括:
获取单元,用于获取当前关联类节点对应的所有目标表,并确定所述目标表主键的类型及目标表所有的主键列名;
遍历单元,用于遍历当前关联类节点的所有子节点;
查询单元,用于获取当前关联类节点对应的缓存表名,组成查询语句,对当前关联类节点中的数据进行查询筛选,以实现对所述当前关联类节点对应的数据进行瘦身。
6.根据权利要求5所述的系统,其特征在于,所述遍历单元包括:
获取子单元,用于获取每一个子关联类节点的关联键信息及对应的缓存表名,依次获取各个子关联类节点的非条件关联键列名。
7.根据权利要求5所述的系统,其特征在于,所述查询单元包括:
遍历子单元,用于遍历当前关联类节点下的目标表;
组成子单元,用于获取所述目标表的表名,根据所述表名组成查询语句;
第一取出子单元,用于依据预设顺序依次取出当前关联类节点下缓存表中当前记录的每一列数据值;
第二取出子单元,用于取出预设列值下条件关联键的序号,并获取该序号对应的条件关联值;
拼接子单元,用于依据所述每一列数据值、条件关联值对组成的查询语句进行拼接;
查询子单元,用于执行所述经过拼接的查询语句,对当前关联类节点中的数据进行查询筛选。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410854209.4A CN104484478B (zh) | 2014-12-31 | 2014-12-31 | 一种关联聚类数据瘦身方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410854209.4A CN104484478B (zh) | 2014-12-31 | 2014-12-31 | 一种关联聚类数据瘦身方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104484478A true CN104484478A (zh) | 2015-04-01 |
CN104484478B CN104484478B (zh) | 2018-05-29 |
Family
ID=52759019
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410854209.4A Active CN104484478B (zh) | 2014-12-31 | 2014-12-31 | 一种关联聚类数据瘦身方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104484478B (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107180053A (zh) * | 2016-03-11 | 2017-09-19 | 中国移动通信集团河北有限公司 | 一种数据仓库优化方法和装置 |
CN109766337A (zh) * | 2018-11-28 | 2019-05-17 | 杭州云为科技有限公司 | 树形结构数据的存储方法、电子设备、存储介质及系统 |
CN110543494A (zh) * | 2019-08-19 | 2019-12-06 | 湖南麟淇网络科技股份有限公司 | 基于缓存表构建可达图的方法 |
CN111882264A (zh) * | 2020-06-11 | 2020-11-03 | 中国铁道科学研究院集团有限公司电子计算技术研究所 | 铁路用地管理部门模型建立方法及装置 |
CN112579709A (zh) * | 2020-12-17 | 2021-03-30 | 中国农业银行股份有限公司 | 一种数据表识别方法、装置、存储介质及电子设备 |
CN114528444A (zh) * | 2022-02-25 | 2022-05-24 | 北京百度网讯科技有限公司 | 图数据处理方法、装置、电子设备和存储介质 |
CN111882264B (zh) * | 2020-06-11 | 2024-05-31 | 中国铁道科学研究院集团有限公司电子计算技术研究所 | 铁路用地管理部门模型建立方法及装置 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1755682A (zh) * | 2004-09-30 | 2006-04-05 | 微软公司 | 使用点击距离对搜索结果分级的系统和方法 |
US20140032617A1 (en) * | 2012-07-24 | 2014-01-30 | Craig W. Stanfill | Mapping entities in data models |
-
2014
- 2014-12-31 CN CN201410854209.4A patent/CN104484478B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1755682A (zh) * | 2004-09-30 | 2006-04-05 | 微软公司 | 使用点击距离对搜索结果分级的系统和方法 |
US20140032617A1 (en) * | 2012-07-24 | 2014-01-30 | Craig W. Stanfill | Mapping entities in data models |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107180053A (zh) * | 2016-03-11 | 2017-09-19 | 中国移动通信集团河北有限公司 | 一种数据仓库优化方法和装置 |
CN107180053B (zh) * | 2016-03-11 | 2020-10-20 | 中国移动通信集团河北有限公司 | 一种数据仓库优化方法和装置 |
CN109766337A (zh) * | 2018-11-28 | 2019-05-17 | 杭州云为科技有限公司 | 树形结构数据的存储方法、电子设备、存储介质及系统 |
CN109766337B (zh) * | 2018-11-28 | 2023-05-09 | 杭州云为科技有限公司 | 树形结构数据的存储方法、电子设备、存储介质及系统 |
CN110543494A (zh) * | 2019-08-19 | 2019-12-06 | 湖南麟淇网络科技股份有限公司 | 基于缓存表构建可达图的方法 |
CN110543494B (zh) * | 2019-08-19 | 2023-03-24 | 湖南麟淇网络科技股份有限公司 | 基于缓存表构建可达图的方法 |
CN111882264A (zh) * | 2020-06-11 | 2020-11-03 | 中国铁道科学研究院集团有限公司电子计算技术研究所 | 铁路用地管理部门模型建立方法及装置 |
CN111882264B (zh) * | 2020-06-11 | 2024-05-31 | 中国铁道科学研究院集团有限公司电子计算技术研究所 | 铁路用地管理部门模型建立方法及装置 |
CN112579709A (zh) * | 2020-12-17 | 2021-03-30 | 中国农业银行股份有限公司 | 一种数据表识别方法、装置、存储介质及电子设备 |
CN112579709B (zh) * | 2020-12-17 | 2023-07-28 | 中国农业银行股份有限公司 | 一种数据表识别方法、装置、存储介质及电子设备 |
CN114528444A (zh) * | 2022-02-25 | 2022-05-24 | 北京百度网讯科技有限公司 | 图数据处理方法、装置、电子设备和存储介质 |
CN114528444B (zh) * | 2022-02-25 | 2023-02-03 | 北京百度网讯科技有限公司 | 图数据处理方法、装置、电子设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN104484478B (zh) | 2018-05-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9990362B2 (en) | Profiling data with location information | |
US9805080B2 (en) | Data driven relational algorithm formation for execution against big data | |
US10067954B2 (en) | Use of dynamic dictionary encoding with an associated hash table to support many-to-many joins and aggregations | |
JP7257068B2 (ja) | 大規模データセットの高速検索またはフィルタリングのためのシステム、方法、およびデータ構造 | |
CN103473171B (zh) | 一种基于函数调用路径的覆盖率动态跟踪方法及装置 | |
CN104484478A (zh) | 一种关联聚类数据瘦身方法及系统 | |
CN102521416B (zh) | 数据关联查询方法和数据关联查询装置 | |
US8332410B2 (en) | Bit string merge sort device, method, and program | |
US9471710B2 (en) | On-the-fly encoding method for efficient grouping and aggregation | |
CN105183735A (zh) | 数据的查询方法及查询装置 | |
CN106407303A (zh) | 数据存储、查询方法及装置 | |
WO2005036403A1 (en) | Database management system, data structure generating method for database management system, and storage medium therefor | |
CN101916261A (zh) | 一种分布式并行数据库系统的数据分区方法 | |
US10474657B2 (en) | Augmenting relational databases via database structure graph | |
CN106649602B (zh) | 业务对象数据处理方法、装置和服务器 | |
US9898501B2 (en) | Method and system for performing transactional updates in a key-value store | |
US20160103858A1 (en) | Data management system comprising a trie data structure, integrated circuits and methods therefor | |
CN102193983B (zh) | 图形数据库基于关系路径的节点数据过滤方法 | |
CN110168532A (zh) | 数据更新方法和存储装置 | |
CN106095964A (zh) | 一种对数据进行可视化归档与搜索的方法 | |
CN102495834A (zh) | 基于内存映像的增量数据清洗方法 | |
US20080114752A1 (en) | Querying across disparate schemas | |
CN102193988A (zh) | 一种图形数据库节点数据的检索方法及系统 | |
CN103092916B (zh) | 修改数据结构的方法和装置 | |
US8463799B2 (en) | System and method for consolidating search engine results |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |