数据处理方法、装置、电子设备和存储介质.pdf

上传人:七月 文档编号:10725195 上传时间:2021-08-09 格式:PDF 页数:15 大小:560.37KB
收藏 版权申诉 举报 下载
数据处理方法、装置、电子设备和存储介质.pdf_第1页
第1页 / 共15页
数据处理方法、装置、电子设备和存储介质.pdf_第2页
第2页 / 共15页
数据处理方法、装置、电子设备和存储介质.pdf_第3页
第3页 / 共15页
文档描述:

《数据处理方法、装置、电子设备和存储介质.pdf》由会员分享,可在线阅读,更多相关《数据处理方法、装置、电子设备和存储介质.pdf(15页完成版)》请在专利查询网上搜索。

1、(19)中华人民共和国国家知识产权局 (12)发明专利申请 (10)申请公布号 (43)申请公布日 (21)申请号 201911257201.9 (22)申请日 2019.12.09 (71)申请人 北京明略软件系统有限公司 地址 100000 北京市海淀区东北旺西路8号 院4号楼310号 (72)发明人 李尧 (74)专利代理机构 北京超成律师事务所 11646 代理人 许书音 (51)Int.Cl. G06F 16/2455(2019.01) G06F 16/2458(2019.01) (54)发明名称 数据处理方法、 装置、 电子设备和存储介质 (57)摘要 本发明的实施例提供了一种数据。

2、处理方法、 装置、 电子设备和存储介质, 涉及数据处理技术 领域。 本发明实施例提供的数据处理方法、 装置、 电子设备和存储介质, 通过从数据缓存区中读取 数据, 设定时间窗口, 基于时间窗口判断是否存 在延时的数据, 然后将延时的数据写入延时缓存 区, 并对未延时的数据进行处理, 整个处理过程 使用相同的逻辑, 降低了数据处理的耦合度, 并 且延时的数据不会丢失, 提高了数据计算的精确 性。 权利要求书2页 说明书9页 附图3页 CN 110990438 A 2020.04.10 CN 110990438 A 1.一种数据处理方法, 其特征在于, 所述方法包括: 从数据缓存区中读取数据, 设。

3、定时间窗口, 基于所述时间窗口判断是否存在延时的数 据; 将延时的数据写入延时缓存区, 并对未延时的数据进行处理。 2.根据权利要求1所述的数据处理方法, 其特征在于, 所述基于所述时间窗口判断是否 存在延时的数据的步骤包括: 获取读取的数据的时间戳, 判断所述时间戳是否在当前时刻的时间窗口内; 若所述时间戳在所述当前时刻的时间窗口内, 判定所述数据未延时, 若所述时间戳未 在所述当前时刻的时间窗口内, 且所述时间戳在上一个时刻的时间窗口内, 判定所述数据 延时。 3.根据权利要求1所述的数据处理方法, 其特征在于, 基于所述时间窗口判断是否存在 延时的数据的步骤, 包括: 获取读取的数据的时。

4、间戳, 判断所述时间戳是否在当前时刻的可延迟时间内; 其中, 所 述可延迟时间为当前时刻的时间窗口后可延迟的时间段与当前时刻的时间窗口之和; 若所述时间戳在所述可延迟时间内, 判定所述数据未延时, 若未在所述可延迟时间内, 且所述时间戳在上一个时刻的可延迟时间内, 判定所述数据延时。 4.根据权利要求1所述的数据处理方法, 其特征在于, 所述方法还包括: 在将延时的数据写入延时缓存区之后, 读取所述数据缓存区中的数据以及所述延时缓 存区中的延时数据, 基于相同长度的时间窗口, 对所述数据缓存区中的数据以及所述延时 缓存区中的延时数据进行处理。 5.根据权利要求4所述的数据处理方法, 其特征在于。

5、, 所述方法还包括: 在对未延时的数据进行处理后, 将处理结果输出至存储介质中进行存储; 或, 在对所述 数据缓存区中的数据以及所述延时缓存区中的延时数据进行处理后, 将处理结果输出至存 储介质中进行存储。 6.根据权利要求1所述的数据处理方法, 其特征在于, 在存在延时的数据时, 所述方法 还包括: 对所述延时的数据进行标记, 将标记后的数据写入延时缓存区。 7.一种数据处理装置, 其特征在于, 所述数据处理装置包括读取模块以及写入模块; 所述读取模块用于从数据缓存区中读取数据, 设定时间窗口, 基于所述时间窗口判断 是否存在延时的数据; 所述写入模块用于将延时的数据写入延时缓存区, 并对未。

