CN112015798B - 一种保证数据不重复和延迟监控的数据处理方法及装置 - Google Patents
一种保证数据不重复和延迟监控的数据处理方法及装置 Download PDFInfo
- Publication number
- CN112015798B CN112015798B CN202011012315.XA CN202011012315A CN112015798B CN 112015798 B CN112015798 B CN 112015798B CN 202011012315 A CN202011012315 A CN 202011012315A CN 112015798 B CN112015798 B CN 112015798B
- Authority
- CN
- China
- Prior art keywords
- data
- directory
- file
- partition
- formal
- 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
- 238000003672 processing method Methods 0.000 title claims abstract description 20
- 238000012544 monitoring process Methods 0.000 title claims description 29
- 238000005192 partition Methods 0.000 claims abstract description 79
- 238000012545 processing Methods 0.000 claims abstract description 48
- 238000000034 method Methods 0.000 claims abstract description 22
- 238000000638 solvent extraction Methods 0.000 claims abstract description 9
- 238000004364 calculation method Methods 0.000 claims abstract description 7
- 238000013507 mapping Methods 0.000 claims description 12
- 238000004590 computer program Methods 0.000 claims description 10
- 238000012217 deletion Methods 0.000 claims description 6
- 230000037430 deletion Effects 0.000 claims description 6
- 230000008520 organization Effects 0.000 claims description 6
- 238000012958 reprocessing Methods 0.000 claims description 6
- 230000003111 delayed effect Effects 0.000 abstract description 7
- 230000002159 abnormal effect Effects 0.000 abstract description 3
- 230000008569 process Effects 0.000 description 5
- 238000010586 diagram Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
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/25—Integrating or interfacing systems involving database management systems
- G06F16/254—Extract, transform and load [ETL] procedures, e.g. ETL data flows in data warehouses
-
- 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/23—Updating
- G06F16/2365—Ensuring data consistency and integrity
-
- 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)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Quality & Reliability (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开一种保证数据不重复和延迟监控的数据处理方法及装置,其中,该方法包括:根据系统的时间戳组织入库的文件;按照每个入库的目录作为数据处理粒度,定期调度Spark的离线计算任务;确定数据处理批次的唯一编号;根据事件时间分区,将数据写入中间暂存区目录;根据暂存区文件,生成待入库的文件名;根据上一步生成的文件的分区,删除数据目录下的数据;移动数据;修改该批次的数据源目录,增加_done后缀,标识数据已经完成处理;数据延迟分区。该方法及装置可保证程序在异常场景下重新处理,数据不会重复;同时,可监控数据的延迟情况。
Description
技术领域
本发明涉及典型的离线ETL场景领域,尤其是一种保证数据不重复和延迟监控的数据处理方法及装置。
背景技术
在典型的离线ETL场景下,使用Spark处理HDFS上的文件,由于文件中事件时间是乱序的,并且一个文件中的日志可能跨越多个时间段。因此,在数据处理的过程中,需要根据事件的时间,对数据进行分区。但是,分区后的文件落在不同的分区目录,并且文件名是一串hash编码,无法根据文件的名称来确定数据的来源,不能监控数据的延迟情况。
例如,Spark读取/data/2020083110目录下的数据,对数据分区,形成文件:
/data/dayid=20200831/hourid=10/part-00002-6c7328bd-a3f0-43ee-8e06-05fc77fb5349-c000.csv
/data/dayid=20200831/hourid=10/part-00002-6c7328bd-a3f0-43ee-8e06-05fc77fb5349-d001.csv
读取另外一个目录/data/2020083111,对数据分区,又在分区/dayid=20200831/hourid=10下形成文件:
/data/dayid=20200831/hourid=10/part-00002-6c7328bd-a3f0-43ee-8e06-05fc77fb5349-c000.csv
/data/dayid=20200831/hourid=10/part-00002-6c7328bd-a3f0-43ee-8e06-05fc77fb5349-d001.csv
/data/dayid=20200831/hourid=10/part-000343-dfasf328bd-a3f0-43ee-8e06-05fc77fb5349-c022.csv新增文件1
/data/dayid=20200831/hourid=10/part-00fdf-fdsaf8bd-a3f0-43ee-8e06-05fc77fb5349-fdf1.csv新增文件2
如果第二次任务执行失败了,只有新增文件1写入了分区目录。如果对这个批次的任务重新处理,那怎么删除上次任务的脏数据文件?因为文件名称是hash串,无法识别。如果重新处理,只会导致数据重复,如果不重新处理,数据就丢失了。
此外,由于是根据日志里面的时间字段分区,如果日志延迟,也没有有效的手段对延迟的数据进行定位和监控。
发明内容
为解决上述存在的技术问题,本发明提供一种保证数据不重复和延迟监控的数据处理方法及装置。
为实现上述目的,本发明采用下述技术方案:
在本发明一实施例中,提出了一种保证数据不重复和延迟监控的数据处理方法,该方法包括:
根据系统的时间戳组织入库的文件;
按照每个入库的目录作为数据处理粒度,定期调度Spark的离线计算任务;
确定数据处理批次的唯一编号;
根据事件时间分区,将数据写入中间暂存区目录;
根据暂存区文件,生成待入库的文件名;
根据上一步生成的文件的分区,删除数据目录下的数据;
移动数据;
修改该批次的数据源目录,增加_done后缀,标识数据已经完成处理。
进一步地,根据系统的时间戳组织入库的文件,包括:
定期在HDFS上根据系统的时间戳新建目录,目录的名称为系统时间戳;
文件写入新建目录。
进一步地,确定数据处理批次的唯一编号,包括:
目录的名称作为数据处理批次的唯一编号。
进一步地,根据事件时间分区,将数据写入中间暂存区目录,包括:
根据分区的维度:日期、小时和5分钟,将数据写入中间暂存区目录;
中间暂存区的根目录为:/stage,中间暂存区的目录组织为:/stage/批次编号/1到多个分区目录/具体的文件;
中间暂存区目录下的文件名称是一串不重复的hash编码。
进一步地,根据暂存区文件,生成待入库的文件名,包括:
对暂存区文件重命名,重命名规则为:对文件从0开始编号,并且以批次号作为前缀;
将暂存区文件的路径替换为正式数据目录的路径,生成待写入正式数据目录的文件的完整路径;
生成暂存区文件和待写入正式数据目录的文件名称的映射。
进一步地,根据上一步生成的文件的分区,删除数据目录下的数据,包括:
如果这个批次的数据是第一次执行,那么数据目录下不存在这个批次的文件;
如果这个批次的数据不是第一次运行,上一次运行可能异常失败了,只有部分数据写入了数据目录,那么这部分的文件形成了脏数据,在重新处理时,将这部分的脏数据删除,然后重新入库。
进一步地,脏数据删除的规则为:
确定上一步的分区集合;
遍历上面确定的每个分区,删除文件名以当前批次为前缀的文件。
进一步地,移动数据,包括:
根据生成的暂存区文件和待写入正式数据目录的文件名称的映射关系,执行重命名操作,即可将暂存区文件移动至正式数据目录。
进一步地,该方法还包括:数据延迟分区。
进一步地,数据延迟分区,包括:
通过分区目录的名称,确定数据的事件时间;
通过比对批次编号以及分区目录,确定数据延迟的情况。
在本发明一实施例中,还提出了一种保证数据不重复和延迟监控的数据处理装置,该装置包括:
数据上传模块,用于根据系统的时间戳组织入库的文件;
数据处理模块,用于按照每个入库的目录作为数据处理粒度,定期调度Spark的离线计算任务;确定数据处理批次的唯一编号;根据事件时间分区,将数据写入中间暂存区目录;根据暂存区文件,生成待入库的文件名;根据上一步生成的文件的分区,删除数据目录下的数据;移动数据;修改该批次的数据源目录,增加_done后缀,标识数据已经完成处理。
进一步地,数据上传模块,具体用于:
定期在HDFS上根据系统的时间戳新建目录,目录的名称为系统时间戳;
文件写入新建目录。
进一步地,确定数据处理批次的唯一编号,包括:
目录的名称作为数据处理批次的唯一编号。
进一步地,根据事件时间分区,将数据写入中间暂存区目录,包括:
根据分区的维度:日期、小时和5分钟,将数据写入中间暂存区目录;
中间暂存区的根目录为:/stage,中间暂存区的目录组织为:/stage/批次编号/1到多个分区目录/具体的文件;
中间暂存区目录下的文件名称是一串不重复的hash编码。
进一步地,根据暂存区文件,生成待入库的文件名,包括:
对暂存区文件重命名,重命名规则为:对文件从0开始编号,并且以批次号作为前缀;
将暂存区文件的路径替换为正式数据目录的路径,生成待写入正式数据目录的文件的完整路径;
生成暂存区文件和待写入正式数据目录的文件名称的映射。
进一步地,根据上一步生成的文件的分区,删除数据目录下的数据,包括:
如果这个批次的数据是第一次执行,那么数据目录下不存在这个批次的文件;
如果这个批次的数据不是第一次运行,上一次运行可能异常失败了,只有部分数据写入了数据目录,那么这部分的文件形成了脏数据,在重新处理时,将这部分的脏数据删除,然后重新入库。
进一步地,脏数据删除的规则为:
确定上一步的分区集合;
遍历上面确定的每个分区,删除文件名以当前批次为前缀的文件。
进一步地,移动数据,包括:
根据生成的暂存区文件和待写入正式数据目录的文件名称的映射关系,执行重命名操作,即可将暂存区文件移动至正式数据目录。
进一步地,该装置还包括:延迟监控模块,用于数据延迟分区。
进一步地,延迟监控模块,具体用于:
通过分区目录的名称,确定数据的事件时间;
通过比对批次编号以及分区目录,确定数据延迟的情况。
在本发明一实施例中,还提出了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现前述保证数据不重复和延迟监控的数据处理方法。
在本发明一实施例中,还提出了一种计算机可读存储介质,计算机可读存储介质存储有执行保证数据不重复和延迟监控的数据处理方法的计算机程序。
有益效果:
本发明根据系统的时间戳组织入库的文件,并确定任务运行的唯一的批次标识,在数据处理过程中,根据这个唯一的标识,程序异常场景下重新处理数据时,删除脏数据,保证数据处理过程的一致性语义;基于Spark处理后存入时间分区,文件名称包含了数据传入HDFS的时间戳,比对时间分区和文件名的时间戳,可监控数据的延迟情况。
附图说明
图1是本发明一实施例的保证数据不重复和延迟监控的数据处理方法流程示意图;
图2是本发明一实施例的保证数据不重复和延迟监控的数据处理装置结构示意图;
图3是本发明一实施例的计算机设备结构示意图。
具体实施方式
下面将参考若干示例性实施方式来描述本发明的原理和精神,应当理解,给出这些实施方式仅仅是为了使本领域技术人员能够更好地理解进而实现本发明,而并非以任何方式限制本发明的范围。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
本领域技术人员知道,本发明的实施方式可以实现为一种系统、装置、设备、方法或计算机程序产品。因此,本公开可以具体实现为以下形式,即:完全的硬件、完全的软件(包括固件、驻留软件、微代码等),或者硬件和软件结合的形式。
根据本发明的实施方式,提出了一种保证数据不重复和延迟监控的数据处理方法及装置,在典型的离线ETL场景下,使用Spark读取HDFS上的文件进行格式转换、分区等数据处理操作,可保证程序在异常场景下重新处理,数据不会重复。同时,根据落地的时间分区以及文件名的时间戳(文件写入HDFS时刻的系统时间)前缀,可监控数据的延迟情况。
下面参考本发明的若干代表性实施方式,详细阐释本发明的原理和精神。
图1是本发明一实施例的保证数据不重复和延迟监控的数据处理方法流程示意图。如图1所示,该方法包括:数据上传:按系统时间戳组织目录,文件上传;数据处理:读取目录(定时调度,每次读取1个目录),写入中间暂存区,移动至数据目录;延时监控:数据延迟比对。具体如下:
1、根据系统的时间戳组织入库的文件
定期(例如可设置为1分钟)在HDFS上根据系统的时间戳新建目录,目录的名称为系统时间戳。
例如:按照1分钟的粒度新建目录。在2020-08-3111:21:22的时间点入库的文件,新建/source/202008311121目录(如果不存在)。在2020-08-3111:22:22的时间点入库的文件,新建/source/202008311122目录(如果不存在)。文件写入新建的目录。
2、按照每个入库的目录作为数据处理粒度,定期调度Spark的离线计算任务
例如:每隔1分钟,使用Spark处理前两分钟目录的数据。
在2020-08-3111:23:00的时间点,处理/source/202008311121目录下的数据。
3、确定数据处理批次的唯一编号
目录的名称作为数据处理批次的唯一编号。
例如:使用Spark处理/source/202008311121目录,202008311121是该批次任务的唯一编号。
4、根据事件时间分区,将数据写入中间暂存区目录
根据分区的维度,将数据写入中间暂存区目录。
/source/202008311121目录的文件,存在如下三条数据:
123|192.168.112.20|2020-08-3110:58:20
134|192.148.132.12|2020-08-3110:50:20
156|192.138.42.20|2020-08-3110:48:20
分区的维度为:日期、小时和5分钟。
第一条日志写入分区目录:/dayid=20200831/hourid=10/m5=55
第二条日志写入分区目录:/dayid=20200831/hourid=10/m5=50
第三条日志写入分区目录:/dayid=20200831/hourid=10/m5=45
中间暂存区的根目录为:/stage。中间暂存区的目录组织为:
/stage/批次编号/1到多个分区目录/具体的文件。
因此,上面的数据,经spark处理后,在暂存区的目录结构如下:
/stage/202008311121/dayid=20200831/hourid=10/m5=55
/stage/202008311121/dayid=20200831/hourid=10/m5=50
/stage/202008311121/dayid=20200831/hourid=10/m5=45
目录下的文件名称是一串不重复的hash编码,例如:
part-00002-6c7328bd-a3f0-43ee-8e06-05fc77fb5349-c000.csv
part-00001-8eb7558d-b815-4a61-fdfeb-d62f6ad0fds-c03f.csv
5、根据暂存区文件,生成待入库的文件名
(1)对暂存区文件重命名。文件名的命名规则为:对文件从0开始编号,并且以批次号作为前缀。
(2)将暂存区文件路径替换为正式数据目录的路径。
例如:/stage/202008311121/dayid=20200831/hourid=10/m5=55
目录下存在两个文件:
/stage/202008311121/dayid=20200831/hourid=10/m5=55/part-00002-6c7328bd-a3f0-43ee-8e06-05fc77fb5349-c000.csv
/stage/202008311121/dayid=20200831/hourid=10/m5=55/part-00001-8eb7558d-b815-4a61-fdfeb-d62f6ad0fds-c03f.csv
首先对文件重命名,重命名后的文件路径如下:
/stage/202008311121/dayid=20200831/hourid=10/m5=55/202008311121_0.csv
/stage/202008311121/dayid=20200831/hourid=10/m5=55/202008311121_1.csv
然后,将暂时区文件路径替换为正式数据目录的路径,替换后如下:
/data/dayid=20200831/hourid=10/m5=55/202008311121_0.csv
/data/dayid=20200831/hourid=10/m5=55/202008311121_1.csv
这样,生成了待写入正式分区的文件的完整路径。
生成暂存区文件和待写入正式目录的文件名称的映射,如下:
(“/stage/202008311121/dayid=20200831/hourid=10/m5=55/part-00002-6c7328bd-a3f0-43ee-8e06-05fc77fb5349-c000.csv”,“/data/dayid=20200831/hourid=10/m5=55/202008311121_0.csv”)
6、根据上一步生成的文件的分区,删除数据目录下的数据
如果这个批次的数据是第一次执行,那么数据目录下不存在这个批次的文件。
如果这个批次不是第一次运行,上一次运行可能异常失败了,只有部分数据写入了数据目录,那么这部分的文件形成了脏数据。在重新处理时,需要将这部分的脏数据删除,然后重新入库。
删除规则为:
(1)确定上一步骤的分区集合
例如,分区的集合:
(“/data/dayid=20200831/hourid=10/m5=55/”,
“/data/dayid=20200831/hourid=10/m5=50/”)
(2)遍历上面确定的每个分区,删除文件名以当前批次为前缀的文件。
7、移动数据
根据第5步确定的暂存区文件和待写入正式目录的文件名称的映射关系,执行重命名操作,即可将暂存区文件移动至正式目录。
8、修改该批次的数据源目录,增加_done后缀,标识数据已经完成处理。
9、数据延迟分区
在分区目录/dayid=20200831/hourid=10/m5=45下的文件示例如下:
/data/dayid=20200831/hourid=10/m5=45/202008311120_0.csv
/data/dayid=20200831/hourid=10/m5=45/202008311120_1.csv
/data/dayid=20200831/hourid=10/m5=45/202008311121_0.csv
/data/dayid=20200831/hourid=10/m5=45/202008311121_1.csv
/data/dayid=20200831/hourid=10/m5=45/202008311121_2.csv
在这个示例中,包含了202008311120和202008311121两个批次的数据,这里的批次号即使数据处理的唯一标识,也是数据写入HDFS时刻的系统时间。
而通过分区目录的名称,可以确定数据的事件时间。
通过比对批次编号以及分区的目录,可以确定数据延迟的情况。
例如:针对文件
/dayid=20200831/hourid=10/m5=45/202008311120_0.csv。
数据写入HDFS的时刻为2020-08-3111:20,这个文件的最小的事件时间为2020-08-3110:45,最大的事件时间为2020-08-3110:50,从而可以确定数据延迟在范围30-35分钟之间。
需要说明的是,尽管在上述实施例及附图中以特定顺序描述了本发明方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。
为了对上述保证数据不重复和延迟监控的数据处理方法进行更为清楚的解释,下面结合一个具体的实施例来进行说明,然而值得注意的是该实施例仅是为了更好地说明本发明,并不构成对本发明不当的限定。
以一个实例来对数据不重复和延迟监控的数据处理方法进一步说明:
(1)数据按照系统时间戳写入HDFS的目录
采集机在2020-08-3111:21:00收到文件access.log,文件的内容如下:
123|192.168.112.20|2020-08-3110:58:20
134|192.148.132.12|2020-08-3110:50:20
156|192.138.42.20|2020-08-3110:48:20
原始数据在HDFS上的根目录为/src,因此新建当前时刻(2020-08-3111:21:00)的1分钟目录:/hadoop/src/202008311121,将access.log传入/hadoop/src/202008311121目录,在实际的生产环境中,这个目录下会有很多的文件。
具体实施,基于HDFS提供的接口,监控数据源的目录下的文件,在每次将文件写入HDFS之前,判断当前系统的时间,根据时间在程序中调用接口新建时间目录,然后将文件写入新建的时间目录中。
例如:如下的程序data2hdfs.sh,传入两个参数,第一个参数表示本地主机的目录,第二个参数表示HDFS上存储数据的根路径。
data2hdfs.sh<本地主机目录><hdfs上的数据根目录>
命令示例:data2hdfs.sh/src/data/hadoop/src
由于/src/data下源源不断的生成文件,当程序发现有新文件时,就将其传入至HDFS。
假设在/src/data目录2020-08-3111:21:00收到文件access.log,则将其传入HDFS的目录:/hadoop/src/202008311121/access.log
(2)数据处理
数据处理通过Spark程序来实现,Spark程序按照一定的时间间隔调度,例如,在上面的例子中,由于是按照1分钟的时间频度新建目录的,因此Spark按照1分钟的频度进行调度,每次调用,传入需要处理的时间戳即可,例如每次调度处理前1分钟或2分钟的目录下的数据。
程序的参数:目录的时间。
例如:在2020-08-3111:22:00时刻,处理2020-08-3111:20:00这个时刻的数据目录,即处理/hadoop/src/202008311120/目录下的所有文件。处理后的数据写入正式的数据目录并按照时间进行分区。
(3)延迟监控
通过专用的监控程序,按照前述的逻辑比对时间。可按照一定的频次(例如5分钟你调度一次)进行调度,生成延迟比对的结果。
基于同一发明构思,本发明还提出一种保证数据不重复和延迟监控的数据处理装置。该装置的实施可以参见上述方法的实施,重复之处不再赘述。以下所使用的术语“模块”,可以是实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
图2是本发明一实施例的保证数据不重复和延迟监控的数据处理装置结构示意图。如图2所示,该装置包括:
数据上传模块101,用于根据系统的时间戳组织入库的文件;具体用于:
定期在HDFS上根据系统的时间戳新建目录,目录的名称为系统时间戳;
文件写入新建目录。
数据处理模块102,用于按照每个入库的目录作为数据处理粒度,定期调度Spark的离线计算任务;确定数据处理批次的唯一编号;根据事件时间分区,将数据写入中间暂存区目录;根据暂存区文件,生成待入库的文件名;根据上一步生成的文件的分区,删除数据目录下的数据;移动数据;修改该批次的数据源目录,增加_done后缀,标识数据已经完成处理;具体用于:
用于按照每个入库的目录作为数据处理粒度,定期调度Spark的离线计算任务;
目录的名称作为数据处理批次的唯一编号;
根据分区的维度:日期、小时和5分钟,将数据写入中间暂存区目录;
中间暂存区的根目录为:/stage,中间暂存区的目录组织为:/stage/批次编号/1到多个分区目录/具体的文件;
中间暂存区目录下的文件名称是一串不重复的hash编码;
对暂存区文件重命名,重命名规则为:对文件从0开始编号,并且以批次号作为前缀;
将暂存区文件的路径替换为正式数据目录的路径,生成待写入正式数据目录的文件的完整路径;
生成暂存区文件和待写入正式数据目录的文件名称的映射;
如果这个批次的数据是第一次执行,那么数据目录下不存在这个批次的文件;
如果这个批次的数据不是第一次运行,上一次运行可能异常失败了,只有部分数据写入了数据目录,那么这部分的文件形成了脏数据,在重新处理时,将这部分的脏数据删除,然后重新入库;脏数据删除的规则为:确定上一步的分区集合;遍历上面确定的每个分区,删除文件名以当前批次为前缀的文件;
根据生成的暂存区文件和待写入正式数据目录的文件名称的映射关系,执行重命名操作,即可将暂存区文件移动至正式数据目录。
延迟监控模块103,用于数据延迟分区;具体用于:
通过分区目录的名称,确定数据的事件时间;
通过比对批次编号以及分区目录,确定数据延迟的情况。
应当注意,尽管在上文详细描述中提及了保证数据不重复和延迟监控的数据处理装置的若干模块,但是这种划分仅仅是示例性的并非强制性的。实际上,根据本发明的实施方式,上文描述的两个或更多模块的特征和功能可以在一个模块中具体化。反之,上文描述的一个模块的特征和功能可以进一步划分为由多个模块来具体化。
基于前述发明构思,如图3所示,本发明还提出一种计算机设备200,包括存储器210、处理器220及存储在存储器210上并可在处理器220上运行的计算机程序230,处理器220执行计算机程序230时实现前述保证数据不重复和延迟监控的数据处理方法。
基于前述发明构思,本发明还提出一种计算机可读存储介质,计算机可读存储介质存储有执行前述保证数据不重复和延迟监控的数据处理方法的计算机程序。
本发明提出的保证数据不重复和延迟监控的数据处理方法及装置具有程序异常重启,重新处理数据,可保证数据不会重复;比对时间分区目录和文件名的时间戳前缀,可监控数据的延迟的优点。
虽然已经参考若干具体实施方式描述了本发明的精神和原理,但是应该理解,本发明并不限于所公开的具体实施方式,对各方面的划分也不意味着这些方面中的特征不能组合以进行受益,这种划分仅是为了表述的方便。本发明旨在涵盖所附权利要求的精神和范围内所包含的各种修改和等同布置。
对本发明保护范围的限制,所属领域技术人员应该明白,在本发明的技术方案的基础上,本领域技术人员不需要付出创造性劳动即可做出的各种修改或变形仍在本发明的保护范围以内。
Claims (10)
1.一种保证数据不重复和延迟监控的数据处理方法,其特征在于,该方法包括:
根据系统的时间戳组织入库的文件,包括:
定期在HDFS上根据系统的时间戳新建目录,目录的名称为系统时间戳;
文件写入新建目录;
按照每个入库的目录作为数据处理粒度,定期调度Spark的离线计算任务;
确定数据处理批次的唯一编号,包括:
目录的名称作为数据处理批次的唯一编号;
根据事件时间分区,将数据写入中间暂存区目录,包括:
根据分区的维度:日期、小时和5分钟,将数据写入中间暂存区目录;
中间暂存区的根目录为:/stage,中间暂存区的目录组织为:/stage/批次编号/1到多个分区目录/具体的文件;
中间暂存区目录下的文件名称是一串不重复的hash编码;
根据暂存区文件,生成待入库的文件名,包括:
对暂存区文件重命名,重命名规则为:对文件从0开始编号,并且以批次编号作为前缀;
将暂存区文件的路径替换为正式数据目录的路径,生成待写入正式数据目录的文件的完整路径;
生成暂存区文件和待写入正式数据目录的文件名称的映射;
根据生成的文件的分区,删除分区目录下的脏数据;
移动数据,将暂存区文件移动至正式数据目录;
修改该批次的正式数据目录,增加_done后缀,标识数据已经完成处理;
数据延迟分区,通过分区目录的名称,确定数据的事件时间;通过比对批次编号以及分区目录,确定数据延迟的情况。
2.根据权利要求1所述的保证数据不重复和延迟监控的数据处理方法,其特征在于,根据生成的文件的分区,删除分区目录下的脏数据,包括:
如果这个批次的数据是第一次执行,那么正式数据目录下不存在这个批次的文件;
如果这个批次的数据不是第一次运行,上一次运行可能异常失败了,只有部分数据写入了正式数据目录,那么这部分的文件形成了脏数据,在重新处理时,将这部分的脏数据删除,然后重新入库。
3.根据权利要求2所述的保证数据不重复和延迟监控的数据处理方法,其特征在于,所述脏数据删除的规则为:
确定生成的文件的分区集合;
遍历确定的每个分区,删除文件名以当前批次为前缀的文件。
4.根据权利要求1所述的保证数据不重复和延迟监控的数据处理方法,其特征在于,移动数据,包括:
根据生成的暂存区文件和待写入正式数据目录的文件名称的映射关系,执行重命名操作,将暂存区文件移动至正式数据目录。
5.一种保证数据不重复和延迟监控的数据处理装置,其特征在于,该装置包括:
数据上传模块,用于根据系统的时间戳组织入库的文件,包括:
定期在HDFS上根据系统的时间戳新建目录,目录的名称为系统时间戳;文件写入新建目录;
数据处理模块,用于按照每个入库的目录作为数据处理粒度,定期调度Spark的离线计算任务;确定数据处理批次的唯一编号,包括:目录的名称作为数据处理批次的唯一编号;根据事件时间分区,将数据写入中间暂存区目录,包括:根据分区的维度:日期、小时和5分钟,将数据写入中间暂存区目录;中间暂存区的根目录为:/stage,中间暂存区的目录组织为:/stage/批次编号/1到多个分区目录/具体的文件;中间暂存区目录下的文件名称是一串不重复的hash编码;根据暂存区文件,生成待入库的文件名,包括:对暂存区文件重命名,重命名规则为:对文件从0开始编号,并且以批次编号作为前缀;将暂存区文件的路径替换为正式数据目录的路径,生成待写入正式数据目录的文件的完整路径;生成暂存区文件和待写入正式数据目录的文件名称的映射;根据生成的文件的分区,删除分区目录下的脏数据;移动数据,将暂存区文件移动至正式数据目录;修改该批次的正式数据目录,增加_done后缀,标识数据已经完成处理;
延迟监控模块,用于数据延迟分区,包括:通过分区目录的名称,确定数据的事件时间;通过比对批次编号以及分区目录,确定数据延迟的情况。
6.根据权利要求5所述的保证数据不重复和延迟监控的数据处理装置,其特征在于,根据生成的文件的分区,删除分区目录下的脏数据,包括:
如果这个批次的数据是第一次执行,那么正式数据目录下不存在这个批次的文件;
如果这个批次的数据不是第一次运行,上一次运行可能异常失败了,只有部分数据写入了正式数据目录,那么这部分的文件形成了脏数据,在重新处理时,将这部分的脏数据删除,然后重新入库。
7.根据权利要求6所述的保证数据不重复和延迟监控的数据处理装置,其特征在于,所述脏数据删除的规则为:
确定生成的文件的分区集合;
遍历确定的每个分区,删除文件名以当前批次为前缀的文件。
8.根据权利要求5所述的保证数据不重复和延迟监控的数据处理装置,其特征在于,移动数据,包括:
根据生成的暂存区文件和待写入正式数据目录的文件名称的映射关系,执行重命名操作,将暂存区文件移动至正式数据目录。
9.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1-4任一项所述方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有执行权利要求1-4任一项所述方法的计算机程序。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011012315.XA CN112015798B (zh) | 2020-09-24 | 2020-09-24 | 一种保证数据不重复和延迟监控的数据处理方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011012315.XA CN112015798B (zh) | 2020-09-24 | 2020-09-24 | 一种保证数据不重复和延迟监控的数据处理方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112015798A CN112015798A (zh) | 2020-12-01 |
CN112015798B true CN112015798B (zh) | 2023-12-05 |
Family
ID=73522676
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011012315.XA Active CN112015798B (zh) | 2020-09-24 | 2020-09-24 | 一种保证数据不重复和延迟监控的数据处理方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112015798B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11941441B2 (en) | 2021-04-15 | 2024-03-26 | Capital One Services, Llc | Data movement and monitoring system |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6917949B1 (en) * | 2000-08-30 | 2005-07-12 | International Business Machines Corporation | Temporary lobs directory management |
JP2007036993A (ja) * | 2005-07-29 | 2007-02-08 | Fuji Xerox Co Ltd | 画像読取装置およびそのデータ転送方法 |
CN103795803A (zh) * | 2014-02-14 | 2014-05-14 | 浪潮通信信息系统有限公司 | 一种跨网络环境远程部署分布式数据采集节点的方法 |
US9449008B1 (en) * | 2014-03-31 | 2016-09-20 | Amazon Technologies, Inc. | Consistent object renaming in distributed systems |
CN106095959A (zh) * | 2016-06-16 | 2016-11-09 | 北京中电普华信息技术有限公司 | 一种数据采集方法、装置及系统 |
CN106569936A (zh) * | 2016-09-26 | 2017-04-19 | 深圳盒子支付信息技术有限公司 | 一种实时采集滚动日志的方法及系统 |
CN107707414A (zh) * | 2017-11-22 | 2018-02-16 | 北京搜狐新媒体信息技术有限公司 | Cdn网络的监控系统及方法 |
CN109756484A (zh) * | 2018-12-12 | 2019-05-14 | 杭州数梦工场科技有限公司 | 基于对象存储的网关的控制方法、控制装置、网关和介质 |
CN110032478A (zh) * | 2018-01-11 | 2019-07-19 | 中兴通讯股份有限公司 | 一种主备中心数据实时同步方法、装置、系统及存储介质 |
CN111143156A (zh) * | 2019-11-25 | 2020-05-12 | 苏宁云计算有限公司 | 大数据平台垃圾任务采集系统、方法及计算机系统 |
CN111522784A (zh) * | 2020-04-20 | 2020-08-11 | 支付宝(杭州)信息技术有限公司 | 一种非结构化数据文件的元数据同步方法、装置及设备 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8131723B2 (en) * | 2007-03-30 | 2012-03-06 | Quest Software, Inc. | Recovering a file system to any point-in-time in the past with guaranteed structure, content consistency and integrity |
GB201709813D0 (en) * | 2017-06-20 | 2017-08-02 | Ibm | Identification of software components with event persistency across operation interruptions |
-
2020
- 2020-09-24 CN CN202011012315.XA patent/CN112015798B/zh active Active
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6917949B1 (en) * | 2000-08-30 | 2005-07-12 | International Business Machines Corporation | Temporary lobs directory management |
JP2007036993A (ja) * | 2005-07-29 | 2007-02-08 | Fuji Xerox Co Ltd | 画像読取装置およびそのデータ転送方法 |
CN103795803A (zh) * | 2014-02-14 | 2014-05-14 | 浪潮通信信息系统有限公司 | 一种跨网络环境远程部署分布式数据采集节点的方法 |
US9449008B1 (en) * | 2014-03-31 | 2016-09-20 | Amazon Technologies, Inc. | Consistent object renaming in distributed systems |
CN106095959A (zh) * | 2016-06-16 | 2016-11-09 | 北京中电普华信息技术有限公司 | 一种数据采集方法、装置及系统 |
CN106569936A (zh) * | 2016-09-26 | 2017-04-19 | 深圳盒子支付信息技术有限公司 | 一种实时采集滚动日志的方法及系统 |
CN107707414A (zh) * | 2017-11-22 | 2018-02-16 | 北京搜狐新媒体信息技术有限公司 | Cdn网络的监控系统及方法 |
CN110032478A (zh) * | 2018-01-11 | 2019-07-19 | 中兴通讯股份有限公司 | 一种主备中心数据实时同步方法、装置、系统及存储介质 |
CN109756484A (zh) * | 2018-12-12 | 2019-05-14 | 杭州数梦工场科技有限公司 | 基于对象存储的网关的控制方法、控制装置、网关和介质 |
CN111143156A (zh) * | 2019-11-25 | 2020-05-12 | 苏宁云计算有限公司 | 大数据平台垃圾任务采集系统、方法及计算机系统 |
CN111522784A (zh) * | 2020-04-20 | 2020-08-11 | 支付宝(杭州)信息技术有限公司 | 一种非结构化数据文件的元数据同步方法、装置及设备 |
Non-Patent Citations (3)
Title |
---|
基于Silverlight的大文件上传技术研究;赵大军;《数字技术与应用》(第07期);107-108 * |
基于聚类的网站访问数据分析技术及实现;肖园园;《中国优秀硕士学位论文全文数据库 信息科技辑》(第02期);I138-992 * |
基于过程挖掘的医疗服务过程建模;朱鹏 等;《计算机集成制造系统》;第16卷(第12期);2749-2756 * |
Also Published As
Publication number | Publication date |
---|---|
CN112015798A (zh) | 2020-12-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107391628B (zh) | 数据同步方法及装置 | |
CN108170768B (zh) | 数据库同步方法、装置及可读介质 | |
US10558615B2 (en) | Atomic incremental load for map-reduce systems on append-only file systems | |
CN109376196B (zh) | 一种redo日志批量同步方法及装置 | |
CN106970921B (zh) | 一种数据迁移方法及装置 | |
CN106776855B (zh) | 基于Spark Streaming读取Kafka数据的处理方法 | |
CN107515874B (zh) | 一种分布式非关系型数据库中同步增量数据的方法与设备 | |
CN111324610A (zh) | 一种数据同步的方法及装置 | |
CN112286941B (zh) | 一种基于Binlog+HBase+Hive的大数据同步方法和装置 | |
CN110737594B (zh) | 自动生成测试用例的数据库标准符合性测试方法及装置 | |
CN109684304B (zh) | 数据迁移方法及装置 | |
CN112015798B (zh) | 一种保证数据不重复和延迟监控的数据处理方法及装置 | |
US20140067820A1 (en) | System and method for phonetic searching of data | |
US20130086133A1 (en) | Method and apparatus for file revision tracking | |
CN111858767A (zh) | 同步数据的处理方法、装置、设备及存储介质 | |
CN104317820B (zh) | 报表的统计方法和装置 | |
CN116414914A (zh) | 数据的同步方法、装置、处理器及电子设备 | |
CN116069765A (zh) | 数据迁移方法、装置、电子设备及存储介质 | |
US10409651B2 (en) | Incremental workflow execution | |
CN113220530B (zh) | 数据质量监控方法及平台 | |
CN115495527A (zh) | 一种数据同步管理系统和方法 | |
CN110287172B (zh) | 一种格式化HBase数据的方法 | |
CN104809033B (zh) | 一种备份方法及系统 | |
CN112699129A (zh) | 一种数据处理系统、方法及装置 | |
CN111274316A (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 |