CN111488237B - 一种二维码大数据快速校验方法 - Google Patents

一种二维码大数据快速校验方法 Download PDF

Info

Publication number
CN111488237B
CN111488237B CN202010409853.6A CN202010409853A CN111488237B CN 111488237 B CN111488237 B CN 111488237B CN 202010409853 A CN202010409853 A CN 202010409853A CN 111488237 B CN111488237 B CN 111488237B
Authority
CN
China
Prior art keywords
data
file
writing
repeated
temporary
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
Application number
CN202010409853.6A
Other languages
English (en)
Other versions
CN111488237A (zh
Inventor
王岩松
和江镇
方志斌
韩飞
张晖
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Focusight Technology Co Ltd
Original Assignee
Focusight Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Focusight Technology Co Ltd filed Critical Focusight Technology Co Ltd
Priority to CN202010409853.6A priority Critical patent/CN111488237B/zh
Publication of CN111488237A publication Critical patent/CN111488237A/zh
Application granted granted Critical
Publication of CN111488237B publication Critical patent/CN111488237B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/073Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a memory management context, e.g. virtual memory or cache management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/21Design, administration or maintenance of databases
    • G06F16/215Improving data quality; Data cleansing, e.g. de-duplication, removing invalid entries or correcting typographical errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2453Query optimisation
    • G06F16/24532Query optimisation of parallel queries
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24552Database cache management
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy 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)
  • Data Mining & Analysis (AREA)
  • Quality & Reliability (AREA)
  • Computational Linguistics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明涉及一种二维码大数据快速校验方法,包括以下步骤,品检数据文件上传时,将多个包含二维码数据的txt格式文件同时上传;同步读取这些txt文件并写入对应的临时表中;分别判断每个文件内数据的唯一性,判断每个文件内数据是否属于当前检测的批次,并判断是否存在非法数据;判断完成后将符合条件的临时表数据整合到一起,再次进行重复数据判断;判断无误后更新原批次表数据对应状态。本发明有效解决了二维码大数据处理中的数据验证以及数据状态更新速度慢的问题,实现了对大批量二维码数据的快速检验,分别检查二维码是否属于当前批次、是否出现重复以及是否已经上传过等快速检验,保证数据的准确性,提高了数据检验的效率。

Description