6、延时的数据进行处理。 8.根据权利要求7所述的数据处理装置, 其特征在于, 所述读取模块用于: 获取读取的数据的时间戳, 判断所述时间戳是否在当前时刻的时间窗口内; 若所述时间戳在所述当前时刻的时间窗口内, 判定所述数据未延时, 若所述时间戳未 在所述当前时刻的时间窗口内, 且所述时间戳在上一个时刻的时间窗口内, 判定所述数据 延时。 9.一种电子设备, 其特征在于, 包括处理器及存储有计算机指令的非易失性存储器, 所 述计算机指令被所述处理器执行时, 所述电子设备执行权利要求1-6中任意一项所述的数 据处理方法。 权利要求书 1/2 页 2 CN 110990438 A 2 10.一种存储介。

7、质, 其特征在于, 所述存储介质中存储有计算机程序, 所述计算机程序 被执行时实现权利要求1-6中任意一项所述的数据处理方法。 权利要求书 2/2 页 3 CN 110990438 A 3 数据处理方法、 装置、 电子设备和存储介质 技术领域 0001 本发明涉及数据处理技术领域, 具体而言, 涉及一种数据处理方法、 装置、 电子设 备和存储介质。 背景技术 0002 随着流式计算在大数据时代的飞速发展, 对流式数据的实时性、 质量、 可靠性和可 用性都提出了越来越高的要求, 流式计算引擎会进行大量的实时计算和读取海量的数据。 目前, 很多场景下都使用lambda架构来进行流式数据计算处理, 。

8、lambda架构分为三层, 分别 是批处理层(Batch Layer), 服务层(Serving Layer)和加速层(Speed Layer), 通过lambda 架构进行流式数据处理, 如果其中的某一层的逻辑变了, 其他两层或某一层的逻辑也要跟 着变, 导致层与层之间的耦合度较大, 且数据可能会丢失, 导致数据计算结果不精确。 发明内容 0003 基于上述研究, 本发明提供了一种数据处理方法、 装置、 电子设备和存储介质, 以 改善上述问题。 0004 本发明的实施例可以这样实现: 0005 第一方面, 本发明实施例提供一种数据处理方法, 所述方法包括: 0006 从数据缓存区中读取数据,。

9、 设定时间窗口, 基于所述时间窗口判断是否存在延时 的数据; 0007 将延时的数据写入延时缓存区, 并对未延时的数据进行处理。 0008 在可选的实施方式中, 所述基于所述时间窗口判断是否存在延时的数据的步骤包 括: 0009 获取读取的数据的时间戳, 判断所述时间戳是否在当前时刻的时间窗口内; 0010 若所述时间戳在所述当前时刻的时间窗口内, 判定所述数据未延时, 若所述时间 戳未在所述当前时刻的时间窗口内, 且所述时间戳在上一个时刻的时间窗口内, 判定所述 数据延时。 0011 在可选的实施方式中, 基于所述时间窗口判断是否存在延时的数据的步骤, 包括: 0012 获取读取的数据的时间。

10、戳, 判断所述时间戳是否在当前时刻的可延迟时间内; 其 中, 所述可延迟时间为当前时刻的时间窗口后可延迟的时间段与当前时刻的时间窗口之 和; 0013 若所述时间戳在所述可延迟时间内, 判定所述数据未延时, 若未在所述可延迟时 间内, 且所述时间戳在上一个时刻的可延迟时间内, 判定所述数据延时。 0014 在可选的实施方式中, 所述方法还包括: 0015 在将延时的数据写入延时缓存区之后, 读取所述数据缓存区中的数据以及所述延 时缓存区中的延时数据, 基于相同长度的时间窗口, 对所述数据缓存区中的数据以及所述 延时缓存区中的延时数据进行处理。 说明书 1/9 页 4 CN 110990438 。

11、A 4 0016 在可选的实施方式中, 所述方法还包括: 0017 在对未延时的数据进行处理后, 将处理结果输出至存储介质中进行存储; 或, 在对 所述数据缓存区中的数据以及所述延时缓存区中的延时数据进行处理后, 将处理结果输出 至存储介质中进行存储。 0018 在可选的实施方式中, 在存在延时的数据时, 所述方法还包括: 0019 对所述延时的数据进行标记, 将标记后的数据写入延时缓存区。 0020 第二方面, 本发明实施例提供一种数据处理装置, 所述数据处理装置包括读取模 块以及写入模块; 0021 所述读取模块用于从数据缓存区中读取数据, 设定时间窗口, 基于所述时间窗口 判断是否存在延。

