物品存储时长分布信息确定方法、装置、介质和设备与流程

专利2022-06-29  55


本发明涉及大数据应用领域,具体而言,本发明涉及一种物品存储时长分布信息确定方法、装置、介质和计算机设备。
背景技术
:目前领域内在计算库存物品的存储时长需要通过物品的入库明细信息来进行计算时,并且通常是在业务系统中直接进行计算。直接在业务系统中计算库存物品的存储时长的方式可以快捷地得到计算结果,然而当库存物品种类很多且出入库频繁时,计算时涉及到的入库明细信息的数量级也会很大,比如,亿级以上的数量级。此时计算库存物品的存储时长所需占用的业务系统的计算资源和计算时间比例越来越高,给业务系统造成了很大的压力,业务系统中的其他业务也会受到影响,比如业务系统的响应时间变长,有时甚至会造成业务系统数据库的瘫痪。技术实现要素:本发明针对现有技术的缺点,提供了一种物品存储时长分布信息确定方法、装置、存储介质和计算机设备,本发明实施例能够降低计算物品存储时长分布信息时对业务服务器的数据库的影响,减少了对业务服务器计算资源的占用。本发明实施例根据第一方面提供了一种物品存储时长分布信息确定方法,包括:确定在当前时间节点待确定存储时长的目标物品清单,目标物品清单包括n个不同预设种类的目标物品,n是正整数;获取目标物品清单在当前时间节点的当前库存信息和当前全量入库信息;将当前库存信息和当前全量入库信息装载到内存;通过spark框架对内存中的当前库存信息和当前全量入库信息进行处理,得到各个预设种类的目标物品在当前时间节点的当前存储时长分布信息。在一个实施例中,通过spark框架对内存中的当前库存信息和当前全量入库信息进行处理,得到各个预设种类的目标物品在当前时间节点的当前存储时长分布信息,包括:将当前全量入库信息分为n个对应于各个预设种类的目标物品的当前入库记录组,每个当前入库记录组包括多条当前入库记录;根据当前库存信息确定各个预设种类的目标物品对应的当前库存数量;根据各个预设种类的目标物品对应的当前入库记录组和当前库存数量确定各个预设种类的目标物品在当前时间节点的当前存储时长分布信息。在一个实施例中,根据各个预设种类的目标物品对应的当前入库记录组和当前库存数量确定各个预设种类的目标物品在当前时间节点的当前存储时长分布信息,包括:确定各个当前入库记录组中的多条当前入库记录各自对应的入库时间和入库数量;按照入库时间从大到小的排序规则确定各个当前入库记录组中的多条当前入库记录各自对应的分配序号;根据各个当前入库记录组对应的当前库存数量、各个当前入库记录组中各个当前入库记录对应的入库数量和分配序号确定各个预设种类的目标物品在当前时间节点的当前存储时长分布信息。在一个实施例中,获取目标物品清单在当前时间节点的当前全量入库信息,包括:获取业务服务器推送的目标物品清单在当前时间节点的当前增量入库信息;获取目标物品清单在上一时间节点的历史全量入库信息;根据当前增量入库信息和历史全量入库信息确定目标物品清单在当前时间节点的当前全量入库信息。在一个实施例中,根据当前增量入库信息和历史全量入库信息确定目标物品清单在当前时间节点的当前全量入库信息,包括:确定当前增量入库信息中的当前增量调拨入库信息;获取与当前增量调拨入库信息对应的历史存储时长分布信息;根据历史存储时长分布信息校正当前增量调拨入库信息的入库时间信息,得到校正好入库时间信息的当前增量入库信息;将校正好入库时间信息的当前增量入库信息和历史全量入库信息作为目标物品清单在当前时间节点的当前全量入库信息。在一个实施例中,当前增量调拨入库信息包括多条增量调拨入库记录;当前增量调拨入库信息的入库时间信息包括各条增量调拨入库记录的调拨入库时间;根据历史存储时长分布信息校正当前增量调拨入库信息的入库时间信息,包括:确定各条增量调拨入库记录的调出位置;从历史存储时长分布信息中确定与各条增量调拨入库记录的调出位置对应的存储时长分布信息;根据存储时长分布信息校正各条增量调拨入库记录的调拨入库时间。在一个实施例中,通过spark框架对内存中的当前库存信息和当前全量入库信息进行处理,得到各个预设种类的目标物品在当前时间节点的当前存储时长分布信息,之后包括:将当前存储时长分布信息存储到hive结果表中。本发明实施例根据第二方面提供了一种物品存储时长分布信息确定装置,包括:物品清单确定模块,用于确定在当前时间节点待确定存储时长的目标物品清单,目标物品清单包括n个不同预设种类的目标物品,n是正整数;信息获取模块,用于获取目标物品清单在当前时间节点的当前库存信息和当前全量入库信息;装载模块,用于将当前库存信息和当前全量入库信息装载到内存;分布信息确定模块,用于通过spark框架对内存中的当前库存信息和当前全量入库信息进行处理,得到各个预设种类的目标物品在当前时间节点的当前存储时长分布信息。本发明根据第三方面提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现上述任一方法的实施例的步骤。本发明根据第四方面提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述任一方法的实施例的步骤。在本发明实施例中,库龄服务器先确定在当前时间节点待确定存储时长的目标物品清单,该目标物品清单包括n个不同预设种类的目标物品;然后获取该目标物品清单在当前时间节点的当前库存信息和当前全量入库信息,并将当前库存信息和当前全量入库信息装载到内存;然后通过spark框架对内存中的当前库存信息和当前全量入库信息进行处理,得到各个预设种类的目标物品在当前时间节点的当前存储时长分布信息,能够降低计算物品存储时长分布信息时对业务服务器的数据库的影响,减少了对业务服务器计算资源的占用。本发明附加的方面和优点将在下面的描述中部分给出,这些将从下面的描述中变得明显,或通过本发明的实践了解到。附图说明本发明上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:图1为一个实施例中一种物品存储时长分布信息确定方法的应用环境图;图2为一个实施例中一种物品存储时长分布信息确定方法的流程示意图;图3为一个实施例中入库记录的示意图;图4为一个实施例中库龄服务器确定当前存储时长分布信息时的流程示意图;图5为一个实施例中库龄服务器确定当前全量入库信息的流程示意图;图6为一个实施例中库龄服务器校正增量调拨入库记录的调拨入库时间的流程示意图;图7为一个实施例中一种物品存储时长分布信息确定装置的结构框图;图8为一个实施例中计算机设备的内部结构图。具体实施方式为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅用以解释本申请,并不用于限定本申请。如图1所示为本发明一个实施例中物品存储时长分布信息确定方法的应用环境。本实施例将业务服务器10中用于计算物品的存储时长的模块从业务服务器10中抽离出来作为一个独立的服务器,即库龄计算服务器(下文简称为库龄服务器)30。业务服务器10会通过网络20向库龄服务器30推送物品的入库信息,可以一天推送一次入库信息,也可以一天推送多次入库信息,推送频率可以根据具体场景配置。当接收到入库信息后,库龄服务器30会将入库信息存入hive,并在后续根据业务服务器10推送的入库信息来计算出物品的存储时长分布信息。由于库龄服务器30与业务服务器10相互独立,因而库龄服务器在计算物品的存储时长分布信息时,即使涉及到的物品的入库明细信息数量级巨大也不会影响到业务服务器10的其他业务的处理。其中,业务服务器10与库龄服务器30可以分别使用独立的服务器或者是多个服务器组成的服务器集群来实现。可能地,业务服务器10与库龄服务器30也可以分别作为一个独立模块部署在一个独立服务器上或者是多个服务器组成的服务器集群上。如图2所示,是本发明一个实施例提供的一种物品存储时长分布信息确定方法,下面以该方法应用于图1中用于确定物品存储时长的库龄服务器为例进行说明。该方法包括以下步骤:s110:确定在当前时间节点待确定存储时长分布信息的目标物品清单,目标物品清单包括n个不同预设种类的目标物品,n是正整数。在本实施例中,库龄服务器会在每个时间节点计算各个仓库中存储的物品的存储时长分布信息,比如,仓库中存有100件某个预设种类的物品,该100件物品中有10件物品的存储时长为2天,有50件物品的存储时长为5天,有40件物品的存储时长为7天。物品的存储时长=当前时间-采购入库时间,即物品从仓库外被采购到仓库(这里的仓库可以不是物品当前所在的仓库)的时间到当前时间这两个时间点之间的时间长度。需要说明的是,对于各个仓库来说,其存储的物品有两种来源,一种是通过采购获得物品,另一种是从其他仓库调拨物品到本仓库,仓库中通过采购获得的物品属于采购入库物品,其对应的采购入库时间即为其进入本仓库的时间,而仓库中通过从其他仓库调拨来的物品属于调拨入库物品,其对应的采购入库时间是其通过采购方式进入任一仓库时的时间。为了便于理解确定采购入库物品和调拨入库物品的采购入库时间时的区别,通过以下例子进行说明。比如,广东仓库中存储有物品a和物品b,当前日期是2019年10月10日,其中,物品a在2019年10月2日被采购到深圳仓库,又在2019年10月3日被调拨到广东仓库,物品b在2019年10月1日被采购到广东仓库,那么在计算物品a和物品b的存储时长时,将物品a的采购入库时间确定为2019年10月2日,将物品b的采购入库时间确定为2019年10月1日。时间节点是指库龄服务器开始计算仓库中的物品的存储时长分布信息的时间点,可以根据具体场景来进行设置,比如,白天物品的入库和出库行为频率较高,计算时不太方便,可以将时间节点设置在凌晨00:00:00、01:30:00等物品的出入库行为频率较低的时间点。相邻时间节点之间的时间间隔长度也是可以根据具体场景来进行设置,比如,通常会将时间间隔长度设置为24小时,当然也可以设置为12小时。假如时间节点设置为00:00:00,而时间间隔长度设置为24小时,那么库龄服务器会在每天00:00:00开始计算仓库中的物品的存储时长分布信息。各个仓库都会维护一个目标物品清单,该清单上记录着本仓库中在当前时间节点存储的所有预设种类的物品以及各预设种类物品的数量,通常仓库中存储的所有预设种类的物品在每个时间节点都需要确定一次存储时长分布信息。预设种类用于区分不同的物品,具体可以由多个的维度的信息构成,在不同的场景中可以包括的维度类型以及维度数量可以不同。比如在一个场景中,预设种类由4个维度构成,分别是商品(用于区分不同的商品)、地点(用于区分不同的仓库)、库位(用于区分仓库中的不同存储位置)、供应商(用于区分物品的提供者)这4个维度构成,如果两个物品在这四个维度上的信息都一致,那么这两个物品属于同一预设种类的物品。s120:获取目标物品清单在当前时间节点的当前库存信息和当前全量入库信息。在本实施例中,任一预设种类的物品在进入仓库时业务服务器都会为其创建一条入库记录(即前文提到的入库明细信息),如果某一预设种类的物品在两个时间节点之间的时间间隔时长内(比如,一天、半天等)有多次入库,那么需要建立多条相应的入库记录。这样通过入库记录的数量能够快速地确定出该预设种类在该两个时间节点之间的时间间隔时长内有几次入库行为,各次入库时的数量有多少。进一步地,为了方便后续的计算,可以合并所有的入库记录,得到一个最终的入库记录。在另一种实施方式中,每个预设种类的物品在最开始进入仓库时业务服务器都会为其创建一条入库记录(即前文提到的入库明细信息),具体地,当有物品入库时,业务服务器先确定即将入库的物品的预设种类信息(即用于区分预设种类的相关维度下的信息),然后查找数据库中是否有当天预先创建好的入库记录,如果有的话,那么获取该即将入库的物品的其他维度的信息,将其更新到预先创建好的入库记录的相应维度中,如果没有预先创建好的入库记录,那么就新创建一条入库记录。当然,如果两个时间节点之间的时间间隔时长不设置为一天,而设置为半天、3天甚至一周,那么业务服务器也会通过上述方式将同一预设种类的物品在一个时间间隔时长内对应的入库记录数量维持在一条。这也能保证业务服务器推送给库龄服务器的入库记录数量大大降低,减少数据推送所需耗费的时间和计算资源。进一步地,为了方便了解各个预设种类的物品在两个时间节点之间的时间间隔时长内,有多少次入库行为以及对应的数量,可以生成一个用于记录入库行为和入库数量的信息(如表格、文本日志等形式)以便查询。该入库记录会记录多个维度的信息,在不同的场景中,入库记录需要包括的维度类型和维度数量可以不同。比如,在一个场景中,入库记录包括的维度类型和维度数量配置如图3所示,该入库记录包括的维度有单号(即入库记录的唯一标识)、商品、地点、库位、供应商、日期(表示物品进入本仓库的日期)、数量(表示进入本仓库的物品数量)、调出地(表示物品是从哪个仓库调拨过来的)共8个维度。其中,如果物品属于调拨入库物品,那么在入库记录中的调出地这一维度会有对应的调出该物品的仓库的标识,而如果物品属于采购入库物品,那么在入库记录中的调出地这一维度的信息是空的。需要说明的是,图3所示的入库记录中,各个维度下的信息使用字符串或者数字表示,然而在实际使用中,除了使用字符串或者数字还可以使用自然语言来表示,比如,入库记录中的地点为广东一号仓库、供应商为苏宁电器,本实施例对维度下的信息的表示形式不进行限定。库龄服务器在确定了目标物品清单之后,会利用sparksql技术及spark框架来获取目标物品清单在当前时间节点的当前库存信息和当前全量入库信息。其中,目标物品清单在当前时间节点的当前库存信息包括仓库中各个预设种类的物品在截止时间点时对应的数量信息。相邻截止时间点之间的时间间隔时长与相邻时间节点之间的时间间隔时长相同,截止时间点与时间节点可以是同一时间点(比如,都设置为00:00:00),也可以是不同的时间点(比如,截止时间点设置为00:00:00,时间节点设置为01:00:00)。目标物品清单在当前时间节点的当前全量入库信息包括各个预设种类的物品对应的所有入库记录信息。s130:将当前库存信息和当前全量入库信息装载到内存。在本实施例中,库龄服务器在获得当前库存信息和当前全量入库信息后,将当前库存信息和当前全量入库信息装载到内存中,供spark框架进行后续的计算处理。s140:通过spark框架对内存中的当前库存信息和当前全量入库信息进行处理,得到各个预设种类的目标物品在当前时间节点的当前存储时长分布信息。在本实施例中,库龄服务器通过spark框架对内存中的当前库存信息和当前全量入库信息进行处理,得到各个预设种类的目标物品在当前时间节点的当前存储时长分布信息。进一步地,库龄服务器在通过spark框架对内存中的当前库存信息和当前全量入库信息进行处理,得到各个预设种类的目标物品在当前时间节点的当前存储时长分布之后,将当前存储时长分布信息存储到hive结果表中,以提供给操作人员进行数据查询和分析。本实施例将物品存储时长的计算从业务服务器中剥离出来,采用hive(一种基于hadoop的数据仓库工具,可用于进行数据提取、转化、加载等操作)及spark框架(一种围绕速度、易用性和复杂分析构建的大数据处理框架、基于内存的一种迭代式计算框架)相结合的方式进行计算,计算能力大大提升,能够降低计算物品存储时长分布信息时对业务服务器的数据库的影响,减少了对业务服务器计算资源的占用,而由于计算能力大大提升,库龄服务器除了能够计算大数量级的采购入库物品的采购入库时间,还能够追溯调拨入库物品的采购入库时间,使计算出来的物品的存储时长分布信息更为准确、全面。在一个实施例中,如图4所示,s140:通过spark框架对内存中的当前库存信息和当前全量入库信息进行处理,得到各个预设种类的目标物品在当前时间节点的当前存储时长分布信息,包括:s141:将当前全量入库信息分为n个对应于各个预设种类的目标物品的当前入库记录组。s142:根据当前库存信息确定各个预设种类的目标物品对应的当前库存数量。s143:根据各个预设种类的目标物品对应的当前入库记录组和当前库存数量确定各个预设种类的目标物品在当前时间节点的当前存储时长分布信息。在本实施例中,装载到内存中的当前全量入库信息并不是有序的,而在计算时需要各个预设种类的目标物品在当前时间节点的当前存储时长分布信息,因此,需要将当前全量入库信息分为n个对应于各个预设种类的目标物品的当前入库记录组,以便于进行后续计算。其中,划分好的每个预设种类的目标物品的当前入库记录组中会包括多条当前入库记录。具体地,可以使用maptopair指令来创建对应于不同预设种类的键值对,从每一条入库记录中提取预设种类的相关维度信息,比如预设种类的相关维度有4个,即商品、地点、库位和供应商,那么将每一条入库记录中的商品、地点、库位和供应商这四个维度上的信息作为一个组合生成一个key(即键值),组合成rdd[key,value]的键值对;使用groupbykey将rdd[key,value]按照相同的key进行分组,这样就把相同key的入库记录,即属于相同预设种类的入库记录都会被放在同一个组中。库龄服务器根据当前库存信息来确定各个预设种类的目标物品对应的当前库存数量,即各个预设种类的目标物品在在当前截止时间点时对应的数量。然后根据分好的各个当前入库记录组和当前库存数量来确定各个预设种类的目标物品在当前时间节点的当前存储时长分布信息。在一个实施例中,根据各个预设种类的目标物品对应的当前入库记录组和当前库存数量确定各个预设种类的目标物品在当前时间节点的当前存储时长分布信息,包括:确定各个当前入库记录组中的多条当前入库记录各自对应的入库时间和入库数量;按照入库时间从大到小的排序规则确定各个当前入库记录组中的多条当前入库记录各自对应的分配序号;根据各个当前入库记录组对应的当前库存数量、各个当前入库记录组中各个当前入库记录对应的入库数量和分配序号确定各个预设种类的目标物品在当前时间节点的当前存储时长分布信息。在本实施例中,各个预设种类的目标物品的存储时长分布信息的计算过程是相似的,以下以其中一个预设种类的目标物品作为例子进行说明。具体地,先确定该目标物品的每条当前入库记录对应的入库时间和入库数量,其中,每条当前入库记录中入库时间维度下的信息即为入库时间,入库数量维度下的信息即为入库数量。确定刚好入库时间和入库数量后,将当前入库记录组中的当前入库记录按照入库时间从大到小的排序规则进行排序,这样能得到各条当前入库记录对应的分配序号。将该目标物品的当前库存数量按照分配序号从大到小进行数量分配,直到分配完当前库存数量,根据分配结果即可确定该目标物品的存储时长分布信息。比如,当前日期是2019年10月1日,某种预设种类的物品a的当前库存数量为200,对应的当前入库记录有以下4条,在确定了各条当前入库记录的入库时间和入库数量之后,并且确定各条当前入库记录对应的分配序号之后的情况如表一所示。入库记录标识入库时间入库数量分配序号no.0169月30日801no.0149月15日502no.0117月01日204no.0139月01日803按照分配序号从小到大进行数量分配:第一次分配,将当前库存数量200与分配序号为1的no.016的入库数量80比较,no.016的入库数量不大于当前库存数量,所以给no.016分配与其入库数量一致的80,分配后的当前库存数量是120,由于当前库存数量大于0所以继续分配;第二次分配,将分配后的当前库存数量120与分配序号为2的no.014的入库数量50比较,no.014的入库数量不大于当前库存数量,所以给no.014分配与其入库数量一致的50,分配后的当前库存数量是70,由于当前库存数量大于0所以继续分配;第三次分配,将分配后的当前库存数量70与分配序号为3的no.013的入库数量80比较,no.013的入库数量大于当前库存数量,所以将当前库存数量70全部分配给no.013,分配后的当前库存数量是0,由于当前库存数量不大于0所以停止分配。经过数据分配后可确定物品a的存储时长分布信息,200个物品中,有80个物品的入库日期是9月30日,通过计算可确定该80个物品的存储时长是2天、50个物品的入库日期是9月15日,通过计算可确定该50个物品的存储时长是17天、70个物品的入库日期是9月01日,通过计算可确定该70个物品的存储时长是31天。在一个实施例中,如图5所示,s120:获取目标物品清单在当前时间节点的当前全量入库信息,包括:s121:获取业务服务器推送的目标物品清单在当前时间节点的当前增量入库信息。s122:获取目标物品清单在上一时间节点的历史全量入库信息。s123:根据当前增量入库信息和历史全量入库信息确定目标物品清单在当前时间节点的当前全量入库信息。在本实施例中,业务服务器在相邻时间节点之间这段时间内给库龄服务器推送一次或多次增量入库信息,即本次推送之前没有推送给库龄服务器的入库信息,业务服务器推送来的所有增量入库信息会被库龄服务器存储在hive中。在当前时间到达当前时间节点时,库龄服务器就从hive中获取目标物品清单相关的入库信息,包括目标物品清单在当前时间节点的当前增量入库信息以及上一时间节点的历史全量入库信息,根据该相关的入库信息来计算物品的存储时长分布信息。在一个实施例中,根据当前增量入库信息和历史全量入库信息确定目标物品清单在当前时间节点的当前全量入库信息,包括:确定当前增量入库信息中的当前增量调拨入库信息;获取与当前增量调拨入库信息对应的历史存储时长分布信息;根据历史存储时长分布信息校正当前增量调拨入库信息的入库时间信息,得到校正好入库时间信息的当前增量入库信息;将校正好入库时间信息的当前增量入库信息和历史全量入库信息作为目标物品清单在当前时间节点的当前全量入库信息。在本实施例中,在上述介绍可知,物品的存储时长是根据物品的采购入库时间和当前日期来确定的,采购入库物品的入库记录上的入库时间即是其采购入库时间,而调拨入库物品的采购入库时间并不是其入库记录上的入库时间,其采购入库时间需要根据其入库记录上的调出地这一维度的信息来进行追溯。因此,库龄服务器需要先确定业务服务器推送过来的当前增量入库信息中的当前增量调拨入库信息,然后获取与当前增量调拨入库信息对应的历史存储时长分布信息,该历史存储时长分布信息指的是上一时间节点计算出来的存储时长分布信息,根据该历史存储时长分布信息来校正当前增量调拨入库信息的入库时间信息,从而得到校正好入库时间信息的当前增量入库信息。具体地,根据历史存储时长分布信息校正当前增量调拨入库信息的入库时间信息,包括:确定各条增量调拨入库记录的调出位置;从历史存储时长分布信息中确定与各条增量调拨入库记录的调出位置对应的存储时长分布信息;根据存储时长分布信息校正各条增量调拨入库记录的调拨入库时间。其中,当前增量调拨入库信息包括多条增量调拨入库记录;当前增量调拨入库信息的入库时间信息包括各条增量调拨入库记录的调拨入库时间,即各条增量调拨入库记录中的入库时间这一维度的信息。在校正当前增量调拨入库信息的入库时间信息时,库龄服务器需要确定当前增量调拨入库信息包括的各条增量调拨入库记录的调出位置,即各条增量调拨入库记录的调出地这一维度的信息,以及从历史存储时长分布信息中确定各条增量调拨入库记录的调出位置对应的存储时长分布信息,存储时长分布信息是指在该调出位置对应的仓库中,该预设种类的物品对应的上一时间节点的存储时长分布信息,然后根据存储时长分布信息校正各条增量调拨入库记录的调拨入库时间,即追溯出各条增量调拨入库记录对应的采购入库时间,然后将将各条增量调拨入库记录中调拨入库时间修改为追溯到的采购入库时间。为了更好地理解的各条增量调拨入库记录的调拨入库时间的校正过程,通过以下例子进行说明。如图6所示为一个具体应用场景中,如图6中第一个表格(即业务场景)所示,对于某预设种类的物品,a仓库在2019年2月3日(即调拨入库日期)调拨了5个该物品到b仓库,此时需要确定b仓库中该物品校正其调拨入库日期,先确定该物品的调出位置为a,然后获取上一时间节点计算出的该物品在a仓库中的存储时长分布信息(即图6所述的中间的表格-前一天库龄表)。a)将该前一天库龄表按库龄(即存储时长)大小倒序排列,然后进行追溯;b)将该物品的当前数量5与前一天库龄表中的第一条记录中的库存数量2进行对比,由于第一条记录中的库存数量2不大于当前数量5,所以从当前数量5中分配出第一条记录中的库存数量2,分配后的当前数量为3;c)将其与第二条记录中的库存数量19进行对比,由于第二条记录中的库存数量19大于当前数量3,所以从当前数量3都分配给第二条记录,分配后的当前数量为0,此时停止数量分配。在完成数量分配后,可以确定b仓库中该5个物品中,有2个物品的采购入库时间为2019年2月1日,有3件物品的采购入库时间为2019年2月2日。此时,需要根据数量分配的结果将该当前增量调拨入库记录拆分为两条入库记录。为了更好地理解本发明技术方案,本发明还提供了一种物品存储时长分布信息确定装置,如图7所示,包括以下模块:物品清单确定模块110,用于确定在当前时间节点待确定存储时长的目标物品清单,目标物品清单包括n个不同预设种类的目标物品,n是正整数;信息获取模块120,用于获取目标物品清单在当前时间节点的当前库存信息和当前全量入库信息;装载模块130,用于将当前库存信息和当前全量入库信息装载到内存;分布信息确定模块140,用于通过spark框架对内存中的当前库存信息和当前全量入库信息进行处理,得到各个预设种类的目标物品在当前时间节点的当前存储时长分布信息。在一个实施例中,分布信息确定模块,包括:记录组划分子模块,用于将当前全量入库信息分为n个对应于各个预设种类的目标物品的当前入库记录组,每个当前入库记录组包括多条当前入库记录;物品数量确定子模块,用于根据当前库存信息确定各个预设种类的目标物品对应的当前库存数量;分布信息确定子模块,用于根据各个预设种类的目标物品对应的当前入库记录组和当前库存数量确定各个预设种类的目标物品在当前时间节点的当前存储时长分布信息。在一个实施例中,分布信息确定子模块,包括:记录时间数量确定单元,用于确定各个当前入库记录组中的多条当前入库记录各自对应的入库时间和入库数量;分配序号确定单元,用于按照入库时间从大到小的排序规则确定各个当前入库记录组中的多条当前入库记录各自对应的分配序号;分布信息确定单元,用于根据各个当前入库记录组对应的当前库存数量、各个当前入库记录组中各个当前入库记录对应的入库数量和分配序号确定各个预设种类的目标物品在当前时间节点的当前存储时长分布信息。在一个实施例中,信息获取模块,包括:增量信息获取子模块,用于获取业务服务器推送的目标物品清单在当前时间节点的当前增量入库信息;历史信息获取子模块,用于获取目标物品清单在上一时间节点的历史全量入库信息;当前全量入库信息确定子模块,用于根据当前增量入库信息和历史全量入库信息确定目标物品清单在当前时间节点的当前全量入库信息。在一个实施例中,当前全量入库信息确定子模块,包括:调拨信息确定单元,用于确定当前增量入库信息中的当前增量调拨入库信息;历史时间确定单元,用于获取与当前增量调拨入库信息对应的历史存储时长分布信息;入库时间校正单元,用于根据历史存储时长分布信息校正当前增量调拨入库信息的入库时间信息,得到校正好入库时间信息的当前增量入库信息;当前全量入库信息确定单元,用于将校正好入库时间信息的当前增量入库信息和历史全量入库信息作为目标物品清单在当前时间节点的当前全量入库信息。在一个实施例中,当前增量调拨入库信息包括多条增量调拨入库记录;当前增量调拨入库信息的入库时间信息包括各条增量调拨入库记录的调拨入库时间;入库时间校正单元,还用于确定各条增量调拨入库记录的调出位置;从历史存储时长分布信息中确定与各条增量调拨入库记录的调出位置对应的存储时长分布信息;根据存储时长分布信息校正各条增量调拨入库记录的调拨入库时间。在一个实施例中,物品存储时长分布信息确定装置,还包括:信息存储模块,用于将当前存储时长分布信息存储到hive结果表中。关于物品存储时长分布信息确定装置的具体限定可以参见上文中对于物品存储时长分布信息确定方法的限定,在此不再赘述。上述物品存储时长分布信息确定装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。在一个实施例中,提供了一种计算机设备,其内部结构图可以如图8所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种物品存储时长分布信息确定方法。本领域技术人员可以理解,图8中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。在一个实施例中,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现以下步骤:确定在当前时间节点待确定存储时长的目标物品清单,目标物品清单包括n个不同预设种类的目标物品,n是正整数;获取目标物品清单在当前时间节点的当前库存信息和当前全量入库信息;将当前库存信息和当前全量入库信息装载到内存;通过spark框架对内存中的当前库存信息和当前全量入库信息进行处理,得到各个预设种类的目标物品在当前时间节点的当前存储时长分布信息。在一个实施例中,处理器执行计算机程序,实现通过spark框架对内存中的当前库存信息和当前全量入库信息进行处理,得到各个预设种类的目标物品在当前时间节点的当前存储时长分布信息时,还实现以下步骤:将当前全量入库信息分为n个对应于各个预设种类的目标物品的当前入库记录组,每个当前入库记录组包括多条当前入库记录;根据当前库存信息确定各个预设种类的目标物品对应的当前库存数量;根据各个预设种类的目标物品对应的当前入库记录组和当前库存数量确定各个预设种类的目标物品在当前时间节点的当前存储时长分布信息。在一个实施例中,处理器执行计算机程序,实现根据各个预设种类的目标物品对应的当前入库记录组和当前库存数量确定各个预设种类的目标物品在当前时间节点的当前存储时长分布信息时,还实现以下步骤:确定各个当前入库记录组中的多条当前入库记录各自对应的入库时间和入库数量;按照入库时间从大到小的排序规则确定各个当前入库记录组中的多条当前入库记录各自对应的分配序号;根据各个当前入库记录组对应的当前库存数量、各个当前入库记录组中各个当前入库记录对应的入库数量和分配序号确定各个预设种类的目标物品在当前时间节点的当前存储时长分布信息。在一个实施例中,处理器执行计算机程序,实现获取目标物品清单在当前时间节点的当前全量入库信息时,还实现以下步骤:获取业务服务器推送的目标物品清单在当前时间节点的当前增量入库信息;获取目标物品清单在上一时间节点的历史全量入库信息;根据当前增量入库信息和历史全量入库信息确定目标物品清单在当前时间节点的当前全量入库信息。在一个实施例中,处理器执行计算机程序,实现根据当前增量入库信息和历史全量入库信息确定目标物品清单在当前时间节点的当前全量入库信息时,还实现以下步骤:确定当前增量入库信息中的当前增量调拨入库信息;获取与当前增量调拨入库信息对应的历史存储时长分布信息;根据历史存储时长分布信息校正当前增量调拨入库信息的入库时间信息,得到校正好入库时间信息的当前增量入库信息;将校正好入库时间信息的当前增量入库信息和历史全量入库信息作为目标物品清单在当前时间节点的当前全量入库信息。在一个实施例中,当前增量调拨入库信息包括多条增量调拨入库记录;当前增量调拨入库信息的入库时间信息包括各条增量调拨入库记录的调拨入库时间;处理器执行计算机程序,实现根据历史存储时长分布信息校正当前增量调拨入库信息的入库时间信息时,还实现以下步骤:确定各条增量调拨入库记录的调出位置;从历史存储时长分布信息中确定与各条增量调拨入库记录的调出位置对应的存储时长分布信息;根据存储时长分布信息校正各条增量调拨入库记录的调拨入库时间。在一个实施例中,处理器执行计算机程序时,实现通过spark框架对内存中的当前库存信息和当前全量入库信息进行处理,得到各个预设种类的目标物品在当前时间节点的当前存储时长分布信息之后,还实现以下步骤:将当前存储时长分布信息存储到hive结果表中。在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:确定在当前时间节点待确定存储时长的目标物品清单,目标物品清单包括n个不同预设种类的目标物品,n是正整数;获取目标物品清单在当前时间节点的当前库存信息和当前全量入库信息;将当前库存信息和当前全量入库信息装载到内存;通过spark框架对内存中的当前库存信息和当前全量入库信息进行处理,得到各个预设种类的目标物品在当前时间节点的当前存储时长分布信息。在一个实施例中,计算机程序被处理器执行,通过spark框架对内存中的当前库存信息和当前全量入库信息进行处理,得到各个预设种类的目标物品在当前时间节点的当前存储时长分布信息时,还实现以下步骤:将当前全量入库信息分为n个对应于各个预设种类的目标物品的当前入库记录组,每个当前入库记录组包括多条当前入库记录;根据当前库存信息确定各个预设种类的目标物品对应的当前库存数量;根据各个预设种类的目标物品对应的当前入库记录组和当前库存数量确定各个预设种类的目标物品在当前时间节点的当前存储时长分布信息。在一个实施例中,计算机程序被处理器执行,根据各个预设种类的目标物品对应的当前入库记录组和当前库存数量确定各个预设种类的目标物品在当前时间节点的当前存储时长分布信息时,还实现以下步骤:确定各个当前入库记录组中的多条当前入库记录各自对应的入库时间和入库数量;按照入库时间从大到小的排序规则确定各个当前入库记录组中的多条当前入库记录各自对应的分配序号;根据各个当前入库记录组对应的当前库存数量、各个当前入库记录组中各个当前入库记录对应的入库数量和分配序号确定各个预设种类的目标物品在当前时间节点的当前存储时长分布信息。在一个实施例中,计算机程序被处理器执行,获取目标物品清单在当前时间节点的当前全量入库信息时,还实现以下步骤:获取业务服务器推送的目标物品清单在当前时间节点的当前增量入库信息;获取目标物品清单在上一时间节点的历史全量入库信息;根据当前增量入库信息和历史全量入库信息确定目标物品清单在当前时间节点的当前全量入库信息。在一个实施例中,计算机程序被处理器执行,根据当前增量入库信息和历史全量入库信息确定目标物品清单在当前时间节点的当前全量入库信息时,还实现以下步骤:确定当前增量入库信息中的当前增量调拨入库信息;获取与当前增量调拨入库信息对应的历史存储时长分布信息;根据历史存储时长分布信息校正当前增量调拨入库信息的入库时间信息,得到校正好入库时间信息的当前增量入库信息;将校正好入库时间信息的当前增量入库信息和历史全量入库信息作为目标物品清单在当前时间节点的当前全量入库信息。在一个实施例中,当前增量调拨入库信息包括多条增量调拨入库记录;当前增量调拨入库信息的入库时间信息包括各条增量调拨入库记录的调拨入库时间;计算机程序被处理器执行,根据历史存储时长分布信息校正当前增量调拨入库信息的入库时间信息时,还实现以下步骤:确定各条增量调拨入库记录的调出位置;从历史存储时长分布信息中确定与各条增量调拨入库记录的调出位置对应的存储时长分布信息;根据存储时长分布信息校正各条增量调拨入库记录的调拨入库时间。在一个实施例中,计算机程序被处理器执行时,通过spark框架对内存中的当前库存信息和当前全量入库信息进行处理,得到各个预设种类的目标物品在当前时间节点的当前存储时长分布信息之后,还实现以下步骤:将当前存储时长分布信息存储到hive结果表中。本领域普通技术人员可以理解实现上述方法实施例中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦除可编程rom(eeprom)或闪存。易失性存储器可包括随机存取存储器(ram)或者外部高速缓冲存储器。作为说明而非局限,ram以多种形式可得,诸如静态ram(sram)、动态ram(dram)、同步dram(sdram)、双数据率sdram(ddrsdram)、增强型sdram(esdram)、同步链路(synchlink)dram(sldram)、存储器总线(rambus)直接ram(rdram)、直接存储器总线动态ram(drdram)、以及存储器总线动态ram(rdram)等。以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。当前第1页1 2 3 
技术特征:

