CN109508244B - 数据处理方法及计算机可读介质 - Google Patents

数据处理方法及计算机可读介质 Download PDF

Info

Publication number
CN109508244B
CN109508244B CN201811216590.6A CN201811216590A CN109508244B CN 109508244 B CN109508244 B CN 109508244B CN 201811216590 A CN201811216590 A CN 201811216590A CN 109508244 B CN109508244 B CN 109508244B
Authority
CN
China
Prior art keywords
data
data storage
storage object
stored
service
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
CN201811216590.6A
Other languages
English (en)
Other versions
CN109508244A (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 Xintang Sichuang Educational Technology Co Ltd
Original Assignee
Beijing Xintang Sichuang Educational 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 Xintang Sichuang Educational Technology Co Ltd filed Critical Beijing Xintang Sichuang Educational Technology Co Ltd
Priority to CN201811216590.6A priority Critical patent/CN109508244B/zh
Publication of CN109508244A publication Critical patent/CN109508244A/zh
Application granted granted Critical
Publication of CN109508244B publication Critical patent/CN109508244B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/546Message passing systems or structures, e.g. queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/54Indexing scheme relating to G06F9/54
    • G06F2209/548Queue

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明实施例提供一种数据处理方法及计算机可读介质。数据处理方法包括:从第一消息队列中获取待存储的数据包,其中,数据包中包括业务数据和对应的时间信息;根据时间信息,将业务数据存储至与时间信息对应的数据存储对象中;获取并更新与数据存储对象对应的数据存储清单,其中,数据存储清单中包含有预设的待存储至数据存储对象中的至少一个数据包的信息;判断数据存储清单中的待存储的所有数据包是否已全部存储至数据存储对象;若是,则将数据存储对象中存储的所有业务数据发布至第二消息队列;若否,则对数据存储对象中已存储的业务数据进行持久化存储。该数据处理方法可以提高数据利用率。

Description

数据处理方法及计算机可读介质
技术领域
本发明实施例涉及计算机技术领域,尤其涉及一种数据处理方法及计算机可读介质。
背景技术
目前,企业的发展越来越依赖于通过计算机和网络系统实现管理。然而,企业的高速发展使得企业内部存在很多遗留系统和遗留数据,特别是对于大公司和运营时间比较长的公司,这样的系统和数据会非常多。
以包括多条业务线的企业系统为例,可能存在着诸如:1)不同业务线间相同用户的唯一标识不同;2)不同业务线记录的用户信息有差别;3)不同业务线的技术架构有很大差别,导致原始数据的存储分散,等等问题。由此,导致数据的整合和清理极端困难,无法对已有数据进行有效利用。
发明内容
有鉴于此,本发明实施例所解决的技术问题之一在于提供一种数据处理方法及计算机可读介质,用以克服现有技术中无法对已有数据进行有效利用的问题。
本发明实施例的第一方面,提供一种数据处理方法,其包括:从第一消息队列中获取待存储的数据包,其中,所述数据包中包括业务数据和对应的时间信息;根据所述时间信息,将所述业务数据存储至与所述时间信息对应的数据存储对象中;获取并更新与所述数据存储对象对应的数据存储清单,其中,所述数据存储清单中包含有预设的待存储至所述数据存储对象中的至少一个数据包的信息;判断所述数据存储清单中的待存储的所有数据包是否已全部存储至所述数据存储对象;若是,则将所述数据存储对象中存储的所有业务数据发布至第二消息队列;若否,则对所述数据存储对象中已存储的业务数据进行持久化存储。
本发明实施例的第二方面,提供一种计算机可读介质,其特征在于,所述计算机存储介质存储有:用于从第一消息队列中获取待存储的数据包的指令,其中,所述数据包中包括业务数据和对应的时间信息;用于根据所述时间信息,将所述业务数据存储至与所述时间信息对应的数据存储对象中的指令;用于获取并更新与所述数据存储对象对应的数据存储清单的指令,其中,所述数据存储清单中包含有预设的待存储至所述数据存储对象中的至少一个数据包的信息;用于判断所述数据存储清单中的待存储的所有数据包是否已全部存储至所述数据存储对象的指令;用于在判断已全部存储时,将所述数据存储对象中存储的所有业务数据发布至第二消息队列的指令;用于在判断未全部存储时,则对所述数据存储对象中已存储的业务数据进行持久化存储的指令。
由以上技术方案可见,本发明实施例的数据处理方案,该方案对从不同业务线读取的业务数据,根据不同业务线的业务数据的时间信息,对各个业务数据在时间线上进行同步,保证后续利用同步后的业务数据进行分析处理时事件逻辑正确,进而使这些业务数据能够被充分利用。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明实施例中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。
图1示出了本发明的实施例一的数据处理方法的流程图。
具体实施方式
当然,实施本发明实施例的任一技术方案必不一定需要同时达到以上的所有优点。
为了使本领域的人员更好地理解本发明实施例中的技术方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本发明实施例一部分实施例,而不是全部的实施例。基于本发明实施例中的实施例,本领域普通技术人员所获得的所有其他实施例,都应当属于本发明实施例保护的范围。
下面结合本发明实施例附图进一步说明本发明实施例具体实现。
实施例一
图1示出了本发明的实施例一的数据处理方法的流程图。如图1所示,本实施例的数据处理方法包括以下步骤:
步骤S101:从第一消息队列中获取待存储的数据包。
其中,所述数据包中包括业务数据和对应的时间信息。
数据包可以是从业务线获取的业务数据形成的数据包。其中,业务线是指运营实现不同的功能的业务生产线。每个业务线有至少一个数据库用于存储该业务线运行过程中产生的业务数据。
以网上课堂为例,业务数据可以是用户注册账号的数据、用户登录账号的数据、用户选课数据、用户课程学习进度数据等。用户注册账号的数据中包括用户的账号名、用户注册时间等数据。业务数据对应的时间信息可以用于后续同步业务数据,即根据时间信息是否相同,对业务数据进行分类,进而可以根据时间信息指示的先后顺序,对分类的业务数据进行分析,从而根据分析结果对用户行为进行预测。这种利用时间信息对业务数据进行分类的方式可以避免从多个业务线获取不同的业务数据时,由于业务线间无法协作,造成业务数据的分析处理顺序与业务数据的产生顺序不一致,造成分析处理的结果与实际情况不符的问题。
针对本身具有时间信息的业务数据,与业务数据对应的时间信息可以是业务数据中携带的指示其产生时间的时间信息,如业务数据为用户的账户登录数据时,对应的时间信息是每个账户的登录时间。针对本身不具有时间信息的业务数据,与业务数据对应的时间信息可以是指示业务数据的读取时间的时间信息。
为了能够有效地收集分散在各个业务线的数据库中的业务数据,可以通过设置数据读取代理读取各个数据库中的业务数据,并将这些业务数据形成数据包发送到第一消息队列中。
通过消息队列的方式发布包含业务数据的数据包,可以使后续在进行数据消费(如事件推理机根据业务数据进行事件推理)时能够方便地从消息队列中获取数据包。
本发明实施例中,第一消息队列用于存放从各个业务线获取的原始业务数据。如学生基本信息数据、学生课程信息数据等。
第一消息队列可以是任何适当的能够存放数据包的消息队列,例如,kafka分布式消息队列等,本实施例对此不作限定。其中,Kafka消息队列作为一种分布式流处理消息队列,其能充分利用磁盘的顺序读写特性,且吞吐量高,可以实时的数据流处理。
可选地,当所述第一消息队列为分布式消息队列如为kafka消息队列时,所述从第一消息队列中获取包含业务数据的数据包时,可以确定所述第一消息队列中的数据包是否为分布式消息队列中的日志文件,其中,所述日志文件包括所述业务数据和所述时间信息;若是日志文件,则获取所述数据包。反之,则可以不进行处理。通过判断数据包为日志文件还是主题文件可以方便快捷地过滤掉kafka消息队列中的与业务数据无关的主题文件,避免其影响数据同步效率。
步骤S102:根据所述时间信息,将所述业务数据存储至与所述时间信息对应的数据存储对象中。
数据存储对象可以为用于将业务数据按照一定的约束(例如,时间信息)进行数据存放的数据存放单元。
本发明实施例中,以Python为例,数据存储对象可以是基于Python自定义的具有属性的容器类对象,为了便于描述可以将该数据存储对象记作数据集装箱(container)。在本实施例中,数据存储对象具有时间戳属性、清单属性和内容属性。其中,清单属性用于指示需要存储的内容;时间戳属性用于指示需要存储的内容的时间信息;内容属性用于指示存储的内容。
在实际应用中,数据存储对象可以根据需求采用任意适当的形式,本发明实施例对此不作限定。
当然,在其他实施例中,该数据存储对象可以通过其他任何适当的方式存储业务数据。
每个数据存储对象均对应有一个时间戳信息(其可以根据数据存储对象中的时间戳属性的值确定),以指示能够存入的该数据存储对象中的业务数据对应的时间信息。例如,数据存储对象A的时间戳信息为“20180815”,则表示数据存储对象A用于存储时间信息为“20180815”的业务数据。
在一种可行方式中,根据所述时间信息,将所述业务数据存储至与所述时间信息对应的数据存储对象中包括:确定是否存在时间戳信息与所述时间信息对应的数据存储对象。若存在,则将所述业务数据存储至对应的数据存储对象中。若不存在,则创建一个新的数据存储对象,并将新的所述数据存储对象的时间戳信息设置为所述时间信息,并将所述业务数据存储至新的所述数据存储对象中。在确定是否存在时间戳信息与所述时间信息对应的数据存储对象时,通过确定所有的数据存储对象中是否存在时间戳信息与时间信息对应的数据存储对象的方式确定。如,业务数据对应的时间信息为“20180815”,则确定所有的数据存储对象中是否存在时间戳信息为“20180815”的数据存储对象。即确定所有的数据存储对象中是否存在时间戳信息与业务数据的时间信息匹配的数据存储对象。
若存在,则确定该数据存储对象为与业务数据对应的数据存储对象。若该业务数据在确定的数据存储对象的清单中,则可以将该业务数据存储到对应的业务存储对象中。
若不存在,则表示该时间点对应的数据存储对象还未创建,需要创建一个新的数据存储对象,并将新的数据存储对象的时间戳信息设置为对应的时间信息,以通过新创建的数据存储对象存储该业务数据。
在创建新的数据存储对象时,是基于待创建的数据存储对象对应的数据存储清单进行新建的,即新建一个包含对应数据存储清单的数据存储对象。该数据存储对象的作用是将后续进行事件推理时需要的数据按照数据存储清单进行汇总,合并,为后续的数据推理提供对应的数据内容。一个数据存储对象可以理解为后续数据推理的一个原始数据单元。
当需要进行事件推理时,预先确定推理该事件所必须的业务数据,并在利用获取的业务数据进行事件推理之前,通过数据存储对象对某一时间点的业务数据进行收集整理,由于数据存储对象是和获取的原始业务数据在时间上一一对应的(一个数据存储对象中可能存储多个业务数据,但这些业务数据的时间信息均匹配),解决了在读取不同的业务线的原始业务数据时,由于业务数据获取不同步造成的推理不准确的问题。
此外,在通过数据存储对象存储业务数据时,读取到原始业务数据后,基于业务数据的时间信息来查找是否有对应时间戳信息的数据存储对象,如果没有则构建新的数据存储对象来存储对应的业务数据,确保最新产生的业务数据能够利用数据存储对象进行存储,避免原始业务数据遗失。
例如,在第一消息队列中存在业务数据A和业务数据B,其中,业务数据A对应的时间信息为“20180908”,业务数据B对应的时间信息为“20180910”。已经存储的数据存储对象A的时间戳信息为“20180908”,数据存储对象B的时间戳信息为“20180909”。
由于业务数据A对应的时间信息与数据存储对象A的时间戳信息一致,可以确定数据存储对象A为与业务数据A对应的数据存储对象,可以将业务数据A存储到数据存储对象A中,后续可以根据数据存储对象A中的业务数据进行推理分析。
由于不存在时间戳信息与业务数据B的时间信息对应的数据存储对象,使得业务数据B无法存储,若不创建与业务数据B对应的数据存储结构,则后续无法根据业务数据B进行推理分析,会造成推理分析不准确、精度损失等问题。为了避免这些问题,需要创建一个时间戳信息为“20180910”的数据存储对象C,用于存储业务数据B,使得后续可以根据数据存储对象C中的业务数据进行推理分析。
确定对应的数据存储对象之后,将业务数据存储到数据存储对象的方式可以根据需要确定。数据可以按照需要进行不同方式的数据存储,如在Pyhthon里面可以存储为列表、字典等不同的数据格式,本实施例对此不作限定。
在本实施例中,通过携带者(carrier)以一个搬运工的身份对数据进行运输,携带者可以等间隔时长从第一消息队列中查找对应数据存储对象的数据包,若查找到,则将其存入对应的数据存储对象中。一个携带者对应一个数据存储对象(集装箱),携带者对从第一消息队列中的数据进行识别,查看数据是否属于其对应的数据存储对象,如果属于,则将第一消息队列中获取的数据存入到数据存储对象中,否则不对数据进行处理。
携带者具有如下功能:数据识别及存储,对属于对应数据存储结构的数据进行数据存入;数据存储对象的数据状态检测,检测其对应的数据存储结构中的数据是否装满;数据存储结构中的数据排序,按照事先给定的顺序对数据存储结构中数据进行排序处理。
通过携带者从第一消息队列获取业务数据的有益效果在于:数据存储结构和携带者一一对应确保数据存储的准确性,携带者可以按照给定的顺序对数据存储结构中数据进行排序,方便后续的数据处理。
可选地,携带者可以是自定义的能够实现上述功能的程序段。
步骤S103:获取并更新与所述数据存储对象对应的数据存储清单。
其中,所述数据存储清单中包含有预设的待存储至所述数据存储对象中的至少一个数据包的信息。
为了能够实现不同业务线的业务数据在时间线上同步,以使后续能够利用同步后的业务数据进行数据分析处理,可以预先根据业务线的业务逻辑确定数据存储对象对应的数据存储清单,该数据存储清单中包含有该清单对应的数据存储对象中需要存储的数据包的信息。
数据存储清单中指示的数据包的信息可以根据业务线的业务逻辑确定。
当想分析学生的学习状态情况时,需要的数据分别为学生基本信息数据、学生课程信息数据、学生考试成绩和学生作业完成情况。则时间戳信息为20180908 12:20:00的数据存储对象中的数据存储清单指示的需要存储在该数据存储对象中的业务数据为:“时间信息为20180908 12:20:00的学生基本信息数据”、“时间信息为20180908 12:20:00的学生课程信息数据”、“时间信息为20180908 12:20:00的学生考试成绩数据”和“时间信息为20180908 12:20:00的学生作业完成情况数据”。
当然,若存在更多的业务线,根据各个业务线的业务逻辑,可以在数据存储清单中加入更多的待存储至对应的数据存储对象中的数据包的信息。
通过获取数据存储对象对应的数据存储清单,可以确定所有需要存储至该数据存储对象中的所有数据包的信息,进而可以将时间信息与时间戳信息对应的业务数据均存储到同一数据存储对象中,实现业务数据在时间上的同步。避免在基于业务数据进行事件推理时,由于业务数据获取的顺序与业务数据产生的时间顺序不一致,导致推理结果不准确的问题。
通过业务数据的时间同步,一方面可以将同一时间点产生的业务数据作为一组数据进行统一的数据存储和处理。这样就可以按照时间流形成一个按时间顺序进行数据处理的过程。另一方面,可以实现业务数据的同步更新和处理,进行实时的数据推理工作。
在将业务数据存储到对应的数据存储对象中之后,可以更新数据存储清单,以方便确定数据存储对象中存储的业务数据或方便确定数据存储对象中待存储的业务数据。
更新数据存储清单的方式可以根据需求确定,本实施例对此不作限定。例如,标记数据存储清单中已经存储在数据存储对象中的业务数据对应的数据包的信息。
或者,又例如,从获取的所述数据存储清单中删除与所述数据存储对象中已经存储的业务数据对应的数据包的信息。这样当数据存储对象中所有需要存储的业务数据均存入数据存储对象时,对应数据存储清单为空,可以方便地确定数据存储对象需要的业务数据以及存储完成。
在一种可行方式中,如果想分析学生的学习状态情况,需要的数据分别为学生基本信息数据(为了便于描述记作A)、学生课程信息数据(为了便于描述记作B)、学生考试成绩(为了便于描述记作C)和学生作业完成情况(为了便于描述记作D)。
若数据存储对象A的时间戳信息为20180908 12:20:00,则数据存储清单指示的能够存储到该数据存储对象A中的业务数据分别为A_20180908 12:20:00、B_20180908 12:20:00、C_20180908 12:20:00、和D_20180908 12:20:00。
数据存储对象A的携带者从第一消息队列中获取到时间信息为20180908 12:20:00的业务数据A后,将其存储到数据存储对象A中,数据存储清单从(“A_20180908 12:20:00”,“B_20180908 12:20:00”,“C_20180908 12:20:00”,“D_20180908 12:20:00”)更新为(“B_20180908 12:20:00”,“C_20180908 12:20:00”,“D_20180908 12:20:00”)。并将数据存储对象持久化到本地存储空间(如硬盘)。
当获取到时间信息为20180908 12:20:00的业务数据B时,从本地存储空间中将数据存储对象读取出来,并将获取到的业务数据B存储到数据存储对象中,并更新数据存储清单为(“C_20180908 12:20:00”,“D_20180908 12:20:00”)。并再次将数据存储对象持久化到本地存储空间中。如此重复,直至数据存储对象中的数据存储清单为空。
步骤S104:判断所述数据存储清单中的待存储的所有数据包是否已全部存储至所述数据存储对象。
当更新数据存储清单的方式为删除数据存储清单中已存储在数据存储对象中的业务数据对应的数据包的信息的方式时,可以通过判断所述数据存储清单是否为空的方式确定待存储的所有数据包是否已全部存储至数据存储对象中。若数据存储清单为空,则确定所述数据存储清单中的待存储的所有数据包已全部存储至所述数据存储对象。若数据存储清单不为空,则确定所述数据存储清单中的待存储的所有数据包未全部存储至所述数据存储对象。这样方式可以方便快捷地判断数据存储对象中是否已经存储了全部需要存储的业务数据,且可以减少资源占用。数据存储清单可以按需将需要的数据存入到数据存储对象中,然后将存满的数据存储对象作为数据推理中的原始数据输送到推理引擎中进行数据推理。而数据存储对象由于加入了时间戳信息,所以在进行数据推理过程中,可以进行按照时间顺序从前至后进行数据提取和推理的过程。
若所述数据存储清单中的待存储的所有数据包已全部存储至所述数据存储对象,则执行步骤S105。若所述数据存储清单中的待存储的所有数据包未全部存储至所述数据存储对象,则执行步骤S106。
当然,根据数据存储清单的更新方式不同,可以通过不同的方式确定数据存储清单中的待存储的所有数据包是否已全部存储至所述数据存储对象。
例如,若更新数据存储清单的方式为,标记数据存储清单中已存储在数据存储对象中的业务数据对应的数据包的信息的方式,则可以通过确定数据存储清单是否存在未标记的数据包的方式确定待存储的所有数据包是否已全部存储至数据存储对象中。若存在未标记的数据包,则表示数据存储对象中还存在需要存储但未存储的业务数据。若不存未标记的数据包,则表示数据存储对象中已经存储了全部需要存储的业务数据。
步骤S105:将所述数据存储对象中存储的所有业务数据发布至第二消息队列。
当数据存储清单中待存储的所有数据包已全部存储至数据存储对象中,则可以将数据存储对象发布到第二消息队列中,以供后续对数据存储对象中的数据进行处理。
可选地,第二消息队列可以为分布式消息队列,如Kafka队列。将数据存储对象中的业务数据发布到第二消息队列中后,可以将该数据存储对象进行清空,减少存储空间占用,也可以避免重复获取第一消息队列中的业务数据。
在一种可行方式中,数据存储对象可以通过调度器进行发布。使用调度器发布的过程包括:确定调度器是否处于空闲状态,其中,所述调度器用于对所述业务数据进行调度和发布;若所述调度器处于空闲状态,则通过调度器调度出数据存储对象中存储的所有业务数据并发布至所述第二消息队列;若所述调度器未处于空闲状态,则将数据存储对象存储在存储空间内,以等待所述调度器进行调度。
其中,在一种可行方式中,确定调度器是否处于空闲状态可以包括:比较所述第二消息队列的缓存空间的尺寸和预设的缓存阈值;若所述缓存空间的尺寸小于所述预设的缓存阈值,则确定所述调度器处于空闲状态;若所述缓存空间的尺寸大于或等于所述预设的缓存阈值,则确定所述调度器处于非空闲状态。通过比较第二消息队列的缓存空间的尺寸和缓存阈值来确定调度器是否处于空闲状态,可以简单、低成本地确定调度器的工作状态,确保业务数据可以有效地存储至第二消息队列中,避免第二消息队列数据溢出。
需要说明的是,同步后的业务数据可以用于数据推理和事件分析,利用同步后的业务数据分析用户行为。为了保证数据推理和事件分析的准确性,在通过调度器发布数据存储对象之前,可以根据预设的逻辑,对数据存储对象中的业务数据进行排序。如学生在课程学习过程中,用户选课的数据排在用户答题的数据之前,以保证在后续进行数据分析推理时,用户是选完课程后才针对该课程进行答题,确保推理出的事件符合逻辑。
步骤S106:对所述数据存储对象中已存储的业务数据进行持久化存储。
若数据存储清单中待存储的所有数据包未全部存放至数据存储对象,则不能发布该数据存储对象,需要将该数据存储对象和已存储的业务数据进行持久化存储,以等待其他需要存储的业务数据。这样可以减少内存空间的占用,确保数据处理的可靠稳定运行,且可以提升数据的可靠性,避免意外情况下数据丢失。
可选地,当获取到包含其他需要存储的业务数据的数据包时,可以将持久化存储的数据存储对象读取到内存空间内,将业务数据存储到该数据存储对象内,若此时数据存储清单中待存储的所有数据包依然未全部存放至数据存储对象,则可以将该数据存储对象再次持久化存储。
本实施例的数据处理方法,该方法对从不同业务线读取的业务数据,根据不同业务线的业务数据的时间信息,将其分入对应的数据存储对象中,以实现对各个业务数据在时间线上进行同步,保证后续利用同步后的业务数据进行分析处理时事件逻辑正确,进而使这些业务数据能够被充分利用。
现有技术中,由于不同业务线的业务逻辑不同,收集业务数据时的读取方式和时间也不同,从不同的业务线读取业务数据后无法处理和分析业务数据,对业务数据进行有效利用。例如,业务线A的业务数据每3天读取一次,业务线B的业务数据每2小时读取一次,在读取这些业务数据后,若直接利用这些业务数据进行分析,由于业务线A的一些业务数据的产生时间在业务线B的业务数据的产生时间之前,而由于读取时间在后,导致根据读取的业务数据进行分析时,事件的逻辑产生错误,分析结果不正确。
通过本发明实施例提供的数据处理方案,解决了现有技术中存在多业务线的数据无法共享分析处理,不能有效使用不同业务线的数据的问题。针对从不同业务线读取的业务数据,根据不同业务线的业务数据的时间信息,对各个业务数据在时间线上进行同步,保证后续利用同步后的业务数据进行分析处理时事件逻辑正确,进而使这些业务数据能够被充分利用。
实施例二
根据本发明的实施例,提供一种计算机存储介质,计算机存储介质存储有:用于从第一消息队列中获取待存储的数据包,其中,所述数据包中包括业务数据和对应的时间信息的指令;用于根据所述时间信息,将所述业务数据存储至与所述时间信息对应的数据存储对象中的指令;用于获取并更新与所述数据存储对象对应的数据存储清单的指令,其中,所述数据存储清单中包含有预设的待存储至所述数据存储对象中的至少一个数据包的信息;用于判断所述数据存储清单中的待存储的所有数据包是否已全部存储至所述数据存储对象的指令;用于在判断已全部存储时,将所述数据存储对象中存储的所有业务数据发布至第二消息队列的指令;用于在判断未全部存储时,则对所述数据存储对象中已存储的业务数据进行持久化存储的指令。
可选地,所述数据存储对象中具有时间戳信息;用于所述根据所述时间信息,将所述业务数据存储至与所述时间信息对应的数据存储对象中的指令,包括:用于确定是否存在时间戳信息与所述时间信息对应的数据存储对象的指令;用于在存在对应的数据存储对象时,则将所述业务数据存储至对应的数据存储对象中的指令;用于在不存在对应的数据存储对象时,则创建一个新的数据存储对象,并将新的所述数据存储对象的时间戳信息设置为所述时间信息,并将所述业务数据存储至新的所述数据存储对象中的指令。
可选地,用于获取并更新与所述数据存储对象对应的数据存储清单的指令,包括:用于从获取的所述数据存储清单中删除与所述数据存储对象中已经存储的业务数据对应的数据包的信息的指令。
可选地,用于判断所述数据存储清单中的待存储的所有数据包是否已全部存储至所述数据存储对象的指令,包括:用于判断所述数据存储清单是否为空的指令;用于在判断为空时,确定所述数据存储清单中的待存储的所有数据包已全部存储至所述数据存储对象的指令;用于在判断不为空时,确定所述数据存储清单中的待存储的所有数据包未全部存储至所述数据存储对象的指令。
可选地,用于将所述数据存储对象中存储的所有业务数据发布至第二消息队列的指令,包括:用于确定调度器是否处于空闲状态的指令,其中,所述调度器用于对所述业务数据进行调度和发布;用于在所述调度器处于空闲状态时,通过调度器调度出数据存储对象中存储的所有业务数据并发布至所述第二消息队列的指令;用于在所述调度器未处于空闲状态时,将数据存储对象存储在存储空间内,以等待所述调度器进行调度的指令。
可选地,用于确定调度器是否处于空闲状态的指令,包括:用于比较所述第二消息队列的缓存空间的尺寸和预设的缓存阈值的指令;用于在所述缓存空间的尺寸小于所述预设的缓存阈值时,确定所述调度器处于空闲状态的指令;用于在所述缓存空间的尺寸大于或等于所述预设的缓存阈值时,确定所述调度器处于非空闲状态的指令。
可选地,所述第一消息队列为分布式消息队列;用于所述从第一消息队列中获取包含业务数据的数据包的指令,包括:用于确定所述第一消息队列中的数据包是否为分布式消息队列中的日志文件的指令,其中,所述日志文件包括所述业务数据和所述时间信息;用于在是日志文件时,获取所述数据包的指令。
该计算机存储介质中存储的指令可以对从不同业务线读取的业务数据,根据不同业务线的业务数据的时间信息,将其分入对应的数据存储对象中,以实现对各个业务数据在时间线上进行同步,保证后续利用同步后的业务数据进行分析处理时事件逻辑正确,进而使这些业务数据能够被充分利用。
需要指出,根据实施的需要,可将本发明实施例中描述的各个部件/步骤拆分为更多部件/步骤,也可将两个或多个部件/步骤或者部件/步骤的部分操作组合成新的部件/步骤,以实现本发明实施例的目的。
上述根据本发明实施例的方法可在硬件、固件中实现,或者被实现为可存储在记录介质(诸如CD ROM、RAM、软盘、硬盘或磁光盘)中的软件或计算机代码,或者被实现通过网络下载的原始存储在远程记录介质或非暂时机器可读介质中并将被存储在本地记录介质中的计算机代码,从而在此描述的方法可被存储在使用通用计算机、专用处理器或者可编程或专用硬件(诸如ASIC或FPGA)的记录介质上的这样的软件处理。可以理解,计算机、处理器、微处理器控制器或可编程硬件包括可存储或接收软件或计算机代码的存储组件(例如,RAM、ROM、闪存等),当所述软件或计算机代码被计算机、处理器或硬件访问且执行时,实现在此描述的数据处理方法。此外,当通用计算机访问用于实现在此示出的数据处理方法的代码时,代码的执行将通用计算机转换为用于执行在此示出的数据处理方法的专用计算机。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及方法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明实施例的范围。
以上实施方式仅用于说明本发明实施例,而并非对本发明实施例的限制,有关技术领域的普通技术人员,在不脱离本发明实施例的精神和范围的情况下,还可以做出各种变化和变型,因此所有等同的技术方案也属于本发明实施例的范畴,本发明实施例的专利保护范围应由权利要求限定。