12、时的数据; 0022 所述写入模块用于将延时的数据写入延时缓存区, 并对未延时的数据进行处理。 0023 在可选的实施方式中, 所述读取模块用于: 0024 获取读取的数据的时间戳, 判断所述时间戳是否在当前时刻的时间窗口内; 0025 若所述时间戳在所述当前时刻的时间窗口内, 判定所述数据未延时, 若所述时间 戳未在所述当前时刻的时间窗口内, 且所述时间戳在上一个时刻的时间窗口内, 判定所述 数据延时。 0026 第三方面, 本发明实施例提供一种电子设备, 包括处理器及存储有计算机指令的 非易失性存储器, 所述计算机指令被所述处理器执行时, 所述电子设备执行前述实施方式 中任意一项所述的数据。

13、处理方法。 0027 第四方面, 本发明实施例提供一种存储介质, 所述存储介质中存储有计算机程序, 所述计算机程序被执行时实现前述实施方式中任意一项所述的数据处理方法。 0028 本发明实施例提供的数据处理方法、 装置、 电子设备和存储介质, 通过从数据缓存 区中读取数据, 设定时间窗口, 基于时间窗口判断是否存在延时的数据, 然后将延时的数据 写入延时缓存区, 并对未延时的数据进行处理, 整个处理过程使用相同的逻辑, 降低了数据 处理的耦合度, 并且延时的数据不会丢失, 提高了数据计算的精确性。 附图说明 0029 为了更清楚地说明本发明实施例的技术方案, 下面将对实施例中所需要使用的附 图。

14、作简单地介绍, 应当理解, 以下附图仅示出了本发明的某些实施例, 因此不应被看作是对 范围的限定, 对于本领域普通技术人员来讲, 在不付出创造性劳动的前提下, 还可以根据这 些附图获得其他相关的附图。 0030 图1为现有技术中数据处理的一种原理示意图。 0031 图2为本发明实施例所提供的电子设备的一种方框示意图。 0032 图3为本发明实施例所提供的数据处理方法的一种流程示意图。 0033 图4为本发明实施例所提供的数据处理方法的子步骤流程示意图之一。 0034 图5为本发明实施例所提供的数据处理方法的子步骤流程示意图之二。 0035 图6为本发明实施例所提供的数据处理方法的一种应用示意图。

15、。 0036 图7为本发明实施例所提供的数据处理方法的另一种应用示意图。 0037 图8为本发明实施例所提供的数据处理装置的一种方框示意图。 说明书 2/9 页 5 CN 110990438 A 5 0038 图标: 100-电子设备; 10-数据处理装置; 11-读取模块; 12-写入模块; 20-存储器; 30-处理器; 40-通信单元。 具体实施方式 0039 为使本发明实施例的目的、 技术方案和优点更加清楚, 下面将结合本发明实施例 中的附图, 对本发明实施例中的技术方案进行清楚、 完整地描述, 显然, 所描述的实施例是 本发明一部分实施例, 而不是全部的实施例。 通常在此处附图中描述。

16、和示出的本发明实施 例的组件可以以各种不同的配置来布置和设计。 0040 因此, 以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护 的本发明的范围, 而是仅仅表示本发明的选定实施例。 基于本发明中的实施例, 本领域普通 技术人员在没有作出创造性劳动前提下所获得的所有其他实施例, 都属于本发明保护的范 围。 0041 应注意到: 相似的标号和字母在下面的附图中表示类似项, 因此, 一旦某一项在一 个附图中被定义, 则在随后的附图中不需要对其进行进一步定义和解释。 0042 在本发明的描述中, 需要说明的是, 若出现术语 “上” 、“下” 、“内” 、“外” 等指示的方 位或位置关。

17、系为基于附图所示的方位或位置关系, 或者是该发明产品使用时惯常摆放的方 位或位置关系, 仅是为了便于描述本发明和简化描述, 而不是指示或暗示所指的装置或元 件必须具有特定的方位、 以特定的方位构造和操作, 因此不能理解为对本发明的限制。 0043 此外, 若出现术语 “第一” 、“第二” 等仅用于区分描述, 而不能理解为指示或暗示相 对重要性。 0044 需要说明的是, 在不冲突的情况下, 本发明的实施例中的特征可以相互结合。 0045 目前, 很多场景下都使用lambda架构来进行流式数据计算处理, 如图1所示, lambda架构分为三层, 分别是批处理层(Batch Layer), 服务层。

