CN108959302A - 用于数据处理的方法及其设备 - Google Patents

用于数据处理的方法及其设备 Download PDF

Info

Publication number
CN108959302A
CN108959302A CN201710361385.8A CN201710361385A CN108959302A CN 108959302 A CN108959302 A CN 108959302A CN 201710361385 A CN201710361385 A CN 201710361385A CN 108959302 A CN108959302 A CN 108959302A
Authority
CN
China
Prior art keywords
data
time
bucket
catalogue
business hours
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
Application number
CN201710361385.8A
Other languages
English (en)
Other versions
CN108959302B (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.)
Beijing Jingdong Century Trading Co Ltd
Beijing Jingdong Shangke Information Technology Co Ltd
Original Assignee
Beijing Jingdong Century Trading Co Ltd
Beijing Jingdong Shangke Information 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 Beijing Jingdong Century Trading Co Ltd, Beijing Jingdong Shangke Information Technology Co Ltd filed Critical Beijing Jingdong Century Trading Co Ltd
Priority to CN201710361385.8A priority Critical patent/CN108959302B/zh
Publication of CN108959302A publication Critical patent/CN108959302A/zh
Application granted granted Critical
Publication of CN108959302B publication Critical patent/CN108959302B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明提供了一种数据处理方法。该方法包括获取数据文件,所述数据文件包括具有不同业务时间的一个或多个数据;解析所述数据文件,以获取针对每个数据的业务时间;以及根据每个数据的业务时间将所述数据文件切割为一个或多个数据段。本公开还提供了与该方法相对应的设备和计算机可读存储介质。

Description