Claims (10)

1.一种数据处理方法,其特征在于,包括:
从第一消息队列中获取待存储的数据包,其中,所述数据包中包括业务数据和对应的时间信息;
根据所述时间信息,将所述业务数据存储至与所述时间信息对应的数据存储对象中;
获取并更新与所述数据存储对象对应的数据存储清单,其中,所述数据存储清单中包含有预设的待存储至所述数据存储对象中的至少一个业务数据对应的数据包的信息;
判断所述数据存储清单中的所有数据包对应的业务数据是否已全部存储至所述数据存储对象;
若是,则将所述数据存储对象中存储的所有业务数据发布至第二消息队列;
若否,则对所述数据存储对象中已存储的业务数据进行持久化存储。
2.根据权利要求1所述的数据处理方法,其特征在于,所述数据存储对象中具有时间戳信息;
所述根据所述时间信息,将所述业务数据存储至与所述时间信息对应的数据存储对象中,包括:
确定是否存在时间戳信息与所述时间信息对应的数据存储对象;
若存在,则将所述业务数据存储至对应的数据存储对象中;
若不存在,则创建一个新的数据存储对象,并将新的所述数据存储对象的时间戳信息设置为所述时间信息,并将所述业务数据存储至新的所述数据存储对象中。
3.根据权利要求1所述的数据处理方法,其特征在于,获取并更新与所述数据存储对象对应的数据存储清单,包括:
从获取的所述数据存储清单中删除与所述数据存储对象中已经存储的业务数据对应的数据包的信息。
4.根据权利要求3所述的数据处理方法,其特征在于,判断所述数据存储清单中的待存储的所有数据包是否已全部存储至所述数据存储对象,包括:
判断所述数据存储清单是否为空;
若为空,则确定所述数据存储清单中的待存储的所有数据包已全部存储至所述数据存储对象;
若不为空,则确定所述数据存储清单中的待存储的所有数据包未全部存储至所述数据存储对象。
5.根据权利要求1所述的数据处理方法,其特征在于,将所述数据存储对象中存储的所有业务数据发布至第二消息队列,包括:
确定调度器是否处于空闲状态,其中,所述调度器用于对所述业务数据进行调度和发布;
若所述调度器处于空闲状态,则通过调度器调度出数据存储对象中存储的所有业务数据并发布至所述第二消息队列;
若所述调度器未处于空闲状态,则将数据存储对象存储在存储空间内,以等待所述调度器进行调度。
6.根据权利要求5所述的数据处理方法,其特征在于,确定调度器是否处于空闲状态,包括:
比较所述第二消息队列的缓存空间的尺寸和预设的缓存阈值;
若所述缓存空间的尺寸小于所述预设的缓存阈值,则确定所述调度器处于空闲状态;
若所述缓存空间的尺寸大于或等于所述预设的缓存阈值,则确定所述调度器处于非空闲状态。
7.根据权利要求1所述的数据处理方法,其特征在于,所述第一消息队列为分布式消息队列;
所述从第一消息队列中获取包含业务数据的数据包,包括:
确定所述第一消息队列中的数据包是否为分布式消息队列中的日志文件,其中,所述日志文件包括所述业务数据和所述时间信息;
若是日志文件,则获取所述数据包。
8.一种计算机可读介质,其特征在于,所述计算机存储介质存储有:用于从第一消息队列中获取待存储的数据包的指令,其中,所述数据包中包括业务数据和对应的时间信息;用于根据所述时间信息,将所述业务数据存储至与所述时间信息对应的数据存储对象中的指令;用于获取并更新与所述数据存储对象对应的数据存储清单的指令,其中,所述数据存储清单中包含有预设的待存储至所述数据存储对象中的至少一个业务数据对应的数据包的信息;用于判断所述数据存储清单中的所有数据包对应的业务数据是否已全部存储至所述数据存储对象的指令;用于在判断已全部存储时,将所述数据存储对象中存储的所有业务数据发布至第二消息队列的指令;用于在判断未全部存储时,则对所述数据存储对象中已存储的业务数据进行持久化存储的指令。
9.根据权利要求8所述的计算机可读介质,其特征在于,所述数据存储对象中具有时间戳信息;
用于所述根据所述时间信息,将所述业务数据存储至与所述时间信息对应的数据存储对象中的指令,包括:用于确定是否存在时间戳信息与所述时间信息对应的数据存储对象的指令;用于在存在对应的数据存储对象时,则将所述业务数据存储至对应的数据存储对象中的指令;用于在不存在对应的数据存储对象时,则创建一个新的数据存储对象,并将新的所述数据存储对象的时间戳信息设置为所述时间信息,并将所述业务数据存储至新的所述数据存储对象中的指令。
10.根据权利要求8所述的计算机可读介质,其特征在于,用于获取并更新与所述数据存储对象对应的数据存储清单的指令,包括:
用于从获取的所述数据存储清单中删除与所述数据存储对象中已经存储的业务数据对应的数据包的信息的指令。
CN201811216590.6A 2018-10-18 2018-10-18 数据处理方法及计算机可读介质 Active CN109508244B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811216590.6A CN109508244B (zh) 2018-10-18 2018-10-18 数据处理方法及计算机可读介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811216590.6A CN109508244B (zh) 2018-10-18 2018-10-18 数据处理方法及计算机可读介质

