CN112150248B - 一种基于批流融合的挂货量统计方法、***、装置 - Google Patents
一种基于批流融合的挂货量统计方法、***、装置 Download PDFInfo
- Publication number
- CN112150248B CN112150248B CN202011062937.3A CN202011062937A CN112150248B CN 112150248 B CN112150248 B CN 112150248B CN 202011062937 A CN202011062937 A CN 202011062937A CN 112150248 B CN112150248 B CN 112150248B
- 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.)
- Active
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
Landscapes
- Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- Theoretical Computer Science (AREA)
- Finance (AREA)
- Physics & Mathematics (AREA)
- Accounting & Taxation (AREA)
- General Physics & Mathematics (AREA)
- Economics (AREA)
- Strategic Management (AREA)
- General Business, Economics & Management (AREA)
- Development Economics (AREA)
- Marketing (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Computing Systems (AREA)
- Data Mining & Analysis (AREA)
- Entrepreneurship & Innovation (AREA)
- Human Resources & Organizations (AREA)
- Operations Research (AREA)
- Quality & Reliability (AREA)
- Tourism & Hospitality (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
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 (9)
1.一种基于批流融合的挂货量统计方法,其特征在于,该方法包括如下步骤:
S1、批处理:在平台开市前获取业务库中的资源表,基于资源表获取平台上各供应商处于上架状态的各个资源的资源挂货唯一哈希码和资源重量并写入消息***,最后求取各个供应商的资源重量总和作为挂货量初始值存入数据库;
S2、流处理:平台开市后实时采集资源表履历,基于资源表履历获得供应商所有操作更新时间点的资源信息,筛选上架状态的记录生成新的资源挂货唯一哈希码以及对应的资源重量实时值;
S3、批流融合处理:判断流处理得到的新的资源挂货唯一哈希码是否存在于消息***中,若是则舍弃,否则将新的资源挂货唯一哈希码以及对应的资源重量实时值存入消息***,同时更新各个供应商的总挂货量并存入数据库;
S4、循环执行步骤S2~S3;
所述的资源表包括资源主表和资源子表,对应的,所述的资源表履历包括资源主表履历和资源子表履历,所述的资源主表和资源主表履历包括至少如下字段:资源号、供应商代码、捆包号、状态、重量,所述的资源子表和资源子表履历包括至少如下字段:资源号、品种、牌号、产地、规格;
步骤S1具体为:
S11、在资源主表中筛选出状态为“上架”的资源,用资源号关联资源子表并按照“供应商代码+捆包号+品种+牌号+产地+规格”生成资源挂货唯一哈希码,将“供应商代码+资源挂货唯一哈希码+重量+更新时间”写入消息***;
S12、基于供应商代码将同一个供应商的资源的重量求和得到挂货量初始值存入数据库;
步骤S2具体为:
S21、采集资源主表履历和资源子表履历,并存储至消息***;
S22、使用Flink计算引擎按照资源号将最新获取的资源主表履历或资源子表履历对应关联与之时间最近的一条资源子表履历或资源主表履历,并按照“供应商代码+捆包号+品种+牌号+产地+规格”生成新的资源挂货唯一哈希码,将新的资源挂货唯一哈希码写入消息***;
步骤S3具体为:判断流处理得到的新的资源挂货唯一哈希码是否存在于消息***中,若是则舍弃,否则将“供应商代码+资源挂货唯一哈希码+重量+更新时间”写入消息***,同时将该条记录对应的重量与数据库中该供应商已有的挂货量进行累加得到总挂货量并更新至数据库。
2.根据权利要求1所述的一种基于批流融合的挂货量统计方法,其特征在于,步骤S22中具体为:
在Flink中设置窗口T;
若在T窗口期内资源主表履历和资源子表履历均有流数据流入,则将流入的资源主表履历和资源子表履历按资源号进行关联,并对“上架”状态的记录按照“供应商代码+捆包号+品种+牌号+产地+规格”生成新的资源挂货唯一哈希码;
若在T窗口期内仅有资源主表履历或资源子表履历有流数据流入,则从消息***中提取当前流入的流数据中对应的资源号当天的所有履历,若流数据为资源主表履历,则通过Flink将资源主表履历与最近的一条资源子表履历关联,若流数据为资源子表履历,则通过Flink将资源子表履历与最近的一条资源主表履历关联,最后对“上架”状态的记录按照“供应商代码+捆包号+品种+牌号+产地+规格”生成新的资源挂货唯一哈希码。
3.根据权利要求1或2所述的一种基于批流融合的挂货量统计方法,其特征在于,所述的消息***包括kafka。
4.根据权利要求1或2所述的一种基于批流融合的挂货量统计方法,其特征在于,所述的数据库包括mysql数据库***。
5.一种基于批流融合的挂货量统计***,其特征在于,该***包括:
批处理模块(1):该模块用于在平台开市前获取业务库中的资源表,基于资源表获取平台上各供应商处于上架状态的各个资源的资源挂货唯一哈希码和资源重量并写入消息***,最后求取各个供应商的资源重量总和作为挂货量初始值存入数据库;
流处理模块(2):该模块用于在平台开市后实时采集资源表履历,基于资源表履历获得供应商所有操作更新时间点的资源信息,筛选上架状态的记录生成新的资源挂货唯一哈希码以及对应的挂货量实时值;
批流融合模块(3):该模块用于判断流处理得到的新的资源挂货唯一哈希码是否存在于消息***中,若是则舍弃,否则将新的资源挂货唯一哈希码以及对应的资源重量实时值存入消息***,同时更新各个供应商的总挂货量并存入数据库;
循环处理模块(4):该模块用于触发流处理模块和批流融合模块依次循环运作;
该***中的资源表包括资源主表和资源子表,对应的,所述的资源表履历包括资源主表履历和资源子表履历,所述的资源主表和资源主表履历包括至少如下字段:资源号、供应商代码、捆包号、状态、重量,所述的资源子表和资源子表履历包括至少如下字段:资源号、品种、牌号、产地、规格;
所述的批处理模块(1)包括:
上架筛选批处理子模块(11):该子模块用于在资源主表中筛选出状态为“上架”的资源,用资源号关联资源子表并按照“供应商代码+捆包号+品种+牌号+产地+规格”生成资源挂货唯一哈希码,将“供应商代码+资源挂货唯一哈希码+重量+更新时间”写入消息***;
初始挂货量计算子模块(12):该子模块基于供应商代码将同一个供应商的资源的重量求和得到挂货量初始值存入数据库;
所述的流处理模块(2)包括:
流数据采集子模块(21):该子模块采集资源主表履历和资源子表履历,并存储至消息***;
流数据处理子模块(22):该子模块使用Flink计算引擎按照资源号将最新获取的资源主表履历或资源子表履历对应关联与之时间最近的一条资源子表履历或资源主表履历,并按照“供应商代码+捆包号+品种+牌号+产地+规格”生成新的资源挂货唯一哈希码,将新的资源挂货唯一哈希码写入消息***;
所述的批流融合模块(3)包括:
去重子模块(31):该子模块判断流处理得到的新的资源挂货唯一哈希码是否存在于消息***中,若是则舍弃,否则将“供应商代码+资源挂货唯一哈希码+重量+更新时间”写入消息***;
挂货量融合累加子模块(32):该子模块将最新写入消息***的记录对应的重量与数据库中该供应商已有的挂货量进行累加得到总挂货量并更新至数据库。
6.根据权利要求5所述的一种基于批流融合的挂货量统计***,其特征在于,流数据处理子模块(22)获取新的资源挂货唯一哈希码的具体方式为:
在Flink中设置窗口T;
若在T窗口期内资源主表履历和资源子表履历均有流数据流入,则将流入的资源主表履历和资源子表履历按资源号进行关联,并对“上架”状态的记录按照“供应商代码+捆包号+品种+牌号+产地+规格”生成新的资源挂货唯一哈希码;
若在T窗口期内仅有资源主表履历或资源子表履历有流数据流入,则从消息***中提取当前流入的流数据中对应的资源号当天的所有履历,若流数据为资源主表履历,则通过Flink将资源主表履历与最近的一条资源子表履历关联,若流数据为资源子表履历,则通过Flink将资源子表履历与最近的一条资源主表履历关联,最后对“上架”状态的记录按照“供应商代码+捆包号+品种+牌号+产地+规格”生成新的资源挂货唯一哈希码。
7.根据权利要求5或6所述的一种基于批流融合的挂货量统计***,其特征在于,所述的消息***包括kafka。
8.根据权利要求5或6所述的一种基于批流融合的挂货量统计***,其特征在于,所述的数据库包括mysql数据库***。
9.一种基于批流融合的挂货量统计装置,其特征在于,该装置包括存储器和处理器;
所述存储器,用于存储计算机程序;
所述处理器,用于当执行所述计算机程序时,实现如权利要求1~4任一项所述的基于批流融合的挂货量统计方法。
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 CN112150248A (zh) | 2020-12-29 |
CN112150248B true 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 (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103299298A (zh) * | 2011-12-31 | 2013-09-11 | 华为技术有限公司 | 处理业务的方法和*** |
CN104572778A (zh) * | 2013-10-27 | 2015-04-29 | 西安群丰电子信息科技有限公司 | 一种业务数据库查询统计方法 |
CN109933306A (zh) * | 2019-02-11 | 2019-06-25 | 山东大学 | 混合计算框架生成、数据处理方法、装置及混合计算框架 |
CN110019106A (zh) * | 2019-03-21 | 2019-07-16 | 国网江西省电力有限公司萍乡供电分公司 | 一种智能电网的电力营销海量数据处理方法及*** |
CN110362622A (zh) * | 2019-07-22 | 2019-10-22 | 江苏满运软件科技有限公司 | 基于实时数仓的实时流处理***、方法、设备及存储介质 |
CN111611221A (zh) * | 2019-02-26 | 2020-09-01 | 北京京东尚科信息技术有限公司 | 混合计算***、数据处理方法及装置 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106293933A (zh) * | 2015-12-29 | 2017-01-04 | 北京典赞科技有限公司 | 一种支持多大数据计算框架的集群资源配置与调度方法 |
CN106874320A (zh) * | 2016-06-20 | 2017-06-20 | 阿里巴巴集团控股有限公司 | 分布式流式数据处理的方法和装置 |
CN109544289B (zh) * | 2018-11-15 | 2020-12-18 | 深圳市福尔科技有限公司 | 一种实现线上批发的方法及*** |
CN109710731A (zh) * | 2018-11-19 | 2019-05-03 | 北京计算机技术及应用研究所 | 一种基于Flink的数据流多向处理*** |
CN110704484A (zh) * | 2019-09-09 | 2020-01-17 | 华迪计算机集团有限公司 | 一种对海量实时数据流进行处理的方法及*** |
CN111382150B (zh) * | 2020-03-19 | 2023-08-18 | 交通银行股份有限公司 | 一种基于Flink的实时计算方法及*** |
-
2020
- 2020-09-30 CN CN202011062937.3A patent/CN112150248B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103299298A (zh) * | 2011-12-31 | 2013-09-11 | 华为技术有限公司 | 处理业务的方法和*** |
CN104572778A (zh) * | 2013-10-27 | 2015-04-29 | 西安群丰电子信息科技有限公司 | 一种业务数据库查询统计方法 |
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 | 江苏满运软件科技有限公司 | 基于实时数仓的实时流处理***、方法、设备及存储介质 |
Non-Patent Citations (1)
Title |
---|
基于批处理模式的实时流处理***;姚寅;《中国优秀硕士学位论文全文数据库 信息科技辑》;20170115;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN112150248A (zh) | 2020-12-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112256782B (zh) | 基于Hadoop的电力大数据处理*** | |
US7356524B2 (en) | Query runtime estimation using statistical query records | |
CN112612675A (zh) | 微服务架构下的分布式大数据日志链路跟踪方法及*** | |
CN107086944A (zh) | 一种异常检测方法和装置 | |
US11960443B2 (en) | Block data storage system in an event historian | |
CN105989163A (zh) | 数据实时处理方法及*** | |
CN102999528A (zh) | 一种数据仓库中etl任务离线和数据清理的方法及装置 | |
CN114461644A (zh) | 一种数据采集方法、装置、电子设备及存储介质 | |
CN113946294A (zh) | 一种分布式储存***及其数据处理方法 | |
CN106951360B (zh) | 数据统计完整度计算方法和*** | |
CN111221890B (zh) | 通用指标类自动监控预警方法及装置 | |
CN100413257C (zh) | 网元告警数据获取方法 | |
CN112150248B (zh) | 一种基于批流融合的挂货量统计方法、***、装置 | |
CN102622367B (zh) | 流程数据的过滤和压缩方法 | |
CN112163015B (zh) | 一种物联网时序数据实时监控方法、装置和*** | |
CN112561388A (zh) | 一种基于物联网的信息处理方法、装置及设备 | |
CN111082962B (zh) | 基于云端的终端识别***及识别方法 | |
CN108549704B (zh) | 数据包的分布式流式预处理方法、装置、设备及可读介质 | |
CN113472881B (zh) | 在线终端设备的统计方法和装置 | |
CN107515864A (zh) | 监控工作流的方法及设备 | |
CN115983582A (zh) | 一种数据分析方法和能耗管理*** | |
CN109165212A (zh) | 一种大数据实时监控与稽核的方法 | |
CN113393169A (zh) | 基于大数据技术的金融行业交易***性能指标分析方法 | |
CN112561173A (zh) | 一种快速提升焊装线产能的优化方法 | |
CN111461617A (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 |