18、(Serving Layer)和加速层 (Speed Layer), 其中, 批处理层用于存储数据集和在数据集上预先计算查询函数, 构建查 询所对应的view。 批处理层处理的是全体数据集, 根据全体离线数据集直接得Batch View。 加速层是用来处理增量的实时数据, 对数据进行计算并生成Real-time View, 处理的是最 近的增量数据流, 接收到新数据时不断更新Real-time View。 服务层用于响应用户的查询 请求, 合并Batch View和Real-time View中的结果数据集到最终的数据集。 其中, View是 lambda架构的一个核心概念, 它是针对查询的优。

19、化, 通过View即可以快速得到查询结果。 0046 通过lambda架构对流式数据进行处理时, 由于批处理层、 加速层和服务层用到的 框架可能不一样, 例如, 批处理层可以用海杜普(Hadoop)、 Spark和弗林克(Flink)等框架计 算, 加速层可以用Storm、 Spark streaming和Flink等框架计算, 导致其开发成本较高, 而且 批处理层和加速层处理的结果有可能不一致, 导致其溯源难度大, 用户体验性差, 并且, 如 果lambda架构中的某一层逻辑变了, 其他两层或某一层的逻辑也要跟着变, 导致层与层之 间的耦合度较大, 除此之外, 加速层在对实时数据进行处理时,。

20、 可能会导致数据的丢失, 导 致数据计算结果不精确。 0047 基于上述研究, 本实施例提供了一种数据处理方法, 以改善上述问题。 0048 本实施例提供的数据处理方法, 应用于图2所示的电子设备100, 由所述电子设备 100执行本实施例所提供的数据处理方法。 在本实施例中, 所述电子设备100可以是, 但不限 说明书 3/9 页 6 CN 110990438 A 6 于, 个人电脑(Personal Computer, PC)、 笔记本电脑、 个人数字助理(Personal Digital Assistant, PDA)或服务器等具有处理能力的电子设备100。 0049 所述电子设备100。

21、包括数据处理装置10、 存储器20、 处理器30以及通信单元40; 所 述存储器20、 处理器30以及通信单元40各个元件相互之间直接或间接地电性连接, 以实现 数据的传输或交互。 例如, 这些元件相互直接可通过一条或多条通讯总线或信号线实现电 性连接。 所述数据处理装置10包括至少一个可以软件或固件(Firmware)的形式存储于所述 存储器20中的软件功能模块, 所述处理器30通过运行存储在存储器20内的软件程序以及模 块, 从而执行各种功能应用以及数据处理。 0050 所述存储器20可以是, 但不限于, 随机存取存储器(Random Access Memory, RAM), 只读存储器(。

22、Read Only Memory, ROM), 可编程只读存储器(Programmable Read-Only Memory, PROM), 可擦除只读存储器(Erasable Programmable Read-Only Memory, EPROM), 电可擦除只读存储器(Electric Erasable Programmable Read-Only Memory, EEPROM)等。 0051 所述处理器30可以是一种集成电路芯片, 具有信号的处理能力。 所述处理器30可 以是通用处理器, 包括中央处理器(Central Processing Unit, CPU)、 网络处理器(Netw。

23、ork Processor, NP)等。 0052 所述通信单元40用于通过网络建立所述电子设备100与其他外部设备之间的通信 连接, 并通过所述网络进行数据传输。 0053 可以理解, 图2所示的结构仅为示意, 所述电子设备100还可包括比图2中所示更多 或者更少的组件, 或者具有与图2所示不同的配置。 图2中所示的各组件可以采用硬件、 软件 或其组合实现。 0054 基于上述电子设备100的实现架构, 请结合参阅图3, 图3为本实施例所提供的数据 处理方法的流程示意图, 下面对图3所示的数据处理方法的具体流程进行详细阐述。 0055 步骤S10: 从数据缓存区中读取数据, 设定时间窗口, 。

24、基于所述时间窗口判断是否 存在延时的数据。 0056 步骤S20: 将延时的数据写入延时缓存区, 并对未延时的数据进行处理。 0057 其中, 作为一种可选的实施方式中, 本实施例可基于kafka集群对数据进行缓存, kafka是一个分布式消息系统, 具有高水平扩展和高吞吐量的特点。 kafka集群中的消息, 是 通过topic(主题)来进行组织的, 一个Topic中的消息数据按照多个分区组织, 分区是kafka 消息队列组织的最小单位, 一个分区可以看作是一个先入先出(First Input First Output, FIFO)的队列, 因此, 本实施例可利用kafka集群的topic来缓。