Publications (2)

Publication Number Publication Date
CN109508244A CN109508244A (zh) 2019-03-22
CN109508244B true CN109508244B (zh) 2021-03-12

Family

ID=65746742

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811216590.6A Active CN109508244B (zh) 2018-10-18 2018-10-18 数据处理方法及计算机可读介质

Country Status (1)

Country Link
CN (1) CN109508244B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113553206B (zh) * 2021-09-22 2021-12-21 北京德风新征程科技有限公司 数据事件执行方法、装置、电子设备和计算机可读介质
CN114168605A (zh) * 2021-12-08 2022-03-11 镁佳(北京)科技有限公司 一种数据上报方法、装置和设备

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102222071A (zh) * 2010-04-16 2011-10-19 华为技术有限公司 数据同步处理方法、设备及系统
US8134927B2 (en) * 2009-07-31 2012-03-13 Ixia Apparatus and methods for capturing data packets from a network
CN102833272A (zh) * 2011-06-13 2012-12-19 腾讯科技(深圳)有限公司 一种基于用户订阅的下载方法及装置
CN104166650A (zh) * 2013-05-16 2014-11-26 方正宽带网络服务股份有限公司 数据存储装置和数据存储方法
CN104317958A (zh) * 2014-11-12 2015-01-28 北京国双科技有限公司 一种实时数据处理方法及系统
CN104424263A (zh) * 2013-08-29 2015-03-18 腾讯科技(深圳)有限公司 一种数据记录的处理方法及装置
US9052938B1 (en) * 2014-04-15 2015-06-09 Splunk Inc. Correlation and associated display of virtual machine data and storage performance data
CN105302668A (zh) * 2015-10-21 2016-02-03 上海爱数信息技术股份有限公司 一种优化对象存储系统中块设备数据访问性能的方法
CN108133169A (zh) * 2016-12-01 2018-06-08 北京新唐思创教育科技有限公司 一种针对文本图像的成行处理方法及其装置
CN108549704A (zh) * 2018-04-18 2018-09-18 厦门市美亚柏科信息股份有限公司 数据包的分布式流式预处理方法、装置、设备及可读介质

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8134927B2 (en) * 2009-07-31 2012-03-13 Ixia Apparatus and methods for capturing data packets from a network
CN102222071A (zh) * 2010-04-16 2011-10-19 华为技术有限公司 数据同步处理方法、设备及系统
CN102833272A (zh) * 2011-06-13 2012-12-19 腾讯科技(深圳)有限公司 一种基于用户订阅的下载方法及装置
CN104166650A (zh) * 2013-05-16 2014-11-26 方正宽带网络服务股份有限公司 数据存储装置和数据存储方法
CN104424263A (zh) * 2013-08-29 2015-03-18 腾讯科技(深圳)有限公司 一种数据记录的处理方法及装置
US9052938B1 (en) * 2014-04-15 2015-06-09 Splunk Inc. Correlation and associated display of virtual machine data and storage performance data
CN104317958A (zh) * 2014-11-12 2015-01-28 北京国双科技有限公司 一种实时数据处理方法及系统
CN105302668A (zh) * 2015-10-21 2016-02-03 上海爱数信息技术股份有限公司 一种优化对象存储系统中块设备数据访问性能的方法
CN108133169A (zh) * 2016-12-01 2018-06-08 北京新唐思创教育科技有限公司 一种针对文本图像的成行处理方法及其装置
CN108549704A (zh) * 2018-04-18 2018-09-18 厦门市美亚柏科信息股份有限公司 数据包的分布式流式预处理方法、装置、设备及可读介质

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
面向对象的基于实体关系的时空数据模型;郑磊;《北京工业职业技术学院学报》;20040430;第3卷(第2期);全文 *

