CN112150248A - 一种基于批流融合的挂货量统计方法、系统、装置 - Google Patents
一种基于批流融合的挂货量统计方法、系统、装置 Download PDFInfo
- Publication number
- CN112150248A CN112150248A CN202011062937.3A CN202011062937A CN112150248A CN 112150248 A CN112150248 A CN 112150248A CN 202011062937 A CN202011062937 A CN 202011062937A CN 112150248 A CN112150248 A CN 112150248A
- Authority
- CN
- China
- Prior art keywords
- resource
- hanging
- cargo
- hash code
- supplier
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q30/00—Commerce
- G06Q30/06—Buying, selling or leasing transactions
- G06Q30/0601—Electronic shopping [e-shopping]
-
- 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
-
- 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/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/08—Logistics, e.g. warehousing, loading or distribution; Inventory or stock management
- G06Q10/087—Inventory or stock management, e.g. order filling, procurement or balancing against orders
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q30/00—Commerce
- G06Q30/06—Buying, selling or leasing transactions
- G06Q30/0601—Electronic shopping [e-shopping]
- G06Q30/0605—Supply or demand aggregation
Abstract
本发明涉及一种基于批流融合的挂货量统计方法、系统、装置,方法包括步骤:S1、批处理:平台开市前基于业务库中的资源表获取并计算处于上架状态的各个资源的资源挂货唯一哈希码和资源重量并写入消息系统,求取各个供应商的挂货量初始值存入数据库;S2、流处理:平台开市后实时采集资源表履历,筛选上架操作的记录生成新的资源挂货唯一哈希码以及对应的资源重量实时值;S3、批流融合处理:判断新的资源挂货唯一哈希码是否存在于消息系统中,若是则舍弃,否则将其存入消息系统,同时更新各个供应商的总挂货量并存入数据库;S4、循环执行步骤S2~S3。与现有技术相比,本发明保证了数据传输和挂货量计算的及时性。
Description
技术领域
本发明涉及数据处理技术领域,尤其是涉及一种基于批流融合的挂货量统计方法、系统、装置。
背景技术
对于钢铁电商而言,挂货量的统计是数据分析工作里很重要的一部分。传统的关系型数据库所存储的资源信息都是动态变化的,只能获取到当前时间的资源状态与资源属性,无法获取到资源状态与资源属性的历史变动信息,缺乏统计挂货量的数据基础,无法精准实时的统计各供应商当天在平台的累计挂货量,也无法统计平台供应商累计的挂货量。利用原大数据的批处理技术或许能达到一定的效果,但数据采集多以天或者小时为采集频率,即便采集频率提升到分钟,增量采集所得到的资源历史变动信息也是不准确的:首先,不能保证客户不会在一分钟内完成上架下架等操作,在这种情况下,仍然会有部分资源无法被统计;另外,业务库中存储的资源表一般有多张,主表和子表分别记录不同的信息需要进行关联,而上下架的操作数据修改是没法根据时间来进行强关联进行统计,除上述以外,离线的高频采集是一种侵入式采集方式,对业务系统性能有较大影响,离线采集的时效性也达不到实时统计的要求。
总结以上,业务系统只记录了资源当前资源最终状态,而传统的离线批处理技术无法实时获取资源实时上架履历情况,现有的方法无法实时精准统计平台各供应商的挂货量。
发明内容
本发明的目的就是为了克服上述现有技术存在的缺陷而提供一种基于批流融合的挂货量统计方法、系统、装置。
本发明的目的可以通过以下技术方案来实现:
一种基于批流融合的挂货量统计方法,该方法包括如下步骤:
S1、批处理:在平台开市前获取业务库中的资源表,基于资源表获取平台上各供应商处于上架状态的各个资源的资源挂货唯一哈希码和资源重量并写入消息系统,最后求取各个供应商的资源重量总和作为挂货量初始值存入数据库;
S2、流处理:平台开市后实时采集资源表履历,基于资源表履历获得供应商所有操作更新时间点的资源信息,筛选上架状态的记录生成新的资源挂货唯一哈希码以及对应的资源重量实时值;
S3、批流融合处理:判断流处理得到的新的资源挂货唯一哈希码是否存在于消息系统中,若是则舍弃,否则将新的资源挂货唯一哈希码以及对应的资源重量实时值存入消息系统,同时更新各个供应商的总挂货量并存入数据库;
S4、循环执行步骤S2~S3。
优选地,所述的资源表包括资源主表和资源子表,对应的,所述的资源表履历包括资源主表履历和资源子表履历,所述的资源主表和资源主表履历包括至少如下字段:资源号、供应商代码、捆包号、状态、重量,所述的资源子表和资源子表履历包括至少如下字段:资源号、品种、牌号、产地、规格。
优选地,步骤S1具体为:
S11、在资源主表中筛选出状态为“上架”的资源,用资源号关联资源子表并按照“供应商代码+捆包号+品种+牌号+产地+规格”生成资源挂货唯一哈希码,将“供应商代码+资源挂货唯一哈希码+重量+更新时间”写入消息系统;
S12、基于供应商代码将同一个供应商的资源的重量求和得到挂货量初始值存入数据库。
优选地,步骤S2具体为:
S21、采集资源主表履历和资源子表履历,并存储至消息系统;
S22、使用Flink计算引擎按照资源号将最新获取的资源主表履历或资源子表履历对应关联与之时间最近的一条资源子表履历或资源主表履历,并按照“供应商代码+捆包号+品种+牌号+产地+规格”生成新的资源挂货唯一哈希码,将新的资源挂货唯一哈希码写入消息系统。
优选地,步骤S22中具体为:
在Flink中设置窗口T;
若在T窗口期内资源主表履历和资源子表履历均有流数据流入,则将流入的资源主表履历和资源子表履历按资源号进行关联,并对“上架”状态的记录按照“供应商代码+捆包号+品种+牌号+产地+规格”生成新的资源挂货唯一哈希码;
若在T窗口期内仅有资源主表履历或资源子表履历有流数据流入,则从消息系统中提取当前流入的流数据中对应的资源号当天的所有履历,若流数据为资源主表履历,则通过Flink将资源主表履历与最近的一条资源子表履历关联,若流数据为资源子表履历,则通过Flink将资源子表履历与最近的一条资源主表履历关联,最后对“上架”状态的记录按照“供应商代码+捆包号+品种+牌号+产地+规格”生成新的资源挂货唯一哈希码。
优选地,步骤S3具体为:判断流处理得到的新的资源挂货唯一哈希码是否存在于消息系统中,若是则舍弃,否则将“供应商代码+资源挂货唯一哈希码+重量+更新时间”写入消息系统,同时将该条记录对应的重量与数据库中该供应商已有的挂货量进行累加得到总挂货量并更新至数据库。
优选地,在上述挂货量统计方法中,所述的消息系统包括kafka。
优选地,在上述挂货量统计方法中,所述的数据库包括mysql数据库系统。
一种基于批流融合的挂货量统计系统,该系统包括:
批处理模块(1):该模块用于在平台开市前获取业务库中的资源表,基于资源表获取平台上各供应商处于上架状态的各个资源的资源挂货唯一哈希码和资源重量并写入消息系统,最后求取各个供应商的资源重量总和作为挂货量初始值存入数据库;
流处理模块(2):该模块用于在平台开市后实时采集资源表履历,基于资源表履历获得供应商所有操作更新时间点的资源信息,筛选上架状态的记录生成新的资源挂货唯一哈希码以及对应的挂货量实时值;
批流融合模块(3):该模块用于判断流处理得到的新的资源挂货唯一哈希码是否存在于消息系统中,若是则舍弃,否则将新的资源挂货唯一哈希码以及对应的资源重量实时值存入消息系统,同时更新各个供应商的总挂货量并存入数据库;
循环处理模块(4):该模块用于触发流处理模块和批流融合模块依次循环运作。
优选地,该系统中的资源表包括资源主表和资源子表,对应的,所述的资源表履历包括资源主表履历和资源子表履历,所述的资源主表和资源主表履历包括至少如下字段:资源号、供应商代码、捆包号、状态、重量,所述的资源子表和资源子表履历包括至少如下字段:资源号、品种、牌号、产地、规格。
优选地,所述的批处理模块(1)包括:
上架筛选批处理子模块(11):该子模块用于在资源主表中筛选出状态为“上架”的资源,用资源号关联资源子表并按照“供应商代码+捆包号+品种+牌号+产地+规格”生成资源挂货唯一哈希码,将“供应商代码+资源挂货唯一哈希码+重量+更新时间”写入消息系统;
初始挂货量计算子模块(12):该子模块基于供应商代码将同一个供应商的资源的重量求和得到挂货量初始值存入数据库。
优选地,所述的流处理模块(2)包括:
流数据采集子模块(21):该子模块采集资源主表履历和资源子表履历,并存储至消息系统;
流数据处理子模块(22):该子模块使用Flink计算引擎按照资源号将最新获取的资源主表履历或资源子表履历对应关联与之时间最近的一条资源子表履历或资源主表履历,并按照“供应商代码+捆包号+品种+牌号+产地+规格”生成新的资源挂货唯一哈希码,将新的资源挂货唯一哈希码写入消息系统。
优选地,流数据处理子模块(22)获取新的资源挂货唯一哈希码的具体方式为:
在Flink中设置窗口T;
若在T窗口期内资源主表履历和资源子表履历均有流数据流入,则将流入的资源主表履历和资源子表履历按资源号进行关联,并对“上架”状态的记录按照“供应商代码+捆包号+品种+牌号+产地+规格”生成新的资源挂货唯一哈希码;
若在T窗口期内仅有资源主表履历或资源子表履历有流数据流入,则从消息系统中提取当前流入的流数据中对应的资源号当天的所有履历,若流数据为资源主表履历,则通过Flink将资源主表履历与最近的一条资源子表履历关联,若流数据为资源子表履历,则通过Flink将资源子表履历与最近的一条资源主表履历关联,最后对“上架”状态的记录按照“供应商代码+捆包号+品种+牌号+产地+规格”生成新的资源挂货唯一哈希码。
优选地,所述的批流融合模块(3)包括:
去重子模块(31):该子模块判断流处理得到的新的资源挂货唯一哈希码是否存在于消息系统中,若是则舍弃,否则将“供应商代码+资源挂货唯一哈希码+重量+更新时间”写入消息系统;
挂货量融合累加子模块(32):该子模块将最新写入消息系统的记录对应的重量与数据库中该供应商已有的挂货量进行累加得到总挂货量并更新至数据库。
优选地,在上述挂货量统计系统,所述的消息系统包括kafka。
优选地,在上述挂货量统计系统,所述的数据库包括mysql数据库系统。
一种基于批流融合的挂货量统计装置,该装置包括存储器和处理器;
所述存储器,用于存储计算机程序;
所述处理器,用于当执行所述计算机程序时,实现所述的基于批流融合的挂货量统计方法。
与现有技术相比,本发明具有如下优点:
(1)本发明采用批处理的方式获取了供应商每日挂货量的初始值,在批处理的基础上使用流处理实时捕获业务库资源表履历,并通过实时计算引擎进行状态判断、去重、累加等处理得到最终的挂货量,此过程不会漏掉业务字段所做的任何修改,且时间能精确到毫秒,保证了数据传输和挂货量计算的及时性;
(2)由于资源主表履历和资源子表履历无强关联,因此,两行为日志数据表间无法常规关联,想要通过时间间隔来关联则会导致消耗过大,平台不稳定,因此,本发明采取流处理的方式,既准确完成了资源主表履历和资源子表履历的拼接,同时又减少了平台消耗,提高了平台稳定性;
(3)本发明利用资源挂货唯一哈希码识别出每条资源,并进行相关去重、累加等计算,十分简洁明了,提高最终总挂货量统计的精准性。
附图说明
图1为本发明基于批流融合的挂货量统计方法的流程框图;
图2为本发明基于批流融合的挂货量统计系统的结构框图;
图中,1为批处理模块,2为流处理模块,3为批流融合模块,4为循环处理模块,11为上架筛选批处理子模块,12为初始挂货量计算子模块,21为流数据采集子模块,22为流数据处理子模块,31为去重子模块,32为挂货量融合累加子模块。
具体实施方式
下面结合附图和具体实施例对本发明进行详细说明。注意,以下的实施方式的说明只是实质上的例示,本发明并不意在对其适用物或其用途进行限定,且本发明并不限定于以下的实施方式。
实施例1
如图1所示,一种基于批流融合的挂货量统计方法,该方法包括如下步骤:
S1、批处理:在平台开市前获取业务库中的资源表,基于资源表获取平台上各供应商处于上架状态的各个资源的资源挂货唯一哈希码和资源重量并写入消息系统,最后求取各个供应商的资源重量总和作为挂货量初始值存入数据库。
具体地,资源表包括资源主表和资源子表,资源主表包括至少如下字段:资源号、供应商代码、捆包号、状态、重量,资源子表包括至少如下字段:资源号、品种、牌号、产地、规格。进而步骤S1具体为:
步骤S1具体为:
S11、凌晨0:00点以快照的方式离线采集资源主表和资源子表,在资源主表中筛选出状态为“上架”的资源,用资源号关联资源子表并按照“供应商代码+捆包号+品种+牌号+产地+规格”生成资源挂货唯一哈希码,将“供应商代码+资源挂货唯一哈希码+重量+更新时间”写入消息系统;
S12、基于供应商代码将同一个供应商的资源的重量求和得到挂货量初始值存入数据库。
S2、流处理:平台开市后实时采集资源表履历,基于资源表履历获得供应商所有操作更新时间点的资源信息,筛选上架状态的记录生成新的资源挂货唯一哈希码以及对应的资源重量实时值。
对应于资源表,资源表履历包括资源主表履历和资源子表履历,资源主表履历包括至少如下字段:资源号、供应商代码、捆包号、状态、重量,资源子表履历包括至少如下字段:资源号、品种、牌号、产地、规格。进而步骤S2具体为:
S21、采集资源主表履历和资源子表履历,并存储至消息系统;
S22、使用Flink计算引擎按照资源号将最新获取的资源主表履历或资源子表履历对应关联与之时间最近的一条资源子表履历或资源主表履历,并按照“供应商代码+捆包号+品种+牌号+产地+规格”生成新的资源挂货唯一哈希码,将新的资源挂货唯一哈希码写入消息系统。
步骤S22中具体为:
在Flink中设置窗口T,本实施例中,窗口T设置为1分钟;
若在T窗口期内资源主表履历和资源子表履历均有流数据流入,则将流入的资源主表履历和资源子表履历按资源号进行关联,并对“上架”状态的记录按照“供应商代码+捆包号+品种+牌号+产地+规格”生成新的资源挂货唯一哈希码;
若在T窗口期内仅有资源主表履历或资源子表履历有流数据流入,则从消息系统中提取当前流入的流数据中对应的资源号当天的所有履历,若流数据为资源主表履历,则通过Flink将资源主表履历与最近的一条资源子表履历关联,若流数据为资源子表履历,则通过Flink将资源子表履历与最近的一条资源主表履历关联,最后对“上架”状态的记录按照“供应商代码+捆包号+品种+牌号+产地+规格”生成新的资源挂货唯一哈希码。
S3、批流融合处理:判断流处理得到的新的资源挂货唯一哈希码是否存在于消息系统中,若是则舍弃,否则将新的资源挂货唯一哈希码以及对应的资源重量实时值存入消息系统,同时更新各个供应商的总挂货量并存入数据库,具体为:判断流处理得到的新的资源挂货唯一哈希码是否存在于消息系统中,若是则舍弃,否则将“供应商代码+资源挂货唯一哈希码+重量+更新时间”写入消息系统,同时将该条记录对应的资源重量与数据库中该供应商已有的挂货量进行累加得到总挂货量并更新至数据库。
S4、循环执行步骤S2~S3。
在上述方法中,消息系统采用kafka,数据库采用mysql数据库系统。
本发明方法具有如下几个关键技术:
1)资源挂货唯一哈希码
资源挂货唯一哈希码的关键域为“供应商代码+捆包号+品种+牌号+产地+规格”。
2)批处理
供应商若在前一天挂的货一直到当天,则必然0:00存在挂货,跑定时任务,针对“上架”状态资源计算每个供应商挂货量的初始值。
3)流处理
流处理的方便之处在于能实时捕捉到业务字段的每一次变化,需要对资源主表和子表的流数据进行实时关联,以获得供应商所有操作更新时间点的资源的信息,并判断是否“上架”状态。
4)批流融合
根据对比判断新生成的哈希码是否已存在,达到去重效果,防止挂货量重复翻倍,并对挂货量实时累加。
基于批流融合实时精准统计挂货量,保证了资源唯一标识的完整性,保证了挂货量信息的及时性与准确性。此方法能够帮助数据分析师及时获得客户的成交转化率等信息,也能及时帮助客户进行有关挂货量的决策分析。
实施例2
如图2所示,一种基于批流融合的挂货量统计系统,该系统包括:
批处理模块1:该模块用于在平台开市前获取业务库中的资源表,基于资源表获取平台上各供应商处于上架状态的各个资源的资源挂货唯一哈希码和资源重量并写入消息系统,最后求取各个供应商的资源重量总和作为挂货量初始值存入数据库;
流处理模块2:该模块用于在平台开市后实时采集资源表履历,基于资源表履历获得供应商所有操作更新时间点的资源信息,筛选上架状态的记录生成新的资源挂货唯一哈希码以及对应的挂货量实时值;
批流融合模块3:该模块用于判断流处理得到的新的资源挂货唯一哈希码是否存在于消息系统中,若是则舍弃,否则将新的资源挂货唯一哈希码以及对应的资源重量实时值存入消息系统,同时更新各个供应商的总挂货量并存入数据库;
循环处理模块4:该模块用于触发流处理模块和批流融合模块依次循环运作。
具体地,该系统中的资源表包括资源主表和资源子表,对应的,资源表履历包括资源主表履历和资源子表履历,资源主表和资源主表履历包括至少如下字段:资源号、供应商代码、捆包号、状态、重量,资源子表和资源子表履历包括至少如下字段:资源号、品种、牌号、产地、规格。
批处理模块1包括:
上架筛选批处理子模块11:该子模块用于在资源主表中筛选出状态为“上架”的资源,用资源号关联资源子表并按照“供应商代码+捆包号+品种+牌号+产地+规格”生成资源挂货唯一哈希码,将“供应商代码+资源挂货唯一哈希码+重量+更新时间”写入消息系统;
初始挂货量计算子模块12:该子模块基于供应商代码将同一个供应商的资源的重量求和得到挂货量初始值存入数据库。
流处理模块2包括:
流数据采集子模块21:该子模块采集资源主表履历和资源子表履历,并存储至消息系统;
流数据处理子模块22:该子模块使用Flink计算引擎按照资源号将最新获取的资源主表履历或资源子表履历对应关联与之时间最近的一条资源子表履历或资源主表履历,并按照“供应商代码+捆包号+品种+牌号+产地+规格”生成新的资源挂货唯一哈希码,将新的资源挂货唯一哈希码写入消息系统。
流数据处理子模块22获取新的资源挂货唯一哈希码的具体方式为:
在Flink中设置窗口T;
若在T窗口期内资源主表履历和资源子表履历均有流数据流入,则将流入的资源主表履历和资源子表履历按资源号进行关联,并对“上架”状态的记录按照“供应商代码+捆包号+品种+牌号+产地+规格”生成新的资源挂货唯一哈希码;
若在T窗口期内仅有资源主表履历或资源子表履历有流数据流入,则从消息系统中提取当前流入的流数据中对应的资源号当天的所有履历,若流数据为资源主表履历,则通过Flink将资源主表履历与最近的一条资源子表履历关联,若流数据为资源子表履历,则通过Flink将资源子表履历与最近的一条资源主表履历关联,最后对“上架”状态的记录按照“供应商代码+捆包号+品种+牌号+产地+规格”生成新的资源挂货唯一哈希码。
批流融合模块3包括:
去重子模块31:该子模块判断流处理得到的新的资源挂货唯一哈希码是否存在于消息系统中,若是则舍弃,否则将“供应商代码+资源挂货唯一哈希码+重量+更新时间”写入消息系统;
挂货量融合累加子模块32:该子模块将最新写入消息系统的记录对应的资源重量与数据库中该供应商已有的挂货量进行累加得到总挂货量并更新至数据库。
在上述系统中,消息系统采用kafka,数据库采用mysql数据库系统。
实施例3
一种基于批流融合的挂货量统计装置,该装置包括存储器和处理器;存储器,用于存储计算机程序;处理器,用于当执行所述计算机程序时,实现基于批流融合的挂货量统计方法,此处基于批流融合的挂货量统计方法与实施例1相同,此处不再详细展开。
上述实施方式仅为例举,不表示对本发明范围的限定。这些实施方式还能以其它各种方式来实施,且能在不脱离本发明技术思想的范围内作各种省略、置换、变更。
Claims (17)
1.一种基于批流融合的挂货量统计方法,其特征在于,该方法包括如下步骤:
S1、批处理:在平台开市前获取业务库中的资源表,基于资源表获取平台上各供应商处于上架状态的各个资源的资源挂货唯一哈希码和资源重量并写入消息系统,最后求取各个供应商的资源重量总和作为挂货量初始值存入数据库;
S2、流处理:平台开市后实时采集资源表履历,基于资源表履历获得供应商所有操作更新时间点的资源信息,筛选上架状态的记录生成新的资源挂货唯一哈希码以及对应的资源重量实时值;
S3、批流融合处理:判断流处理得到的新的资源挂货唯一哈希码是否存在于消息系统中,若是则舍弃,否则将新的资源挂货唯一哈希码以及对应的资源重量实时值存入消息系统,同时更新各个供应商的总挂货量并存入数据库;
S4、循环执行步骤S2~S3。
2.根据权利要求1所述的一种基于批流融合的挂货量统计方法,其特征在于,所述的资源表包括资源主表和资源子表,对应的,所述的资源表履历包括资源主表履历和资源子表履历,所述的资源主表和资源主表履历包括至少如下字段:资源号、供应商代码、捆包号、状态、重量,所述的资源子表和资源子表履历包括至少如下字段:资源号、品种、牌号、产地、规格。
3.根据权利要求2所述的一种基于批流融合的挂货量统计方法,其特征在于,步骤S1具体为:
S11、在资源主表中筛选出状态为“上架”的资源,用资源号关联资源子表并按照“供应商代码+捆包号+品种+牌号+产地+规格”生成资源挂货唯一哈希码,将“供应商代码+资源挂货唯一哈希码+重量+更新时间”写入消息系统;
S12、基于供应商代码将同一个供应商的资源的重量求和得到挂货量初始值存入数据库。
4.根据权利要求2所述的一种基于批流融合的挂货量统计方法,其特征在于,步骤S2具体为:
S21、采集资源主表履历和资源子表履历,并存储至消息系统;
S22、使用Flink计算引擎按照资源号将最新获取的资源主表履历或资源子表履历对应关联与之时间最近的一条资源子表履历或资源主表履历,并按照“供应商代码+捆包号+品种+牌号+产地+规格”生成新的资源挂货唯一哈希码,将新的资源挂货唯一哈希码写入消息系统。
5.根据权利要求4所述的一种基于批流融合的挂货量统计方法,其特征在于,步骤S22中具体为:
在Flink中设置窗口T;
若在T窗口期内资源主表履历和资源子表履历均有流数据流入,则将流入的资源主表履历和资源子表履历按资源号进行关联,并对“上架”状态的记录按照“供应商代码+捆包号+品种+牌号+产地+规格”生成新的资源挂货唯一哈希码;
若在T窗口期内仅有资源主表履历或资源子表履历有流数据流入,则从消息系统中提取当前流入的流数据中对应的资源号当天的所有履历,若流数据为资源主表履历,则通过Flink将资源主表履历与最近的一条资源子表履历关联,若流数据为资源子表履历,则通过Flink将资源子表履历与最近的一条资源主表履历关联,最后对“上架”状态的记录按照“供应商代码+捆包号+品种+牌号+产地+规格”生成新的资源挂货唯一哈希码。
6.根据权利要求1所述的一种基于批流融合的挂货量统计方法,其特征在于,步骤S3具体为:判断流处理得到的新的资源挂货唯一哈希码是否存在于消息系统中,若是则舍弃,否则将“供应商代码+资源挂货唯一哈希码+重量+更新时间”写入消息系统,同时将该条记录对应的重量与数据库中该供应商已有的挂货量进行累加得到总挂货量并更新至数据库。
7.根据权利要求1~6任意一项所述的一种基于批流融合的挂货量统计方法,其特征在于,所述的消息系统包括kafka。
8.根据权利要求1~6任意一项所述的一种基于批流融合的挂货量统计方法,其特征在于,所述的数据库包括mysql数据库系统。
9.一种基于批流融合的挂货量统计系统,其特征在于,该系统包括:
批处理模块(1):该模块用于在平台开市前获取业务库中的资源表,基于资源表获取平台上各供应商处于上架状态的各个资源的资源挂货唯一哈希码和资源重量并写入消息系统,最后求取各个供应商的资源重量总和作为挂货量初始值存入数据库;
流处理模块(2):该模块用于在平台开市后实时采集资源表履历,基于资源表履历获得供应商所有操作更新时间点的资源信息,筛选上架状态的记录生成新的资源挂货唯一哈希码以及对应的挂货量实时值;
批流融合模块(3):该模块用于判断流处理得到的新的资源挂货唯一哈希码是否存在于消息系统中,若是则舍弃,否则将新的资源挂货唯一哈希码以及对应的资源重量实时值存入消息系统,同时更新各个供应商的总挂货量并存入数据库;
循环处理模块(4):该模块用于触发流处理模块和批流融合模块依次循环运作。
10.根据权利要求9所述的一种基于批流融合的挂货量统计系统,其特征在于,该系统中的资源表包括资源主表和资源子表,对应的,所述的资源表履历包括资源主表履历和资源子表履历,所述的资源主表和资源主表履历包括至少如下字段:资源号、供应商代码、捆包号、状态、重量,所述的资源子表和资源子表履历包括至少如下字段:资源号、品种、牌号、产地、规格。
11.根据权利要求9所述的一种基于批流融合的挂货量统计系统,其特征在于,所述的批处理模块(1)包括:
上架筛选批处理子模块(11):该子模块用于在资源主表中筛选出状态为“上架”的资源,用资源号关联资源子表并按照“供应商代码+捆包号+品种+牌号+产地+规格”生成资源挂货唯一哈希码,将“供应商代码+资源挂货唯一哈希码+重量+更新时间”写入消息系统;
初始挂货量计算子模块(12):该子模块基于供应商代码将同一个供应商的资源的重量求和得到挂货量初始值存入数据库。
12.根据权利要求9所述的一种基于批流融合的挂货量统计系统,其特征在于,所述的流处理模块(2)包括:
流数据采集子模块(21):该子模块采集资源主表履历和资源子表履历,并存储至消息系统;
流数据处理子模块(22):该子模块使用Flink计算引擎按照资源号将最新获取的资源主表履历或资源子表履历对应关联与之时间最近的一条资源子表履历或资源主表履历,并按照“供应商代码+捆包号+品种+牌号+产地+规格”生成新的资源挂货唯一哈希码,将新的资源挂货唯一哈希码写入消息系统。
13.根据权利要求12所述的一种基于批流融合的挂货量统计系统,其特征在于,流数据处理子模块(22)获取新的资源挂货唯一哈希码的具体方式为:
在Flink中设置窗口T;
若在T窗口期内资源主表履历和资源子表履历均有流数据流入,则将流入的资源主表履历和资源子表履历按资源号进行关联,并对“上架”状态的记录按照“供应商代码+捆包号+品种+牌号+产地+规格”生成新的资源挂货唯一哈希码;
若在T窗口期内仅有资源主表履历或资源子表履历有流数据流入,则从消息系统中提取当前流入的流数据中对应的资源号当天的所有履历,若流数据为资源主表履历,则通过Flink将资源主表履历与最近的一条资源子表履历关联,若流数据为资源子表履历,则通过Flink将资源子表履历与最近的一条资源主表履历关联,最后对“上架”状态的记录按照“供应商代码+捆包号+品种+牌号+产地+规格”生成新的资源挂货唯一哈希码。
14.根据权利要求12所述的一种基于批流融合的挂货量统计系统,其特征在于,所述的批流融合模块(3)包括:
去重子模块(31):该子模块判断流处理得到的新的资源挂货唯一哈希码是否存在于消息系统中,若是则舍弃,否则将“供应商代码+资源挂货唯一哈希码+重量+更新时间”写入消息系统;
挂货量融合累加子模块(32):该子模块将最新写入消息系统的记录对应的重量与数据库中该供应商已有的挂货量进行累加得到总挂货量并更新至数据库。
15.根据权利要求9~14任意一项所述的一种基于批流融合的挂货量统计系统,其特征在于,所述的消息系统包括kafka。
16.根据权利要求9~14任意一项所述的一种基于批流融合的挂货量统计系统,其特征在于,所述的数据库包括mysql数据库系统。
17.一种基于批流融合的挂货量统计装置,其特征在于,该装置包括存储器和处理器;
所述存储器,用于存储计算机程序;
所述处理器,用于当执行所述计算机程序时,实现如权利要求1~6任一项所述的基于批流融合的挂货量统计方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011062937.3A CN112150248B (zh) | 2020-09-30 | 2020-09-30 | 一种基于批流融合的挂货量统计方法、系统、装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011062937.3A CN112150248B (zh) | 2020-09-30 | 2020-09-30 | 一种基于批流融合的挂货量统计方法、系统、装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112150248A true CN112150248A (zh) | 2020-12-29 |
CN112150248B CN112150248B (zh) | 2021-08-03 |
Family
ID=73951744
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011062937.3A Active CN112150248B (zh) | 2020-09-30 | 2020-09-30 | 一种基于批流融合的挂货量统计方法、系统、装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112150248B (zh) |
Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103299298A (zh) * | 2011-12-31 | 2013-09-11 | 华为技术有限公司 | 处理业务的方法和系统 |
CN104572778A (zh) * | 2013-10-27 | 2015-04-29 | 西安群丰电子信息科技有限公司 | 一种业务数据库查询统计方法 |
CN106293933A (zh) * | 2015-12-29 | 2017-01-04 | 北京典赞科技有限公司 | 一种支持多大数据计算框架的集群资源配置与调度方法 |
CN106874320A (zh) * | 2016-06-20 | 2017-06-20 | 阿里巴巴集团控股有限公司 | 分布式流式数据处理的方法和装置 |
CN109544289A (zh) * | 2018-11-15 | 2019-03-29 | 深圳市福尔科技有限公司 | 一种实现线上批发的方法及系统 |
CN109710731A (zh) * | 2018-11-19 | 2019-05-03 | 北京计算机技术及应用研究所 | 一种基于Flink的数据流多向处理系统 |
CN109933306A (zh) * | 2019-02-11 | 2019-06-25 | 山东大学 | 混合计算框架生成、数据处理方法、装置及混合计算框架 |
CN110019106A (zh) * | 2019-03-21 | 2019-07-16 | 国网江西省电力有限公司萍乡供电分公司 | 一种智能电网的电力营销海量数据处理方法及系统 |
CN110362622A (zh) * | 2019-07-22 | 2019-10-22 | 江苏满运软件科技有限公司 | 基于实时数仓的实时流处理系统、方法、设备及存储介质 |
CN110704484A (zh) * | 2019-09-09 | 2020-01-17 | 华迪计算机集团有限公司 | 一种对海量实时数据流进行处理的方法及系统 |
CN111382150A (zh) * | 2020-03-19 | 2020-07-07 | 交通银行股份有限公司 | 一种基于Flink的实时计算方法及系统 |
CN111611221A (zh) * | 2019-02-26 | 2020-09-01 | 北京京东尚科信息技术有限公司 | 混合计算系统、数据处理方法及装置 |
-
2020
- 2020-09-30 CN CN202011062937.3A patent/CN112150248B/zh active Active
Patent Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103299298A (zh) * | 2011-12-31 | 2013-09-11 | 华为技术有限公司 | 处理业务的方法和系统 |
CN104572778A (zh) * | 2013-10-27 | 2015-04-29 | 西安群丰电子信息科技有限公司 | 一种业务数据库查询统计方法 |
CN106293933A (zh) * | 2015-12-29 | 2017-01-04 | 北京典赞科技有限公司 | 一种支持多大数据计算框架的集群资源配置与调度方法 |
CN106874320A (zh) * | 2016-06-20 | 2017-06-20 | 阿里巴巴集团控股有限公司 | 分布式流式数据处理的方法和装置 |
CN109544289A (zh) * | 2018-11-15 | 2019-03-29 | 深圳市福尔科技有限公司 | 一种实现线上批发的方法及系统 |
CN109710731A (zh) * | 2018-11-19 | 2019-05-03 | 北京计算机技术及应用研究所 | 一种基于Flink的数据流多向处理系统 |
CN109933306A (zh) * | 2019-02-11 | 2019-06-25 | 山东大学 | 混合计算框架生成、数据处理方法、装置及混合计算框架 |
CN111611221A (zh) * | 2019-02-26 | 2020-09-01 | 北京京东尚科信息技术有限公司 | 混合计算系统、数据处理方法及装置 |
CN110019106A (zh) * | 2019-03-21 | 2019-07-16 | 国网江西省电力有限公司萍乡供电分公司 | 一种智能电网的电力营销海量数据处理方法及系统 |
CN110362622A (zh) * | 2019-07-22 | 2019-10-22 | 江苏满运软件科技有限公司 | 基于实时数仓的实时流处理系统、方法、设备及存储介质 |
CN110704484A (zh) * | 2019-09-09 | 2020-01-17 | 华迪计算机集团有限公司 | 一种对海量实时数据流进行处理的方法及系统 |
CN111382150A (zh) * | 2020-03-19 | 2020-07-07 | 交通银行股份有限公司 | 一种基于Flink的实时计算方法及系统 |
Non-Patent Citations (1)
Title |
---|
姚寅: "基于批处理模式的实时流处理系统", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
Also Published As
Publication number | Publication date |
---|---|
CN112150248B (zh) | 2021-08-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7668803B2 (en) | Data query cost estimation | |
CN112256782B (zh) | 基于Hadoop的电力大数据处理系统 | |
US8224763B2 (en) | Signal management system for building systems | |
CN107086944A (zh) | 一种异常检测方法和装置 | |
CN103595416B (zh) | 压缩生产数据流并以不同标准过滤压缩数据的系统和方法 | |
US11960443B2 (en) | Block data storage system in an event historian | |
US20050055673A1 (en) | Automatic database diagnostic monitor architecture | |
US20160171055A1 (en) | Data query interface system in an event historian | |
CN105989163A (zh) | 数据实时处理方法及系统 | |
CN102999528A (zh) | 一种数据仓库中etl任务离线和数据清理的方法及装置 | |
CN110262951A (zh) | 一种业务秒级监控方法及系统、存储介质及客户端 | |
CN113946294A (zh) | 一种分布式储存系统及其数据处理方法 | |
CN114461644A (zh) | 一种数据采集方法、装置、电子设备及存储介质 | |
CN111221890B (zh) | 通用指标类自动监控预警方法及装置 | |
CN106484591A (zh) | 一种基于分布式系统的数据采集方法及采集系统 | |
US20160170838A1 (en) | Event data merge system in an event historian | |
CN112150248B (zh) | 一种基于批流融合的挂货量统计方法、系统、装置 | |
CN100413257C (zh) | 网元告警数据获取方法 | |
CN117171157A (zh) | 基于数据分析的清算数据采集清洗方法 | |
CN111082962B (zh) | 基于云端的终端识别系统及识别方法 | |
CN108549704B (zh) | 数据包的分布式流式预处理方法、装置、设备及可读介质 | |
CN111798311A (zh) | 基于大数据的银行风险分析库平台、搭建方法及可读介质 | |
CN107515864A (zh) | 监控工作流的方法及设备 | |
CN109165212A (zh) | 一种大数据实时监控与稽核的方法 | |
CN112163015B (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 |