25、存数据。 可选的, 本实 施例中, 将流数据接入至kafka集群中的input-topic进行缓存, 该input-topic则为数据缓 存区, 将延时的数据接入至kafka集群中的late-topic进行缓存, 该late-topic则为延时缓 存区。 0058 作为另一种可选的实施方式, 本实施例也可以基于hive、 关系型数据库管理系统 (MySQL)等数据存储工具对数据进行缓存, 对延时的数据和流数据分别进行缓存, 从而构建 数据缓存区和延时缓存区, 并在数据缓存区中缓存流数据, 在延时缓存区中缓存延时的数 据。 0059 本实施例所提供的数据处理方法在基于时间窗口判断是否存在延时的数。

26、据后, 一 方面将延时的数据写入延时缓存区进行缓存, 另一方面基于设定的时间窗口, 触发算子对 说明书 4/9 页 7 CN 110990438 A 7 未延时的数据进行处理。 可选的, 在本实施中, 所述未延时的数据的处理可以是, 但不限于, 对未延时的数据进行均值计算、 归一化计算、 求和等处理。 0060 本实施例所提供的数据处理方法, 整个处理流程使用相同的逻辑, 通过设定的时 间窗口判断是否存在延时的数据, 将延时的数据写入延时缓存区, 并对未延时的数据进行 处理, 解决了数据处理过程中耦合性高的问题, 并且简化了编码过程, 代码复用率高。 并且 本实施例所提供的数据处理方法通过将延。

27、时的数据写入延时缓存区, 保证了延时数据在处 理过程中不被丢失, 提高了数据处理的精确性。 0061 在具体地应用场景中, 在进行数据处理时, 数据的发生时间、 接入计算引擎的时 间、 算子的处理时间都不尽相同, 数据进入计算引擎会经过复杂的网络传输, 当在传输过程 中的某一个环节出现问题或传输时, 网络发生延迟, 传输的数据就会出现延时到达的情况。 因而在流式计算中, 是无法确定数据到来的时刻和到来的顺序, 也无法将全部的数据存储 起来。 而为了判断数据是否为延时数据, 在本实施例中, 每个数据都带有时间戳, 根据数据 的时间戳来判断数据是否延时。 0062 在一种示例性的实施方式中, 请结。

28、合参阅图4, 所述基于所述时间窗口判断是否存 在延时的数据的步骤包括步骤S11至步骤S13。 0063 步骤S11: 获取读取的数据的时间戳, 判断所述时间戳是否在当前时刻的时间窗口 内。 0064 步骤S12: 若所述时间戳在所述当前时刻的时间窗口内, 判定所述数据未延时。 0065 步骤S13: 若所述时间戳未在所述当前时刻的时间窗口内, 且所述时间戳在上一个 时刻的时间窗口内, 判定所述数据延时。 0066 在本实施例中, 所述时间窗口可以为滚动时间窗口、 滑动时间窗口或者会话窗口 等。 以滚动时间窗口为例, 若滚动时间窗口的长度为1小时, 当前时刻为2点, 则当前时刻的 时间窗口为2点。

29、到3点, 上一时刻的时间窗口为1点到两点, 下一个时刻的时间窗口为3点到4 点。 以滑动时间窗口为例, 设定滑动步长为半小时, 长度为1小时, 当前时刻为1点, 则当前时 刻的时间窗口为2点到3点, 上一时刻的时间窗口为1点半到2点半, 下一个时刻的时间窗口 为2点半到3点半, 其中, 滑动窗口的窗口在不同时间区间之间有重叠。 可选的, 在本实施例 中, 时间窗口的类型与长度可根据实际需求而设定, 在本实施例中不做限定。 0067 基于时间窗口的设定, 在从数据缓存区中读取数据后, 获取读取的数据的时间戳, 判断时间戳是否在当前时刻的时间窗口内, 若时间戳在当前时刻的时间窗口内, 判定数据 未。

30、延时。 若时间戳未在当前时刻的时间窗口内, 且时间戳在上一个时刻的时间窗口内, 判定 数据延时。 0068 例如, 以滚动时间窗口为例, 设定时间窗口的长度为10分钟, 当前时刻为2点, 则当 前时刻的时间窗口为2点到2点10分, 上一个时刻的时间窗口为1点50到2点, 若读取到的数 据的时间戳为2点5分, 该数据的时间戳在当前时刻的时间窗口内, 则该数据未延时, 若该数 据的时间戳为1点59分, 则该数据的时间戳未在当前时刻的时间窗口内, 而该数据的时间戳 在上一个时刻的时间窗口内, 则该数据延时。 0069 由于使用接入时间或算子执行时间进行统计, 其结果会和实际的数据产生时间有 偏差, 。