一种二维码大数据快速校验方法
技术领域
本发明涉及数据检验技术领域,尤其是一种二维码大数据快速校验方法。
背景技术
在印刷行业,尤其是烟包或者药包印刷厂,如何对包装盒上印刷的二维码数据有效性进行快速校验是每个企业在生产流程中必须要面对的问题。而众所周知的是,烟包行业一个车次的包装数量少则十几万,多则上百万,对于不同环节的数据校验需求各不相同,比如在品检模块,当用户上传待检测的码包文件后,系统校验目前常用方法如下:
(1)数据查重:用户选择文件上传后,系统使用文件流按行读取文本文件的内容,每读取一行数据写入内存中的队列中并与已经读取的数据进行比较,判断是否存在重复项;
(2)是否属于当前批次:判断重复数据后需要判断当前上传的数据是否属于某个批次,比如当前生产的批次一共有1000W个烟盒,当前校验的是品检机读取到的100W烟盒上的二维码,要判断这100W数据是否是1000W的子集,不能出现这1000W数据里没有的二维码数据;
(3)是否已经上传:判断属于当前批次后需要判断本次上传的数据是否是初次上传,比如校验的100W数据其中的30W已经被校验过了,这代表实际生产时重复喷码,说明喷码工序存在错误,仅当校验的一百万数据都是初次上传时才能继续执行;
(4)源批次数据状态的更新:通过以上一系列的检测后,需要更改上传数据对应的状态位,比如当前批次一共1000W个烟盒,本次上传100W个,系统需要将这100W条二维码数据对应的状态栏标识为已上传,以此来杜绝重复上传。
由此可见,系统首先读取待检测数据到数据库临时表或性能较高的缓存表中,运用数据库多表连接方式检测数据是否属于当前批次或者是否非法数据,并且判断数据是否存在重复,再比对查找是否有已经检测过的品检二维码,通过以上这些检验步骤后数据才被认定为合格数据,系统会根据每一步的检测给出不符合条件的错误二维码信息。
因此,常见的数据检验方式主要通过程序循环遍历检查,在传统的技术方法下,采用程序循环遍历检测和多文件顺序执行的方法效率很低,小数据量的情况下还勉强可以,一旦数据达到百万甚至千万,程序执行所需的时间和服务器空间要求很高,系统开销巨大,严重影响用户对系统执行结果的掌控。所以,这种方式性能不高,系统处理时花费时间较长,带给用户的体验很不友好,
发明内容
本发明要解决的技术问题是:提供一种二维码大数据快速校验方法,用于机台检测收集到的大数据文件的快速检验,有效解决了二维码大数据处理中的数据验证以及数据状态更新速度慢的问题,提高了数据检验的效率。
本发明解决其技术问题所采用的技术方案是:一种二维码大数据快速校验方法,包括数据的有效性检查方法和数据状态的更新方法两个部分,数据有效性检查方法包括数据文件上传、单文件数据重复性检查、单文件数据合法性检查、多文件数据重复性检查等步骤;数据状态的更新方法主要是更新上传数据的文件状态、上传各文件内的有效上传数量以及整体上传有效数量等步骤;以上步骤如果有错误二维码信息会同步反馈给用户。
具体步骤如下:
一种二维码大数据快速校验方法,包括以下步骤,
1)品检数据文件上传时,将多个包含二维码数据的txt格式文件同时上传;
2)同步读取这些txt文件并写入对应的临时表中;
3)分别判断每个文件内数据的唯一性,判断每个文件内数据是否属于当前检测的批次,并判断是否存在非法数据;
4)判断完成后将符合条件的临时表数据整合到一起,再次进行重复数据判断;
5)判断无误后更新原批次表数据对应状态。
进一步的说,本发明所述的步骤2)中,运用多线程分别处理单独的txt文件并保存到服务器,读取每一个txt文件并写入单独的临时数据表中。
再进一步的说,本发明所述的步骤3)中,对单张临时表进行重复数据检查,存在重复数据写入日志;对单张临时表进行合法数据检查,存在非法数据写入日志;对单张临时表进行已上传数据检查,存在已上传数据写入日志.
再进一步的说,本发明所述的步骤4)中,将通过步骤3)判断后的临时表数据合并写入一张大表,进行整体重复数据检查,如果存在重复数据删除存在互相重复的两张临时表数据并将重复数据写入系统清单。
再进一步的说,本发明所述的步骤5)中,数据状态更新方法包括以下步骤:
步骤1,更新本次上传记录中的合法文件上传数量以及状态栏位;
步骤2,在原批次数据表基础上创建新的临时表,二维码数据的对应栏位用新值代替;
步骤3,临时表创建完成后删除原批次表并更新临时表名为原批次名。
本发明的有益效果是,解决了背景技术中存在的缺陷,本发明运用数据库的多表关联查询的方式,相对循环遍历方式性能提升较大,在数据有效性、重复性的、已上传等数据的校验上运用数据库表连接和分组、查重等方式进行全面检查;采用多线程与数据库多表比对并结合高性能缓存的方式提高了系统处理性能和提升用户操作友好性,对于印刷厂来说提高了检验效率,提高了产能,解决了之前处理速度慢,准确率低的不足。
附图说明
图1是本发明的流程框图。
具体实施方式
现在结合附图和优选实施例对本发明作进一步详细的说明。这些附图均为简化的示意图,仅以示意方式说明本发明的基本结构,因此其仅显示与本发明有关的构成。
如图1所示的一种二维码大数据快速校验方法,分为程序端、数据库端以及中间的缓存层端,程序端,完成数据文件上传,主要提供用户界面,便于用户输入数据以及相关数据处理功能选项,程序接受用户输入数据后写入缓存层并从数据库中读取相关数据,在缓存层端进行数据校验;数据库端,完成数据库导入、状态变更操作,主要提供最终指定格式的数据存储,负责数据的持久化,保证业务数据的完整性;缓存层端,完成数据快速校验,主要是从数据库端查询数据写入内存中,和用户导入的多个码包文件做校验,校验完成后再更新数据库端对应的数据内容,从而达到快速校验的目标。
本方法包括多文件上传的数据合法验证方法和上传文件数据对应状态以及数量的更新方法;
多文件上传的数据验证方法包括以下步骤:
步骤1,机台用户上传包含多个二维码数据的txt文件;
步骤2,系统运用多线程分别处理单独的txt文件并保存到服务器,读取每一个txt文件并写入单独的临时数据表中;
步骤3,对单张临时表进行重复数据检查,存在重复数据写入日志;
步骤4,对单张临时表进行合法数据检查,存在非法数据写入日志;
步骤5,对单张临时表进行已上传数据检查,存在已上传数据写入日志;
步骤6,将通过步骤3-5后的临时表数据合并写入一张大表,进行整体重复数据检查,如果存在重复数据删除存在互相重复的两张临时表数据并将重复数据写入系统清单;
数据状态更新方法包括以下步骤:
步骤1,更新本次上传记录中的合法文件上传数量以及状态栏位;
步骤2,在原批次数据表基础上创建新的临时表,二维码数据的对应栏位用新值代替;
步骤3,临时表创建完成后删除原批次表并更新临时表名为原批次名;
大数据快速校验原理:对于数以百万的数据包文件A、B,如何快速判断B是否是A的子集、B是否存在不属于A的数据以及B是否存在A中已经验证过的数据?运用数据仓储读取数据A、B写入两张临时表中,采用数据库表连接的方式来快速检测数据,根据数据验证的字段适当增加表索引,提升多表连接查询的性能;对需要反复验证的基础数据A可以使用高性能缓存框架加载数据到内存中进行操作,减少数据反复读写的性能消耗,提高系统性能。
用户导入需要检测的一个或多个大数据文件,系统会以并行的方式同时创建每个文件对应的临时表,针对每个临时表做数据合法性验证包括唯一性(判断是否存在重复数据,对应现实中喷印重复的多张包装盒)、合法性(判断是否存在非当前产品批次的数据,对应现实中检测A系列的包装实际却是B系列)、有效性(判断是否存在已经检测过的数据,某一张/批包装盒之前已经检验过了,又重新检测)等情况,根据检测的结果剔除不符合要求的数据文件,将多个文件中的数据整合到一起,结合原批次数据进行状态更新,对于不符合要求的数据文件给出错误提示,至此操作完成。
大数据快速校验的要求主要有两点:1-准确,2-快速。
系统处理的性能依赖于服务器硬件设备以及软件程序的设计,系统的瓶颈在于数据库的I/O(写入/写出)性能,所以如何在程序与数据库之间构建一个高性能的缓存层很重要,将待比对的源数据预先存储在缓存中,直接在缓存中进行数据对比,这样能避免频繁读取数据库,节省时间,所以选用一个No Sql-非关系型数据库作为缓存,随之而来的是如何保证缓存与数据库的数据一致性,并且在程序内必须要做好缓存的击穿防御,一旦多个客户端并行访问缓存,而缓存在某一时刻突然丢失会造成缓存击穿,这可能会给程序带来奔溃,带来较差的用户体验,因此缓存的控制以及有效时间一定要妥善处理,要最大化的利用缓存的高性能优势,同时也要做好潜在的风险防御。
本数据检验方法在数据库层面优化了查询与更新方法,根据实际需要增加了索引,对大数据表按时间适当进行分表,保证了数据库层面的性能,在程序端通过预先加载的缓存层进行数据校验和数据更新,在程序内部优化了代码,针对不同批次建立独立临时表,将临时表数据加载到内存中,针对多个码包文件在程序端运用多线程并行执行,同时运用高性能缓存框架来对大批量数据进行校验和比对,提高了运行效率,并从系统层面全面的关注缓存数据的使用和边界点处理,避免了异常问题的发生。
通过在数据库、缓存以及程序端的各种优化以及控制,极大的提高了系统处理大数据校验的性能和可靠性,缩短了系统校验的时间,提高了印刷厂烟包的品检效率,加快印刷厂的交货速度。
实现了大批量数据的快速校验,实现了对百万级及以上数据的唯一性、重复性、合法性、准确性进行检查,提升了印刷厂对用户二维码数据的管理和维护,提升了检验的速度。
以上说明书中描述的只是本发明的具体实施方式,各种举例说明不对本发明的实质内容构成限制,所属技术领域的普通技术人员在阅读了说明书后可以对以前所述的具体实施方式做修改或变形,而不背离发明的实质和范围。

