CN107203633B - 数据表推数处理方法、装置及电子设备 - Google Patents
数据表推数处理方法、装置及电子设备 Download PDFInfo
- Publication number
- CN107203633B CN107203633B CN201710405068.1A CN201710405068A CN107203633B CN 107203633 B CN107203633 B CN 107203633B CN 201710405068 A CN201710405068 A CN 201710405068A CN 107203633 B CN107203633 B CN 107203633B
- Authority
- CN
- China
- Prior art keywords
- data
- data table
- mart
- pushing
- marts
- 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
- 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/2457—Query processing with adaptation to user needs
- G06F16/24578—Query processing with adaptation to user needs using ranking
-
- 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/283—Multi-dimensional databases or data warehouses, e.g. MOLAP or ROLAP
Abstract
本申请涉及数据表推数处理方法、装置及电子设备,方法包括:从接收数据表的目标系统中获取调度任务依赖关系数据;根据所述调度任务依赖关系数据对待推数的数据表进行排序;按照排序结果将所述数据表推数到所述目标系统中。本申请的技术方案能够提高推数效率,能减少对数据表使用不均衡的问题。
Description
技术领域
本申请涉及数据处理技术领域,具体而言,涉及数据表推数处理方法、装置及电子设备。
背景技术
目前,在企业内部建立统一数据仓库后,由于业务应用需求不同,往往会建立多个不同业务条线的数据集市,数据集市就是企业级数据仓库的一个子集,他主要面向部门级业务,并且只面向某个特定的主题。为了解决灵活性与性能之间的矛盾,数据集市就是数据仓库体系结构中增加的一种小型的部门或工作组级别的数据仓库。数据集市存储为特定用户预先计算好的数据,从而满足用户对性能的需求。数据集市可以在一定程度上缓解访问数据仓库的瓶颈。另外,基于数据集市而创建的子集称为数据子集市,数据子集市主要面向细分业务部门或业务范围的特定数据集合。较复杂的大型企业(如大型互联网电商公司),可能还会进一步细分为数据集市和数据子集市系统,便于管理和应用。
例如:某电商公司通过收集各业务系统数据后,建立统一的数据仓库。由于业务发展快速各业务条线如营销条线、运营条线等有不同的数据应用需求,为了便于管理和提升数据使用效率,提高系统性能等,会建立相应的数据集市,营销数据集市、运营数据集市等。进一步的,还可以根据不同业务特点,再继续细分数据子集市,如将运营数据集市细分为仓储数据子集市、售后数据子集市、客服数据子集市等。
因此数据需要从生产系统抽取到数据仓库,从数据仓库流转到数据集市,或者从数据集市流转到数据子集市中。关于数据流转实现方式,有两种方式,其一是由各业务系统到数据仓库的数据流转,一般采用ETL方式(即抽取、转换、加载);另一种方式是从数据仓库到数据集市、或者数据集市到数据子集市时,一般采用推数方式。这两者的差异主要是ETL方式可能会对原始数据进行清洗、代码转义等数据内容操作,而推数方式只是将数据表不做任何处理直接同步到目标系统中。(推数时可以指定增量和全量,但是只对数据范围进行限制,并不处理数据本身的内容)。本文主要讨论的是推数方式下的数据流转问题。
实际工作场景中,由于表数量众多,推数过程中的顺序是影响系统使用效率的一个重要因素。比如数据集市中有2000张表,假设按表的字母顺序执行推数,如果目标系统的应用使用的表大多是排序中间和靠后的表,那么就需要等待很长时间才能执行后续依赖此表的任务,从而会影响系统使用效率。
现有的从数据仓库到数据集市、或数据集市到数据子集市的推数过程中,并没有考虑太多推数优先级策略,大多是通过人工经验的方法安排表推数的顺序。例如,订单表和用户注册信息表等电商系统核心业务表,人工判断是重要的表,因此优先级安排较高,其他表则没有统一的规则和方法,可能是随机安排顺序进行推数。
企业中数据流转的整体架构示意图如图1所示。从图1中可以看到数据流转主要有三部分,第1部分是从源系统1-N到数据仓库,采用ETL方式。第2部分是从数据仓库推数到数据集市1-N,第3部分从数据集市推数到数据子集市1-N。后两种的数据流转方式都是推数方式,是本发明技术方案要讨论的重点。
并且,从架构上可以看出第2部分和第3部分其方式是一样的,都是从一个主数据源环境推送到N个子数据环境,因此后文我们讨论以图1右上框中的“数据集市系统”部分为例,即从某一个数据集市推数到数据子集市1-N的过程中的推数优先级问题。
目前相关的技术方案是按人工经验的方式形成一个待推送的“表队列”,然后按表队列的顺序执行推数任务。推数过程的示意图如图2所示。图2中,数据集市201中作为数据源系统,而数据子集市1-N作为数据目标系统。在数据集市201中有若干个表,分别为表A、表B、表C、表E,……,表N,图2中用圆圈表示。按照人工经验的方式将这些表形成一个“表队列”,如图2中202,如图2中“表队列”202的顺序是表A、表B、表C、表E、……、表N。然后通过推数调度程序,按照“表队列”202中的顺序执行推数任务。比如第一个执行推数的是“表队列”202中的表1(即表A),执行推数任务后表A就被推送到数据子集市1-N中。然后再继续执行,将表队列中的表2,表3,……按顺序执行。
需要说明的是,数据集市推送到数据子集市不是必须要将某一个表全部推送到所有集市中,需要推送到哪个集市是可以在推数调度程序中进行控制的。无论是否将一个表推送到全部还是某一些数据子集市中,都不影响描述的原有技术方案的问题和本发明的解决方法和装置的效果。另外,对一个表的推数过程是同时进行的,即将一张表推数到N个目标系统中是同时做的,可以近似理解为将待推数的表同时复制到N个目标数据系统中。
但是,上述技术方案存在如下问题:首先,由于没有推数优先级控制方法,可能导致大量有使用频次较低甚至无用的数据推送优先级较高,造成系统使用效率低。比如:数据集市201中的“表队列”202有表100张,第20至50的表真实使用很少或基本不在数据子集市中使用,这样先推数过去的这些表因为使用率低或没有被后续任务使用,因而造成数据子集市系统使用效率低。另外,由于没有数据表推数处理装置,可能导致数据集市子系统使用数据表的效率不均衡。比如:推数过去一张表A到所有数据子集市,但是只有数据子中使用表A,而其他数据子集市没有用到表A,这种情况下,数据子集市1可以执行后续依赖于表A的任务,而其他数据子集市中还是处于继续等待的状况,对于所有的数据子集市来说,整体使用的效率是下降的。
总而言之,上述技术在数据仓库到数据集市或数据集市到数据子集市系统之间数据流转时,未考虑表的应用价值,包括表的使用重要程度和普遍程度,仅靠人工经验的方式制定推数的优先级,没有合理的推数优先级控制方法,所以会在推数时造成目标系统后续任务等待、整体系统效率下降等问题。因此,上述相关技术方案无法在数据仓库到数据集市或者数据集市到数据子集市推数时形成有效的方法和策略,所以会造成对系统效率的影响,在整体上无法实现对多个数据子集市的推数的有效管理。
发明内容
本申请公开数据表推数处理方法,以提高推数效率。
本发明的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本发明的实践而习得。
根据本发明的第一方面,提供一种数据表推数处理方法,包括:
从接收数据表的目标系统中获取调度任务依赖关系数据;
根据所述调度任务依赖关系数据对待推数的数据表进行排序;
按照排序结果将所述数据表推数到所述目标系统中。
根据一些实施例,所述调度任务依赖关系数据包括所述待推数的数据表的后续调度任务。
根据一些实施例,所述调度任务依赖关系数据还包括所述后续调度任务之间的依赖关系。
根据一些实施例,根据所述调度任务依赖关系数据对待推数的数据表进行排序包括:根据所述调度任务依赖关系数据分别对所述数据表进行优先级打分,根据打分结果对所述数据表进行排序。
根据一些实施例,进行优先级打分包括采用如下公式分别计算所述数据表的使用重要程度:
其中Xi为数据表i在全部所述目标系统中的使用重要程度;
m为所述数据表的数量;
N为所述目标系统的数量;
Xij为数据表i在目标系统j上的使用重要程度,其中Xij采用如下公式计算:
sum(Dj)为目标系统j上的任务总数量。
根据一些实施例,进行优先级打分包括采用如下公式分别计算所述数据表的使用普遍程度:
其中,Yi为数据表i在全部所述目标系统中的使用普遍程度;
m为所述数据表的数量;
N为所述目标系统的数量;
count(Xij>0,Dj)为数据表i后续任务数量大于0的目标系统数量。
根据一些实施例,进行优先级打分包括采用如下公式分别计算所述数据表的使用价值:
Vi=Xi×Yi(i=1,2…,m)
其中,m为所述数据表的数量;
Xi为数据表i在全部所述目标系统中的使用重要程度,其中Xi采用如下公式计算:
其中,N为所述目标系统的数量;
Xij为数据表i在目标系统j上的使用重要程度,其中Xij采用如下公式计算:
sum(Xi,Dj)为数据表i在目标系统j上的后续任务数量;
sum(Dj)为目标系统j上的任务总数量;
Yi为数据表i在全部所述目标系统中的使用普遍程度,其中Yi采用如下公式计算:
其中,count(Xij>0,Dj)为数据表i后续任务数量大于0的目标系统数量。
根据一些实施例,根据排序结果执行推数任务包括:根据排序结果将所述数据表放入执行队列中,依次执行所述推数任务。
根据一些实施例,根据排序结果执行推数任务包括:根据排序结果顺次提取所述数据表循环放入并行执行的多个执行队列中,依次执行所述推数任务。
根据排序结果循环将所述数据表放入并行执行的多个执行队列中,依次执行所述执行队列中的推数任务。
根据一些实施例,所述目标系统为数据集市、数据子集市、或应用系统。
根据本发明的第二方面,提供一种数据表推数处理装置,其包括:
关系获取单元,用于从接收数据表的目标系统中获取调度任务依赖关系数据;
排序单元,用于根据所述调度任务依赖关系数据对待推数的数据表进行排序;
执行单元,用于按照排序结果将所述数据表推数到所述目标系统中。
根据一些实施例,所述调度任务依赖关系数据包括所述待推数的数据表的后续调度任务。
根据一些实施例,所述调度任务依赖关系数据还包括所述后续调度任务之间的依赖关系。
根据一些实施例,所述排序单元用于:根据所述调度任务依赖关系数据分别对所述数据表进行优先级打分,根据打分结果对所述数据表进行排序。
根据一些实施例,所述排序单元中进行优先级打分包括采用如下公式分别计算所述数据表的使用重要程度:
其中Xi为数据表i在全部所述目标系统中的使用重要程度;
m为所述数据表的数量;
N为所述目标系统的数量;
Xij为数据表i在目标系统j上的使用重要程度,其中Xij采用如下公式计算:
sum(Dj)为目标系统j上的任务总数量。
根据一些实施例,所述排序单元中进行优先级打分包括采用如下公式分别计算所述数据表的使用普遍程度:
其中,Yi为数据表i在全部所述目标系统中的使用普遍程度;
m为所述数据表的数量;
N为所述目标系统的数量;
count(Xij>0,Dj)为数据表i后续任务数量大于0的目标系统数量。
根据一些实施例,所述排序单元中进行优先级打分包括采用如下公式分别计算所述数据表的使用价值:
Vi=Xi×Yi(i=1,2…,m)
其中,m为所述数据表的数量;
Xi为数据表i在全部所述目标系统中的使用重要程度,其中Xi采用如下公式计算:
其中,N为所述目标系统的数量;
Xij为数据表i在目标系统j上的使用重要程度,其中Xij采用如下公式计算:
sum(Xi,Dj)为数据表i在目标系统j上的后续任务数量;
sum(Dj)为目标系统j上的任务总数量;
Yi为数据表i在全部所述目标系统中的使用普遍程度,其中Yi采用如下公式计算:
其中,count(Xij>0,Dj)为数据表i后续任务数量大于0的目标系统数量。
根据一些实施例,所述执行单元用于:根据排序结果将所述数据表放入执行队列中,依次执行所述推数任务。
根据一些实施例,所述执行单元用于:根据排序结果顺次提取所述数据表循环放入并行执行的多个执行队列中,依次执行所述推数任务。
根据排序结果循环将所述数据表放入并行执行的多个执行队列中,依次执行所述执行队列中的推数任务。
根据一些实施例,所述目标系统为数据集市、数据子集市、或应用系统。
根据本发明的第三方面,提供一种电子设备,包括:处理器;存储器,存储用于所述处理器控制如上述第一方面任一项所述操作的指令。
根据本发明的第三方面,提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现步骤:
从接收数据表的目标系统中获取调度任务依赖关系数据;
根据所述调度任务依赖关系数据对待推数的数据表进行排序;
按照排序结果将所述数据表推数到所述目标系统中。
本申请的实施例提供的技术方案可以包括以下有益效果:
本申请的实施例提供的技术方案能够提高推数效率,能减少对数据表使用不均衡的问题。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性的,并不能限制本发明。
附图说明
通过参照附图详细描述其示例实施例,本发明的上述和其它特征及优点将变得更加明显。
图1示出了企业中数据流转的整体架构示意图;
图2示出了相关技术中的推数过程示意图;
图3示出了根据本发明一实施例的数据表推数处理方法;
图4示出了根据本发明另一示例性实施例的推数过程示意图;
图5示出了根据本发明一示例性实施例的获取调度任务依赖关系数据的示意图;
图6示出了根据本发明一示例性实施例的数据子集市中表和后续任务依赖关系的示意图;
图7示出了根据本发明一示例性实施例的单任务串行推数方式示意图;
图8示出了根据本发明一示例性实施例的多任务并行推数方式示意图;
图9示出了根据本发明一实施例的数据表推数处理装置的框图;
图10示出了根据本发明一实施例的电子设备。
具体实施方式
现在将参考附图更全面地描述示例实施例。然而,示例实施例能够以多种形式实施,且不应被理解为限于在此阐述的实施例;相反,提供这些实施例使得本发明将全面和完整,并将示例实施例的构思全面地传达给本领域的技术人员。在图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。
此外,所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施例中。在下面的描述中,提供许多具体细节从而给出对本发明的实施例的充分理解。然而,本领域技术人员将意识到,可以实践本发明的技术方案而没有特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知方法、装置、实现或者操作以避免模糊本发明的各方面。
附图中所示的方框图仅仅是功能实体,不一定必须与物理上独立的实体相对应。即,可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
附图中所示的流程图仅是示例性说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解,而有的操作/步骤可以合并或部分合并,因此实际执行的顺序有可能根据实际情况改变。
图3示出了根据本发明一实施例的数据表推数处理方法,本实施例可适用于将数据表更高效地堆送到目标系统的情况,如图3所示,本实施例所述的数据表推数处理方法包括:
在步骤S310中,从接收数据表的目标系统中获取调度任务依赖关系数据。
需要说明的是,所述目标系统可为数据集市、数据子集市、或应用系统等。例如用于将数据仓库中的数据表批量推数到多个数据集市中,或者用于将数据集市中的数据表批量推数到多个数据子集市中,或者用于将数据子集市中的数据表批量推数到多个应用系统中。
所述调度任务依赖关系数据用于对待推数的数据表进行排序,包括多种,其具体内容本实施例对此不作限定,只要能据此对待推数的数据表进行排序后,能够提高推数效率即可。例如可以是所述待推数的数据表的后续调度任务、所述后续调度任务之间的依赖关系等一种或一种以上的数据。
在步骤S320中,根据所述调度任务依赖关系数据对待推数的数据表进行排序。
根据所述调度任务依赖关系数据对待推数的数据表进行排序包括:根据所述调度任务依赖关系数据分别对所述数据表进行优先级打分,根据打分结果对所述数据表进行排序。
进行优先级打分可采用多种方式,例如计算所述数据表的使用重要程度进行打分,计算所述数据表的使用普遍程度、计算所述数据表的使用价值等。以下为上述三种方式的示例性计算方法。
方式一、采用如下公式分别计算所述数据表的使用重要程度:
其中Xi为数据表i在全部所述目标系统中的使用重要程度;
m为所述数据表的数量;
N为所述目标系统的数量;
Xij为数据表i在目标系统j上的使用重要程度,其中Xij采用如下公式计算:
sum(Dj)为目标系统j上的任务总数量。
方式二、采用如下公式分别计算所述数据表的使用普遍程度:
其中,Yi为数据表i在全部所述目标系统中的使用普遍程度;
m为所述数据表的数量;
N为所述目标系统的数量;
count(Xij>0,Dj)为数据表i后续任务数量大于0的目标系统数量。
方式三、采用如下公式分别计算所述数据表的使用价值:
Vi=Xi×Yi(i=1,2…,m)
其中,m为所述数据表的数量;
Xi为数据表i在全部所述目标系统中的使用重要程度,其中Xi采用如下公式计算:
其中,N为所述目标系统的数量;
Xij为数据表i在目标系统j上的使用重要程度,其中Xij采用如下公式计算:
sum(Xi,Dj)为数据表i在目标系统j上的后续任务数量;
sum(Dj)为目标系统j上的任务总数量;
Yi为数据表i在全部所述目标系统中的使用普遍程度,其中Yi采用如下公式计算:
其中,count(Xij>0,Dj)为数据表i后续任务数量大于0的目标系统数量。
在步骤S330中,按照排序结果将所述数据表推数到所述目标系统中。
根据排序结果执行推数任务可根据排序结果将所述数据表放入执行队列中,依次执行所述推数任务。
或者,根据排序结果顺次提取所述数据表循环放入并行执行的多个执行队列中,依次执行所述推数任务。
根据排序结果循环将所述数据表放入并行执行的多个执行队列中,依次执行所述执行队列中的推数任务。
本实施例通过从接收数据表的目标系统中获取调度任务依赖关系数据,据此对待推数的数据表进行排序,按照排序结果将所述数据表推数到所述目标系统中,能够提高推数效率,能减少对数据表使用不均衡的问题。
图4示出了根据本发明另一示例性实施例的推数过程示意图,如图4所示,本实施例以将数据集市401中的数据表批量推数到多个数据子集市404中为例,该示例包括的系统整体有三部分组成,“数据集市”401、“数据子集市”405、“处理推数任务的装置”403。本发明新增了“处理推数任务的装置”403这一核心功能装置。
其中,“数据集市”401是数据发送的源系统,包括待推送的全部的表,如上图所示表A、表B、……、表N,并且根据“表队列”402的顺序进行推数调度任务执行,将源表推送到目标系统“数据子集市”405中。其中“表队列”402是由“数据表推数处理装置”输出的结果生成的,例如:表1对应表A,表2对应表C,表3对应表E,表4对应表B……,表N对应表N。另外,推数任务不是必须将某一个表推送到所有数据子集市404中,可以指定全部或某些子集市404。但是推数顺序是始终按照“表队列”402的顺序执行。
“数据子集市系统”405是数据接收的目标系统,当某一个数据子集市404接收到某一个表后,该数据子集市系统405会启用依赖于此表的后续的调度任务。比如表A推数到“数据子集市1”后,依赖于表A的后续任务X,即可以开始执行。
“处理推数任务的装置”是本发明的重要装置,负责管理数据集市401推数过程中“表队列”402中的表的优先级策略。
本实施例中“处理推数任务的装置”架构图如图9所示。
关系获取单元负责采集各个“数据子集市”404中的调度任务依赖关系数据,数据内容为原始表的后续调度任务以及任务之间的依赖关系。此数据采集结果进行数据处理,需要说明的是,本说明书中原始表即是指用于推数过去的表。
之后,对上一步采集到的各个“数据子集市”404中的调度任务依赖关系数据进行一系列数据处理,形成推数后的原始表与后续调度任务的对应关系的数据矩阵,经过本步骤处理之后的数据结果用于作为排序的依据。
排序单元用于负责建立表价值分析方法的模型,进行表的价值计算,并依据计算结果进行排序后存储。将上一步表队列优先级计算结果输出到“数据集市”405系统“表队列”402中,进行表推数的调度任务执行。
例如,实现从各“数据子集市”404中获取调度任务依赖关系数据,例如包括获取两部分数据,源数据表和对应的任务编号,任务调度依赖关系表。如图5所示。
其中,源数据表和对应的任务编号,信息组成如表1所示:
数据子集市编号 | 数据表名 | 后续任务名称 |
Dmart_1 | table_A | job_A1 |
Dmart_1 | table_B | job_B1 |
Dmart_1 | table_B | job_B2 |
Dmart_1 | table_C | job_C1 |
Dmart_1 | table_D | job_C1 |
Dmart_1 | table_E | job_E1 |
Dmart_1 | table_F | job_F1 |
…… | …… | …… |
表1
上述表1说明如下:
a)后续任务名称里的null:表示该表后续无依赖任务;
b)Dmart1:表示“数据子集市1”;
c)table_A、table_B、table_C、table_D……:表示源数据表,即推送过来的表;
d)job_[xx]:依赖于表的后续任务,如job_A1:表示依赖表table_A的任务1,job_B1:表示依赖表table_B的任务1,job_B2:依赖表table_B的任务2……;
e)最终生成N个数据子集市的N个表,分别记为:tab_[x],x表示1-N,如tab_1、tab_2、tab_3……tab_N;
其中,任务调度依赖关系表,信息组成如表2所示:
表2
上述表2说明如下:
a)null表示后续无依赖任务;
b)Dmart1:表示“数据子集市1”;
c)任务编号与后续任务编号:两个字段表示一个任务的后续任务关系;
如:job_A1job_A2:表示job_A1之后要执行job_A2(即job_A2依赖于job_A1);
d)最终生成N个数据子集市的N个表,分别记为:job_[x],x表示1-N,如job_1、job_2、job_3……job_N。
然后,对上一步采集到的数据表进行数据关联和合并处理,得到每个数据子集市中的表的job数。数据子集市中表和后续任务依赖关系的示意图如图6所示。
加工步骤和方法:
(1)加工得到每个表的后续所有任务依赖关系。
如:表A后续任务是A1,A1后续任务为A2,因此表A的全部后续依赖关系记为:A->A1->A2
同样的,表B的后续依赖关系有两条,记为:B->B1;B->B2;
其他类似,如表C、表D、表E、表F……等。
获取表的后续依赖关系的方法:将tab_[x]与job_[x]的表做左外关联和递归job_[x]的表查询sql。
最后的结果是:在N个数据子集市中,每个数据子集市里原始表的后续所有任务依赖关系。
(2)加工得到每个表的后续依赖任务数量。
如:根据上一步计算得知表A的全部后续依赖关系为:A->A1->A2,则统计表A的后续依赖任务数量为2(即A1、A2);表B的后续依赖任务数量为2(B1、B2);表E的后续依赖任务数量为3(即E1、E2、F1)。
加工方法:统计表的后续的所有任务依赖关系中的剔重后的任务数量。
最后的结果是:在N个数据子集市中,每个数据子集市里原始表的后续全部任务数量(剔重)。
(3)将所有N个数据子集市加工的结果合并存储在“表1”中,存储后的结果如表3所示:
数据子集市编号 | 原始表 | 后续任务数量 |
Dmart_1 | table_A | 2 |
Dmart_1 | table_B | 2 |
Dmart_1 | table_C | 1 |
Dmart_1 | table_D | 1 |
Dmart_1 | table_E | 3 |
Dmart_1 | table_F | 1 |
…… | …… | …… |
Dmart_2 | table_A | 1 |
Dmart_2 | table_B | 1 |
Dmart_2 | table_C | 0 |
…… | …… | …… |
Dmart_N | table_A | 5 |
Dmart_N | table_B | 6 |
…… | …… | …… |
表3
上述表3说明如下:
a)一个原始表(即推数过来的表,都存储在fdm层601中),后续可以有0个任务,可以有1个、2个、多个任务,当后续是0个任务时,“表1”的记录中原始表字段对应的“后续任务数量”即为0;
b)存储处理后的数据的“表1”,记录数=N*m(N表示数据子集市的数量,m表示所有数据子集市中的表剔重后的总数量)。
处理之后得到表3,然后分别将“原始表”的使用重要程度和普遍程度计算出来,然后计算得到表的价值,最后通过对表价值进行排序,得到推数优先级的“表队列”。
以下是一种示例性的计算方式的步骤和方法:
(1)计算原始表的重要程度
计算步骤1:计算一张原始表在一个数据子集市上的使用重要程度
m表示全部数据子集市中的表剔重后的总数量;
N表示子集市的数量;
Xij表示原始表i在集市j上的使用重要程度;
sum(Xi,Dj)表示原始表i在集市j上的后续任务数量;
sum(Dj)表示集市j上的任务总数量。
需要说明的是,计算是求解原始表i在集市j上的任务数量与集市j上的任务总数量的比值,该值反应出原始表i在集市j上的重要程度,占比越大,说明越重要。注意:使用比值而非绝对值,避免同一个表在不同数据子集市上的数据倾斜的影响。
以上文的数据为例:
对于表table_A,在集市Dmart_1上计算Xij:
从“表1”中求得table_A在集市Dmart_1上的任务数量为2;
从“表1”中求得集市Dmart_1上全部任务数量为50;
则:X11=2/50=0.04。
其他如:
table_B在集市Dmart_1上计算Xij:X21=2/10=0.2;
table_C在集市Dmart_1上计算Xij:X31=4/100=0.04;
……
计算步骤2:计算一张原始表在全部数据子集市上的使用重要程度
m表示全部数据子集市中的表剔重后的总数量;
N表示子集市的数量;
Xi表示原始表i在全部数据子集市上的使用重要程度;
需要说明的是,计算是求解原始表i在全部集市上的任务数量占比的平均值,该值反应出原始表i在全部集市上的平均重要程度,该值越大,说明对整个数据子集市来说越重要。注意:使用比值平均而非绝对值求和平均,避免同一个表在不同数据子集市上的数据倾斜的影响。
例如,假设N=3,即3个数据子集市,对于表table_A,在3个数据子集市上计算Xij的结果是X11=0.2;X12=0.04;X13=0.04。那么X1=(0.2+0.04+0.04)/3=0.093。
(2)计算原始表的普遍程度计算方法:
m表示全部数据子集市中的表剔重后的总数量;
N表示子集市的数量;
Yi表示原始表i在全部数据子集市上的使用普遍程度;
count(Xij>0,Dj)表示原始表i后续任务数量大于0的数据子集市数量。
需要说明的是,计算方法的是求解使用原始表i的数据子集市数量与数据子集市总数量的比值,该值反应出原始表i的普遍程度,即该表被使用的集市越多,占比越大,说明越普遍。
例如,假设N=3,即3个数据子集市,对于表table_A,在三个数据子集市上计算Xij的结果是X11=0.2;X12=0;X13=0.04。
其中;X12=0说明该表在数据子集市2中没有后续依赖的任务,因此计算得到:Y1=2/3=0.667。
(3)计算原始表的使用价值
计算方法:Vi=Xi×Yi(i=1,2…,m)
m表示全部数据子集市中的表剔重后的总数量;
Vi表示原始表i在全部数据子集市上的使用价值;
Xi表示原始表i在全部数据子集市上的使用重要程度;
Yi表示原始表i在全部数据子集市上的使用普遍程度。
需要说明的是,计算方法的是求解使用原始表i的重要程度与普遍程度的乘积,该值反应出原始表i的使用价值,即值越大,说明价值越高。
最后结果是计算出全部的表的使用价值,即计算m个表(m=1,2,……m)的价值V1,V2…Vm。
例如,假设N=3,即3个数据子集市,对于表table_A:
X1=0.093即表table_A的使用重要程度;
Y1=0.667即表table_A的使用普遍程度;
那么:V1=X1×Y1=0.093×0.667=0.062031
将上述计算结果进行逆向排序,输出到“数据集市”环境中的“表队列”中存储,将用于推数任务的调度依据。
逆向排序的结果如下表4所述的形式,序号原始表使用价值得分如下表4所示:
序号 | 原始表 | 使用价值得分 |
1 | table_A | 0.062031 |
2 | table_B | 0.0591 |
3 | table_C | 0.05543 |
…… | …… | …… |
表4
对于使用价值得分相同的可以随机排序,最终输出到“表队列”如表5所示:
table_A |
table_B |
table_C |
…… |
表5
当需要进行从“数据集市”到“数据子集市”的推数时,推数调度程序会检查“表队列”的信息,将按“表队列”提供的顺序进行推数。推数可以分为串行和并行两种方式,例如可采用如下方式:
方式一、单任务串行推数方式如图7所示。
推数调度程序从“表队列”701中获取待推数的表,按顺序获取表并放到执行队列702中,按时间依次执行推数任务。
方式二、多任务并行推数方式如图8所示:
推数调度程序从“表队列”801中获取待推数的表,按顺序获取表,并循环放到并行执行的多个队列中,按时间依次执行推数任务。
如图8所示:指定并行队列是2,则1,3,5,……,N-1的位置的表将放到执行队列802中执行,2,4,6,……,N的位置的表将放到执行队列803中执行,2个执行队列是同时开始执行。
如果指定并行队列是Q个,则需要将“表队列”拆分为N/Q个。将“表队列”中N个位置的表按顺序循环放到N/Q个执行队列中,等到推数任务的执行。
一方面,本实施例可以有效的管理数据仓库到数据集市或者数据集市到数据子集市之间的推数过程,确保推数到目标系统后,表的整体使用效率较高,并且解决表在全部数据子集市使用不均衡的问题。另一方面,本实施例通过对表价值的计算模型的建立,找到一种有效可靠科学的方法来管理表的推数优先级,解决了以往依靠人工经验造成的推数优先级不合理的问题。另外,解决了表在目标系统使用效率提升以及在整体多个目标系统环境中使用均衡的问题。
对于本发明的适用范围不限于应用系统的类型、数据存储方式、以及系统的不同部署方式等等,只要可以构成数据从统一的源系统到多个目标系统的推数过程,均可以通过本发明的方法解决推数优先级的控制问题。
本发明的目的是要采用一个有效的方法和装置来管理数据仓库到数据集市或者数据集市到数据子集市之间推数过程中的表优先级控制,解决推数时在数据子集市中的表使用效率较低和整体数据子集市使用效率不均衡的问题。本发明具体解决以下两个问题:
图9示出了根据本发明一实施例的数据表推数处理装置的框图,如图9所示,本实施例所述的数据表推数处理装置包括关系获取单元910、排序单元920、以及执行单元930。
该关系获取单元910被配置为,用于从接收数据表的目标系统中获取调度任务依赖关系数据;
该排序单元920被配置为,用于根据所述调度任务依赖关系数据对待推数的数据表进行排序;
该执行单元930被配置为,用于按照排序结果将所述数据表推数到所述目标系统中。
根据本发明的一些实施例,所述调度任务依赖关系数据包括所述待推数的数据表的后续调度任务。
根据本发明的一些实施例,所述调度任务依赖关系数据还包括所述后续调度任务之间的依赖关系。
根据本发明的一些实施例,所述排序单元920用于:根据所述调度任务依赖关系数据分别对所述数据表进行优先级打分,根据打分结果对所述数据表进行排序。
根据本发明的一些实施例,所述排序单元920中进行优先级打分包括采用如下公式分别计算所述数据表的使用重要程度:
其中Xi为数据表i在全部所述目标系统中的使用重要程度;
m为所述数据表的数量;
N为所述目标系统的数量;
Xij为数据表i在目标系统j上的使用重要程度,其中Xij采用如下公式计算:
sum(Dj)为目标系统j上的任务总数量。
根据本发明的一些实施例,所述排序单元920中进行优先级打分包括采用如下公式分别计算所述数据表的使用普遍程度:
其中,Yi为数据表i在全部所述目标系统中的使用普遍程度;
m为所述数据表的数量;
N为所述目标系统的数量;
count(Xij>0,Dj)为数据表i后续任务数量大于0的目标系统数量。
根据本发明的一些实施例,所述排序单元920中进行优先级打分包括采用如下公式分别计算所述数据表的使用价值:
Vi=Xi×Yi(i=1,2…,m)
其中,m为所述数据表的数量;
Xi为数据表i在全部所述目标系统中的使用重要程度,其中Xi采用如下公式计算:
其中,N为所述目标系统的数量;
Xij为数据表i在目标系统j上的使用重要程度,其中Xij采用如下公式计算:
sum(Xi,Dj)为数据表i在目标系统j上的后续任务数量;
sum(Dj)为目标系统j上的任务总数量;
Yi为数据表i在全部所述目标系统中的使用普遍程度,其中Yi采用如下公式计算:
其中,count(Xij>0,Dj)为数据表i后续任务数量大于0的目标系统数量。
根据本发明的一些实施例,所述执行单元930用于:根据排序结果将所述数据表放入执行队列中,依次执行所述推数任务。
根据本发明的一些实施例,所述执行单元930用于:根据排序结果顺次提取所述数据表循环放入并行执行的多个执行队列中,依次执行所述推数任务。
根据排序结果循环将所述数据表放入并行执行的多个执行队列中,依次执行所述执行队列中的推数任务。
根据本发明的一些实施例,所述目标系统为数据集市、数据子集市、或应用系统。
关于上述实施例中的装置,其中各个单元执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
本实施例提供的数据表推数处理装置可执行本发明实施例一和实施例二所提供的数据表推数处理方法,具备执行方法相应的功能模块和有益效果。
图10示出了根据本发明一实施例的电子设备,如图10所示,电子设备1000可包括处理器1010、存储器1020、发射器1030及接收器1040。
存储器1020可存储用于处理器1010控制操作处理的指令。存储器1020可包括易失性或非易失性存储器,如静态随机存取存储器(SRAM)、电可擦除可编程只读存储器(EEPROM)、可擦除可编程只读存储器(EPROM)、可编程只读存储器(PROM)、只读存储器(ROM)等,本发明对此没有限制。
处理器1010可调用存储器1020中存储的指令控制相关操作。根据一实施例,存储器1020存储用于处理器1010控制以下操作的指令:
从接收数据表的目标系统中获取调度任务依赖关系数据;
根据所述调度任务依赖关系数据对待推数的数据表进行排序;
按照排序结果将所述数据表推数到所述目标系统中。
易于理解,存储器1020还可存储用于处理器1010控制根据本发明实施例的其他操作的指令,这里不再赘述。
处理器1010还可控制发射器1030和接收器1040进行信号收发等。
通过以上的详细描述,本领域的技术人员易于理解,根据本发明实施例的系统和方法具有以下优点中的一个或多个。
根据本发明的实施例,所述调度任务依赖关系数据包括所述待推数的数据表的后续调度任务。
根据本发明的一些实施例,所述调度任务依赖关系数据还包括所述后续调度任务之间的依赖关系。
根据本发明的实施例,根据所述调度任务依赖关系数据对待推数的数据表进行排序包括:根据所述调度任务依赖关系数据分别对所述数据表进行优先级打分,根据打分结果对所述数据表进行排序。
根据一些实施例,本发明还提供一种非临时性计算机可读存储介质,例如包括指令的存储器,上述指令可由装置的处理器执行以完成上述方法。例如,非临时性计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。当存储介质中的指令由终端的处理器执行时,使得终端能够执行下述方法:
从接收数据表的目标系统中获取调度任务依赖关系数据;
根据所述调度任务依赖关系数据对待推数的数据表进行排序;
按照排序结果将所述数据表推数到所述目标系统中。
本领域技术人员可以理解,附图只是示例实施例的示意图,附图中的模块或流程并不一定是实施本发明所必须的,因此不能用于限制本发明的保护范围。
本领域技术人员可以理解上述各模块可以按照实施例的描述分布于装置中,也可以进行相应变化唯一不同于本实施例的一个或多个装置中。上述实施例的模块可以合并为一个模块,也可以进一步拆分成多个子模块。
以上具体地示出和描述了本发明的示例性实施例。应该理解,本发明不限于所公开的实施例,相反,本发明意图涵盖包含在所附权利要求的精神和范围内的各种修改和等效布置。
Claims (10)
1.一种数据表推数处理方法,其特征在于,包括:
从接收数据表的多个数据子集市中获取调度任务依赖关系数据;
根据所述调度任务依赖关系数据对数据集市中待推数的数据表进行排序,所述调度任务依赖关系数据包括各个数据子集市中依赖于数据表的后续任务;
按照排序结果将所述数据表从所述数据集市推数到多个所述数据子集市中。
2.如权利要求1所述的数据表推数处理方法,其特征在于,所述调度任务依赖关系数据还包括所述后续调度任务之间的依赖关系。
3.如权利要求2所述的数据表推数处理方法,其特征在于,根据所述调度任务依赖关系数据对待推数的数据表进行排序包括:根据所述调度任务依赖关系数据分别对所述数据表进行优先级打分,根据打分结果对所述数据表进行排序。
6.如权利要求3所述的数据表推数处理方法,其特征在于,进行优先级打分包括采用如下公式分别计算所述数据表的使用价值:
Vi=Xi×Yi(i=1,2…,m)
其中,m为所述数据表的数量;
Xi为数据表i在全部所述数据子集市中的使用重要程度,其中Xi采用如下公式计算:
其中,N为所述数据子集市的数量;
Xij为数据表i在数据子集市j上的使用重要程度,其中Xij采用如下公式计算:
sum(Xi,Dj)为数据表i在数据子集市j上的后续任务数量;
sum(Dj)为数据子集市j上的任务总数量;
Yi为数据表i在全部所述数据子集市中的使用普遍程度,其中Yi采用如下公式计算:
其中,count(Xij>0,Dj)为数据表i后续任务数量大于0的数据子集市数量。
7.如权利要求1所述的数据表推数处理方法,其特征在于,根据排序结果执行推数任务包括:根据排序结果将所述数据表放入执行队列中,依次执行所述推数任务。
8.如权利要求1所述的数据表推数处理方法,其特征在于,根据排序结果执行推数任务包括:根据排序结果顺次提取所述数据表循环放入并行执行的多个执行队列中,依次执行所述推数任务。
9.一种电子设备,其特征在于,包括:处理器;存储器,存储用于所述处理器控制如权利要求1-8任一项所述操作的指令。
10.一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现步骤:
从接收数据表的多个数据子集市中获取调度任务依赖关系数据;
根据所述调度任务依赖关系数据对数据集市中待推数的数据表进行排序,所述调度任务依赖关系数据包括各个数据子集市中依赖于数据表的后续任务;
按照排序结果将所述数据表从所述数据集市推数到多个所述数据子集市中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710405068.1A CN107203633B (zh) | 2017-05-31 | 2017-05-31 | 数据表推数处理方法、装置及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710405068.1A CN107203633B (zh) | 2017-05-31 | 2017-05-31 | 数据表推数处理方法、装置及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107203633A CN107203633A (zh) | 2017-09-26 |
CN107203633B true CN107203633B (zh) | 2020-09-01 |
Family
ID=59907188
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710405068.1A Active CN107203633B (zh) | 2017-05-31 | 2017-05-31 | 数据表推数处理方法、装置及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107203633B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108319499B (zh) * | 2018-02-07 | 2021-06-04 | 麒麟合盛网络技术股份有限公司 | 任务调度方法及装置 |
CN111143463B (zh) * | 2020-01-06 | 2023-07-04 | 中国工商银行股份有限公司 | 一种基于主题模型的银行数据仓库的构建方法及装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103077083A (zh) * | 2013-01-09 | 2013-05-01 | 苏州亿倍信息技术有限公司 | 一种任务处理的方法及系统 |
CN105589874A (zh) * | 2014-10-22 | 2016-05-18 | 阿里巴巴集团控股有限公司 | Etl任务依赖关系的检测方法、装置及etl工具 |
CN105868190A (zh) * | 2015-01-19 | 2016-08-17 | 中国移动通信集团河北有限公司 | 一种在etl中优化任务处理的方法及系统 |
-
2017
- 2017-05-31 CN CN201710405068.1A patent/CN107203633B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103077083A (zh) * | 2013-01-09 | 2013-05-01 | 苏州亿倍信息技术有限公司 | 一种任务处理的方法及系统 |
CN105589874A (zh) * | 2014-10-22 | 2016-05-18 | 阿里巴巴集团控股有限公司 | Etl任务依赖关系的检测方法、装置及etl工具 |
CN105868190A (zh) * | 2015-01-19 | 2016-08-17 | 中国移动通信集团河北有限公司 | 一种在etl中优化任务处理的方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN107203633A (zh) | 2017-09-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110837410B (zh) | 任务调度方法、装置、电子设备及计算机可读存储介质 | |
Tay et al. | Evolving dispatching rules using genetic programming for solving multi-objective flexible job-shop problems | |
US9256686B2 (en) | Using a bloom filter in a web analytics application | |
CN107748696A (zh) | 一种任务调度的方法及终端设备 | |
CN102541858A (zh) | 基于映射和规约的数据均衡性处理方法、装置及系统 | |
CN110795471B (zh) | 数据匹配的方法及装置、计算机可读存储介质、电子设备 | |
CN110347888B (zh) | 订单数据的处理方法、装置及存储介质 | |
US20210185000A1 (en) | Dynamic Email Content Engine | |
CN112150023A (zh) | 任务分配方法、装置及存储介质 | |
CN107203633B (zh) | 数据表推数处理方法、装置及电子设备 | |
CN112364005B (zh) | 数据同步方法、装置、计算机设备及存储介质 | |
CN111144796A (zh) | 用于生成理货信息的方法和装置 | |
CN106933873A (zh) | 一种跨平台数据查询方法和设备 | |
CN115391047A (zh) | 资源调度方法及装置 | |
CN112596879B (zh) | 用于量子云计算平台任务调度的方法 | |
CN115237783A (zh) | 一种测试数据生成方法及装置 | |
Chen et al. | Preemptive scheduling on identical machines with delivery coordination to minimize the maximum delivery completion time | |
CN114722048A (zh) | 一种数据处理方法、装置、电子设备及存储介质 | |
CN113379173B (zh) | 为仓库商品标记标签的方法和装置 | |
CN116109285A (zh) | 人力资源的调配方法、装置、设备及存储介质 | |
CN112184027A (zh) | 任务进度更新方法、装置及存储介质 | |
CN110197383A (zh) | 获取客户群的用户集的方法和装置 | |
CN111159355A (zh) | 客户投诉单处理方法及装置 | |
CN111552561B (zh) | 一种任务处理方法及装置 | |
CN111159545A (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 |