31、人为的引入了误差。 为了降低误差, 可选的, 在本实施例中, 采用数据的发生时间作为 时间戳。 说明书 5/9 页 8 CN 110990438 A 8 0070 在可选的实施方式中, 为了提高数据读取的完整性以及准确性, 请结合参阅图5, 基于所述时间窗口判断是否存在延时的数据的步骤还包括步骤S14至步骤S16。 0071 步骤S14: 获取读取的数据的时间戳, 判断所述时间戳是否在当前时刻的可延迟时 间内。 0072 步骤S15: 若所述时间戳在所述可延迟时间内, 判定所述数据未延时。 0073 步骤S16: 若未在所述可延迟时间内, 且所述时间戳在上一个时刻的可延迟时间 内, 判定所述数。

32、据延时。 0074 其中, 所述可延迟时间为当前时刻的时间窗口后可延迟的时间段与当前时刻的时 间窗口之和。 例如, 以滚动时间窗口为例, 若滚动时间窗口的长度为1小时, 可延迟时间段为 半小时, 当前时刻为2点, 则当前时刻的可延迟时间为2点至3点半, 上一时刻的可延迟时间 为零点半到两点, 下一个时刻的可延迟时间为3点半到5点。 0075 在本实施例中, 设定可延迟时间, 若读取到的数据的时间戳在可延迟时间内, 该数 据都为未延时数据。 例如, 以滚动时间窗口为例, 设定时间窗口的长度为10分钟, 可延迟时 间段为5分钟, 当前时刻为2点, 则当前时刻的时间窗口为2点到2点10分, 当前时刻。

33、的可延迟 时间为2点到2点15分, 若读取到的数据的时间戳均在2点到2点15分内, 则读取到的数据均 为未延时。 0076 本实施例通过设定可延迟时间, 增加了数据的可延迟时间段, 进而使得在时间窗 口后可延迟时间段内, 读取到的时间戳在时间窗口内的数据也为未延时数据, 提高了数据 读取的完整性以及准确性。 0077 本实施例对数据设定时间戳, 根据时间戳即可查找出延时的数据, 在查找出延时 的数据后, 将延时的数据写入延时缓存区中进行缓存。 而对于未延时的数据, 则基于时间窗 口进行计算处理。 0078 因为延时数据的产生, 进而无法保证读取到的数据是否能有序到达, 但是在进行 时间窗口的计。

34、算的时候, 又不能无限期的等下去, 所以必须要有个机制来保证一个特定的 时间后, 必须触发时间窗口去进行计算。 可选的, 在本实施例中采用水印机制(watermark) 来处理乱序的流数据。 0079 在本实施例中, 在从数据缓存区中读取的数据后, 根据读取的数据的发生时间, 生 成含有水印时间的时间戳。 水印时间可由数据源或是watermark生成器生成。 具有t时刻的 水印时间可以理解为所有小于或等于t时刻(即为t时刻之前)的数据都(在某种合理的概率 上)已经到达了, 即已经读取得到。 若读取到的数据的时间戳中的水印时间为当前时刻的时 间窗口的结束时间点, 则会触发时间窗口进行计算, 对已。

35、读取且在时间窗口内的数据进行 处理, 并将处理结果输出到存储介质中进行存储。 0080 例如, 当前时刻的时间窗口为1点至1点10分, 若此时读取到的数据的时间戳中的 水印时间为1点10分, 电子设备100则会默认在1点10分之间的数据的都已到达, 即已读取得 到, 电子设备100触发时间窗口进行计算, 即对1点至1点10分读取得到的数据进行计算, 并 将计算结果输出至存储介质中进行存储。 而在1点10分之后读取到的数据, 若数据的时间戳 在1点至1点10分这个时间窗口内, 则为延时数据。 0081 若是仅对未延时的数据进行处理, 则处理过程会丢失延时的数据, 从而导致数据 的不完整, 降低数。

36、据处理结果的准确性, 为了提高数据处理的准确性, 在将延时的数据写入 说明书 6/9 页 9 CN 110990438 A 9 延时缓存区之后, 本实施例所提供的数据处理方法还包括以下过程: 0082 读取所述数据缓存区中的数据以及所述延时缓存区中的延时数据, 基于相同长度 的时间窗口, 对所述数据缓存区中的数据以及所述延时缓存区中的延时数据进行处理。 0083 在本实施例中, 数据缓存区在缓存新产生的流数据的同时, 还可以根据设定时间 段保留已经读取的流数据, 其中, 设定时间段可以根据需求而设定, 例如, 设定时间段为一 个月, 则数据缓存区基于一个月的时间周期进行更新, 即对保留时间为一。