用于数据处理的方法及其设备
技术领域
本发明涉及数据处理领域,具体涉及一种数据处理方法及其设备。
背景技术
在数据统计分析的过程中,往往需要向数据集市传输数据报表。现有的技术方案利用传输工具在往数据集市传输数据的时候,根据任务运行时的服务器时间将数据切割成多个段,并存储在各个文件目录中。然而这种方式具有一些缺陷。例如任务运行失败或者数据延迟会造成严重的数据偏移,即本来是时间a的数据会存放在时间b路径下,导致根据各个文件目录生成的数据报表不能真实反映业务状态。
因此,需要一种数据处理方案,能够使得数据报表真实地反映实际的业务状态。
发明内容
有鉴于此,本公开提供了一种数据处理方法、数据处理设备和对应的存储器设备。
本公开的一个方面提供了一种用于处理数据的方法。该方法包括获取数据文件,所述数据文件包括具有不同业务时间的一个或多个数据。该方法还包括解析所述数据文件,以获取针对每个数据的业务时间;根据每个数据的业务时间将所述数据文件切割为一个或多个数据段;以及将所述一个或多个数据段分别存储在一个或多个目录下。
根据本公开的一些实施例,根据每个数据的业务时间将所述数据文件切割为一个或多个数据段可包括:设置一个或多个数据存储桶;以及根据每个数据的业务时间将所述一个或多个数据中的至少一部分归类到所述一个或多个数据存储桶中的各个数据存储桶中。在此情况下,将所述一个或多个数据段分别存储在一个或多个目录下可包括:基于所述归类将所述一个或多个数据写入到所述一个或多个目录中的不同目录下。
根据本公开的一些实施例,设置一个或多个数据存储桶可包括:以当前任务时间来作为所述一个或多个数据存储桶中基准数据存储桶的数据的起始时间,所述当前任务时间表示当前数据处理任务的执行时间;以及所述一个或多个数据存储桶中的其他数据存储桶以所述基准数据存储桶为基准,相邻数据存储桶之间间隔预定时间跨度。
根据本公开的一些实施例,该方法还可包括:针对每个业务时段设置指示不同时间属性的一个或多个目录。
在一些示例中,指示不同时间属性的一个或多个目录可包括以下至少一项:时间正常目录、时间过早目录、时间过晚目录。
在此情况下,根据所设置的数据存储桶将所述一个或多个数据写入到不同目录下可包括:将归类到所设置的数据存储桶的数据写入到时间正常目录下;将其业务时间比归类到所设置的数据存储桶的数据早的数据写入到时间过早目录;以及将其业务时间比归类到所设置的数据存储桶的数据晚的数据写入到时间过晚目录。
根据本公开的一些实施例,所述时间正常目录包括多个时间正常目录,所述多个时间正常目录中的每一个与所设置的数据存储桶中的各个数据存储桶相对应。
根据本公开的一些实施例,该方法还可包括:
在当前数据处理任务完成时,冻结所述多个时间正常目录中业务时间最早的时间正常目录。
根据本公开的一些实施例,通过向所述业务时间最早的时间正常目录添加指示不再写入的标记来冻结所述业务时间最早的时间正常目录。
根据本发明的另一方案,提供了一种用于处理数据的设备。该设备包括数据获取模块、数据解析模块、数据切割模块和数据写入模块。数据获取模块用于获取数据文件,所述数据文件包括具有不同业务时间的一个或多个数据。数据解析模块用于解析所述数据文件,以获取针对每个数据的业务时间。数据切割模块用于根据每个数据的业务时间将所述数据文件切割为一个或多个数据段。数据写入模块用于将所述一个或多个数据段分别存储在一个或多个目录下。
根据本公开的一些实施例,数据切割模块还可包括数据存储桶设置子模块和数据归类子模块。数据存储桶设置子模块用于设置一个或多个数据存储桶。数据归类子模块用于根据每个数据的业务时间将所述一个或多个数据中的至少一部分归类到所述一个或多个数据存储桶中的各个数据存储桶中。在此情况下,数据写入模块还用于基于所述归类将所述一个或多个数据写入到所述一个或多个目录中的不同目录下。
根据本公开的一些实施例,数据存储桶设置子模块可以当前任务时间来作为所述一个或多个数据存储桶中基准数据存储桶的数据的起始时间,所述当前任务时间表示当前数据处理任务的执行时间,以及所述一个或多个数据存储桶中的其他数据存储桶以所述基准数据存储桶为基准,相邻数据存储桶之间间隔预定时间跨度。
根据本公开的一些实施例,该设备还可包括目录设置模块,用于针对每个业务时段设置指示不同时间属性的一个或多个目录。
根据本公开的一些实施例,指示不同时间属性的一个或多个目录可包括以下至少一项:时间正常目录、时间过早目录、时间过晚目录。在此情况下,数据写入模块还可用于:将归类到所设置的数据存储桶的数据写入到时间正常目录下;将其业务时间比归类到所设置的数据存储桶的数据早的数据写入到时间过早目录;以及将其业务时间比归类到所设置的数据存储桶的数据晚的数据写入到时间过晚目录。
根据本公开的一些实施例,所述时间正常目录包括多个时间正常目录,所述多个时间正常目录中的每一个与所设置的数据存储桶中的各个数据存储桶相对应。
根据本公开的一些实施例,该设备还可包括目录冻结模块,用于在当前数据处理任务完成时,冻结所述多个时间正常目录中业务时间最早的时间正常目录。
根据本公开的一些实施例,所述目录冻结模块通过向所述业务时间最早的时间正常目录添加指示不再写入的标记来冻结所述业务时间最早的时间正常目录。
本公开的另一方面提供了一种用于处理数据的设备。该设备包括存储计算机可执行指令的存储器以及处理器。处理器执行存储器存储的计算机可执行指令,以执行如上所述的方法。
本公开的另一方面提供了一种计算机可读存储介质,存储有计算机可执行指令,所述指令在被执行时用于实现如上所述的方法。
本公开的另一方面提供了一种计算机程序,所述计算机程序包括计算机可执行指令,所述指令在被执行时用于实现如上所述的方法。
上述方案通过根据业务时间来对数据进行切割,使得切割后所形成的数据报表真实地反映实际的业务状态。
附图说明
通过下面结合附图对发明进行的详细描述,将使本发明的上述特征和优点更加明显,其中:
图1示出了根据本发明实施例的一种数据处理方法的简要流程图;
图2示出了根据本发明实施例的数据处理设备的简要框图;
图3示出了根据本发明实施例的数据目录的示意图;
图4示出了根据本发明实施例的数据处理设备的示例硬件布置的框图;以及
图5示意性示出了根据本公开实施例的可以应用根据图1所示方法的示例性系统架构500。
具体实施方式
以下,将参照附图来描述本公开的实施例。但是应该理解,这些描述只是示例性的,而并非要限制本公开的范围。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本公开的概念。
在此使用的术语仅仅是为了描述具体实施例,而并非意在限制本公开。这里使用的词语“一”、“一个(种)”和“该”等也应包括“多个”、“多种”的意思,除非上下文另外明确指出。此外,在此使用的术语“包括”、“包含”等表明了所述特征、操作、操作和/或部件的存在,但是并不排除存在或添加一个或多个其他特征、操作、操作或部件。
在此使用的所有术语(包括技术和科学术语)具有本领域技术人员通常所理解的含义,除非另外定义。应注意,这里使用的术语应解释为具有与本说明书的上下文相一致的含义,而不应以理想化或过于刻板的方式来解释。
附图中示出了一些方框图和/或流程图。应理解,方框图和/或流程图中的一些方框或其组合可以由计算机程序指令来实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器,从而这些指令在由该处理器执行时可以创建用于实现这些方框图和/或流程图中所说明的功能/操作的装置。
因此,本公开的技术可以硬件和/或软件(包括固件、微代码等)的形式来实现。另外,本公开的技术可以采取存储有指令的计算机可读介质上的计算机程序产品的形式,该计算机程序产品可供指令执行系统使用或者结合指令执行系统使用。在本公开的上下文中,计算机可读介质可以是能够包含、存储、传送、传播或传输指令的任意介质。例如,计算机可读介质可以包括但不限于电、磁、光、电磁、红外或半导体系统、装置、器件或传播介质。计算机可读介质的具体示例包括:磁存储装置,如磁带或硬盘(HDD);光存储装置,如光盘(CD-ROM);存储器,如随机存取存储器(RAM)或闪存;和/或有线/无线通信链路。
如今使用的许多数据报表是需要严格依据业务时间来统计的。然而现有的技术方案根据任务运行时的服务器时间将数据切割成多个段,并存储在各个文件目录中,导致了根据各个文件目录生成的数据报表可能不能真实反映业务状态。因此为解决该问题做出了本发明。
根据本发明的实施例提供了一种用于处理数据的方法。如图1所示,该方法包括:
步骤S110,获取数据文件,该数据文件包括具有不同业务时间的一个或多个数据;
步骤S120,解析该数据文件,以获取针对每个数据的业务时间;
步骤S130,根据每个数据的业务时间将该数据文件切割为一个或多个数据段;以及
步骤S140,将该一个或多个数据段分别存储在一个或多个目录下。
在一些示例中,可通过数据存储桶(bucket)的方式来实现数据段切割。在此情况下,根据每个数据的业务时间将数据文件切割为一个或多个数据段可以包括:设置一个或多个数据存储桶;以及根据每个数据的业务时间将一个或多个数据中的至少一部分归类到一个或多个数据存储桶中的各个数据存储桶中。在该情况下,将一个或多个数据段分别存储在一个或多个目录下包括:基于上述归类将一个或多个数据写入到该一个或多个目录中的不同目录下。
在这样的示例中,设置一个或多个数据存储桶可以包括:以当前任务时间来作为一个或多个数据存储桶中基准数据存储桶的数据的起始时间,所述当前任务时间表示当前数据处理任务的执行时间。此外,一个或多个数据存储桶中的其他数据存储桶以基准数据存储桶为基准,相邻数据存储桶之间间隔预定时间跨度。例如,可以设置3个数据存储桶,设基准数据存储桶为bucket(0),归类到bucket(0)中的数据的起始时间是当前任务时间,预定时间跨度例如是1小时。在该示例中,例如可将在归类到bucket(0)中的数据之前1小时的数据归类到bucket(-1)中,将在归类到bucket(0)中的数据之后1小时的数据归类到bucket(1)中。当然,在具体的实现中可采用本领域技术人员可采用的任何形式,而不限于在此示出的上述数据存储桶形式。例如,所设置的数据存储桶的数量也可以多于或少于3个。例如,在上述示例中,所设置的数据存储桶可相对于基准数据存储桶对称,然而根据具体情况,也可以相对于基准数据存储桶不对称,如可更多地将当前任务时间之后的数据归类到数据存储桶中。
在一些示例中,在将一个或多个数据段分别存储在一个或多个目录下之前还可包括针对每个业务时段设置指示不同时间属性的一个或多个目录。在该示例中,每个业务时段可以是1小时。当然,在其他情况下,也可以取更大或更小的时间间隔。例如,如果每个小时的业务数据过大时,可将单个业务时段设置为0.5小时或其他任何适合的时间段。
在一些示例中,指示不同时间属性的一个或多个目录可包括以下至少一项:时间正常目录、时间过早目录、时间过晚目录。
在该情况下,根据所设置的数据存储桶将一个或多个数据写入到不同目录下可包括:
将归类到所设置的数据存储桶的数据写入到时间正常目录下;
将其业务时间比归类到所设置的数据存储桶的数据早的数据写入到时间过早目录;以及
将其业务时间比归类到所设置的数据存储桶的数据晚的数据写入到时间过晚目录。
上述所设置的数据存储桶可以是多个。相应地,时间正常目录也可以是多个,该多个时间正常目录中的每一个与所设置的数据存储桶中的各个数据存储桶相对应。
在一些示例中,在当前数据处理任务完成时,还可冻结该多个时间正常目录中业务时间最早的时间正常目录。这些所说的“冻结”意指不再将数据写入到该目录中。
在一些示例中,通过向业务时间最早的时间正常目录添加指示不再写入的标记来冻结业务时间最早的时间正常目录。例如,可在该目录下生成指示当前任务成功完成的“_SUCCESS”标记来作为冻结标记。当然,也可使用其他任何现有的或新的标记来作为冻结标记。
根据本发明的实施例,还提供了与图1的方法相对应的数据处理设备。如图2所示,该数据处理设备包括:
数据获取模块210,用于获取数据文件,该数据文件包括具有不同业务时间的一个或多个数据;
数据解析模块220,用于解析数据文件,以获取针对每个数据的业务时间;以及
数据切割模块230,用于根据每个数据的业务时间将数据文件切割为一个或多个数据段;以及
数据写入模块250,用于将该一个或多个数据段分别存储在一个或多个目录下。
在一些示例中,可通过数据存储桶的方式来实现数据段切割。在此情况下,数据切割模块230还可包括:
数据存储桶设置子模块232,用于设置一个或多个数据存储桶;以及
数据归类子模块234,用于根据每个数据的业务时间将一个或多个数据中的至少一部分归类到所述一个或多个数据存储桶中的各个数据存储桶中。
在此情况下,数据写入模块250还可用于基于上述归类将该一个或多个数据写入到一个或多个目录中的不同目录下。
在这样的示例中,数据存储桶设置子模块232以当前任务时间来作为一个或多个数据存储桶中基准数据存储桶的数据的起始时间,该当前任务时间表示当前数据处理任务的执行时间。此外,一个或多个数据存储桶中的其他数据存储桶以基准数据存储桶为基准,相邻数据存储桶之间间隔预定时间跨度。例如,假设3个数据存储桶,各个数据存储桶的时间跨度为1小时,则可将其业务时间从当前任务时间起1小时的数据归类到基准数据存储桶bucket(0)中,将在归类到bucket(0)中的数据之前1小时的数据归类到bucket(-1)中,将在归类到bucket(0)中的数据之后1小时的数据归类到bucket(1)中。如上所述,这仅是示例,而不是对本发明的限制。例如,所设置的数据存储桶的数量也可以多于或少于3个。如上所述,所设置的数据存储桶可相对于基准数据存储桶对称,也可以相对于基准数据存储桶不对称。
在一些示例中,图2所示的设备还可包括:
目录设置模块240,用于针对每个业务时段设置指示不同时间属性的一个或多个目录。如上所述,数据写入模块250可根据所设置的数据存储桶将一个或多个数据写入到该一个或多个目录中的不同目录下。
在上述示例中,每个业务时段可以是1小时。当然,根据实际情况,业务时段的时长也可以取更大或更小的时间间隔。
在一些示例中,指示不同时间属性的一个或多个目录包括以下至少一项:时间正常目录、时间过早目录、时间过晚目录。
在此情况下,数据写入模块250还可用于:
将归类到所设置的数据存储桶的数据写入到时间正常目录下;
将其业务时间比归类到所设置的数据存储桶的数据早的数据写入到时间过早目录;以及
将其业务时间比归类到所设置的数据存储桶的数据晚的数据写入到时间过晚目录。
上述所设置的数据存储桶可以是多个。相应地,时间正常目录也可以是多个,该多个时间正常目录中的每一个与所设置的数据存储桶中的各个数据存储桶相对应。
在一些示例中,图2所示的设备还可包括目录冻结模块260,用于在当前数据处理任务完成时,冻结多个时间正常目录中业务时间最早的时间正常目录。
在一些示例中,目录冻结模块260可通过向业务时间最早的时间正常目录添加指示不再写入的标记来冻结业务时间最早的时间正常目录。例如,可在该目录下生成指示当前任务成功完成的“_SUCCESS”标记来作为冻结标记。当然,也可使用其他任何现有的或新的标记来作为冻结标记。
下面将针对各个模块对图2所示的设备进行进一步描述。需要说明的是,图2所示的仅是本发明实施例的一个具体实现,本领域技术人员可根据具体环境对其进行落在本发明保护范围内的各种修改。
图2中所示的数据获取模块210可以是任何数据获取模块,例如被动接收数据的数据接收模块,或者主动从其他设备/系统提取数据的数据提取模块。本发明不对此进行限制。
数据解析模块220可以用于解析数据获取模块210所获取的数据文件中各个数据的业务时间。例如在将日志文件作为数据文件的一个具体示例中,假定数据文件中的每个数据可对应于日志文件中的一条日志,则数据解析模块220可具体地解析出日志文件中每条日志的具体业务时间。在数据解析模块220中可指定业务时间字段的名称及其时间单位。例如字段名称2016082012且时间单位1小时可指示其业务时间在2016年8月20日12点到13点之间的数据。在本发明实施例的一些示例中,也可将2016082012表示为2016082012~2016082013,其二者可以交换使用。
在数据切割模块230中的数据存储桶设置子模块232中可定义数据存储桶的各项参数。在一个非限制性示例中,可以设数据切割的时间粒度(即,每个数据存储桶的时间跨度)为1小时。当然,如本领域技术人员所知的,更长或更短的时间粒度也是可能的。
设h为当前任务执行时间,N为所有数据存储桶的总时间长度,数据存储桶bucket为处理单元,则在一个示例中:
1.起始处理单元序号其中,运算符号表示向下取整
2.终止处理单元序号
3.业务时间为h+frequency*m的数据所占用的bucket的序号为:frequency*m;(start<=m<=end,m为整数,表示起始处理单元与终止处理单元之间的某一个处理单元)
参数定义如下表所示:
参数 参数含义
Start 起始bucket处理单元
Frequency Bucket时间跨度,单位:小时
End 终止bucket处理单元
表1数据存储桶bucket的参数定义
例如,以参数集(-1,1,1)为例,其定义了3个bucket:-1,0,1,每个bucket的时间长度是1小时。在一个具体任务中,任务在执行时会携带一个当前任务的执行逻辑时间(即服务器时间)。基于该逻辑时间,可以确定这3个bucket的时间范围。例如,如果逻辑时间是2016082012,即h=2016082012,那么业务时间在2016082011~2016082012之间的数据占用bucket(-1),业务时间在2016082012~2016082013之间的数据占用bucket(0),以及业务时间在2016082013~2016082014之间的数据占用bucket(1)。
对于超出bucket范围的数据,将不在数据切割模块230中进行处理,而是直接在数据写入模块250中处理。
需要注意的是,上述公式和参数定义仅是实现本发明实施例的一个具体示例。在其他示例中,也可以采用其他任何适合的公式和参数定义,只要该公式和定义可以反映要归类的数据与各个数据存储桶(处理单元)之间的基于各个数据的业务时间的对应关系即可。本发明不对此进行限制。
通过例如多个bucket的使用,增加了时间缓冲,有效解决了任务失败或者数据延迟造成的数据倾斜。
虽然上述示例示出了三个数据存储桶,然后根据具体的示例,也可存在更少的数据存储桶。例如,在不考虑增加时间缓冲的情况下,也可以仅使用一个数据存储桶(即,基准数据存储桶)。再例如,如果数据文件中包含的数据较少(例如仅一个数据,如仅一条日志),则上述三个数据存储桶中仅一个数据存储桶被占用,或甚至一个数据存储桶都未被占用(例如该一个数据超出bucket范围的情况)。
对于一个切割后的数据文件,目录设置模块240可针对每个业务时段设置指示不同时间属性的一个或多个目录。例如可在针对每个小时的文件目录下设置3种目录:时间过早目录(earlier)、时间正常目录(normal)、时间过晚目录(later)。具体说明如下:
表2数据存储目录的时间属性参数定义
数据写入模块250可根据数据切割模块230所设置的数据存储桶将各个数据写入不同的目录中。在一个示例中,例如可依据以下规则来件数据写入目录:
1.Bucket为frequency*m;(start<=m<=end,m为整数)的数据写入h+frequency*m的normal目录下;
2.早于h+start*frequency的数据写入h+start*frequency的earlier目录;
3.晚于h+end*frequency的数据写入h+start*frequency的later目录。
根据上述的规则1,在本示例中,当存在多个bucket时,可针对每个bucket存在一个时间正常目录。
以bucket(-1,1,1)为例,假定当前任务逻辑时间是2016082012。数据集市上的2016082012目录下的数据可能包括5种不同的数据:早于2016082011,2016082011~2016082012,2016082012~2016082013,2016082013~2016082014,晚于2016082014。当然,在一些示例中,也可以存在更少种类的数据,例如某些情况下可能不存在早于2016082011的数据,或不存在晚于2016082014的数据,或其他的数据缺少情况。通过不对缺少的数据进行处理,本发明实施例所提供的技术方案仍然可应用于这些数据缺少情况。在比较极端的情况下,甚至可能缺少2016082011~2016082014之间任一业务时段或所有业务时段的数据。在这样的情况下,依然可依照上述规则来将数据存储在不同目录下。在该极端情况下,缺少数据的目录可为空目录,也可以不为所缺少的数据设置目录。
图3示出了上述各种类型数据与对应目录之间的对应关系。如图3所示,针对任务时间为2016082012的任务,下面三个时间段的数据分别放到各自对应目录的normal(正常)目录下:2016082011~2016082012,2016082012~2016082013,2016082013~2016082014。例如,对于2016082011~2016082012时间段的数据,放到2016082011/normal目录下。对于“早于2016082011”和“晚于2016082014”的数据,其分别被放到2016082011/earlier和2016082011/later目录下。
需要说明的是,上述数据存储目录的参数定义和存储方式仅是本发明实施例的一个具体实现,本领域技术人员也可以采用其他任何形式的参数定义和存储方式,只要这样的参数定义和存储方式能够反映针对各个数据的业务时间将各个数据分别存储在不同的目录中即可。例如,在上述示例中将晚于h+end*frequency的数据写入h+start*frequency的later目录,以保证下游使用数据的时效性和完整性,并使得能够准确判断数据的ready(准备)状态。然而在不考虑该效果的情况下,也可以采用其他的目录命名方式/数据存储方式,例如将晚于h+end*frequency的数据写入h+end*frequency的later目录中等。本发明对此不作限制。
之前的段落中描述了可能存在其业务时间落在当前任务执行时间之后的数据。这样的数据例如是因为具体业务执行设备的系统时间与用于处理(例如切割)数据的设备(如服务器)的系统时间不同步(如超前)而造成的。例如,具体业务执行设备的系统时间比数据切割服务器的系统时间超前2个小时,则可能存在其业务时间络在2016082013~2016082014之间或甚至之后的数据。而在具体业务执行设备的系统时间比数据切割服务器的系统时间滞后的情况下,则也可能不存在对应于当前任务执行时间(例如2016082012)的数据。在本发明的一些实施例中,这样的数据实际业务时间不准确问题可以不由例如图2所示的数据处理设备处理,而是由具体的下游业务根据其具体需要来决定是否要解决该数据实际业务时间不准确问题或简单地丢弃时间不同步的数据。甚至在其中一些实施例中,数据处理设备不对数据实际业务时间是否正常进行判断,而仅是按照数据在数据文件中标记出的业务时间来进行切割并存储在对应目录下,以供下游业务/设备进行进一步处理。然而在本发明的另一些实施例中,也不排除在该数据处理设备处解决数据实际业务时间不准确问题。具体的解决方案可采用本领域技术人员所公知的任何解决方案,本发明对此不再赘述。
在当前数据处理任务完成时,目录冻结模块260可冻结多个时间正常目录中业务时间最早的时间正常目录。冻结(freeze)定义了数据集市上数据不变化的语义。可使用表1中定义的起始bucket处理单元作为freeze的数据路径。也就是说,在该示例中,当前数据处理任务执行完毕后,依据当前数据处理任务的逻辑时间(服务器时间)计算出来的start的目录的数据就是数据不再写入的目录(例如图5中所示的2016082011/normal目录)。可在该目录下生成一个指示当前任务成功完成的“_SUCCESS”标记作为数据冻结的标记。当然,如上所述,也可使用其他任何现有的或新的标记来作为冻结标记。
上述通过增加数据完备的标志(例如数据冻结标记),保证了下游使用的数据是完整正确的。
虽然可使用起始bucket处理单元作为冻结的数据路径,在其他应用中,根据具体的实现,也可以使用采用其他的数据冻结路径。
图4示意性示出了根据本公开的实施例的用于文件传递的设备的框图,其对应于图2所示的设备。图4示出的设备仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
如图4所示,根据该实施例的设备400包括中央处理单元(CPU)401,其可以根据存储在只读存储器(ROM)402中的程序或者从存储部分408加载到随机访问存储器(RAM)403中的程序而执行各种适当的动作和处理。在RAM 403中,还存储有设备400操作所需的各种程序和数据。CPU 401、ROM 402以及RAM 403通过总线404彼此相连。输入/输出(I/O)接口405也连接至总线404。
设备400还可以包括连接至I/O接口405的以下部件中的一项或多项:包括键盘、鼠标等的输入部分406;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分407;包括硬盘等的存储部分408;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分409。通信部分409经由诸如因特网的网络执行通信处理。驱动器410也根据需要连接至I/O接口405。可拆卸介质411,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器410上,以便于从其上读出的计算机程序根据需要被安装入存储部分408。
特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分409从网络上被下载和安装,和/或从可拆卸介质411被安装。在该计算机程序被中央处理单元(CPU)401执行时,执行本公开实施例的设备中限定的上述功能。
需要说明的是,本公开所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本公开中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
作为另一方面,本公开还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的设备中所包含的;也可以是单独存在,而未装配入该设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该设备执行时,使得该设备执行图1所示的方法。
图5示意性示出了根据本公开实施例的可以应用根据图1所示方法的示例性系统架构500。
如图5所示,根据该实施例的系统架构500可以包括终端设备501、502、503,网络504和服务器505。网络504用以在终端设备501、502、503和服务器505之间提供通信链路的介质。网络504可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用终端设备501、502、503通过网络504与服务器505交互,以接收或发送消息等。终端设备501、502、503上可以安装有各种通讯客户端应用,例如购物类应用、网页浏览器应用、搜索类应用、即时通信工具、邮箱客户端、社交平台软件等(仅为示例)。
终端设备501、502、503可以是具有显示屏并且具有数据处理能力的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。终端设备501、502、503也可以是本公开实施例中执行具体业务的设备的表示。
服务器505可以是提供各种服务的服务器,例如是用于执行各种数据(例如,日志数据)处理的设备。本公开实施例所提供的图1所示的方法可在服务器505上执行。
应该理解,图5中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
以上对本公开的实施例进行了描述。但是,这些实施例仅仅是为了说明的目的,而并非为了限制本公开的范围。尽管在以上分别描述了各实施例,但是这并不意味着各个实施例中的措施不能有利地结合使用。本公开的范围由所附权利要求及其等同物限定。不脱离本公开的范围,本领域技术人员可以做出多种替代和修改,这些替代和修改都应落在本公开的范围之内。