1.一种物品存储时长分布信息确定方法,其特征在于,包括:

确定在当前时间节点待确定存储时长的目标物品清单,所述目标物品清单包括n个不同预设种类的目标物品,n是正整数;

获取所述目标物品清单在当前时间节点的当前库存信息和当前全量入库信息;

将所述当前库存信息和当前全量入库信息装载到内存;

通过spark框架对内存中的当前库存信息和当前全量入库信息进行处理,得到各个预设种类的目标物品在当前时间节点的当前存储时长分布信息。

2.如权利要求1所述的物品存储时长分布信息确定方法,其特征在于,

所述通过spark框架对内存中的当前库存信息和当前全量入库信息进行处理,得到各个预设种类的目标物品在当前时间节点的当前存储时长分布信息,包括:

将所述当前全量入库信息分为n个对应于各个预设种类的目标物品的当前入库记录组,每个当前入库记录组包括多条当前入库记录;

根据所述当前库存信息确定各个预设种类的目标物品对应的当前库存数量;

根据所述各个预设种类的目标物品对应的当前入库记录组和当前库存数量确定各个预设种类的目标物品在当前时间节点的当前存储时长分布信息。

3.如权利要求2所述的物品存储时长分布信息确定方法,其特征在于,

所述根据所述各个预设种类的目标物品对应的当前入库记录组和当前库存数量确定各个预设种类的目标物品在当前时间节点的当前存储时长分布信息,包括:

确定各个当前入库记录组中的多条当前入库记录各自对应的入库时间和入库数量;

按照入库时间从大到小的排序规则确定所述各个当前入库记录组中的多条当前入库记录各自对应的分配序号;

根据所述各个当前入库记录组对应的当前库存数量、所述各个当前入库记录组中各个当前入库记录对应的入库数量和分配序号确定各个预设种类的目标物品在当前时间节点的当前存储时长分布信息。

4.如权利要求1所述的物品存储时长分布信息确定方法,其特征在于,

所述获取所述目标物品清单在当前时间节点的当前全量入库信息,包括:

获取业务服务器推送的所述目标物品清单在当前时间节点的当前增量入库信息;

获取所述目标物品清单在上一时间节点的历史全量入库信息;

根据所述当前增量入库信息和历史全量入库信息确定所述目标物品清单在当前时间节点的当前全量入库信息。

5.如权利要求4所述的物品存储时长分布信息确定方法,其特征在于,

所述根据所述当前增量入库信息和历史全量入库信息确定所述目标物品清单在当前时间节点的当前全量入库信息,包括:

确定所述当前增量入库信息中的当前增量调拨入库信息;

获取与所述当前增量调拨入库信息对应的历史存储时长分布信息;

根据所述历史存储时长分布信息校正所述当前增量调拨入库信息的入库时间信息,得到校正好入库时间信息的当前增量入库信息;

将所述校正好入库时间信息的当前增量入库信息和所述历史全量入库信息作为所述目标物品清单在当前时间节点的当前全量入库信息。

6.如权利要求5所述的物品存储时长分布信息确定方法,其特征在于,

所述当前增量调拨入库信息包括多条增量调拨入库记录;所述当前增量调拨入库信息的入库时间信息包括各条增量调拨入库记录的调拨入库时间;

所述根据所述历史存储时长分布信息校正所述当前增量调拨入库信息的入库时间信息,包括:

确定各条增量调拨入库记录的调出位置;

从所述历史存储时长分布信息中确定与所述各条增量调拨入库记录的调出位置对应的存储时长分布信息;

根据所述存储时长分布信息校正各条增量调拨入库记录的调拨入库时间。

7.如权利要求1所述的物品存储时长分布信息确定方法,其特征在于,

所述通过spark框架对内存中的当前库存信息和当前全量入库信息进行处理,得到各个预设种类的目标物品在当前时间节点的当前存储时长分布信息,之后包括:

将所述当前存储时长分布信息存储到hive结果表中。

8.一种物品存储时长分布信息确定装置,其特征在于,包括:

物品清单确定模块,用于确定在当前时间节点待确定存储时长的目标物品清单,所述目标物品清单包括n个不同预设种类的目标物品,n是正整数;

信息获取模块,用于获取所述目标物品清单在当前时间节点的当前库存信息和当前全量入库信息;

装载模块,用于将所述当前库存信息和当前全量入库信息装载到内存;

分布信息确定模块,用于通过spark框架对内存中的当前库存信息和当前全量入库信息进行处理,得到各个预设种类的目标物品在当前时间节点的当前存储时长分布信息。

9.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7中任一项所述方法的步骤。

10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述的方法的步骤。

技术总结
本申请涉及大数据应用领域,具体涉及一种物品存储时长分布信息确定方法、装置、计算机设备和存储介质。所述方法包括:确定在当前时间节点待确定存储时长的目标物品清单,所述目标物品清单包括N个不同预设种类的目标物品;获取所述目标物品清单在当前时间节点的当前库存信息和当前全量入库信息;将所述当前库存信息和当前全量入库信息装载到内存;通过spark框架对内存中的当前库存信息和当前全量入库信息进行处理,得到各个预设种类的目标物品在当前时间节点的当前存储时长分布信息。本发明实施例能够降低计算物品存储时长分布信息时对业务服务器的数据库的影响,减少了对业务服务器计算资源的占用。

技术研发人员:李淑娟;范晓进;奚超前;钱津津;司孝波
受保护的技术使用者:苏宁云计算有限公司
技术研发日:2020.01.07
技术公布日:2020.06.05

转载请注明原文地址: https://bbs.8miu.com/read-51266.html

最新回复(0)