Also Published As

Publication number Publication date
CN109508244A (zh) 2019-03-22

Similar Documents

Publication Publication Date Title
CN110569214B (zh) 用于日志文件的索引构建方法、装置及电子设备
CN110292775B (zh) 获取差异数据的方法及装置
CN111400288A (zh) 数据质量检查方法及系统
CN109508244B (zh) 数据处理方法及计算机可读介质
CN110147470B (zh) 一种跨机房数据比对系统及方法
US9948570B2 (en) Stream data processing method and stream data processing device
CN114416703A (zh) 数据完整性自动监控方法、装置、设备及介质
CN111258973A (zh) Redis慢日志的存储、展示方法、装置、设备和介质
CN111428480A (zh) 简历识别方法、装置、设备及存储介质
CN114116811B (zh) 日志处理方法、装置、设备及存储介质
CN110688383A (zh) 数据采集方法及系统
CN108121743A (zh) 一种通用网页模版的生成和使用方法、系统
CN113157978B (zh) 数据的标签建立方法和装置
CN117056391A (zh) 数据自动推送方法、设备及存储介质
CN111782657B (zh) 数据处理方法及装置
CN115269519A (zh) 一种日志检测方法、装置及电子设备
CN107729476A (zh) 一种机器数据在线处理方法及系统
US9239867B2 (en) System and method for fast identification of variable roles during initial data exploration
TWI684950B (zh) 物種數據解析方法、系統及電腦程式產品
CN113641654A (zh) 一种基于实时事件的营销处置规则引擎方法
CN111897802A (zh) 数据库容器故障定位方法及系统
CN111027823A (zh) 基于浏览器的工单自动转派方法及装置
CN117312624B (zh) 一种获取目标数据列表的数据处理系统
CN112948579B (zh) 留言文本信息处理方法、装置、系统和计算机设备
CN106202448B (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