Claims (18)

1.一种用于处理数据的方法,包括:
获取数据文件,所述数据文件包括具有不同业务时间的一个或多个数据;
解析所述数据文件,以获取针对每个数据的业务时间;
根据每个数据的业务时间将所述数据文件切割为一个或多个数据段;以及
将所述一个或多个数据段分别存储在一个或多个目录下。
2.根据权利要求1所述的方法,其中,
根据每个数据的业务时间将所述数据文件切割为一个或多个数据段包括:
设置一个或多个数据存储桶;以及
根据每个数据的业务时间将所述一个或多个数据中的至少一部分归类到所述一个或多个数据存储桶中的各个数据存储桶中,将所述一个或多个数据段分别存储在一个或多个目录下包括:
基于所述归类将所述一个或多个数据写入到所述一个或多个目录中的不同目录下。
3.根据权利要求2所述的方法,其中,设置一个或多个数据存储桶包括:
以当前任务时间来作为所述一个或多个数据存储桶中基准数据存储桶的数据的起始时间,所述当前任务时间表示当前数据处理任务的执行时间;以及
所述一个或多个数据存储桶中的其他数据存储桶以所述基准数据存储桶为基准,相邻数据存储桶之间间隔预定时间跨度。
4.根据权利要求3所述的方法,还包括:
针对每个业务时段设置指示不同时间属性的一个或多个目录。
5.根据权利要求4所述的方法,其中,指示不同时间属性的一个或多个目录包括以下至少一项:时间正常目录、时间过早目录、时间过晚目录,
根据所设置的数据存储桶将所述一个或多个数据写入到不同目录下包括:
将归类到所设置的数据存储桶的数据写入到时间正常目录下;
将其业务时间比归类到所设置的数据存储桶的数据早的数据写入到时间过早目录;以及
将其业务时间比归类到所设置的数据存储桶的数据晚的数据写入到时间过晚目录。
6.根据权利要求5所述的方法,其中,所述时间正常目录包括多个时间正常目录,所述多个时间正常目录中的每一个与所设置的数据存储桶中的各个数据存储桶相对应。
7.根据权利要求6所述的方法,还包括:
在当前数据处理任务完成时,冻结所述多个时间正常目录中业务时间最早的时间正常目录。
8.根据权利要求7所述的方法,其中,通过向所述业务时间最早的时间正常目录添加指示不再写入的标记来冻结所述业务时间最早的时间正常目录。
9.一种用于处理数据的设备,包括:
数据获取模块,用于获取数据文件,所述数据文件包括具有不同业务时间的一个或多个数据;
数据解析模块,用于解析所述数据文件,以获取针对每个数据的业务时间;
数据切割模块,用于根据每个数据的业务时间将所述数据文件切割为一个或多个数据段;以及
数据写入模块,用于将所述一个或多个数据段分别存储在一个或多个目录下。
10.根据权利要求9所述的设备,其中,所述数据切割模块还包括:
数据存储桶设置子模块,用于设置一个或多个数据存储桶;以及
数据归类子模块,用于根据每个数据的业务时间将所述一个或多个数据中的至少一部分归类到所述一个或多个数据存储桶中的各个数据存储桶中,
其中,所述数据写入模块还用于基于所述归类将所述一个或多个数据写入到所述一个或多个目录中的不同目录下。
11.根据权利要求10所述的设备,其中,所述数据存储桶设置子模块以当前任务时间来作为所述一个或多个数据存储桶中基准数据存储桶的数据的起始时间,所述当前任务时间表示当前数据处理任务的执行时间,以及所述一个或多个数据存储桶中的其他数据存储桶以所述基准数据存储桶为基准,相邻数据存储桶之间间隔预定时间跨度。
12.根据权利要求11所述的设备,还包括:
目录设置模块,用于针对每个业务时段设置指示不同时间属性的一个或多个目录。
13.根据权利要求12所述的设备,其中,指示不同时间属性的一个或多个目录包括以下至少一项:时间正常目录、时间过早目录、时间过晚目录,
所述数据写入模块还用于:
将归类到所设置的数据存储桶的数据写入到时间正常目录下;
将其业务时间比归类到所设置的数据存储桶的数据早的数据写入到时间过早目录;以及
将其业务时间比归类到所设置的数据存储桶的数据晚的数据写入到时间过晚目录。
14.根据权利要求13所述的设备,其中,所述时间正常目录包括多个时间正常目录,所述多个时间正常目录中的每一个与所设置的数据存储桶中的各个数据存储桶相对应。
15.根据权利要求9所述的设备,还包括:
目录冻结模块,用于在当前数据处理任务完成时,冻结所述多个时间正常目录中业务时间最早的时间正常目录。
16.根据权利要求15所述的设备,其中,所述目录冻结模块通过向所述业务时间最早的时间正常目录添加指示不再写入的标记来冻结所述业务时间最早的时间正常目录。
17.一种用于处理数据的设备,包括:
存储器,存储计算机可执行指令;以及
处理器,执行所述存储器存储的计算机可执行指令,以执行根据权利要求1至8中任一项所述的方法。
18.一种计算机可读存储介质,其上存储有可执行指令,该指令被处理器执行时使处理器执行根据权利要求1至8中任一项所述的方法。
CN201710361385.8A 2017-05-19 2017-05-19 用于数据处理的方法及其设备 Active CN108959302B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710361385.8A CN108959302B (zh) 2017-05-19 2017-05-19 用于数据处理的方法及其设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710361385.8A CN108959302B (zh) 2017-05-19 2017-05-19 用于数据处理的方法及其设备