Claims (2)

1.一种二维码大数据快速校验方法,其特征在于:包括以下步骤,
1)品检数据文件上传时,将多个包含二维码数据的txt格式文件同时上传;
2)同步读取这些txt文件并写入对应的临时表中;运用多线程分别处理单独的txt文件并保存到服务器,读取每一个txt文件并写入单独的临时表中;
3)分别判断每个文件内数据的唯一性,判断每个文件内数据是否属于当前检测的批次,并判断是否存在非法数据;对单张临时表进行重复数据检查,如果存在重复数据则写入日志;对单张临时表进行合法数据检查,如果存在非法数据则写入日志;对单张临时表进行已上传数据检查,如果存在已上传数据则写入日志;
4)判断完成后将符合条件的临时表中的数据整合到一起,再次进行重复数据判断;将通过步骤3)判断后的临时表中的数据合并写入一张大表,进行整体重复数据检查,如果存在重复数据则删除存在互相重复的两张临时表中的数据并将重复数据写入系统清单;
5)判断无误后更新原批次表中数据的对应状态。
2.如权利要求1所述的一种二维码大数据快速校验方法,其特征在于:所述的步骤5)中,数据状态更新方法包括以下步骤:
步骤1,更新本次上传记录中的合法文件上传数量以及状态栏位;
步骤2,在原批次表基础上创建新的临时表,二维码数据的对应栏位用新值代替;
步骤3,临时表创建完成后删除原批次表并更新临时表名为原批次名。
CN202010409853.6A 2020-05-15 2020-05-15 一种二维码大数据快速校验方法 Active CN111488237B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010409853.6A CN111488237B (zh) 2020-05-15 2020-05-15 一种二维码大数据快速校验方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010409853.6A CN111488237B (zh) 2020-05-15 2020-05-15 一种二维码大数据快速校验方法

Publications (2)

Publication Number Publication Date
CN111488237A CN111488237A (zh) 2020-08-04
CN111488237B true CN111488237B (zh) 2023-09-22

Family

ID=71795920

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010409853.6A Active CN111488237B (zh) 2020-05-15 2020-05-15 一种二维码大数据快速校验方法

Country Status (1)

Country Link
CN (1) CN111488237B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113553367B (zh) * 2021-07-22 2023-07-07 浪潮通用软件有限公司 一种数据导入校验方法、设备及介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101639839A (zh) * 2008-07-30 2010-02-03 中兴通讯股份有限公司 一种基于临时表的多归档文件查询方法
CN101799832A (zh) * 2010-03-31 2010-08-11 山东高效能服务器和存储研究院 巨量数据一次性快速写入数据库的方法
CN103593440A (zh) * 2013-11-15 2014-02-19 北京国双科技有限公司 日志文件的读写方法及装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101639839A (zh) * 2008-07-30 2010-02-03 中兴通讯股份有限公司 一种基于临时表的多归档文件查询方法
CN101799832A (zh) * 2010-03-31 2010-08-11 山东高效能服务器和存储研究院 巨量数据一次性快速写入数据库的方法
CN103593440A (zh) * 2013-11-15 2014-02-19 北京国双科技有限公司 日志文件的读写方法及装置

Also Published As

Publication number Publication date
CN111488237A (zh) 2020-08-04

Similar Documents

Publication Publication Date Title
US20200320091A1 (en) Schemaless to relational representation conversion
US9953102B2 (en) Creating NoSQL database index for semi-structured data
US9367585B2 (en) Data storage and query method
US20190370368A1 (en) Data consistency verification method and system minimizing load of original database
CN110781231A (zh) 基于数据库的批量导入方法、装置、设备及存储介质
CN104424360A (zh) 用于访问源数据库中的一组数据表格的方法和系统
US9454561B2 (en) Method and a consistency checker for finding data inconsistencies in a data repository
US20110238708A1 (en) Database management method, a database management system and a program thereof
US11288254B2 (en) Method of and system for processing request in distributed database
KR101892067B1 (ko) 관계형 데이터베이스 기반의 텍스트 로그데이터 저장 및 검색 방법
CN111488237B (zh) 一种二维码大数据快速校验方法
CN105045917A (zh) 一种基于实例的分布式数据恢复方法和装置
CN109947411A (zh) 分布式软件生成唯一id主键的方法
Araujo et al. Comparative performance analysis of NoSQL Cassandra and MongoDB databases
CN107798007B (zh) 一种分布式数据库数据校验的方法、装置及相关装置
KR100906454B1 (ko) 데이터베이스 로그 정보 관리 장치 및 방법
US20210390204A1 (en) System, method and computer-accessible medium for capturing data changes
CN107704554A (zh) 基于mpp数据库的数据高速导入的方法及其系统
US11663189B1 (en) Generating relational table structures from NoSQL datastore and migrating data
CN110851437A (zh) 一种存储方法、装置及设备
CN114564501A (zh) 一种数据库数据存储、查询方法、装置、设备及介质
CN113032368A (zh) 一种数据迁移方法、装置、存储介质及平台
CN111831622A (zh) 数据索引生成方法、装置、电子设备和可读存储介质
CN112395292A (zh) 一种数据特征提取、匹配方法及装置
CN111680004B (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