37、个月的流数据进 行清理。 本实施例基于设定时间段保留已读取的流数据, 因此, 本实施例中数据缓存区中的 流数据可重复利用, 当需要对数据缓存区中的数据进行重新计算时, 只需要重新读取数据 缓存区中的流数据, 进行计算即可。 0084 可以理解地, 延时缓存区在缓存新产生的延时的数据的同时, 也可以根据设定时 间段保留延时的数据。 因此, 为了提高数据处理的精确性, 在将延时的数据写入延时缓存区 后, 可新起一任务再次同时读取数据缓存区中的已被读取的数据以及延时缓存区中的延时 数据, 将数据缓存区中的数据以及延时缓存区中的延时数据一起进行处理。 0085 其中, 再次读取的数据缓存区中的数据以及。

38、延时缓存区中的延时数据为同一时间 段的数据, 然后基于相同长度的时间窗口, 对数据缓存区中的数据以及延时缓存区中的延 时数据进行处理。 例如, 若要处理前一个月的数据, 则需要同时读取前一个月内数据缓存区 中的数据以及延时缓存区中的延时数据, 假设设定的时间窗口的长度为10分钟, 则以长度 为10分钟的时间窗口对同时读取到的同一时间段内数据缓存区中的数据以及延时缓存区 中的延时数据进行处理, 处理的计算逻辑与对未延时的数据处理的计算逻辑相同, 从而使 整个处理流程都使用相同的逻辑, 提高代码的复用率。 0086 本实施例在将延时的数据写入延时缓存区之后, 通过再次读取数据缓存区中的数 据以及延。

39、时缓存区中的延时数据, 并基于相同长度的时间窗口, 对数据缓存区中的数据以 及延时缓存区中的延时数据进行处理, 从而使得处理过程中包括了延时的数据, 保证了数 据的完整性, 提高了数据处理结果的准确性。 0087 可选的, 在本实施例中, 再次读取数据缓存区中的数据以及延时缓存区中的延时 数据, 并基于相同长度的时间窗口, 对数据缓存区中的数据以及延时缓存区中的延时数据 的处理过程, 可以与从数据缓存区中读取数据, 基于设定的时间窗口判断是否存在延时的 数据, 将延时的数据写入延时缓存区, 并对未延时的数据进行处理的处理过程并行, 如图6 所示, 图6中, job1为从数据缓存区中读取数据, 。

40、基于设定的时间窗口判断是否存在延时的 数据, 将延时的数据写入延时缓存区, 并对未延时的数据进行处理的处理过程, job2为再次 读取数据缓存区中的数据以及延时缓存区中的延时数据, 并基于相同长度的时间窗口, 对 数据缓存区中的数据以及延时缓存区中的延时数据的处理过程, job1和job2并行处理。 0088 基于处理过程的并行, 可选的, 在本实施例中, 若job2的处理进度赶上了job1的处 理进度, 则可将job1的处理结果替换为job2的处理结果, 即以job2的处理结果代替job1的 处理结果。 0089 本实施例所提供的数据处理方法, 还可以根据任务需求, 增加其他的任务, 并将多。

41、 个任务并行处理, 例如, 如图7所示, 本实施例还可以根据其他的业务新起任务, 增加job3, job3可以为对数据缓存区中的数据重新进行计算, 其中, job1、 job2和job3可以并行处理。 0090 可选的, 在本实施例中, 如在对未延时的数据进行处理后, 将处理结果输出至存储 说明书 7/9 页 10 CN 110990438 A 10 介质中进行存储一样, 在对数据缓存区中的数据以及延时缓存区中的延时数据进行处理 后, 也可以将处理结果输出至存储介质中进行存储, 然后用户可从存储介质中获取这两个 处理结果。 可选的, 在本实施例中, 所述存储介质可以是, 但不限于U盘、 移动硬。

42、盘、 只读存储 器(ROM, Read-Only Memory)、 随机存取存储器(RAM, Random Access Memory)、 磁碟或者光 盘等各种可以存储数据的介质。 0091 作为一种可选的实施方式, 在本实施例中, 也可以将对未延时的数据进行处理的 处理结果以及对数据缓存区中的数据以及延时缓存区中的延时数据进行处理的处理结果 直接输出至用户所使用的用户端中。 0092 作为一种可选的实施方式, 在本实施例中, 缓存于延时缓存区的延时数据, 可以再 次被利用, 即与数据缓存区中的数据一起进行处理, 也可以单独被处理, 或者直接输出等, 具体地处理方式, 根据业务需求而设定。 0。