Publications (2)

Publication Number Publication Date
CN108959302A true CN108959302A (zh) 2018-12-07
CN108959302B CN108959302B (zh) 2021-06-29

Family

ID=64462199

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710361385.8A Active CN108959302B (zh) 2017-05-19 2017-05-19 用于数据处理的方法及其设备

Country Status (1)

Country Link
CN (1) CN108959302B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112905531A (zh) * 2019-11-19 2021-06-04 千寻位置网络有限公司 Gnss离线数据的存储方法、系统及调用方法

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101197647A (zh) * 2006-12-13 2008-06-11 四川川大智胜软件股份有限公司 多通道实时三维视景渲染显示方法
CN103778148A (zh) * 2012-10-23 2014-05-07 阿里巴巴集团控股有限公司 Hadoop分布式文件系统数据文件的生命周期管理方法和设备
CN103827826A (zh) * 2011-09-28 2014-05-28 国际商业机器公司 自适应地确定事务型工作负荷的响应时间分布
US20160246390A1 (en) * 2015-02-25 2016-08-25 Synaptics Incorporated Active pen with bidirectional communication
CN106201351A (zh) * 2016-07-07 2016-12-07 乐视控股(北京)有限公司 一种基于对象存储的存储方法和服务器
CN106658153A (zh) * 2015-11-02 2017-05-10 腾讯科技(北京)有限公司 一种数据处理方法及设备

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101197647A (zh) * 2006-12-13 2008-06-11 四川川大智胜软件股份有限公司 多通道实时三维视景渲染显示方法
CN103827826A (zh) * 2011-09-28 2014-05-28 国际商业机器公司 自适应地确定事务型工作负荷的响应时间分布
CN103778148A (zh) * 2012-10-23 2014-05-07 阿里巴巴集团控股有限公司 Hadoop分布式文件系统数据文件的生命周期管理方法和设备
US20160246390A1 (en) * 2015-02-25 2016-08-25 Synaptics Incorporated Active pen with bidirectional communication
CN106658153A (zh) * 2015-11-02 2017-05-10 腾讯科技(北京)有限公司 一种数据处理方法及设备
CN106201351A (zh) * 2016-07-07 2016-12-07 乐视控股(北京)有限公司 一种基于对象存储的存储方法和服务器

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112905531A (zh) * 2019-11-19 2021-06-04 千寻位置网络有限公司 Gnss离线数据的存储方法、系统及调用方法
CN112905531B (zh) * 2019-11-19 2022-11-15 千寻位置网络有限公司 Gnss离线数据的存储方法、系统及调用方法

