CN103246745B - 一种基于数据仓库的数据处理装置及方法 - Google Patents
一种基于数据仓库的数据处理装置及方法 Download PDFInfo
- Publication number
- CN103246745B CN103246745B CN201310193826.XA CN201310193826A CN103246745B CN 103246745 B CN103246745 B CN 103246745B CN 201310193826 A CN201310193826 A CN 201310193826A CN 103246745 B CN103246745 B CN 103246745B
- Authority
- CN
- China
- Prior art keywords
- data
- data source
- storage unit
- unit
- message
- 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
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明实施例提供一种基于数据仓库的数据处理装置及方法,该装置包括:数据存储装置,用于作为数据的存储空间;数据预处理装置,用于得到原始数据及关键字字典,得到关键要素;数据解析装置,用于读取数据存储装置中的预处理数据,解析得到数据源关系集合中不同维度的转换结果;同时还用于生成元素集合中的优先级;数据重构装置,用于进行全局性的压缩,重组,形成完整的执行语句;执行监控装置,用于从压缩重组存储单元得到可执行的语句,并以多线程方式提交执行,得到每种数据源连接配以元素取值在数据仓库中出现的记录数,并对单个元素条件进行统计。本发明实施例实现了语句运行时间的确定性、***资源有效利用,提高了数据转换的效率。
Description
技术领域
本发明涉及计算机数据处理技术领域,特别是涉及一种基于数据仓库的数据处理装置及方法。
背景技术
信息多样化的今天,随着数据逐渐增多,数据的存储也达到了一定的高度,在很多企业进入了数据仓库的时代,越来越多的应用开始使用数据仓库的数据,从中获取各自需要的信息。在这当中,就有很大一部分需求是将仓库的数据做一定的转换以满足自己的目的。由于数据仓库中存储的是海量数据,如果以传统方式,每个应用都以自己的途径通过循环、匹配、映射等方法做转换将有极大的效率问题。
举个简单的例子,当来自不同应用的请求分别对海量数据进行抽取并进行数据转换,其中有40%以上的请求都使用到了相同的客户信息关联协议的数据,另有30%使用到相同的日志表关联地址信息,如果采用传统方式,每个应用都以自己的途径独立进行数据转换,将导致以下缺陷:
1、数据区间重复访问,即使有了数据库连接池技术,仍得承认,重复N次操作将把时间横向扩大N倍,对于***接入不通过数据库连接池的访问,将有更大的开销;
2、数据源之间被反复连接,当数据库进行连接时,底层会进行许多繁琐的重分布,即使全部使用索引方式连接,数据库也有很大的开销,更何况实际情况做不到全索引连接;
3、数据条件的不确定性,当数据达到海量时,再将所有数据与自己需要的条件匹配,如同大海捞针,运行的时间有很大的不可控性。
4、***资源被大量冗余占用,服务器CPU长期在计算,内存空间得不到有效利用,真正迫切的请求可能仍在进程队列中等待资源的释放。
发明内容
本发明实施例提供一种基于数据仓库的数据处理装置及方法,以克服多渠道海量数据转换反复连接数据库的问题,提高了数据转换效率。
一方面,本发明实施例提供了一种基于数据仓库的数据处理装置,所述基于数据仓库的数据处理装置包括:数据存储装置、数据预处理装置、数据解析装置、数据重构装置、执行监控装置,其中:
数据存储装置,用于作为数据的存储空间,该数据存储装置包含:原始存储单元、关键字存储单元、预处理存储单元、统计存储单元、数据源关系加工存储单元、单元素取值存储单元、压缩重组存储单元、海量数据映射存储单元;
数据预处理装置,用于读取原始存储单元和关键字存储单元,分别得到原始数据及关键字字典,通过关键字字典对原始数据做拆解,得到关键要素,关键要素包括:目标数据源、数据源关系集合、元素取值集合及转换结果,随后将关键要素存入预处理存储单元,其中的数据称为预处理数据,最后数据预处理装置发出完成消息通知数据解析装置;
数据解析装置,用于接收到数据预处理装置的完成消息后,读取数据存储装置中的预处理数据,解析得到数据源关系集合中不同维度的转换结果,将其保存在数据存储装置中的数据源关系加工存储单元;同时还用于从数据存储装置中的统计存储单元读取统计信息,生成元素集合中的优先级,并将其保存在统计存储单元,同时发送完成信息给数据重构装置;
数据重构装置,用于接收来自数据解析装置发来的完成消息,从数据存储装置读取数据源关系加工存储单元及统计存储单元数据,进行全局性的压缩,重组,形成完整的执行语句,并存入压缩重组存储单元,之后发送完成消息至执行监控装置;
执行监控装置,用于接收数据重构装置发送的完成消息,从压缩重组存储单元得到可执行的语句,并以多线程方式提交执行;在执行过程中,执行监控装置读取数据源关系加工存储单元及统计存储单元中的数据,分别得到数据源连接集合及元素取值集合,对于正在执行的语句进行监控,得到每种数据源连接配以元素取值在数据仓库中出现的记录数,并对单个元素条件进行统计;将统计结果记录进统计存储单元中,供数据解析装置下次调用获取。
可选的,在本发明一实施例中,所述数据解析装置包括:数据源加工单元和元素加工单元,其中:数据源加工单元,用于接收来自数据预处理装置发来的完成消息,从数据存储装置中读取预处理存储单元的数据;对预处理数据中数据源关系集合进行解析,提取数据源及数据源之间的关系,通过对数据源及数据源之间的关系进行变形计算,最终计算出“数据源关系”、“转换1”,“转换2”,“转换3”;并将其保存在数据存储装置中的数据源关系加工存储单元;同时发送完成消息给元素加工单元;元素加工单元,用于接收数据源加工单元的完成消息,从数据存储装置读取数据源关系加工存储单元中相同的“转换2”和“转换3”对应的“序号”,用这些“序号”与预处理存储单元中的“序号”做相等关联,得到预处理存储单元中的元素取值集合,然后,结合统计存储单元中统计出现次数的状态对元素取值集合进行频度分析得到各元素取值在表达式中出现的次数,将其补充到统计存储单元中。
可选的,在本发明一实施例中,所述数据源加工单元包括:数据源提取单元和数据源解析重组单元,其中:数据源提取单元,用于接收来自数据预处理装置发来的完成消息,从数据存储装置中读取预处理存储单元的数据源关系集合以及关键存储单元中的关键字,在数据源关系集合中按顺序匹配关键字,得到数据源关系,写入数据存储装置中的数据源关系加工存储单元,并发送完成消息给数据源解析重组单元;数据源解析重组单元,用于接收来自数据源提取单元发来的完成消息,从数据源关系加工存储单元读取数据源关系,对其进行join前置,数据源排序,数据源连接条件排序三步操作,得到压缩重组的数据源关系集合,将结果填入数据源关系加工存储单元中的“转换1”,“转换2”,“转换3”,完成后发送完成消息给元素加工单元。
可选的,在本发明一实施例中,所述元素加工单元包括:元素提取单元、单元素表达式统计单元和重定序单元,其中:元素提取单元,用于接收数据源加工单元发送的完成消息,从数据存储装置中读取数据源关系加工存储单元,得到相同的“转换2”和“转换3”对应的“序号”,根据序号取出预处理存储单元中的元素取值集合,并从中提练出单元素取值,更新到统计存储单元中,发送完成消息给单元素表达式统计单元;单元素表达式统计单元,用于接收元素提取单元发送的完成消息,从统计存储单元读取表达式标志为1的元素取值集合,计算得到单元素的表达式中出现次数,将结果插回统计存储单元中的表达式中出现次数,随后发送完成消息给重定序单元;重定序单元,用于接收来自单元素表达式统计单元发送的完成消息,从统计存储单元读取不同的出现次数,对元素取值集合进行上下,左右顺序性的调整,得到新的排列组合,更新预处理存储单元,随后发送完成消息给数据重构装置。
可选的,在本发明一实施例中,所述数据重构装置包括:数据源合并单元和元素合并单元,其中:数据源合并单元,用于接收数据解析装置发送的完成消息,读取数据存储装置中的数据源关系加工存储单元,将所有相同的数据源关系组合在一起,形成一句语句,得到不包含元素取值的转换语句,将其存入数据存储装置中的压缩重组存储单元,随后,发送完成消息给元素合并单元;元素合并单元,用于接收来自数据源合并单元的完成消息,读取数据源关系加工存储单元,取相同的数据源关系集合,即相同的“转换2”、“转换3”至预处理存储单元中,取出数据源关系集合对应的元素取值集合与转换结果;此时的元素取值集合已被数据解析装置重新调整了顺序,根据元素取值集合与转换结果,由元素合并单元进行重组,生成的完整的转换语句,补充进压缩重组存储单元中;随后发送完成消息给执行监控装置。
可选的,在本发明一实施例中,所述执行监控装置包括:转换语句执行单元、组合计数单元和单元素条件计数单元,其中:转换语句执行单元,用于接收来自数据重构装置发送的完成消息,读取压缩重组存储单元,将其中的语句分线程执行;语句全部执行完成后,发送完成消息给组合计数单元;组合计数单元,用于接收来自转换语句执行单元的完成消息,在统计存储单元中遍历所有表达式标志为1的记录,取得数据源组合和元素取值集合,并用这两个数据对转换语句执行单元执行的数据进行监控,从而捕获海量数据映射存储单元中数据源组合和元素取值集合存在的记录数,将其更新入统计出现次数列中;随后发送完成消息给单元素条件计数单元;单元素条件计数单元,用于接收来自组合计数单元的完成消息,读取统计存储单元的中标志为1的统计出现次数,以此数据对单元素取值出现次数进行计算,将计算结果补充到统计存储单元的单元素取值对应的统计出现次数列。
另一方面,本发明实施例提供了一种基于数据仓库的数据处理方法,所述基于数据仓库的数据处理方法应用于上述基于数据仓库的数据处理装置,具体包括:
数据预处理装置读取数据存储装置中的原始存储单元,对原始数据做预处理,存入数据存储装置中的预处理存储单元,完成后通知数据源解析装置;
数据源解析装置读取数据存储装置中的预处理存储单元,将预处理后的数据传给数据源提取单元处理,由数据源提取单元对数据源语句进行解析,提取出包含在语句中的数据源,完成后通知数据源解析重组单元;
数据源解析重组单元将数据源提取单元解析出的数据源进一步解析,并按固定格式重组,将其保存入数据存储装置中的数据源关系加工存储单元,结束后发送通知给元素加工单元;
元素加工单元读取数据存储装置中的预处理存储单元及数据源关系加工存储单元,将数据传给元素提取单元处理,元素提取单元按数据源关系加工存储单元中相同的数据源关系,找到数据存储装置中的预处理存储单元中的元素取值,并提取出单元素取值及各元素的组合关系,完成后发送消息通知重定序单元;
重定序单元根据分类情况将单元组合进行排列组合,完成后通知数据重构装置;
数据重构装置接到通知后,调用子单元数据源合并单元,由数据源合并单元对全局数据的数据源集合进行压缩合并,生成新的数据源集合,完成后发送另一个子单元元素合并单元;
元素合并单元对全局数据的元素取值集合进行压缩合并,并在数据源合并单元生成的数据基础上,补全元素取值部分,完成后通知执行监控装置;
执行监控装置调用子单元转换语句执行单元,由其负责将所有的转换后的数据进行提交执行;在转换语句执行单元开始执行的同时,由执行监控装置发送通知给组合计数单元及单元素计数单元;
组合计数单元及单元素计数单元负责对转换语句执行单元执行的语句进行监控,并收集执行后的统计信息,以此更新数据存储装置中的统计存储单元。
上述技术方案具有如下有益效果:将来自不同渠道的数据转换语句逐个拆分,抽取出关键要素,并从宏观上将所有转换语句看成整体,进行全局压缩及重组,使不同渠道的语句如同来自一个渠道,从而解决了数据库重复访问、数据源反复连接,实现了语句运行时间的确定性、***资源有效利用,提高了数据转换的效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例一种基于数据仓库的数据处理装置结构示意图;
图2为本发明实施例数据解析装置的结构示意图;
图3为本发明实施例数据源加工单元的结构示意图;
图4为本发明实施例元素加工单元的结构示意图;
图5为本发明实施例数据重构装置的结构示意图;
图6为本发明实施例执行监控装置的结构示意图;
图7为本发明实施例一种基于数据仓库的数据处理方法流程图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
如图1所示,为本发明实施例一种基于数据仓库的数据处理装置结构示意图,所述基于数据仓库的数据处理装置包括:数据存储装置1、数据预处理装置2、数据解析装置3、数据重构装置4、执行监控装置5,其中:
数据存储装置1,用于作为数据的存储空间,该数据存储装置1包含:原始存储单元、关键字存储单元、预处理存储单元、统计存储单元、数据源关系加工存储单元、单元素取值存储单元、压缩重组存储单元、海量数据映射存储单元;
数据预处理装置2,用于读取原始存储单元和关键字存储单元,分别得到原始数据及关键字字典,通过关键字字典对原始数据做拆解,得到关键要素,关键要素包括:目标数据源、数据源关系集合、元素取值集合及转换结果,随后将关键要素存入预处理存储单元,其中的数据称为预处理数据,最后数据预处理装置2发出完成消息通知数据解析装置3;
数据解析装置3,用于接收到数据预处理装置2的完成消息后,读取数据存储装置1中的预处理数据,解析得到数据源关系集合中不同维度的转换结果,将其保存在数据存储装置1中的数据源关系加工存储单元;同时还用于从数据存储装置1中的统计存储单元读取统计信息,生成元素集合中的优先级,并将其保存在统计存储单元,同时发送完成信息给数据重构装置4;
数据重构装置4,用于接收来自数据解析装置3发来的完成消息,从数据存储装置1读取数据源关系加工存储单元及统计存储单元数据,进行全局性的压缩,重组,形成完整的执行语句,并存入压缩重组存储单元,之后发送完成消息至执行监控装置5;
执行监控装置5,用于接收数据重构装置4发送的完成消息,从压缩重组存储单元得到可执行的语句,并以多线程方式提交执行;在执行过程中,执行监控装置5读取数据源关系加工存储单元及统计存储单元中的数据,分别得到数据源连接集合及元素取值集合,对于正在执行的语句进行监控,得到每种数据源连接配以元素取值在数据仓库中出现的记录数,并对单个元素条件进行统计;将统计结果记录进统计存储单元中,供数据解析装置3下次调用获取。
可选的,如图2所示,为本发明实施例数据解析装置的结构示意图,所述数据解析装置3包括:数据源加工单元301和元素加工单元302,其中:数据源加工单元301,用于接收来自数据预处理装置2发来的完成消息,从数据存储装置1中读取预处理存储单元的数据;对预处理数据中数据源关系集合进行解析,提取数据源及数据源之间的关系,通过对数据源及数据源之间的关系进行变形计算,最终计算出“数据源关系”、“转换1”,“转换2”,“转换3”;并将其保存在数据存储装置1中的数据源关系加工存储单元;同时发送完成消息给元素加工单元302;元素加工单元302,用于接收数据源加工单元301的完成消息,从数据存储装置1读取数据源关系加工存储单元中相同的“转换2”和“转换3”对应的“序号”,用这些“序号”与预处理存储单元中的“序号”做相等关联,得到预处理存储单元中的元素取值集合,然后,结合统计存储单元中统计出现次数的状态对元素取值集合进行频度分析得到各元素取值在表达式中出现的次数,将其补充到统计存储单元中。
可选的,如图3所示,为本发明实施例数据源加工单元的结构示意图,所述数据源加工单元301包括:数据源提取单元30101和数据源解析重组单元30102,其中:数据源提取单元30101,用于接收来自数据预处理装置2发来的完成消息,从数据存储装置1中读取预处理存储单元的数据源关系集合以及关键存储单元中的关键字,在数据源关系集合中按顺序匹配关键字,得到数据源关系,写入数据存储装置1中的数据源关系加工存储单元,并发送完成消息给数据源解析重组单元30102;数据源解析重组单元30102,用于接收来自数据源提取单元30101发来的完成消息,从数据源关系加工存储单元读取数据源关系,对其进行join前置,数据源排序,数据源连接条件排序三步操作,得到压缩重组的数据源关系集合,将结果填入数据源关系加工存储单元中的“转换1”,“转换2”,“转换3”,完成后发送完成消息给元素加工单元302。
可选的,如图4所示,为本发明实施例元素加工单元的结构示意图,所述元素加工单元302包括:元素提取单元30201、单元素表达式统计单元30202和重定序单元30203,其中:元素提取单元30201,用于接收数据源加工单元301发送的完成消息,从数据存储装置1中读取数据源关系加工存储单元,得到相同的“转换2”和“转换3”对应的“序号”,根据序号取出预处理存储单元中的元素取值集合,并从中提练出单元素取值,更新到统计存储单元中,发送完成消息给单元素表达式统计单元30202;单元素表达式统计单元30202,用于接收元素提取单元30201发送的完成消息,从统计存储单元读取表达式标志为1的元素取值集合,计算得到单元素的表达式中出现次数,将结果插回统计存储单元中的表达式中出现次数,随后发送完成消息给重定序单元30203;重定序单元30203,用于接收来自单元素表达式统计单元30202发送的完成消息,从统计存储单元读取不同的出现次数,对元素取值集合进行上下,左右顺序性的调整,得到新的排列组合,更新预处理存储单元,随后发送完成消息给数据重构装置4。
可选的,如图5所示,为本发明实施例数据重构装置的结构示意图,所述数据重构装置4包括:数据源合并单元401和元素合并单元402,其中:数据源合并单元401,用于接收数据解析装置3发送的完成消息,读取数据存储装置1中的数据源关系加工存储单元,将所有相同的数据源关系组合在一起,形成一句语句,得到不包含元素取值的转换语句,将其存入数据存储装置1中的压缩重组存储单元,随后,发送完成消息给元素合并单元402;元素合并单元402,用于接收来自数据源合并单元401的完成消息,读取数据源关系加工存储单元,取相同的数据源关系集合,即相同的“转换2”、“转换3”至预处理存储单元中,取出数据源关系集合对应的元素取值集合与转换结果;此时的元素取值集合已被数据解析装置3重新调整了顺序,根据元素取值集合与转换结果,由元素合并单元402进行重组,生成的完整的转换语句,补充进压缩重组存储单元中;随后发送完成消息给执行监控装置5。
可选的,如图6所示,为本发明实施例执行监控装置的结构示意图,所述执行监控装置5包括:转换语句执行单元501、组合计数单元502和单元素条件计数单元503,其中:转换语句执行单元501,用于接收来自数据重构装置4发送的完成消息,读取压缩重组存储单元,将其中的语句分线程执行;语句全部执行完成后,发送完成消息给组合计数单元502;组合计数单元502,用于接收来自转换语句执行单元501的完成消息,在统计存储单元中遍历所有表达式标志为1的记录,取得数据源组合和元素取值集合,并用这两个数据对转换语句执行单元501执行的数据进行监控,从而捕获海量数据映射存储单元中数据源组合和元素取值集合存在的记录数,将其更新入统计出现次数列中;随后发送完成消息给单元素条件计数单元503;单元素条件计数单元503,用于接收来自组合计数单元502的完成消息,读取统计存储单元的中标志为1的统计出现次数,以此数据对单元素取值出现次数进行计算,将计算结果补充到统计存储单元的单元素取值对应的统计出现次数列。
另一方面,对应于上述装置实施例,如图7所示,为本发明实施例一种基于数据仓库的数据处理方法流程图,所述基于数据仓库的数据处理方法应用于上述基于数据仓库的数据处理装置,具体包括:
701、数据预处理装置2读取数据存储装置1中的原始存储单元,对原始数据做预处理,存入数据存储装置1中的预处理存储单元,完成后通知数据源解析装置;
702、数据源解析装置读取数据存储装置1中的预处理存储单元,将预处理后的数据传给数据源提取单元30101处理,由数据源提取单元30101对数据源语句进行解析,提取出包含在语句中的数据源,完成后通知数据源解析重组单元30102;
703、数据源解析重组单元30102将数据源提取单元30101解析出的数据源进一步解析,并按固定格式重组,将其保存入数据存储装置1中的数据源关系加工存储单元,结束后发送通知给元素加工单元302;
704、元素加工单元302读取数据存储装置1中的预处理存储单元及数据源关系加工存储单元,将数据传给元素提取单元30201处理,元素提取单元30201按数据源关系加工存储单元中相同的数据源关系,找到数据存储装置1中的预处理存储单元中的元素取值,并提取出单元素取值及各元素的组合关系,完成后发送消息通知重定序单元30203;
705、重定序单元30203根据分类情况将单元组合进行排列组合,完成后通知数据重构装置4;
706、数据重构装置4接到通知后,调用子单元数据源合并单元401,由数据源合并单元401对全局数据的数据源集合进行压缩合并,生成新的数据源集合,完成后发送另一个子单元元素合并单元402;
707、元素合并单元402对全局数据的元素取值集合进行压缩合并,并在数据源合并单元401生成的数据基础上,补全元素取值部分,完成后通知执行监控装置5;
708、执行监控装置5调用子单元转换语句执行单元501,由其负责将所有的转换后的数据进行提交执行;在转换语句执行单元501开始执行的同时,由执行监控装置5发送通知给组合计数单元502及单元素计数单元;
709、组合计数单元502及单元素计数单元负责对转换语句执行单元501执行的语句进行监控,并收集执行后的统计信息,以此更新数据存储装置1中的统计存储单元。
本发明实施例上述技术方案具有如下有益效果:将来自不同渠道的数据转换语句逐个拆分,抽取出关键要素,并从宏观上将所有转换语句看成整体,进行全局压缩及重组,使不同渠道的语句如同来自一个渠道,从而解决了数据库重复访问、数据源反复连接,实现了语句运行时间的确定性、***资源有效利用,提高了数据转换的效率。
以下结合具体应用实例对上述本发明实施例图1-图7进行详细说明:
本发明应用实例为了克服多渠道海量数据转换反复连接数据库,效率较低的问题,提出了一种基于数据仓库的数据处理装置及方法。该方法将来自不同渠道的数据转换语句逐个拆分,抽取出关键要素,并从宏观上将所有转换语句看成整体,进行全局压缩及重组,使不同渠道的语句如同来自一个渠道,从而解决了数据库重复访问、数据源反复连接,实现了语句运行时间的确定性、***资源有效利用,提高了数据转换的效率。本发明应用实例由于不改变请求语句的含义,只是针对其结构进行压缩和重组,所以它不局限于数据仓库,甚至于落地到非海量数据,也有其很好的通用性。对多渠道、海量数据则有极强的针对性。
本发明应用实例提供了一种基于数据仓库的数据处理装置及方法。通过前置式接口收集不同渠道提供来的数据转换请求,在其对海量数据做抽取、转换前,对转换语句进行汇总,并通过本发明应用实例进行压缩和重组,在这个过程中,装置会对语句进行宏观到微观的分析,将一句完整的请求拆分成数据源和元素,并分别针对海量数据的特点进行重构,而不改变语义。同时,该发明还能动态的选择最优重组方式,不受渠道增加的影响,能随数据增长变化,充分弥补了传统技术架构在此方面的不足。
首先对本发明应用实例所涉及到的数据仓库的技术术语说明:
数据源关系集合——由多个数据源组成,数据源之间存在着一系列关系,使数据之间产生联系,以便组成新的数据源,对于这种新数据源的表达式此处称为数据源关系集合。
元素取值集合——每个数据源都有不同维度的元素组成,以描述这组记录的属性,而这些元素的取值,则表现出记录的当前形态,例如,长方形由长和宽两个元素组成,而长为3,宽为2,则表述了此长方形元素的取值。而元素取值集合则包含一系列元素取值。
转换输出——对于不同特征事物定义的符号。
数据源连接条件——当数据源之间建立关联后,不同数据源之间共性的元素建立的约束关系。
下面结合上述图1-图7进行具体描述:
图1是本发明提供的一种基于数据仓库的数据处理装置的示意图,该装置包括:数据存储装置1、数据预处理装置2、数据解析装置3、数据重构装置4、执行监控装置5。
数据存储装置1,作为发明中所有数据的存储空间,该装置包含:原始存储单元、关键字存储单元、预处理存储单元、统计存储单元、数据源关系加工存储单元、单元素取值存储单元、压缩重组存储单元、海量数据映射存储单元。每个存储单元将在后续装置使用中一一说明。
“原始存储单元”中保存了来自各应用的数据转换句语,称为“原始数据”。如表1.1
表1.1
关键字存储单元包含以下关键字:update,from,set,where,and,union,sel,join,leftjoin,rightjoin。
“海量数据映射存储单元”中通过view视图方式映射了如数据仓库等需要被转换的数据。即原始存储单元中的转换语句操作的对象。
数据预处理装置2,负责读取“原始存储单元”和“关键字存储单元”,分别得到原始数据(表1.1)及关键字字典,通过关键字字典对原始数据做拆解,得到关键要素,关键要素包括“目标数据源”、“数据源关系集合”、“元素取值集合”及“转换结果”,随后将要素存入“预处理存储单元”,其中的数据称为“预处理数据”,最后数据预处理装置2发出消息通知数据解析装置3。
以表1.1中的数据为例,经过数据预处理装置2处理后的数据参见表2.1:
表2.1
目标数据源:update关键字后,from关键字前。
数据源关系集合:如果该语句中没有from关键字,即单数据源自更新,同目标数据源;反之,用from关键字后,set关键字前的部分,拼接“WHERE”,再拼接where关键字后的部分,但不包含元素取值,
元素取值集合,仅包含where关键字后的元素取值。
转换结果,set关键字后,where前的部分。
以下将举一些典型的预处理数据做为贯穿全文的例子,见表2.2。表1.1中的记录对应到表2.2中序号为1和9。
表2.2
数据解析装置3,接收到数据预处理装置2的完成消息后,读取数据存储装置1中的预处理数据,解析得到“数据源关系集合”中不同维度的转换结果,将其保存在数据存储装置1中的“数据源关系加工存储单元”;同时还负责从数据存储装置1中的“统计存储单元”读取统计信息,生成元素集合中的优先级,并将其保存在“统计存储单元”。同时发送完成信息给数据重构装置4。
数据重构装置4,负责接收来自数据解析装置3发来的完成消息,从数据存储装置1读取“数据源关系加工存储单元”及“统计存储单元”数据,进行全局性的压缩,重组,形成完整的执行语句,并存入“压缩重组存储单元”。之后发送消息至执行监控装置5。
执行监控装置5,负责接收数据重构装置4发送的完成消息,从“压缩重组存储单元”得到可执行的语句,并以多线程方式提交执行。在执行过程中,装置5读取“数据源关系加工存储单元”及“统计存储单元”中的数据,分别得到“数据源连接集合”及“元素取值集合”,对于正在执行的语句进行监控,得到每种数据源连接配以元素取值在数据仓库(海量数据库)中出现的记录数,并对单个元素条件进行统计。将统计结果记录进“统计存储单元”中,供装置3下次调用获取。
图2:数据解析装置3的单元结构图,包括:数据源加工单元301和元素加工单元302。
数据源加工单元301负责接收来自数据预处理装置2发来的消息,从数据存储装置1中读取预处理存储单元的数据,见表2.2。对预处理数据中“数据源关系集合”进行解析,提取数据源及数据源之间的关系,通过对数据源及数据源之间的关系进行变形计算,最终计算出“数据源关系”、“转换1”,“转换2”,“转换3”。并将其保存在数据存储装置1中的“数据源关系加工存储单元”。同时发送消息给元素加工单元302。“数据源关系加工存储单元”的数据结构参见表3.1。
序号 | 数据源关系集合 | 数据源关系 | 转换1 | 转换2 | 转换3 |
表3.1
元素加工单元302负责接收数据源加工单元301的完成消息,从数据存储装置1读取“数据源关系加工存储单元”中相同的“转换2”和“转换3”对应的“序号”,用这些“序号”与“预处理存储单元”中的“序号”做相等关联,得到预处理存储单元中的“元素取值集合”,然后,结合“统计存储单元”中“统计出现次数”的状态对“元素取值集合”进行频度分析得到各元素取值在表达式中出现的次数。将其补充到统计存储单元中。“统计存储单元”的数据结构参见表3.2。
表3.2
图3为数据源加工单元301的结构图。参照图3,数据源加工单元301包括:数据源提取单元30101和数据源解析重组单元30102。
数据源提取单元30101,负责接收来自数据预处理装置2发来的消息,从数据存储装置1中读取预处理存储单元的“数据源关系集合”以及关键存储单元中的关键字,在数据源关系集合中按顺序匹配关键字,得到“数据源关系”,写入数据存储装置1中的“数据源关系加工存储单元”(表3.1),并发送消息给数据源解析重组单元30102。以下将对表3.1每个字段的加工逻辑具体说明。表2.2的加工结果参见表3.1.1。
序号、数据源关系集合:直接从“预处理存储单元”读取。
数据源关系:表与表之间的连接方式,但不包含组成这种连接的元素连接条件。获取流程依次为,对“数据源关系集合”进行判断,首先判断是否包含where关键字,当不包含where时,表示数据源关系集合已不能分割,如表3.1.1中记录9,10,取得数据源;包含where,则取where前半部分字符串。其次,判断是否包含from关键字,当不包含from时,取得数据源,如表3.1.1中记录1,2,3等;包含from则取from后半部分字符串。再次,判断是否包含join关键字,当不包含join时,取得数据源,如表3.1.1中记录11;包含join则取join两侧的字符串,用得到的两侧字符串分别回到最初判断是否包含where的步骤,再依次往后执行,直至取得不可分解的数据源。如记录13,14
表3.1.1
数据源解析重组单元30102负责接收来自数据源提取单元30101发来的完成消息,从“数据源关系加工存储单元”读取“数据源关系”,对其进行(1)join前置,(2)数据源排序,(3)数据源连接条件排序三步操作,得到压缩重组的数据源关系集合,将结果填入“数据源关系加工存储单元”中的“转换1”,“转换2”,“转换3”,完成后发送消息给元素加工单元302。以下分别对三步操作做详细说明。
(1)join前置,读取数据源关系中包含join,leftjoin,righjoin的相邻关系,将其关键字提前,写入转换1中,见表3.1.1,序号12,13,14的记录被处理***了转换1。
(2)数据源排序,读取转换1中记录,当转换1不为空时从左至右扫描,当首个关键字是join的记录,对其后的数据源按名称排序,如表3.1.1记录12,13,其中记录12排序结果与原来相同。对于其他join如leftjoin,rightjoin不进行操作,如表3.1.1中记录14。
当转换1为空时,读取“数据源关系”,对数据源按名称排序。如序号2,4,6的数据源关系,顺序发生了变化。
将最终的生成结果写入“转换2”,见表3.1.1。
(3)数据源连接条件排序,读取“数据源关系集合”,对元素连接条件中等号两边的元素进行排序。将结果写入“转换3”,如表3.1.1,序号2,4的元素连接条件发生了变化。
当“转换2”和“转换3”都相等时,说明虽然来自不同应用,“数据源关系集合”其实是相同的。
图4为元素加工单元302的结构图。参照图4,元素加工单元302包括:元素提取单元30201、单元素表达式统计单元30202和重定序单元30203。
元素提取单元30201负责接收数据源加工单元301发送的完成消息,从数据存储装置1中读取“数据源关系加工存储单元”,得到相同的“转换2”和“转换3”对应的“序号”,根据序号取出预处理存储单元中的“元素取值集合”,并从中提练出单元素取值,更新到“统计存储单元”中,发送完成消息给单元素表达式统计单元30202。
从表3.1.1可知,序号1,2的“转换2”和“转换3”是相同的,序号3,4,5,6,7,8的“转换2”和“转换3”相同,这些序号对应于预处理存储单元中的记录如表3.2.1所示。
序号 | 元素取值集合 |
1 | A.a=3AND B.b=’03’ |
2 | A.a=1AND B.b=’03’ |
3 | A.a=3and B.b=’02’ |
4 | A.a=3and B.b=’01’ |
5 | A.a=1and B.b=’01’ |
6 | A.a=1and C.c=’001’ |
7 | A.a=1and B.b=’02’ |
8 | A.a=2and B.b=’02’ |
表3.2.1
从元素取值的组合中抽取出单个元素取值,将其保存入“单元素取值存储单元”,如表3.2.2
元素序号 | 元素取值 |
1 | A.a=1 |
2 | A.a=2 |
3 | A.a=3 |
4 | B.b='02' |
5 | B.b='01' |
6 | C.c='001' |
7 | B.b=’03’ |
表3.2.2
并得到一份以“元素序号组合”定义的“元素取值集合”,暂存在内存中,如表3.2.3所示,其中“数据源组合”为数据源关系加工存储单元中“转换2”和“转换3”的合并结果,以坚线分隔。用数据源组合和元素序号组合比对“统计存储单元”中同名的两个字段,如果统计存储单元不包含内存中的这两个字段的记录,即表3.2.3中的记录,则将记录***“统计存储单元”同名的字段中,如果已包含,则不再***。
同时,表3.2.2的单个元素取值,也去比对“统计存储单元”,按上述的存在与否的判断方式补充到统计存储单元中。
对于是预处理存储单元中的元素取值集合,则将表达式标志置为1,否则为0。
最终内存中的数据即表3.2.3中的记录将全部包含在统计存储单元中。
表3.2.3
单元素表达式统计单元30202负责接收元素提取单元30201的完成消息,从“统计存储单元”读取“表达式标志”为1的元素取值集合,计算得到单元素的“表达式中出现次数”,将结果插回统计存储单元中的“表达式中出现次数”。随后发送消息给重定序单元30203。
表3.2.5为表3.2.1计算得到的结果。其中单元素取值A.a=1在同一个“数据源组合”中分别出现在“元素序列组合”1|5,1|6,1|4中,即出现3次,其他单元素取值在表达式中出现的次数同理获得。
表3.2.5
重定序单元30203负责接收来自单元素表达式统计单元30202发送的完成消息,从“统计存储单元”读取不同的出现次数,对“元素取值集合”进行上下,左右顺序性的调整,得到新的排列组合,更新“预处理存储单元”,随后发送完成消息给数据重构装置4。具体步骤如下:
当统计出现次数为空时,以表达式中出现次数为主进行调整。
当统计出现次数不为空时,以统计出现次数为主,表达式中出现次数为辅进行调整。
以下分别对两种情况分别说明:
假设数据源组合A,B|A.col1=B.col1对应的统计出现次数为空,数据源组合A,B,C|A.col1=B.col1andA.col2=C.col2对应的统计出现次数不为空
当统计出现次数为空时。
从统计存储单元得到表3.2.5中数据,以下仅列出“表达式中出现次数”不为空的记录及有用列,见表3.2.6:
表3.2.6
和上表中数据对应的预处理存储单元中的记录为表3.2.1中的3,4,5,6,7,8,
摘录如下
序号 | 元素取值集合 |
3 | A.a=3and B.b=’02’ |
4 | A.a=3and B.b=’01’ |
5 | A.a=1and B.b=’01’ |
6 | A.a=1and C.c=’001’ |
7 | A.a=1and B.b=’02’ |
8 | A.a=2and B.b=’02’ |
表3.2.7
具体调整步骤如下:同行异列规则:同一行按从左往右顺序确定单元素取值,第N列的单元素取值必须是当前所有表达式中出现次数最多的,即第N列的单元素取值对应的表达式中出现次数必须大于等于第N+1列(N>=1),当表达式中出现次数相同,则取名称排序靠前的先排。
首先确定第一行,第一列的元素取值。从表3.2.6找到单元素取值在表达式中出现次数最高的记录,此时A.a=1和B.b=′02′都出现了3次,则根据表名排序取A.a=1作为第一行第一列的元素取值,第一行如下所示
A.a=1与其他组合
随后确定第一行,第二列,从与第一列组合的剩余元素取值中再次取得出现次数最高的单元素取值。
根据元素取值集合可知,与A.a=1对应的组合分别是B.b=’01’,B.b=’02’,C.c=’001’,根据同行异列规则B.b=’02’出现3次,最多。
由此补充第一行记录
A.a=1andB.b=′02′
此时A.a=1andB.b=′02′后无剩余单元素取值与之组合,故开始第二行的计算。
异行同列规则:第N行的第M列字段必须与第N-1行第M列字段相同,除非第N行的第M列已没有第N-1行第M列相同的元素取值(N>=2,M>=1)。
由此规则可知,第二行第一列也为A.a=1,补充数据如下
A.a=1andB.b=′02′
A.a=1与其他组合
继续确认第二行第二列,从剩下的组合获取。
与A.a=1对应的组合还剩B.b=’01’,C.c=’001’,其中B.b=’01’次数为2,最多,得到如下结果
A.a=1andB.b=′02′
A.a=1andB.b=′01′
继续确定第三行的排列,根据异行同列规则得到如下结果
A.a=1andB.b=′02′
A.a=1andB.b=’01’
A.a=1与其他组合
与A.a=1对应的组合还剩C.c=’001’,其中C.c=’001’表达式中出现次数为1,最多,得到结果如下
A.a=1andB.b=′02′
A.a=1andB.b=’01’
A.a=1andC.c=’001’
根据异行同列规则,第四行已无A.a=1的组合,则根据同行异列规则,找出剩余单元素取值中表达式中出现次数最多的记录做为第一列,此时B.b=′02′次数为3最多,生成结果如下
A.a=1andB.b=′02′
A.a=1andB.b=’01’
A.a=1andC.c=’001’
B.b=′02′与其他组合
根据异行同列规则可写出所有与B.b=′02′相关的组合顺序,即第四、第五行
A.a=1andB.b=′02′
A.a=1andB.b=’01’
A.a=1andC.c=’001’
B.b=′02′andA.a=3
B.b=′02′andA.a=2
最后还剩A.a=3与B.b=’01’的组合,由于这两个元素取值的表达式中出现次数都为2相同,则根据首字母顺序决定从左至右的排列顺序。得到最终的调整后结果,如表3.2.8:
行号 | 序号 | 元素取值集合 |
1 | 7 | A.a=1and B.b=’02’ |
2 | 5 | A.a=1and B.b=’01’ |
3 | 6 | A.a=1and C.c=’001’ |
4 | 3 | B.b=’02’and A.a=3 |
5 | 8 | B.b=’02’and A.a=2 |
6 | 4 | A.a=3and B.b=’01’ |
表3.2.8
当统计优先级不为空时,从统计存储单元中获取统计出现次数不为空的记录,如表3.2.9所示。
表3.2.9
因为第2行的记录统计出现次数比第1行高,经过重定序单元30203加工后,预处理存储单元中序号1,2两条记录的顺序进行了上下调整,如表3.2.13
行号序号元素取值集合12A.a=1AND B.b=’03’21A.a=3AND B.b=’03’ |
表3.2.13
随后,单元30202将使用表达式中出现次数对其做一次辅助的调整。再次读取统计存储单元得到表3.2.13对应的单元素取值对应的表达式中出现次数,如表3.2.14所示。
表3.2.14
根据同行异列及同列异行规则进行重排后,得到表3.2.15
序号 | 元素取值集合 |
2 | B.b=’03’ AND A.a=1 |
1 | B.b=’03’ AND A.a=3 |
表3.2.15
图5为数据重构装置4的结构图。参照图5,数据重构装置4包括:数据源合并单元401和元素合并单元402。
数据源合并单元401负责接收数据解析装置3发送的完成消息,读取数据存储装置1中的“数据源关系加工存储单元”,将所有相同的数据源关系组合在一起,形成一句语句。得到不包含元素取值的转换语句,将其存入装置1中的“压缩重组存储单元”,随后,发送完成消息给元素合并单元402。
引用表3.1.1加工后的“数据源关系加工存储单元”,见下表3.2.16:
表3.2.16
根据先前得到的结论,以下各组对应的数据源连接集合是相同的。
记录1,2
记录3,4,5,6,7,8
记录9,10
记录11
记录12,13
记录14
数据源合并单元401生成后的结果存入压缩重组存储单元,如表4.1所示,其中字符串$changeContent需由元素合并单元402更新
表4.1
经装置401加工后,14条语句压缩至6句。
元素合并单元402,负责接收来自数据源合并单元401发送的完成消息,读取“数据源关系加工存储单元”(表3.1.4),取相同的数据源关系集合,即相同的转换2、转换3至预处理存储单元(表2.6)中,取出数据源关系集合对应的“元素取值集合”与“转换结果”。此时的元素取值集合已被装置3重新调整了顺序,根据“元素取值集合”与“转换结果”,由元素合并单元402进行重组,生成的完整的转换语句,补充进压缩重组存储单元中。随后发送完成消息给执行监控装置5。
引用表4.2例子说明:记录1,2的数据源连接是相同的,如下表4.2所示
表4.2
得到经过装置3加工后的记录,即表3.2.15,如下表4.2.1所示
B.b=’03’ AND A.a=1 | A.x=′TQ005′ |
B.b=’03’ AND A.a=3 | A.x=′TQ004′ |
表4.2.1所以生成的语句为
将其替换对应的$changeContent。
根据这样生成的语句,对数据库而言,可以优先匹配到出现概率最高的条件组合,将其首先命中,而不必在经过了几次匹配后才命中,减少全表扫描的次数和时间。同时,也减少了CPU的逻辑判断。
以下是记录1,2最终生成的完整语句
WHEREA.col1=B.col1andA.col2=C.col2;
记录3,4,5,6,7,8
参考先前得到的排列顺序,如下表4.2.2所示
7 | A.a=1 and B.b=’02’ | A.x=′TQ011′ |
5 | A.a=1 and B.b=’01’ | A.x=′TQ009′ |
6 | A.a=1 and C.c=’001’ | A.x=′TQ010′ |
3 | B.b=’02’ and A.a=3 | A.x=′TQ007′ |
8 | B.b=’02’ and A.a=2 | A.x=′TQ012′ |
4 | A.a=3 and B.b=’01’ | A.x=′TQ008′ |
表4.2.2
WHEREA.col1=B.col1;
同理,其余记录也按此方法继续整合,表4.3为所有记录整合后的数据,将其补充进压缩重组存储单元。
表4.3
图6为执行监控装置5的结构图。参照图6,执行监控装置5包括:转换语句执行单元501、组合计数单元502和单元素条件计数单元503。
转换语句执行单元501,负责接收来自数据重构装置4发送的完成消息,读取“压缩重组存储单元”,将其中的语句分线程执行。语句全部执行完成后,发送完成消息给组合计数单元502。
组合计数单元502,负责接收来自转换语句执行单元501发送的完成消息,在统计存储单元中遍历所有表达式标志为1的记录,取得“数据源组合”和“元素取值集合”,并用这两个数据对“转换语句执行单元501”执行的数据进行监控,从而捕获“海量数据映射存储单元”中“数据源组合”和“元素取值集合”存在的记录数,将其更新入“统计出现次数”列中。随后发送消息给单元素条件计数单元503。
如表3.2.9所示,“元素序号组合”为3|8的记录存在31亿条记录,1|7的记录存在53亿条记录。
单元素条件计数单元503,负责接收来自组合计数单元502发送的完成消息,读取统计存储单元的中标志为1的统计出现次数,以此数据对单元素取值出现次数进行计算,将计算结果补充到统计存储单元的单元素取值对应的统计出现次数列。
根据表3.2.9可知,在A.a=3ANDB.b=’03’中,有31亿条记录A.a=3同时也即有31亿条记录满足B.b=’03’;
在A.a=1ANDB.b=’03’中有53亿条记录满足A.a=1,同时有53亿条记录满足B.b=’03’;
所以在整个数据集中满足B.b=’03’的记录有31+53=84亿。
将其回填入统计存储单元中单元素取值的统计出现次数。得到的结果见表4.4。
3 | 8 | A.a=3 AND B.b=’03’ | 31亿 |
1 | 7 | A.a=1 AND B.b=’03’ | 53亿 |
3 | A.a=3 | 31亿 | |
7 | B.b=’03’ | 31+53=84亿 | |
1 | A.a=1 | 53亿 |
表4.4
虽然在本例的预处理存储单元中并没有出现单元素取值的情况,但这一步统计为了将来出现单元素条件取值时,可以不用再重新积累统计,而直接可以获取单元素的统计出现次数,提前对单元素取值进行优化。
参照图7为本发明基于数据仓库的数据处理方法的流程图,本发明应用实例海量数据转换方法流程包括:
步骤1:数据预处理装置2读取数据存储装置1中的原始存储单元,对原始数据做预处理,存入数据存储装置1中的预处理存储单元。完成后通知数据源解析装置3。
步骤2:数据源解析装置3读取数据存储装置1中的预处理存储单元,将预处理后的数据传给数据源提取单元30101处理,由数据源提取单元30101对数据源语句进行解析,提取出包含在语句中的数据源。完成后通知数据源解析重组单元30102。
步骤3:数据源解析重组单元30102将数据源提取单元30101解析出的数据源进一步解析,并按固定格式重组,将其保存入数据存储装置1中的数据源关系加工存储单元。结束后发送通知给元素加工单元302。
步骤4:元素加工单元302读取数据存储装置1中的预处理存储单元及数据源关系加工存储单元,将数据传给元素提取单元30201处理,元素提取单元30201按数据源关系加工存储单元中相同的数据源关系,找到数据存储装置1中的预处理存储单元中的元素取值,并提取出单元素取值及各元素的组合关系。完成后发送消息通知重定序单元30203。
步骤5:重定序单元30203根据分类情况将单元组合进行排列组合。完成后通知数据重构装置4。
步骤6:数据重构装置4接到通知后,调用子单元数据源合并单元401,由数据源合并单元401对全局数据的数据源集合进行压缩合并,生成新的数据源集合。完成后发送另一个子单元元素合并单元402。
步骤7:元素合并单元402对全局数据的元素取值集合进行压缩合并,并在数据源合并单元401生成的数据基础上,补全元素取值部分。完成后通知执行监控装置5。
步骤8:执行监控装置5调用子单元转换语句执行单元501,由其负责将所有的转换后的数据进行提交执行。在转换语句执行单元501开始执行的同时,由执行监控装置5发送通知给组合计数单元502及单元素计数单元503。
步骤9:组合计数单元502及单元素计数单元503负责对转换语句执行单元501执行的语句进行监控,并收集执行后的统计信息,以此更新数据存储装置1中的统计存储单元。
本发明应用实例提出了一种基于数据仓库的数据处理装置及方法,对于多渠道海量数据的转换,无论其底层是数据库,文件存储,亦或是基于电子元件的存储方式,此发明都有其显著的针对性。在数据仓库的实际应用中,经过这种改造,每天10亿的转换数据,从日均10小时,优化至4小时,极大的缩短了时间窗口。
本发明应用实例与传统技术相比,其效果和优点体现在以下几个方面:
1、减少数据库访问,由于相同数据源只连接一次,试点数据仓库环境中,11044条转换语句经该发明直接受益,最终减少至93条语句。不考虑元素取值的命中优化,已减少了10951次重复的数据库访问;
2、相同数据源连接只关联一次,极大减少数据重分布,及非索引访问的大量开销;
3、数据条件确定性,即使被转换的数据不断增加,转换的条件继续增多,转换的元素取值集合始终以最优排列进行快速命中;
4、***吞吐量大幅提高,经该发明重组后的语句在执行过程中,CPU已无过多计算压力,重复数据不会冗余占据内存,为其他迫切的请求让出了宝贵硬件资源。
本领域技术人员还可以了解到本发明实施例列出的各种说明性逻辑块(illustrativelogicalblock),单元,和步骤可以通过电子硬件、电脑软件,或两者的结合进行实现。为清楚展示硬件和软件的可替换性(interchangeability),上述的各种说明性部件(illustrativecomponents),单元和步骤已经通用地描述了它们的功能。这样的功能是通过硬件还是软件来实现取决于特定的应用和整个***的设计要求。本领域技术人员可以对于每种特定的应用,可以使用各种方法实现所述的功能,但这种实现不应被理解为超出本发明实施例保护的范围。
本发明实施例中所描述的各种说明性的装置、逻辑块,或单元都可以通过通用处理器,数字信号处理器,专用集成电路(ASIC),现场可编程门阵列或其它可编程逻辑装置,离散门或晶体管逻辑,离散硬件部件,或上述任何组合的设计来实现或操作所描述的功能。通用处理器可以为微处理器,可选地,该通用处理器也可以为任何传统的处理器、控制器、微控制器或状态机。处理器也可以通过计算装置的组合来实现,例如数字信号处理器和微处理器,多个微处理器,一个或多个微处理器联合一个数字信号处理器核,或任何其它类似的配置来实现。
本发明实施例中所描述的方法或算法的步骤可以直接嵌入硬件、处理器执行的软件模块、或者这两者的结合。软件模块可以存储于RAM存储器、闪存、ROM存储器、EPROM存储器、EEPROM存储器、寄存器、硬盘、可移动磁盘、CD-ROM或本领域中其它任意形式的存储媒介中。示例性地,存储媒介可以与处理器连接,以使得处理器可以从存储媒介中读取信息,并可以向存储媒介存写信息。可选地,存储媒介还可以集成到处理器中。处理器和存储媒介可以设置于ASIC中,ASIC可以设置于用户终端中。可选地,处理器和存储媒介也可以设置于用户终端中的不同的部件中。
在一个或多个示例性的设计中,本发明实施例所描述的上述功能可以在硬件、软件、固件或这三者的任意组合来实现。如果在软件中实现,这些功能可以存储与电脑可读的媒介上,或以一个或多个指令或代码形式传输于电脑可读的媒介上。电脑可读媒介包括电脑存储媒介和便于使得让电脑程序从一个地方转移到其它地方的通信媒介。存储媒介可以是任何通用或特殊电脑可以接入访问的可用媒体。例如,这样的电脑可读媒体可以包括但不限于RAM、ROM、EEPROM、CD-ROM或其它光盘存储、磁盘存储或其它磁性存储装置,或其它任何可以用于承载或存储以指令或数据结构和其它可被通用或特殊电脑、或通用或特殊处理器读取形式的程序代码的媒介。此外,任何连接都可以被适当地定义为电脑可读媒介,例如,如果软件是从一个网站站点、服务器或其它远程资源通过一个同轴电缆、光纤电缆、双绞线、数字用户线(DSL)或以例如红外、无线和微波等无线方式传输的也被包含在所定义的电脑可读媒介中。所述的碟片(disk)和磁盘(disc)包括压缩磁盘、镭射盘、光盘、DVD、软盘和蓝光光盘,磁盘通常以磁性复制数据,而碟片通常以激光进行光学复制数据。上述的组合也可以包含在电脑可读媒介中。
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (6)
1.一种基于数据仓库的数据处理装置,其特征在于,所述基于数据仓库的数据处理装置包括:数据存储装置、数据预处理装置、数据解析装置、数据重构装置、执行监控装置,其中:
数据存储装置,用于作为数据的存储空间,该数据存储装置包含:原始存储单元、关键字存储单元、预处理存储单元、统计存储单元、数据源关系加工存储单元、单元素取值存储单元、压缩重组存储单元、海量数据映射存储单元;
数据预处理装置,用于读取原始存储单元和关键字存储单元,分别得到原始数据及关键字字典,通过关键字字典对原始数据做拆解,得到关键要素,关键要素包括:目标数据源、数据源关系集合、元素取值集合及转换结果,随后将关键要素存入预处理存储单元,其中的数据称为预处理数据,最后数据预处理装置发出完成消息通知数据解析装置;
数据解析装置,用于接收到数据预处理装置的完成消息后,读取数据存储装置中的预处理数据,解析得到数据源关系集合中不同维度的转换结果,将其保存在数据存储装置中的数据源关系加工存储单元;同时还用于从数据存储装置中的统计存储单元读取统计信息,生成元素集合中的优先级,并将其保存在统计存储单元,同时发送完成信息给数据重构装置;其中,所述数据解析装置包括:数据源加工单元和元素加工单元;
数据源加工单元,用于接收来自数据预处理装置发来的完成消息,从数据存储装置中读取预处理存储单元的数据;对预处理数据中数据源关系集合进行解析,提取数据源及数据源之间的关系,通过对数据源及数据源之间的关系进行变形计算,最终计算出数据源关系数据、第一转换数据、第二转换数据、第三转换数据,并保存在数据存储装置中的数据源关系加工存储单元;同时发送完成消息给元素加工单元;
元素加工单元,用于接收数据源加工单元的完成消息,从数据存储装置读取数据源关系加工存储单元中相同的第二转换数据和第三转换数据对应的序号数据,用所述序号数据与预处理存储单元中的序号数据做相等关联,得到预处理存储单元中的元素取值集合,然后,结合统计存储单元中统计出现次数的状态对元素取值集合进行频度分析得到各元素取值在表达式中出现的次数,将其补充到统计存储单元中;
数据重构装置,用于接收来自数据解析装置发来的完成消息,从数据存储装置读取数据源关系加工存储单元及统计存储单元数据,进行全局性的压缩,重组,形成完整的执行语句,并存入压缩重组存储单元,之后发送完成消息至执行监控装置;
执行监控装置,用于接收数据重构装置发送的完成消息,从压缩重组存储单元得到可执行的语句,并以多线程方式提交执行;在执行过程中,执行监控装置读取数据源关系加工存储单元及统计存储单元中的数据,分别得到数据源连接集合及元素取值集合,对于正在执行的语句进行监控,得到每种数据源连接配以元素取值在数据仓库中出现的记录数,并对单个元素条件进行统计;将统计结果记录进统计存储单元中,供数据解析装置下次调用获取。
2.如权利要求1所述基于数据仓库的数据处理装置,其特征在于,所述数据源加工单元包括:数据源提取单元和数据源解析重组单元,其中:
数据源提取单元,用于接收来自数据预处理装置发来的完成消息,从数据存储装置中读取预处理存储单元的数据源关系集合以及关键存储单元中的关键字,在数据源关系集合中按顺序匹配关键字,得到数据源关系,写入数据存储装置中的数据源关系加工存储单元,并发送完成消息给数据源解析重组单元;
数据源解析重组单元,用于接收来自数据源提取单元发来的完成消息,从数据源关系加工存储单元读取数据源关系,对其进行join前置,数据源排序,数据源连接条件排序三步操作,得到压缩重组的数据源关系集合,将结果填入数据源关系加工存储单元中的第一转换数据、第二转换数据、第三转换数据,完成后发送完成消息给元素加工单元。
3.如权利要求1所述基于数据仓库的数据处理装置,其特征在于,所述元素加工单元包括:元素提取单元、单元素表达式统计单元和重定序单元,其中:
元素提取单元,用于接收数据源加工单元发送的完成消息,从数据存储装置中读取数据源关系加工存储单元,得到相同的第二转换数据和第三转换数据对应的序号数据,根据序号取出预处理存储单元中的元素取值集合,并从中提练出单元素取值,更新到统计存储单元中,发送完成消息给单元素表达式统计单元;
单元素表达式统计单元,用于接收元素提取单元发送的完成消息,从统计存储单元读取表达式标志为1的元素取值集合,计算得到单元素的表达式中出现次数,将结果插回统计存储单元中的表达式中出现次数,随后发送完成消息给重定序单元;
重定序单元,用于接收来自单元素表达式统计单元发送的完成消息,从统计存储单元读取不同的出现次数,对元素取值集合进行上下,左右顺序性的调整,得到新的排列组合,更新预处理存储单元,随后发送完成消息给数据重构装置。
4.如权利要求1所述基于数据仓库的数据处理装置,其特征在于,所述数据重构装置包括:数据源合并单元和元素合并单元,其中:
数据源合并单元,用于接收数据解析装置发送的完成消息,读取数据存储装置中的数据源关系加工存储单元,将所有相同的数据源关系组合在一起,形成一句语句,得到不包含元素取值的转换语句,将其存入数据存储装置中的压缩重组存储单元,随后,发送完成消息给元素合并单元;
元素合并单元,用于接收来自数据源合并单元的完成消息,读取数据源关系加工存储单元,取相同的数据源关系集合,即相同的第二转换数据、第三转换数据至预处理存储单元中,取出数据源关系集合对应的元素取值集合与转换结果;此时的元素取值集合已被数据解析装置重新调整了顺序,根据元素取值集合与转换结果,由元素合并单元进行重组,生成的完整的转换语句,补充进压缩重组存储单元中;随后发送完成消息给执行监控装置。
5.如权利要求1所述基于数据仓库的数据处理装置,其特征在于,所述执行监控装置包括:转换语句执行单元、组合计数单元和单元素条件计数单元,其中:
转换语句执行单元,用于接收来自数据重构装置发送的完成消息,读取压缩重组存储单元,将其中的语句分线程执行;语句全部执行完成后,发送完成消息给组合计数单元;
组合计数单元,用于接收来自转换语句执行单元的完成消息,在统计存储单元中遍历所有表达式标志为1的记录,取得数据源组合和元素取值集合,并用这两个数据对转换语句执行单元执行的数据进行监控,从而捕获海量数据映射存储单元中数据源组合和元素取值集合存在的记录数,将其更新入统计出现次数列中;随后发送完成消息给单元素条件计数单元;
单元素条件计数单元,用于接收来自组合计数单元的完成消息,读取统计存储单元的中标志为1的统计出现次数,以此数据对单元素取值出现次数进行计算,将计算结果补充到统计存储单元的单元素取值对应的统计出现次数列。
6.一种基于数据仓库的数据处理方法,其特征在于,所述基于数据仓库的数据处理方法应用于所述权利要求1-5中任一项基于数据仓库的数据处理装置,具体包括:
数据预处理装置读取数据存储装置中的原始存储单元,对原始数据做预处理,存入数据存储装置中的预处理存储单元,完成后通知数据源解析装置;
数据源解析装置读取数据存储装置中的预处理存储单元,将预处理后的数据传给数据源提取单元处理,由数据源提取单元对数据源语句进行解析,提取出包含在语句中的数据源,完成后通知数据源解析重组单元;
数据源解析重组单元将数据源提取单元解析出的数据源进一步解析,并按固定格式重组,将其保存入数据存储装置中的数据源关系加工存储单元,结束后发送通知给元素加工单元;
元素加工单元读取数据存储装置中的预处理存储单元及数据源关系加工存储单元,将数据传给元素提取单元处理,元素提取单元按数据源关系加工存储单元中相同的数据源关系,找到数据存储装置中的预处理存储单元中的元素取值,并提取出单元素取值及各元素的组合关系,完成后发送消息通知重定序单元;
重定序单元根据分类情况将单元组合进行排列组合,完成后通知数据重构装置;
数据重构装置接到通知后,调用子单元数据源合并单元,由数据源合并单元对全局数据的数据源集合进行压缩合并,生成新的数据源集合,完成后发送另一个子单元元素合并单元;
元素合并单元对全局数据的元素取值集合进行压缩合并,并在数据源合并单元生成的数据基础上,补全元素取值部分,完成后通知执行监控装置;
执行监控装置调用子单元转换语句执行单元,由其负责将所有的转换后的数据进行提交执行;在转换语句执行单元开始执行的同时,由执行监控装置发送通知给组合计数单元及单元素计数单元;
组合计数单元及单元素计数单元负责对转换语句执行单元执行的语句进行监控,并收集执行后的统计信息,以此更新数据存储装置中的统计存储单元。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310193826.XA CN103246745B (zh) | 2013-05-22 | 2013-05-22 | 一种基于数据仓库的数据处理装置及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310193826.XA CN103246745B (zh) | 2013-05-22 | 2013-05-22 | 一种基于数据仓库的数据处理装置及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103246745A CN103246745A (zh) | 2013-08-14 |
CN103246745B true CN103246745B (zh) | 2016-03-09 |
Family
ID=48926265
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310193826.XA Active CN103246745B (zh) | 2013-05-22 | 2013-05-22 | 一种基于数据仓库的数据处理装置及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103246745B (zh) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103500221A (zh) * | 2013-10-15 | 2014-01-08 | 北京国双科技有限公司 | 分析服务数据库的监控方法和装置 |
CN104572898B (zh) * | 2014-12-22 | 2017-09-22 | 上海找钢网信息科技股份有限公司 | 一种钢贸行业现货资源的数据解析方法及*** |
CN105224649B (zh) * | 2015-09-29 | 2019-03-26 | 北京奇艺世纪科技有限公司 | 一种数据处理方法和装置 |
CN105955970A (zh) * | 2015-11-12 | 2016-09-21 | ***股份有限公司 | 一种基于日志解析的数据库复制方法及装置 |
CN105631027A (zh) * | 2015-12-30 | 2016-06-01 | 中国农业大学 | 一种面向企业商务智能的数据可视化分析方法和*** |
EP3475884B1 (en) | 2016-08-22 | 2023-12-27 | Oracle International Corporation | System and method for automated mapping of data types for use with dataflow environments |
CN109189928B (zh) * | 2018-08-30 | 2022-05-17 | 天津做票君机器人科技有限公司 | 一种汇票交易机器人的授信信息识别方法 |
CN110427611A (zh) * | 2019-06-26 | 2019-11-08 | 深圳追一科技有限公司 | 文本处理方法、装置、设备及存储介质 |
CN112800144B (zh) * | 2021-01-21 | 2024-03-08 | 北京博阳世通信息技术有限公司 | 多粒度时空对象的生成方法及装置 |
CN113010595A (zh) * | 2021-03-18 | 2021-06-22 | 国网福建省电力有限公司宁德供电公司 | 一种电力能源数据分析与监控方法及*** |
CN113934789B (zh) * | 2021-11-25 | 2024-05-31 | 中国电子科技集团公司第十三研究所 | 基于电子元器件的数据仓库构建方法及*** |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102073698A (zh) * | 2010-12-28 | 2011-05-25 | 中国工商银行股份有限公司 | 企业级数据仓库***的样本数据获取方法及装置 |
CN102081605A (zh) * | 2009-11-30 | 2011-06-01 | ***通信集团上海有限公司 | 基于数据仓库的数据封装装置及业务数据获取方法 |
-
2013
- 2013-05-22 CN CN201310193826.XA patent/CN103246745B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102081605A (zh) * | 2009-11-30 | 2011-06-01 | ***通信集团上海有限公司 | 基于数据仓库的数据封装装置及业务数据获取方法 |
CN102073698A (zh) * | 2010-12-28 | 2011-05-25 | 中国工商银行股份有限公司 | 企业级数据仓库***的样本数据获取方法及装置 |
Non-Patent Citations (1)
Title |
---|
商业银行数据仓库建设;黄兆斌;《软件导刊》;20120228;第11卷(第2期);149-151页 * |
Also Published As
Publication number | Publication date |
---|---|
CN103246745A (zh) | 2013-08-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103246745B (zh) | 一种基于数据仓库的数据处理装置及方法 | |
US10025823B2 (en) | Techniques for evaluating query predicates during in-memory table scans | |
CN101751406B (zh) | 一种实现基于列存储的关系型数据库的方法及装置 | |
US9619512B2 (en) | Memory searching system and method, real-time searching system and method, and computer storage medium | |
CN110083639B (zh) | 一种基于聚类分析的数据血缘智能溯源的方法及装置 | |
CN103064933A (zh) | 数据查询方法及*** | |
CN102236672A (zh) | 一种数据导入方法及装置 | |
US8244693B2 (en) | Method and device for compressing table based on finite automata, method and device for matching table | |
CN103902544A (zh) | 一种数据处理方法及*** | |
US20200226116A1 (en) | Fast index creation system for cloud big data database | |
CN111625561A (zh) | 一种数据查询方法及装置 | |
CN112445702A (zh) | 基于蚁群算法的自动化测试方法和*** | |
CN112000825A (zh) | 一种基于分库分表的电子证照存储模型的建立方法及*** | |
CN113254457A (zh) | 一种对账方法、***及计算机可读存储介质 | |
CN116450607A (zh) | 数据处理方法、设备及存储介质 | |
CN101098495A (zh) | 一种提高智能业务在线统计任务性能的***及方法 | |
CN115936017A (zh) | 一种支持界面多语言和数据多语言的主数据管理方法 | |
CN114564501A (zh) | 一种数据库数据存储、查询方法、装置、设备及介质 | |
CN113486023A (zh) | 数据库分库分表的方法及装置 | |
CN110069595A (zh) | 语料标签确定方法、装置、电子设备及存储介质 | |
CN116955403B (zh) | 无模式数据运算加速方法、装置、计算机设备及介质 | |
CN113542137B (zh) | 一种分布式***转发平面路由处理方法及*** | |
CN118394780A (zh) | 一种sql语句的处理方法、装置、存储介质和电子设备 | |
CN116483886B (zh) | 结合kv存储引擎和时序存储引擎查询olap的方法 | |
CN118210800A (zh) | 一种自适应的数据表结构优化方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |