CN111291033A - 快件数据清洗方法、装置、设备及存储介质 - Google Patents
快件数据清洗方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN111291033A CN111291033A CN202010164827.1A CN202010164827A CN111291033A CN 111291033 A CN111291033 A CN 111291033A CN 202010164827 A CN202010164827 A CN 202010164827A CN 111291033 A CN111291033 A CN 111291033A
- Authority
- CN
- China
- Prior art keywords
- data
- express
- queue
- cleaning
- express mail
- 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
- 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/21—Design, administration or maintenance of databases
- G06F16/215—Improving data quality; Data cleansing, e.g. de-duplication, removing invalid entries or correcting typographical errors
-
- 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/25—Integrating or interfacing systems involving database management systems
-
- 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/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Quality & Reliability (AREA)
- Information Transfer Between Computers (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种快件数据清洗方法、装置、设备及存储介质,所述方法包括:读取预置第一数据库中的原始快件数据,并将读取的原始快件数据写入预置第一队列中;以多个进程读取所述第一队列中的快件数据,并对各进程读取的快件数据进行清洗,将清洗后的快件数据写入预置第二队列中;以多个进程读取所述第二队列中的快件数据,并将各进程读取的快件数据批量录入预置第二数据库中。本发明能够对亿+级别的海量数据进行清洗,实现了数据处理的高效性、稳定性和快速性。
Description
技术领域
本发明涉及数据清洗技术领域,尤其涉及一种快件数据清洗方法、装置、设备及存储介质。
背景技术
目前,快递业已经成为最新兴的行业之一,随着电子商务的飞跃发展,每年的快递业务量巨增,快递的包裹需要安全、快捷、科学地处理,继而才能及时无误的到达客户手中。客户一般通过快件数据了解自己快件的情况,比如是否发货、目前到哪个城市、什么时候能到等。
近年来随着物流业的快速发展,每家快件公司都会通过各种方式获取快件数据,如接口请求、文件读取、后台导入等,然后存于数据库中。数据来源越多,也意味着数据越复杂,敏感信息越多,很多时候都不能直接使用这些数据,必须对这些数据进行清洗,才能作为最终有效的数据来使用。然而,大部分的数据清洗方法都是读取原始数据,然后进行清洗并直接入库,这样不仅效率低下,而且可控性非常低。
发明内容
本发明的主要目的在于解决海量快件数据清洗效率低下的技术问题。
本发明第一方面提供了一种快件数据清洗方法,包括:
读取预置第一数据库中的原始快件数据,并将读取的原始快件数据写入预置第一队列中;
以多个进程读取所述第一队列中的快件数据,并对各进程读取的快件数据进行清洗,将清洗后的快件数据写入预置第二队列中;
以多个进程读取所述第二队列中的快件数据,并将各进程读取的快件数据批量录入预置第二数据库中。
可选的,在本发明第一方面的第一种实现方式中,所述读取预置第一数据库中的原始快件数据,并将读取的原始快件数据写入预置第一队列中包括:
通过预置生产脚本读取预置时间文件中设定的数据读取的开始时间;
当到达所述开始时间时,读取所述第一数据库中的原始快件数据;
将读取的原始快件数据写入所述第一队列中,并将本次数据读取的结束时间写入所述时间文件中以作为下一次数据读取的开始时间。
可选的,在本发明第一方面的第二种实现方式中,所述以多个进程读取所述第一队列中的快件数据,并对各进程读取的快件数据进行清洗,将清洗后的快件数据写入预置第二队列中包括:
通过预置清洗脚本以多个进程读取所述第一队列中的快件数据;
根据预置数据清洗规则,分别对各进程读取的快件数据进行清洗;
将清洗后的快件数据写入所述第二队列中。
可选的,在本发明第一方面的第三种实现方式中,所述根据预置数据清洗规则,分别对各进程读取的快件数据进行清洗包括:
判断各进程读取的快件数据是否满足所述数据清洗规则;
若满足,则保留快件数据,得到清洗后的快件数据;
若不满足,则剔除快件数据,并记录剔除的快件数据以供分析。
可选的,在本发明第一方面的第四种实现方式中,所述数据清洗规则包括:
A、快件至少有1条分发扫描信息;
B、快件至少有1条揽收或中转类型的扫描记录;
C、快件入库扫描时间与分发扫描时间的时间差须小于7天;
D、快件入库扫描时间须晚于分发扫描时间、快件出库扫描时间须晚于入库扫描时间。
可选的,在本发明第一方面的第五种实现方式中,所述以多个进程读取所述第二队列中的快件数据,并将各进程读取的快件数据批量录入预置第二数据库中包括:
通过预置录入脚本以多个进程读取所述第二队列中的快件数据;
将各进程读取的快件数据批量录入所述第二数据库中。
可选的,在本发明第一方面的第六种实现方式中,所述快件数据清洗方法还包括:
在读取队列中的快件数据时,监测队列是否发生异常,其中,所述队列包括第一队列与第二队列;
若发生异常,则将读取出的快件数据重新放入队列中,并生成本次队列异常日志以供分析。
本发明第二方面提供了一种快件数据清洗装置,包括:
生产模块,用于读取预置第一数据库中的原始快件数据,并将读取的原始快件数据写入预置第一队列中;
清洗模块,用于以多个进程读取所述第一队列中的快件数据,并对各进程读取的快件数据进行清洗,将清洗后的快件数据写入预置第二队列中;
录入模块,用于以多个进程读取所述第二队列中的快件数据,并将各进程读取的快件数据批量录入预置第二数据库中。
可选的,在本发明第二方面的第一种实现方式中,所述生产模块具体用于:
通过预置生产脚本读取预置时间文件中设定的数据读取的开始时间;
当到达所述开始时间时,读取所述第一数据库中的原始快件数据;
将读取的原始快件数据写入所述第一队列中,并将本次数据读取的结束时间写入所述时间文件中以作为下一次数据读取的开始时间。
可选的,在本发明第二方面的第二种实现方式中,所述清洗模块包括:
读取单元,用于通过预置清洗脚本以多个进程读取所述第一队列中的快件数据;
清洗单元,用于根据预置数据清洗规则,分别对各进程读取的快件数据进行清洗;
写入单元,用于将清洗后的快件数据写入所述第二队列中。
可选的,在本发明第二方面的第三种实现方式中,所述清洗单元具体用于:
判断各进程读取的快件数据是否满足所述数据清洗规则;
若满足,则保留快件数据,得到清洗后的快件数据;
若不满足,则剔除快件数据,并记录剔除的快件数据以供分析。
可选的,在本发明第二方面的第四种实现方式中,所述数据清洗规则包括:
A、快件至少有1条分发扫描信息;
B、快件至少有1条揽收或中转类型的扫描记录;
C、快件入库扫描时间与分发扫描时间的时间差须小于7天;
D、快件入库扫描时间须晚于分发扫描时间、快件出库扫描时间须晚于入库扫描时间。
可选的,在本发明第二方面的第五种实现方式中,所述录入模块具体用于:
通过预置录入脚本以多个进程读取所述第二队列中的快件数据;
将各进程读取的快件数据批量录入所述第二数据库中。
可选的,在本发明第二方面的第六种实现方式中,所述快件数据清洗装置还包括:
异常处理模块,用于在读取队列中的快件数据时,监测队列是否发生异常,其中,所述队列包括第一队列与第二队列;若发生异常,则将读取出的快件数据重新放入队列中,并生成本次队列异常日志以供分析。
本发明第三方面提供了一种快件数据清洗设备,所述快件数据清洗设备包括:存储器和至少一个处理器,所述存储器中存储有指令,所述存储器和所述至少一个处理器通过线路互连;
所述至少一个处理器调用所述存储器中的所述指令,以使得所述快件数据清洗设备执行如上述任一项所述的快件数据清洗方法。
本发明第四方面提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如上述任一项所述的快件数据清洗方法。
本发明提供的技术方案中,先从原始数据库读取原始快件数据放到队列中,接着启动多个进程读取该队列中数据进行数据清洗,清洗完成后再放到另一个队列中,最后再从队列中读取数据写入到清洗数据库中。本发明采用上述二级队列方式,将读取数据、清洗数据以及录入数据解耦,实现各处理动作的独立执行与并发处理,进而能快速高效稳定的进行数据清洗,最后再将有效的快件数据提供本系统或其他系统使用,实现了数据处理的高效性、稳定性和快速性。
附图说明
图1为本发明实施例中快件数据清洗方法的一个实施例示意图;
图2为本发明实施例中快件数据清洗方法的另一个实施例示意图;
图3为本发明实施例中快件数据清洗装置的一个实施例示意图;
图4为本发明快件数据清洗设备一实施例的结构示意图。
具体实施方式
本发明实施例提供了一种快件数据清洗方法、装置、设备及存储介质,旨在用于实现数据清洗处理的高效性、稳定性和快速性。本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”或“具有”及其任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
为便于理解,下面对本发明实施例的具体流程进行描述,请参阅图1,本发明实施例中快件数据清洗方法的一个实施例包括:
101、读取预置第一数据库中的原始快件数据,并将读取的原始快件数据写入预置第一队列中;
需要说明的是,本发明方法实施例的执行主体可以为快件数据清洗装置或系统,还可以是终端或者服务器,具体此处不做限定。本发明实施例具体以服务器为执行主体为例进行说明。
本实施例中,第一数据库具体用于存储原始快件数据,比如快件订单号、快件物流轨迹、快件派件信息等数据。原始快件数据既可以是来源于第三方平台,比如快件代收点,例如快递柜、驿站等,也可以是来源于物流公司的系统,比如订单系统、中转系统等。
本实施例中,为提升数据清洗的处理效率,服务器在读取到第一数据库中的原始快件数据后并不直接进行清洗处理,而是先放入第一队列中,从而将读取数据与清洗数据隔开,实现读取操作与清洗操作独立执行,并能实现同时并发执行。
例如,服务器使用某些进程读取原始快件数据并写入第一队列的同时,使用另一些进程从第一队列中读取原始快件数据进行清洗,进而可实现数据清洗效率和速度,同时独立执行也能保证数据处理的稳定。
102、以多个进程读取所述第一队列中的快件数据,并对各进程读取的快件数据进行清洗,将清洗后的快件数据写入预置第二队列中;
本实施例中,第一队列中存储的快件数据是未清洗的原始数据。由于第一数据库对接各种数据源,如通过接口请求、文件读取、后台导入等方式获得原始数据,然后存于数据库中。数据来源越多,也意味着数据越复杂,敏感信息越多,很多时候都不能直接使用这些数据,必须对这些数据进行清洗,才能作为最终有效的数据来使用。
本实施例中,为提升数据读取效率,优选采用多个进程从第一队列中读取快件数据,然后再对各进程读取的快件数据进行清洗。
在读取第一队列中的快件数据时,本实施例还进一步监测第一队列中的数据量增长率是否超过预置阈值,若是,则增加新的进程读取第一队列中的快件数据。
由上可知,第一数据库对接多种数据源,如果从各数据源下发的快件数据的数据量过高或过快,则可能导致数据在第一队列中堆积而影响服务效率,因此,需要对第一队列中的数据量增长率进行监测。例如,当第一队列中的数据量增长率超过预置阈值30%时,则增加新的进程参与读取第一队列中的快件数据,直至写入第一队列中的快件数据的数据量增长率低于30%。
本实施例中,可根据第一队列中实际数据量来调整读取数据的进程数,比如发现队列中数据存在堆积,则可通过Shell调度脚本将当前读取数据的进程数调大进而加快队列中数据的读取速度。
本实施例对于数据清洗的规则不限,具体根据实际需要进行设置。
此外,本实施例中,为提升数据清洗的处理效率,服务器在清洗完第一队列中的原始快件数据后并不直接将数据存于数据库中,而是先放入第二队列中,从而将存入数据与读取数据隔开,实现写入操作与读取操作独立执行,并能实现同时并发执行。
例如,服务器使用某些进程将清洗后的数据写入第二队列的同时,使用另一些进程从第二队列中读取清洗后的数据并存入第二数据库中,进而可实现数据清洗与存储的效率,同时独立执行也能保证数据处理的稳定性。
103、以多个进程读取所述第二队列中的快件数据,并将各进程读取的快件数据批量录入预置第二数据库中。
本实施例中,引入第二队列缓存清洗后的快件数据,能够大幅降低海量数据对后端数据库的冲击,避免延时或发生读数错误。
此外,本实施例进一步采用多进程读取第二队列中的快件数据,然后实现快件数据的批量录入第二数据库中,进而在减轻前端海量数据的读取压力的同时,保证后端的数据录入效率与数据录入稳定性。本实施例是将读取的数据批量录入原始数据库(如每次100条),而并非一条一条录入,从而进一步降低了数据库压力,保证了数据录入的稳定性。
可选的,在一具体实施例中,为保证数据读取异常可追踪与分析,本实施例中还增加了数据读取异常处理机制,在读取队列中的快件数据时,还监测队列是否发生异常;若发生异常,则将读取出的快件数据重新放入队列中,防止队列数据因异常情况而丢失,并生成本次队列异常日志以供分析。针对清洗期间的异常情况需记录相应日志并单独处理,确保数据不丢失,并可根据异常情况查询具体的错误信息。
本实施例先从原始数据库读取原始快件数据放到一个队列中,接着启动多个进程读取该队列中数据进行数据清洗,清洗完成后再放到另一个队列中,最后再从队列中读取数据写入到清洗数据库中。本实施例采用上述二级队列方式,将读取数据、清洗数据以及录入数据解耦,实现各处理动作的独立执行与并发处理,进而能快速高效稳定的进行数据清洗,最后再将有效的快件数据提供本系统或其他系统使用,实现了数据处理的高效性、稳定性和快速性。
请参阅图2,本发明实施例中快件数据清洗方法的另一个实施例包括:
201、通过预置生产脚本读取预置时间文件中设定的数据读取的开始时间;
本实施例中,为保证数据读取的可控性,因此预先设定了数据读取时间并存入时间文件中。在读取数据之前,需要先从时间文件中获取数据读取的开始时间。
202、当到达所述开始时间时,读取所述第一数据库中的原始快件数据;
本实施例中,若当前时间到达读取到的开始时间,则服务器通过预置的生产脚本读取第一数据库中的原始快件数据。
其中,生产脚本预先设定并仅用于从第一数据库中读取数据并写入第一队列中。
203、将读取的原始快件数据写入所述第一队列中,并将本次数据读取的结束时间写入所述时间文件中以作为下一次数据读取的开始时间;
本实施例中,服务器通过生产脚本从第一队列中读取数据,并在数据读取结束后,将本次数据读取的结束时间写入时间文件中,并将本次数据读取的结束时间作为下一次数据读取的开始时间。
本实施例中,每一次数据读取的持续时间不限,具体根据实际需要进行设置,例如每次读取的持续时间为1分钟。
例如,在每次读取第一数据库中的原始快件数据时,服务器先通过查找时间文件,确定本次读取的开始时间,然后根据该开始时间,通过生产脚本从第一数据库中读取数据,并将读取的数据写入第一队列中,持续读取1分钟后,完成对第一数据库中的数据读取与第一队列的数据写入,将当前时间作为本次数据读取的结束时间更新到时间文件中,以作为下一次循环的开始时间来不断读取。生产脚本只负责取数写队列的工作,不做其他逻辑处理,加快了生产速度,确保能实时追上最新的数据。
204、通过预置清洗脚本以多个进程读取所述第一队列中的快件数据;
本实施例中,服务器通过清洗脚本启动多个进程读取第一队列中的快件数据,并根据设定的数据清洗规则对读取的数据进行清洗,只保留有用的快件数据,清洗完成后再把数据写入到第二队列中。需要说明的是,原始的快件数据必须进行清洗,否则可能会有脏数据,继而可能引发消费者投诉。
205、根据预置数据清洗规则,分别对各进程读取的快件数据进行清洗;
本实施例对于清洗规则的设置不限,具体根据业务需要进行设置。
可选的,在一具体实施例中,待清洗的快件数据具体来源于第三方代收点,则对应的数据清洗规则如下:
A、快件至少有1条分发扫描信息;
快件的分发扫描信息包括分发扫描时间,具体指快递机构侧针对同一快件运输过程中各个物流节点的扫描信息。
B、快件至少有1条揽收或中转类型的扫描记录;
快件的揽收或中转类型的扫描记录具体描述快件的物流流转轨迹,包括揽收时间、揽收网点、揽收人以及中转时间、中转站点等信息。
C、快件入库扫描时间与分发扫描时间的时间差须小于7天;
快件在代收点的入库扫描时间指代收点接收快递员投放的快件的入库时间,也即相当于快递员的投放时间。第三方入库扫描时间减去分发扫描时间需小于7天,即只能接收派件后7天以内的出入库数据。
D、快件入库扫描时间须晚于分发扫描时间、快件出库扫描时间须晚于入库扫描时间。
入库操作时间必须在分发扫描时间之后,同理出库时间必须在入库时间之后,时间顺序为“分发->入库->出库”。通过以上规则基本上可以从原始的快件数据中筛选出符合后端使用要求的快件数据。
可选的,在一实施例中,清洗脚本先判断各进程读取的快件数据是否满足上述数据清洗规则;若满足,则保留快件数据,得到清洗后的快件数据;若不满足,则剔除快件数据,并记录剔除的快件数据以供分析。
例如,第一数据库有运单号4301020727874的入库信息,但是查询到该运单号只有一条揽收记录,没有分发扫描信息,清洗脚本判断不满足清洗规则A,该条原始数据被清洗掉。
例如,第一数据库有运单号4301020727875的入库信息,但是查询到该运单号只有一条分发扫描记录,没有其他任何一条揽收或中转类型的扫描记录,不满足清洗规则B,该条原始数据被清洗掉。
例如,第一数据库有运单号4301020727876的入库信息,操作时间是2019-12-1610:00:00,同时也有一条分发扫描信息和一条揽收记录,但是分发扫描的操作时间是2019-12-08 10:00:00,入库操作时间超过了7天有效期,不满足清洗规则C,该条原始数据将被清洗掉。
例如,第一数据库有运单号4301020727877的入库信息,操作时间是2019-12-1610:00:00,同时也有一条分发扫描信息和一条揽收记录,但是分发扫描的操作时间是2019-12-16 11:00:00,入库操作时间早于分发扫描时间,不满足清洗规则4,该条原始数据被清洗掉。
例如,第一数据库有运单号4301020727878的入库信息,操作时间是2019-12-1610:00:00,同时也有一条分发扫描信息和一条揽收记录,分发扫描的操作时间是2019-12-16 08:00:00,满足了所有的清洗规则,则该条原始数据被保留,最后写入到第二队列中。
206、将清洗后的快件数据写入所述第二队列中;
本实施例中,在对原始快件数据进行清洗后,再通过清洗脚本将清洗后的快件数据写入第二队列中。
207、通过预置录入脚本以多个进程读取所述第二队列中的快件数据;
208、将各进程读取的快件数据批量录入所述第二数据库中。
本实施例中,服务器再通过预置的录入脚本启动多个进程读取第二队列中的快件数据,然后再将各进程读取的快件数据批量录入第二数据库中,从而最终完成原始不可用的快件数据到可用的快件数据的处理流程。
需要说明的是,本实施例中,生产脚本、清洗脚本与录入脚本独立工作,生产脚本写入第一队列中的快件数据与清洗脚本从第一队列中读取的快件数据不同,清洗脚本写入第二队列中的快件数据与录入脚本从第二队列中读取的快件数据不同,各处理流程对应处理数据的不同,实现了各脚本工作内容的解耦,进而可提升数据处理效率、速度以及稳定性。
此外,本实施例中,优选通过Shell调度脚本控制生产脚本、清洗脚本以及录入脚本的启动、停止以及进程数的增减,从而确保数据清洗时队列中数据的写入速度与消费速度保持平衡,保证数据处理的稳定性。
本实施例中,清洗服务的生产脚本只负责从第一数据库读取原始的快件数据并写入待清洗队列(也即第一队列)中而不做其他逻辑处理,保证能实时追上最新的数据而不会造成生产延迟;而清洗脚本只负责数据清洗,同样可以启动多个进程来处理,可使数据清洗更加高效可控;把清洗后的数据写入另一个清洗完成队列(也即第二队列)则让清洗脚本更专注本职工作,效率更高;录入脚本只负责把清洗完成的队列数据批量(如100条一次)写入第二数据库中,从而降低了数据库压力。通过本实施例的快件数据清洗方法使不同的功能解耦相互独立,代码运行效率更高,也更稳定,可处理上亿级别的数据并能保证数据处理的高效、稳定和快速。
上面对本发明实施例中快件数据清洗方法进行了描述,下面对本发明实施例中快件数据清洗系统进行描述,请参阅图3,本发明实施例中快件数据清洗系统一个实施例包括:
生产模块301,用于读取预置第一数据库中的原始快件数据,并将读取的原始快件数据写入预置第一队列中;
清洗模块302,用于以多个进程读取所述第一队列中的快件数据,并对各进程读取的快件数据进行清洗,将清洗后的快件数据写入预置第二队列中;
录入模块303,用于以多个进程读取所述第二队列中的快件数据,并将各进程读取的快件数据批量录入预置第二数据库中。
可选的,在一具体实施例中,生产模块301具体用于:
通过预置生产脚本读取预置时间文件中设定的数据读取的开始时间;
当到达所述开始时间时,读取所述第一数据库中的原始快件数据;
将读取的原始快件数据写入所述第一队列中,并将本次数据读取的结束时间写入所述时间文件中以作为下一次数据读取的开始时间。
可选的,在一具体实施例中,清洗模块302包括:
读取单元,用于通过预置清洗脚本以多个进程读取所述第一队列中的快件数据;
清洗单元,用于根据预置数据清洗规则,分别对各进程读取的快件数据进行清洗;
写入单元,用于将清洗后的快件数据写入所述第二队列中。
可选的,在一具体实施例中,清洗单元具体用于:
判断各进程读取的快件数据是否满足所述数据清洗规则;
若满足,则保留快件数据,得到清洗后的快件数据;
若不满足,则剔除快件数据,并记录剔除的快件数据以供分析。
可选的,在一具体实施例中,数据清洗规则包括:
A、快件至少有1条分发扫描信息;
B、快件至少有1条揽收或中转类型的扫描记录;
C、快件入库扫描时间与分发扫描时间的时间差须小于7天;
D、快件入库扫描时间须晚于分发扫描时间、快件出库扫描时间须晚于入库扫描时间。
可选的,在一具体实施例中,录入模块303具体用于:
通过预置录入脚本以多个进程读取所述第二队列中的快件数据;
将各进程读取的快件数据批量录入所述第二数据库中。
可选的,在一具体实施例中,快件数据清洗装置还包括:
异常处理模块,用于在读取队列中的快件数据时,监测队列是否发生异常,其中,所述队列包括第一队列与第二队列;若发生异常,则将读取出的快件数据重新放入队列中,并生成本次队列异常日志以供分析。
为保证数据读取异常可追踪与分析,本实施例中还增加了数据读取异常处理机制,在读取队列中的快件数据时,还监测队列是否发生异常;若发生异常,则将读取出的快件数据重新放入队列中,防止队列数据因异常情况而丢失,并生成本次队列异常日志以供分析。针对清洗期间的异常情况需记录相应日志并单独处理,确保数据不丢失,并可根据异常情况查询具体的错误信息。
本实施例先从原始数据库读取原始快件数据放到一个队列中,接着启动多个进程读取该队列中数据进行数据清洗,清洗完成后再放到另一个队列中,最后再从队列中读取数据写入到清洗数据库中。本实施例采用上述二级队列方式,将读取数据、清洗数据以及录入数据解耦,实现各处理动作的独立执行与并发处理,进而能快速高效稳定的进行数据清洗,最后再将有效的快件数据提供本系统或其他系统使用,实现了数据处理的高效性、稳定性和快速性。
上面图3从模块化功能实体的角度对本发明实施例中的快件数据清洗系统进行详细描述,下面从硬件处理的角度对本发明实施例中快件数据清洗设备进行详细描述。
图4是本发明快件数据清洗设备一实施例的结构示意图,该快件数据清洗设备400可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器(centralprocessing units,CPU)410(例如,一个或一个以上处理器)和存储器420,一个或一个以上存储应用程序433或数据432的存储介质430(例如一个或一个以上海量存储设备)。其中,存储器420和存储介质430可以是短暂存储或持久存储。存储在存储介质430的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对快件数据清洗设备400中的一系列指令操作。更进一步地,处理器410可以设置为与存储介质430通信,在快件数据清洗设备400上执行存储介质430中的一系列指令操作。
基于快件数据清洗设备400还可以包括一个或一个以上电源440,一个或一个以上有线或无线网络接口450,一个或一个以上输入输出接口460,和/或,一个或一个以上操作系统431,例如Windows Serve,Mac OS X,Unix,Linux,FreeBSD等等。本领域技术人员可以理解,图4示出的快件数据清洗设备结构并不构成对基于快件数据清洗设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
本发明还提供一种计算机可读存储介质,该计算机可读存储介质可以为非易失性计算机可读存储介质,该计算机可读存储介质也可以为易失性计算机可读存储介质,所述计算机可读存储介质中存储有指令,当所述指令在计算机上运行时,使得计算机执行所述快件数据清洗方法的步骤。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read-only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (10)
1.一种快件数据清洗方法,其特征在于,所述快件数据清洗方法包括:
读取预置第一数据库中的原始快件数据,并将读取的原始快件数据写入预置第一队列中;
以多个进程读取所述第一队列中的快件数据,并对各进程读取的快件数据进行清洗,将清洗后的快件数据写入预置第二队列中;
以多个进程读取所述第二队列中的快件数据,并将各进程读取的快件数据批量录入预置第二数据库中。
2.根据权利要求1所述的快件数据清洗方法,其特征在于,所述读取预置第一数据库中的原始快件数据,并将读取的原始快件数据写入预置第一队列中包括:
通过预置生产脚本读取预置时间文件中设定的数据读取的开始时间;
当到达所述开始时间时,读取所述第一数据库中的原始快件数据;
将读取的原始快件数据写入所述第一队列中,并将本次数据读取的结束时间写入所述时间文件中以作为下一次数据读取的开始时间。
3.根据权利要求1所述的快件数据清洗方法,其特征在于,所述以多个进程读取所述第一队列中的快件数据,并对各进程读取的快件数据进行清洗,将清洗后的快件数据写入预置第二队列中包括:
通过预置清洗脚本以多个进程读取所述第一队列中的快件数据;
根据预置数据清洗规则,分别对各进程读取的快件数据进行清洗;
将清洗后的快件数据写入所述第二队列中。
4.根据权利要求3所述的快件数据清洗方法,其特征在于,所述根据预置数据清洗规则,分别对各进程读取的快件数据进行清洗包括:
判断各进程读取的快件数据是否满足所述数据清洗规则;
若满足,则保留快件数据,得到清洗后的快件数据;
若不满足,则剔除快件数据,并记录剔除的快件数据以供分析。
5.根据权利要求4所述的快件数据清洗方法,其特征在于,所述数据清洗规则包括:
A、快件至少有1条分发扫描信息;
B、快件至少有1条揽收或中转类型的扫描记录;
C、快件入库扫描时间与分发扫描时间的时间差须小于7天;
D、快件入库扫描时间须晚于分发扫描时间、快件出库扫描时间须晚于入库扫描时间。
6.根据权利要求1所述的快件数据清洗方法,其特征在于,所述以多个进程读取所述第二队列中的快件数据,并将各进程读取的快件数据批量录入预置第二数据库中包括:
通过预置录入脚本以多个进程读取所述第二队列中的快件数据;
将各进程读取的快件数据批量录入所述第二数据库中。
7.根据权利要求1-6中任一项所述的快件数据清洗方法,其特征在于,所述快件数据清洗方法还包括:
在读取队列中的快件数据时,监测队列是否发生异常,其中,所述队列包括第一队列与第二队列;
若发生异常,则将读取出的快件数据重新放入队列中,并生成本次队列异常日志以供分析。
8.一种快件数据清洗装置,其特征在于,所述快件数据清洗装置包括:
生产模块,用于读取预置第一数据库中的原始快件数据,并将读取的原始快件数据写入预置第一队列中;
清洗模块,用于以多个进程读取所述第一队列中的快件数据,并对各进程读取的快件数据进行清洗,将清洗后的快件数据写入预置第二队列中;
录入模块,用于以多个进程读取所述第二队列中的快件数据,并将各进程读取的快件数据批量录入预置第二数据库中。
9.一种快件数据清洗设备,其特征在于,所述快件数据清洗设备包括:存储器和至少一个处理器,所述存储器中存储有指令,所述存储器和所述至少一个处理器通过线路互连;
所述至少一个处理器调用所述存储器中的所述指令,以使得所述快件数据清洗设备执行如权利要求1-7中任一项所述的快件数据清洗方法。
10.一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1-7中任一项所述的快件数据清洗方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010164827.1A CN111291033B (zh) | 2020-03-11 | 2020-03-11 | 快件数据清洗方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010164827.1A CN111291033B (zh) | 2020-03-11 | 2020-03-11 | 快件数据清洗方法、装置、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111291033A true CN111291033A (zh) | 2020-06-16 |
CN111291033B CN111291033B (zh) | 2023-03-17 |
Family
ID=71020174
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010164827.1A Active CN111291033B (zh) | 2020-03-11 | 2020-03-11 | 快件数据清洗方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111291033B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111950781A (zh) * | 2020-07-31 | 2020-11-17 | 上海中通吉网络技术有限公司 | 订单到达量预测方法及设备 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130007773A1 (en) * | 2011-06-28 | 2013-01-03 | Steven Scott Guilford | Systems, methods, apparatuses, and computer program products for facilitating integration of third party technology with a database |
WO2018113724A1 (zh) * | 2016-12-21 | 2018-06-28 | 广州优视网络科技有限公司 | 基于读写分离模式的下载提速方法、装置、终端设备及存储介质 |
CN110362617A (zh) * | 2019-06-24 | 2019-10-22 | 北京人大金仓信息技术股份有限公司 | 基于多并发技术从数据库快速导出批量数据方法和系统 |
-
2020
- 2020-03-11 CN CN202010164827.1A patent/CN111291033B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130007773A1 (en) * | 2011-06-28 | 2013-01-03 | Steven Scott Guilford | Systems, methods, apparatuses, and computer program products for facilitating integration of third party technology with a database |
WO2018113724A1 (zh) * | 2016-12-21 | 2018-06-28 | 广州优视网络科技有限公司 | 基于读写分离模式的下载提速方法、装置、终端设备及存储介质 |
CN110362617A (zh) * | 2019-06-24 | 2019-10-22 | 北京人大金仓信息技术股份有限公司 | 基于多并发技术从数据库快速导出批量数据方法和系统 |
Non-Patent Citations (2)
Title |
---|
杨超;徐如志;杨峰;: "基于消息队列的多进程数据处理系统" * |
郭杰;: "基于Android平台的快递管理系统的设计与实现" * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111950781A (zh) * | 2020-07-31 | 2020-11-17 | 上海中通吉网络技术有限公司 | 订单到达量预测方法及设备 |
Also Published As
Publication number | Publication date |
---|---|
CN111291033B (zh) | 2023-03-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112035404B (zh) | 医疗数据监控与预警方法、装置、设备及存储介质 | |
CN105989163A (zh) | 数据实时处理方法及系统 | |
CN111291033B (zh) | 快件数据清洗方法、装置、设备及存储介质 | |
CN107153643A (zh) | 数据表连接方法及装置 | |
CN113868214A (zh) | 日志的存储方法、装置、电子设备及计算机可读介质 | |
CN111680914B (zh) | 事件分配方法、事件分配装置、存储介质、电子设备 | |
CN111324653B (zh) | 一种离线数据的采集方法、装置、设备及存储介质 | |
CN110008236B (zh) | 一种数据分布式自增编码方法、系统、设备及介质 | |
CN110888909B (zh) | 一种评估内容的数据统计处理方法及装置 | |
CN107295059A (zh) | 业务推送量的统计系统及方法 | |
CN110851437A (zh) | 一种存储方法、装置及设备 | |
CN111292040B (zh) | 快件代签收信息接入方法、系统及存储介质 | |
CN114266242A (zh) | 工单数据处理方法、装置、服务器及可读存储介质 | |
CN114385606A (zh) | 一种大数据清洗方法、系统、存储介质和电子设备 | |
CN114465875A (zh) | 故障处理方法及装置 | |
CN110209512B (zh) | 基于多数据源的数据核对方法及装置 | |
CN108268662B (zh) | 基于h5页面的社交图谱生成方法、电子装置及存储介质 | |
CN111367750A (zh) | 一种异常处理方法、装置及其设备 | |
CN116361277A (zh) | 一种数据质量检测方法、装置、计算机设备及介质 | |
CN116361274A (zh) | 业务数据的计酬处理方法及装置 | |
CN115293539A (zh) | 一种基于otrs系统的绩效考核方法及系统 | |
CN115033179A (zh) | 一种数据存储方法、装置、设备及介质 | |
CN111597180A (zh) | 一种基于存储过程的otrs系统的数据清洗方法 | |
CN117009325A (zh) | 基于物联网平台的数据处理优化方法及系统 | |
CN112907251A (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 |