Also Published As

Publication number Publication date
CN108959302B (zh) 2021-06-29

Similar Documents

Publication Publication Date Title
CN110019211A (zh) 关联索引的方法、装置和系统
CN110826831A (zh) 对仓库的拣选区补货的方法和装置
CN109257320A (zh) 消息存储方法和装置
CN110019258A (zh) 处理订单数据的方法和装置
CN110443531A (zh) 确定订单中物品的储位信息的方法和装置
CN106101256B (zh) 用于同步数据的方法和装置
CN108874513A (zh) 处理定时任务的方法、系统、电子设备和计算机可读介质
CN110019087A (zh) 数据处理方法及其系统
CN110648089A (zh) 一种确定物品送达时效的方法和装置
CN110019062A (zh) 数据同步方法和系统
CN110019367A (zh) 一种统计数据特征的方法和装置
CN108805379A (zh) 支持多模式履约流程的系统和方法
CN110858332B (zh) 订单生产方法和装置
CN107357526A (zh) 用于处理网络数据的方法和装置、服务器和存储介质
CN107085754B (zh) 信息输出方法和装置
CN108985805B (zh) 一种选择性执行推送任务的方法和装置
CN108959302A (zh) 用于数据处理的方法及其设备
CN109408279A (zh) 数据备份方法和装置
CN110825342B (zh) 存储调度器件和用于处理信息的系统、方法及装置
CN115496544A (zh) 一种数据处理的方法和装置
CN110533351A (zh) 确定目标储位的方法和装置
CN109241040A (zh) 数据清洗的方法和装置
CN114564149A (zh) 一种数据存储方法、装置、设备及存储介质
CN109710497A (zh) 数据采集方法和系统
CN110297719A (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