43、093 在可选的实施方式中, 为了提高数据的处理效率, 在存在延时的数据时, 所述方法 还包括: 0094 对所述延时的数据进行标记, 将标记后的数据写入延时缓存区。 0095 其中, 通过对延时的数据进行标记, 然后根据标记, 将标记后的数据写入到延时缓 存区中。 在再次同时读取数据缓存区中的数据以及延时缓存区中的延时数据时, 也可以根 据标记对延时数据进行区分, 提高数据处理的效率。 可选的, 在本实施例中, 所述标记可以 为tag标签, 其标签名字可以自定义。 0096 在可选的实施方式中, 若需处理的数据量很大时, 本实施例提供的数据处理方法, 还可以基于集群来执。 所述集群可以是, 。

44、但不限于yarn、 k8s(kubernetes)、 mesos等集群。 0097 本实施例提供的数据处理方法, 通过从数据缓存区中读取数据, 设定时间窗口, 基 于时间窗口判断是否存在延时的数据, 然后将延时的数据写入延时缓存区, 并对未延时的 数据进行处理, 整个处理过程使用相同的逻辑, 降低了数据处理的耦合度, 并且延时的数据 不会丢失, 提高了数据计算的精确性。 0098 在上述基础上, 请结合参阅图8, 本实施例还提供一种数据处理装置10, 所述数据 处理装置10包括读取模块11以及写入模块12。 0099 所述读取模块11用于从数据缓存区中读取数据, 设定时间窗口, 基于所述时间窗。

45、 口判断是否存在延时的数据。 0100 所述写入模块12用于将延时的数据写入延时缓存区, 并对未延时的数据进行处 理。 0101 所述读取模块11用于: 0102 获取读取的数据的时间戳, 判断所述时间戳是否在当前时刻的时间窗口内。 0103 若所述时间戳在所述当前时刻的时间窗口内, 判定所述数据未延时, 若所述时间 戳未在所述当前时刻的时间窗口内, 且所述时间戳在上一个时刻的时间窗口内, 判定所述 数据延时。 0104 所属领域的技术人员可以清楚地了解到, 为描述的方便和简洁, 上述描述的数据 处理装置10的具体工作过程, 可以参考前述方法中的对应过程, 在此不再过多赘述。 0105 在上述。

46、基础上, 本发明实施例还提供一种电子设备, 包括处理器及存储有计算机 指令的非易失性存储器, 所述计算机指令被所述处理器执行时, 所述电子设备执行前述实 说明书 8/9 页 11 CN 110990438 A 11 施方式中任意一项所述的数据处理方法。 0106 在上述基础上, 本发明实施例提供一种存储介质, 所述存储介质中存储有计算机 程序, 所述计算机程序被执行时实现前述实施方式中任意一项所述的数据处理方法。 0107 所属领域的技术人员可以清楚地了解到, 为描述的方便和简洁, 上述描述的电子 设备和存储介质的具体工作过程, 可以参考前述方法中的对应过程, 在此不再过多赘述。 0108 综。

47、上, 本实施例提供的数据处理方法、 装置、 电子设备和存储介质, 通过从数据缓 存区中读取数据, 设定时间窗口, 基于时间窗口判断是否存在延时的数据, 然后将延时的数 据写入延时缓存区, 并对未延时的数据进行处理, 整个处理过程使用相同的逻辑, 降低了数 据处理的耦合度, 并且延时的数据不会丢失, 提高了数据计算的精确性。 0109 以上所述, 仅为本发明的具体实施方式, 但本发明的保护范围并不局限于此, 任何 熟悉本技术领域的技术人员在本发明揭露的技术范围内, 可轻易想到的变化或替换, 都应 涵盖在本发明的保护范围之内。 因此, 本发明的保护范围应以所述权利要求的保护范围为 准。 说明书 9/9 页 12 CN 110990438 A 12 图1 图2 说明书附图 1/3 页 13 CN 110990438 A 13 图3 图4 图5 说明书附图 2/3 页 14 CN 110990438 A 14 图6 图7 图8 说明书附图 3/3 页 15 CN 110990438 A 15 。

展开阅读全文
内容关键字: 数据处理 方法 装置 电子设备 存储 介质
关于本文
本文标题:数据处理方法、装置、电子设备和存储介质.pdf
链接地址:https://www.zhuanlichaxun.net/pdf/10725195.html
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2017-2018 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1