数据处理方法、装置和存储介质及电子装置与流程

文档序号:31998143发布日期:2022-11-02 09:38阅读:47来源:国知局
数据处理方法、装置和存储介质及电子装置与流程

1.本技术涉及计算机领域,具体而言,涉及一种数据处理方法、存储介质及电 子装置。


背景技术:

2.相关技术对数据的处理,通常不会对待处理的数据的格式进行处理,但并不 是所有的数据格式都适用于高效的处理方式,进而对于不适用于高效处理方式的 数据格式的数据,导出该数据的处理效率较低的问题出现。即,相关技术中存在 数据的处理较低的技术问题。


技术实现要素:

3.本技术实施例提供了一种数据处理方法、装置和存储介质及电子装置,以至 少解决数据的处理效率较低的技术问题。
4.根据本技术实施例的一个方面,提供了一种数据处理方法,包括:获取分布 式消息系统中初始格式的消息数据,其中,上述初始格式为上述分布式消息系统 对应的数据格式,上述消息数据为待写入分布式文件系统的数据;对上述初始格 式的消息数据进行格式转换,得到存储格式的消息数据,其中,上述存储格式为 上述分布式文件系统支持以预设存储方式进行数据存储的数据格式;将上述存储 格式的消息数据以上述预设存储方式进行数据存储,并写入上述分布式文件系统。
5.根据本技术实施例的另一方面,还提供了一种数据处理装置,包括:第一获 取单元,用于获取分布式消息系统中初始格式的消息数据,其中,上述初始格式 为上述分布式消息系统对应的数据格式,上述消息数据为待写入分布式文件系统 的数据;第一转换单元,用于对上述初始格式的消息数据进行格式转换,得到存 储格式的消息数据,其中,上述存储格式为上述分布式文件系统支持以预设存储 方式进行数据存储的数据格式;第一存储单元,用于将上述存储格式的消息数据 以上述预设存储方式进行数据存储,并写入上述分布式文件系统。
6.作为一种可选的方案,上述第一转换单元,包括:第一获取模块,用于获取 上述初始格式的消息数据对应的映射对象;第一查询模块,用于在获取到配置数 据库中的多个配置数据的情况下,从上述多个配置数据中查询出上述初始格式的 消息数据对应的映射对象匹配的目标配置数据,其中,上述配置数据的数据格式 为上述存储格式;第二获取模块,用于根据上述目标配置数据获取上述存储格式 的消息数据。
7.作为一种可选的方案,上述第二获取模块包括;第一确定子模块,确定上述 目标配置数据中的每个字段对应的数值;第一构建子模块,利用上述每个字段对 应的数值构建上述存储格式的消息数据。
8.作为一种可选的方案,上述第一单元,包括第一存储模块,用于在上述获取 分布式消息系统中初始格式的消息数据之前,加载上述多个配置数据,并将上述 多个配置数据
以数据查询格式存储至上述配置数据库,其中,上述数据查询格式 的数据被设置为利用上述映射对象进行匹配查询。
9.作为一种可选的方案,根据上述装置,第一存储单元包括以下至少之一:第 二存储模块,用于将上述存储格式的消息数据以列式存储方式进行数据存储,并 写入上述分布式文件系统,其中,上述预设存储方式包括上述列式存储方式;第 三存储模块,用于将上述存储格式的消息数据以行式存储方式进行数据存储,并 写入上述分布式文件系统,其中,上述预设存储方式包括上述行式存储方式。
10.作为一种可选的方案,上述装置包括,第二转换单元,在上述获取分布式消 息系统中初始格式的消息数据之后,对上述初始格式的消息数据进行格式转换, 得到压缩格式的消息数据,其中,上述压缩格式为上述分布式文件系统支持以目 标压缩方式进行数据压缩的数据格式;第一压缩单元,用于将上述压缩格式的消 息数据以上述目标压缩方式进行数据压缩,并写入上述分布式文件系统。
11.作为一种可选的方案,上述装置包括,第一处理单元,在上述获取分布式消 息系统中初始格式的消息数据之后,在上述初始格式的消息数据对应的数据量大 于或等于第一预设阈值的情况下,对上述初始格式的消息数据内相似度小于或等 于第二预设阈值的消息数据进行统一处理。
12.根据本技术实施例的又一个方面,提供一种计算机程序产品或计算机程序, 该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可 读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令, 处理器执行该计算机指令,使得该计算机设备执行如以上数据处理方法。
13.根据本技术实施例的又一方面,还提供了一种电子设备,包括存储器、处理 器及存储在存储器上并可在处理器上运行的计算机程序,其中,上述处理器通过 计算机程序执行上述的数据处理方法。
14.在本技术实施例中,获取分布式消息系统中初始格式的消息数据,其中,上 述初始格式为上述分布式消息系统对应的数据格式,上述消息数据为待写入分布 式文件系统的数据;对上述初始格式的消息数据进行格式转换,得到存储格式的 消息数据,其中,上述存储格式为上述分布式文件系统支持以预设存储方式进行 数据存储的数据格式;将上述存储格式的消息数据以上述预设存储方式进行数据 存储,并写入上述分布式文件系统。进而达到了提高程序代码的适配性的目的, 从而实现了极大的缩短了开发周期,有利于项目的快速迭代的技术效果,进而解 决了数据处理效率较低的技术问题。
附图说明
15.此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本技术的 实施例,并与说明书一起用于解释本技术的原理。
16.为了更清楚地说明本技术实施例或现有技术中的技术方案,下面将对实施例 或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普 通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其 他的附图。
17.图1是根据本技术实施例的一种智能设备的交互方法的硬件环境示意图;
18.图2是根据本技术实施例的一种可选的数据处理方法的流程示意图;
19.图3是根据本技术实施例的另一种可选的数据处理方法的实例示意图;
20.图4是根据本技术实施例的另一种可选的数据处理方法的实例示意图;
21.图5是根据本技术实施例的另一种可选的数据处理方法的实例示意图;
22.图6是根据本技术实施例的一种可选的数据处理方法装置的示意图;
23.图7是根据本技术实施例的一种可选的电子设备的结构示意图。
具体实施方式
24.为了使本技术领域的人员更好地理解本技术方案,下面将结合本技术实施例 中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述 的实施例仅仅是本技术一部分的实施例,而不是全部的实施例。基于本技术中的 实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实 施例,都应当属于本技术保护的范围。
25.需要说明的是,本技术的说明书和权利要求书及上述附图中的术语“第一”、
ꢀ“
第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该 理解这样使用的数据在适当情况下可以互换,以便这里描述的本技术的实施例能 够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有
”ꢀ
以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或 单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元, 而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步 骤或单元。
26.根据本技术实施例的一个方面,提供了一种智能家居设备的交互方法。该智 能家居设备的交互方法广泛应用于智慧家庭(smart home)、智能家居、智能家 用设备生态、智慧住宅(intelligencehouse)生态等全屋智能数字化控制应用场景。 可选地,在本实施例中,上述智能家居设备的交互方法可以应用于如图1所示的 由终端设备102和服务器104所构成的硬件环境中。如图1所示,服务器104通 过网络与终端设备102进行连接,可用于为终端或终端上安装的客户端提供服务 (如应用服务等),可在服务器上或独立于服务器设置数据库,用于为服务器104 提供数据存储服务,可在服务器上或独立于服务器配置云计算和/或边缘计算服务, 用于为服务器104提供数据运算服务。
27.上述网络可以包括但不限于以下至少之一:有线网络,无线网络。上述有线 网络可以包括但不限于以下至少之一:广域网,城域网,局域网,上述无线网络 可以包括但不限于以下至少之一:wifi(wireless fidelity,无线保真),蓝牙。 终端设备102可以并不限定于为pc、手机、平板电脑、智能空调、智能烟机、 智能冰箱、智能烤箱、智能炉灶、智能洗衣机、智能热水器、智能洗涤设备、智 能洗碗机、智能投影设备、智能电视、智能晾衣架、智能窗帘、智能影音、智能 插座、智能音响、智能音箱、智能新风设备、智能厨卫设备、智能卫浴设备、智 能扫地机器人、智能擦窗机器人、智能拖地机器人、智能空气净化设备、智能蒸 箱、智能微波炉、智能厨宝、智能净化器、智能饮水机、智能门锁等。
28.可选地,作为一种可选的实施方式,如图2所示,数据处理方法包括:
29.s202,获取分布式消息系统中初始格式的消息数据,其中,初始格式为分布 式消息系统对应的数据格式,消息数据为待写入分布式文件系统的数据;
30.s204,对初始格式的消息数据进行格式转换,得到存储格式的消息数据,其 中,存
储格式为分布式文件系统支持以预设存储方式进行数据存储的数据格式;
31.s206,将存储格式的消息数据以预设存储方式进行数据存储,并写入分布式 文件系统。
32.可选地,在本实施例中,上述数据处理方法可以但不限于应用在订阅消息系 统中,为了满足用户对大数据报表的时效性需求,kafka作为高吞吐量的开源分 布式发布订阅消息系统,被数千家公司用于高性能数据管道、流分析、数据集成 和关键任务应用程序。但是被数千家公司利用的弊端就显现出来,不同公司不同 场景数据是不同的,而需要对这些差异较大的数据进行解析时,就要针对不同消 息识别不同代码逻辑,就会产生代码量较大,维护成本较高,可读性较差的技术 问题。
33.针对上述技术问题,现有技术手段是对kafka中的消息做转换,将原json 格式以textfile形式直接写入hdfs,但还存在问题:这种技术手段没有做压缩, 所以磁盘开销较大,数据解析开销较大,还需要进一步改进。
34.针对上述问题,本方案提出:程序在启动时加载schema配置文件到内存, 程序启动后订阅kafka的消息,针对不同的消息,从内存获取对应的schema信息, 由于消息都是json格式,将消息转为jsonobject,遍历jsonobject,找到schema 中的每个字段对应的值,构建parquet需要的schema。通过schema配置文件以参 数形式传入schema,再根据传入的schema,遍历jsonobject,找到schema中的 每个字段对应的值,构建parquet需要的schema的技术手段实现了程序代码量大 大减少,降低了维护成本,可读性好的有益效果。
35.可选地,在本实施例中,分布式消息系统可以但不限于kafka,是一个分布 式、支持分区的(partition)、多副本的(replica),基于zookeeper协调的分布 式消息系统,它的最大的特性就是可以实时的处理大量数据以满足各种需求场景: 比如基于hadoop的批处理系统、低延迟的实时系统、storm/spark流式处理引擎, web/nginx日志、访问日志,消息服务等等,又因为kafka具有高吞吐量、低延迟 的特点使得kafka每秒可以处理几十万条消息,且它的延迟最低只有几毫秒,故 越来越多不同业务和场景中的数据被发布在kafka中,而本技术就是针对解决消 费端需要分别解析kafka中不同的消息数据产生的可读性较差、效率较低的技术 问题;初始格式这里可以但不限于为json格式,是一种轻量级的数据交换格式, 易于人阅读和编写,同时也易于机器解析和生成;分布式文件系统可以但不限于 hdfs,能提供高吞吐量的数据访问,非常适合大规模数据集上的应用;存储格 式在本技术限定为parquet格式,一种支持嵌套结构的存储格式,并且使用了列 式存储的方式提升查询性能。
36.需要说明的是,获取分布式消息系统中初始格式的消息数据,其中,初始格 式为分布式消息系统对应的数据格式,消息数据为待写入分布式文件系统的数据; 对初始格式的消息数据进行格式转换,得到存储格式的消息数据,其中,存储格 式为分布式文件系统支持以预设存储方式进行数据存储的数据格式;将存储格式 的消息数据以预设存储方式进行数据存储,并写入分布式文件系统。通过将初始 格式转化为支持预设存储方式的存储格式的消息数据,可以实现了项目的快速迭 代,缩短开发周期的有益效果。
37.进一步举例说明,可选的例如图3所示,获取分布式消息系统302中初始格 式的消息数据,其中,初始格式为分布式消息系统对应的数据格式;对初始格式 的消息数据进行格式转换,得到存储格式的消息数据,其中,存储格式为分布式 文件系统304支持以预设存
储方式进行数据存储的数据格式;将存储格式的消息 数据以预设存储方式进行数据存储,并写入分布式文件系统304。
38.通过本技术提供的实施例,获取分布式消息系统中初始格式的消息数据,其 中,初始格式为分布式消息系统对应的数据格式,消息数据为待写入分布式文件 系统的数据;对初始格式的消息数据进行格式转换,得到存储格式的消息数据, 其中,存储格式为分布式文件系统支持以预设存储方式进行数据存储的数据格式; 将存储格式的消息数据以预设存储方式进行数据存储,并写入分布式文件系统。 进而达到了提高程序代码的适配性的目的,从而实现了极大的缩短了开发周期, 有利于项目的快速迭代的技术效果。
39.作为一种可选的方案,对初始格式的消息数据进行格式转换,得到存储格式 的消息数据包括:
40.s1,获取初始格式的消息数据对应的映射对象;
41.s2,在获取到配置数据库中的多个配置数据的情况下,从多个配置数据中查 询出初始格式的消息数据对应的映射对象匹配的目标配置数据,其中,配置数据 的数据格式为存储格式;
42.s3,根据目标配置数据获取存储格式的消息数据。
43.可选地,在本实施例中,映射对象可以但不限于初始格式json对应的 jsonobject;配置数据为程序在启动时加载到内存的schema配置文件。
44.需要说明的是,获取初始格式的消息数据对应的映射对象;在获取到配置数 据库中的多个配置数据的情况下,从多个配置数据中查询出初始格式的消息数据 对应的映射对象匹配的目标配置数据,其中,配置数据的数据格式为存储格式; 根据目标配置数据获取存储格式的消息数据。通过配置化的模式,起到节省解析 步骤和代码资源从而提高消息转换的效率的有益效果。
45.通过本技术提供的实施例,获取初始格式的消息数据对应的映射对象;在获 取到配置数据库中的多个配置数据的情况下,从多个配置数据中查询出初始格式 的消息数据对应的映射对象匹配的目标配置数据,其中,配置数据的数据格式为 存储格式;根据目标配置数据获取存储格式的消息数据,进而达到了节省根据不 同代码解析消息的步骤的目的,从而实现了降低了维护成本、缩短开发周期的技 术效果。
46.作为一种可选的方案,根据目标配置数据获取存储格式的消息数据包括:
47.s1,确定目标配置数据中的每个字段对应的数值;
48.s2,利用每个字段对应的数值构建存储格式的消息数据。
49.可选地,在本实施例中,利用每个字段对应的数值构建存储格式的消息数据 可以但不限于为,首先找到schema中的每个字段对应的值,根据字段对应的值 构建需要的schema。
50.需要说明的是,确定目标配置数据中的每个字段对应的数值;利用每个字段 对应的数值构建存储格式的消息数据。利用parquet支持的列式存储格式带来的 更高的压缩比,起到了节省空间的技术效果。
51.通过本技术提供的实施例,确定目标配置数据中的每个字段对应的数值;利 用每个字段对应的数值构建存储格式的消息数据,进而达到了提高构建消息数据 准确性的目的,从而实现了高效率转化数据格式的技术效果。
52.作为一种可选的方案,在获取分布式消息系统中初始格式的消息数据之前, 方法包括:
53.加载多个配置数据,并将多个配置数据以数据查询格式存储至配置数据库, 其中,数据查询格式的数据被设置为利用映射对象进行匹配查询。
54.可选地,在本实施例中,获取分布式消息系统中初始格式消息数据为json 格式,加载配置数据库,配置数据库中含有多个配置数据,从配置数据中查询出 json格式对应的映射对象匹配的parquet配置数据,并将多个配置数据存储在配 置数据库,根据配置数据中的每个字段对应的数值构建parquet的消息数据。
55.需要说明的是,加载多个配置数据,并将多个配置数据以数据查询格式存储 至配置数据库,其中,数据查询格式的数据被设置为利用映射对象进行匹配查询。 配置多个文件起到提高数据查询的灵活性,全面性的有益效果。
56.通过本技术提供的实施例,加载多个配置数据,并将多个配置数据以数据查 询格式存储至配置数据库,其中,数据查询格式的数据被设置为利用映射对象进 行匹配查询,进而达到了节省根据不同代码解析消息的步骤的目的,从而实现了 缩短开发周期的技术效果。
57.作为一种可选的方案,将存储格式的消息数据以预设存储方式进行数据存储, 并写入分布式文件系统包括以下至少之一:
58.s1,将存储格式的消息数据以列式存储方式进行数据存储,并写入分布式文 件系统,其中,预设存储方式包括列式存储方式;
59.s2,将存储格式的消息数据以行式存储方式进行数据存储,并写入分布式文 件系统,其中,预设存储方式包括行式存储方式。
60.可选地,在本实施例中,存储格式的消息数据不限于分为行式存储方式和列 式存储方式,其中是否选用行存储方式还是列存储方式根据需要写入的数据的数 据量和完整性两方面进行判断;由于行存储的写入是一次性完成,消耗的时间比 列存储少,并且能够保证数据的完整性,缺点是数据读取过程中会产生冗余数据, 如果只有少量数据,此影响可以忽略;数量大可能会影响到数据的处理效率;而列 存储在写入效率、保证数据完整性上都不如行存储,它的优势是在读取过程,不 会产生冗余数据,这对数据完整性要求不高的大数据处理领域,比如互联网,较 大数据量时使用列存储方式。
61.需要说明的是,将存储格式的消息数据以列式存储方式进行数据存储,并写 入分布式文件系统,其中,预设存储方式包括列式存储方;将存储格式的消息数 据以行式存储方式进行数据存储,并写入分布式文件系统,其中,预设存储方式 包括行式存储方式。起到了根据不同应用场景灵活使用存储方式的有益效果。
62.进一步举例说明,可选的例如图4所示,对消息数据406进行不同存储方式 的存储,m为行式存储方式402进行存储,n为列式存储方式404进行存储,且 在存储之前对被存储的数据进行一个判断,从完整性要求和数据量两个方向进行 综合加权计算,例如在需要写入的数据为公司中员工信息,数据量较大,完整性 要求并不高的情况下,故使用列式存储方式进行存储,在需要写入数据为医院中 重症病患的个人信息的情况下,则相比于数据量带来的冗余而言,对患者的完整 信息具有较高要求,故采取行式存储方式进行存储。
63.通过本技术提供的实施例,将存储格式的消息数据以列式存储方式进行数据 存
储,并写入分布式文件系统,其中,预设存储方式包括列式存储方;将存储格 式的消息数据以行式存储方式进行数据存储,并写入分布式文件系统,其中,预 设存储方式包括行式存储方式,通过不同数据量和完整性的综合需求确定是否采 用行式存储方式或者列式存储方式,进而达到了灵活性存储数据的目的,从而实 现了提高存储方式的全面性和多样性的技术效果。
64.作为一种可选的方案,在获取分布式消息系统中初始格式的消息数据之后, 方法包括:
65.s1,对初始格式的消息数据进行格式转换,得到压缩格式的消息数据,其中, 压缩格式为分布式文件系统支持以目标压缩方式进行数据压缩的数据格式;
66.s2,将压缩格式的消息数据以目标压缩方式进行数据压缩,并写入分布式文 件系统。
67.可选地,在本实施例中,可以预设多种压缩方式,其中不限于分为两种压缩 方式,即时压缩和非即时压缩、有损压缩和无损压缩;为了保证数据的完整性使 用无损压缩,利用数据的统计冗余进行压缩,所以无损压缩的压缩比一般比较低, 且占用空间较大,若无特殊需要求使用默认无损压缩,开发人员当面对音频和视 频时可以切换为有损压缩;另外开发人员也可以根据消息的紧急性作为判定方式, 决定使用对时限需求较高的即时压缩或者不对时间做限定的非即时压缩。
68.对初始格式的消息数据进行格式转换,得到压缩格式的消息数据,其中,压 缩格式为分布式文件系统支持以目标压缩方式进行数据压缩的数据格式;将压缩 格式的消息数据以目标压缩方式进行数据压缩,并写入分布式文件系统。通过数 据压缩起到了节省了存储空间的有益效果。
69.进一步举例说明,例如从消费端接收到较为紧急的通知消息,则配置文件后 从初始格式的消息数据进行格式转换,得到压缩格式的消息数据,由于消息较为 紧急,则使用及时压缩方式对消息数据进行数据压缩,写入分布式文件系统,保 证消息的及时性。
70.通过本技术提供的实施例,对初始格式的消息数据进行格式转换,得到压缩 格式的消息数据,其中,压缩格式为分布式文件系统支持以目标压缩方式进行数 据压缩的数据格式;将压缩格式的消息数据以目标压缩方式进行数据压缩,并写 入分布式文件系统,进而达到了的目的,从而实现了的技术效果。
71.作为一种可选的方案,在获取分布式消息系统中初始格式的消息数据之后, 方法包括:
72.在初始格式的消息数据对应的数据量大于或等于第一预设阈值的情况下,对 初始格式的消息数据内相似度小于或等于第二预设阈值的消息数据进行统一处 理。
73.可选地,在本实施例中,可以根据系统可以承担的空间预设多个阈值,并根 据预设阈值进行拆分统一处理。
74.需要说明的是,在初始格式的消息数据对应的数据量大于或等于第一预设阈 值的情况下,对初始格式的消息数据内相似度小于或等于第二预设阈值的消息数 据进行统一处理。起到提高数据处理的效率的有益效果。
75.进一步举例说明,设置第一阈值为2000数据量,设置第二阈值为5000数据 量,此时需要转换3000数据量的格式文件,首先判断此格式的消息数据量大于 第一阈值,小于第
二阈值,则对初始格式的消息数据内小于第一阈值的部分使用, 剩余部分同上执行相同步骤。
76.通过本技术提供的实施例,在初始格式的消息数据对应的数据量大于或等于 第一预设阈值的情况下,对初始格式的消息数据内相似度小于或等于第二预设阈 值的消息数据进行统一处理,进而达到了减少数据量较大时带来的信息冗杂的目 的,从而实现了提高信息数据的处理效率的技术效果。
77.为方便理解,将数据处理方法应用在具体的数据处理场景中:
78.可选的例如图5所示,程序在启动时加载schema配置文件到内存。程序启 动后订阅kafka的消息,针对不同的消息,从内存获取对应的schema信息,由于 消息都是json格式,将消息转为jsonobject,遍历jsonobject,找到schema 中的每个字段对应的值,构建parquet需要的schema。
79.可以理解的是,在本技术的具体实施方式中,涉及到用户信息等相关的数据, 当本技术以上实施例运用到具体产品或技术中时,需要获得用户许可或者同意, 且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准。
80.需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为 一系列的动作组合,但是本领域技术人员应该知悉,本技术并不受所描述的动作 顺序的限制,因为依据本技术,某些步骤可以采用其他顺序或者同时进行。其次, 本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉 及的动作和模块并不一定是本技术所必须的。
81.根据本技术实施例的另一个方面,还提供了一种用于实施上述数据处理装置。 如图6所示,该装置包括:
82.第一获取单元602,用于获取分布式消息系统中初始格式的消息数据,其中, 初始格式为分布式消息系统对应的数据格式,消息数据为待写入分布式文件系统 的数据;
83.第一转换单元604,用于对初始格式的消息数据进行格式转换,得到存储格 式的消息数据,其中,存储格式为分布式文件系统支持以预设存储方式进行数据 存储的数据格式;
84.第一存储单元606,用于将存储格式的消息数据以预设存储方式进行数据存 储,并写入分布式文件系统。
85.可选地,在本实施例中,上述数据处理装置可以但不限于应用在订阅消息系 统中,为了满足用户对大数据报表的时效性需求,kafka作为高吞吐量的开源分 布式发布订阅消息系统,被数千家公司用于高性能数据管道、流分析、数据集成 和关键任务应用程序。但是被数千家公司利用的弊端就显现出来,不同公司不同 场景数据是不同的,而需要对这些差异较大的数据进行解析时,就要针对不同消 息识别不同代码逻辑,就会产生代码量较大,维护成本较高,可读性较差的技术 问题。
86.针对上述技术问题,现有技术手段是对kafka中的消息做转换,将原json 格式以textfile形式直接写入hdfs,但还存在问题:这种技术手段没有做压缩, 所以磁盘开销较大,数据解析开销较大,还需要进一步改进。
87.针对上述问题,本方案提出:程序在启动时加载schema配置文件到内存, 程序启动后订阅kafka的消息,针对不同的消息,从内存获取对应的schema信息, 由于消息都是
json格式,将消息转为jsonobject,遍历jsonobject,找到schema 中的每个字段对应的值,构建parquet需要的schema。通过schema配置文件以参 数形式传入schema,再根据传入的schema,遍历jsonobject,找到schema中的 每个字段对应的值,构建parquet需要的schema的技术手段实现了程序代码量大 大减少,降低了维护成本,可读性好的有益效果。
88.可选地,在本实施例中,分布式消息系统可以但不限于kafka,是一个分布 式、支持分区的(partition)、多副本的(replica),基于zookeeper协调的分布 式消息系统,它的最大的特性就是可以实时的处理大量数据以满足各种需求场景: 比如基于hadoop的批处理系统、低延迟的实时系统、storm/spark流式处理引擎, web/nginx日志、访问日志,消息服务等等,又因为kafka具有高吞吐量、低延迟 的特点使得kafka每秒可以处理几十万条消息,且它的延迟最低只有几毫秒,故 越来越多不同业务和场景中的数据被发布在kafka中,而本技术就是针对解决消 费端需要分别解析kafka中不同的消息数据产生的可读性较差、效率较低的技术 问题;初始格式这里可以但不限于为json格式,是一种轻量级的数据交换格式, 易于人阅读和编写,同时也易于机器解析和生成;分布式文件系统可以但不限于 hdfs,能提供高吞吐量的数据访问,非常适合大规模数据集上的应用;存储格 式在本技术限定为parquet格式,一种支持嵌套结构的存储格式,并且使用了列 式存储的方式提升查询性能。
89.需要说明的是,获取分布式消息系统中初始格式的消息数据,其中,初始格 式为分布式消息系统对应的数据格式,消息数据为待写入分布式文件系统的数据; 对初始格式的消息数据进行格式转换,得到存储格式的消息数据,其中,存储格 式为分布式文件系统支持以预设存储方式进行数据存储的数据格式;将存储格式 的消息数据以预设存储方式进行数据存储,并写入分布式文件系统。通过将初始 格式转化为支持预设存储方式的存储格式的消息数据,可以实现了项目的快速迭 代,缩短开发周期的有益效果。
90.通过本技术提供的实施例,获取分布式消息系统中初始格式的消息数据,其 中,初始格式为分布式消息系统对应的数据格式,消息数据为待写入分布式文件 系统的数据;对初始格式的消息数据进行格式转换,得到存储格式的消息数据, 其中,存储格式为分布式文件系统支持以预设存储方式进行数据存储的数据格式; 将存储格式的消息数据以预设存储方式进行数据存储,并写入分布式文件系统。 进而达到了提高程序代码的适配性的目的,从而实现了极大的缩短了开发周期, 有利于项目的快速迭代的技术效果。
91.具体实施例可以参考上述数据处理方法中所示示例,本示例中在此不再赘述。
92.作为一种可选的方案,上述第一转换单元,包括:
93.s1,第一获取模块,用于获取初始格式的消息数据对应的映射对象;
94.s2,第一查询模块,用于在获取到配置数据库中的多个配置数据的情况下, 从多个配置数据中查询出初始格式的消息数据对应的映射对象匹配的目标配置 数据,其中,配置数据的数据格式为存储格式;
95.s3,第二获取模块,用于根据目标配置数据获取存储格式的消息数据。
96.具体实施例可以参考上述消息处理装置中所示示例,本示例中在此不再赘 述。,
97.作为一种可选的方案,上述第二获取模块包括;第一确定子模块,确定目标 配置数据中的每个字段对应的数值;第一构建子模块,利用每个字段对应的数值 构建存储格式的消息数据。
98.具体实施例可以参考上述消息处理装置中所示示例,本示例中在此不再赘述。
99.作为一种可选的方案,上述第一单元,包括第一存储模块,用于在获取分布 式消息系统中初始格式的消息数据之前,加载多个配置数据,并将多个配置数据 以数据查询格式存储至配置数据库,其中,数据查询格式的数据被设置为利用映 射对象进行匹配查询。
100.具体实施例可以参考上述消息处理装置中所示示例,本示例中在此不再赘述。
101.作为一种可选的方案,根据上述装置,第一存储单元包括以下至少之一:
102.s1,第二存储模块,用于将存储格式的消息数据以列式存储方式进行数据存 储,并写入分布式文件系统,其中,预设存储方式包括列式存储方式;
103.s2,第三存储模块,用于将存储格式的消息数据以行式存储方式进行数据存 储,并写入分布式文件系统,其中,预设存储方式包括行式存储方式。
104.具体实施例可以参考上述消息处理装置中所示示例,本示例中在此不再赘 述。,
105.作为一种可选的方案,上述装置包括:
106.s1,第二转换单元,在获取分布式消息系统中初始格式的消息数据之后,对 初始格式的消息数据进行格式转换,得到压缩格式的消息数据,其中,压缩格式 为分布式文件系统支持以目标压缩方式进行数据压缩的数据格式;
107.s2,第一压缩单元,用于将压缩格式的消息数据以目标压缩方式进行数据压 缩,并写入分布式文件系统。
108.具体实施例可以参考上述消息处理装置中所示示例,本示例中在此不再赘述。
109.作为一种可选的方案,上述装置包括,第一处理单元,在获取分布式消息系 统中初始格式的消息数据之后,在初始格式的消息数据对应的数据量大于或等于 第一预设阈值的情况下,对初始格式的消息数据内相似度小于或等于第二预设阈 值的消息数据进行统一处理。
110.具体实施例可以参考上述消息处理装置中所示示例,本示例中在此不再赘述。
111.根据本技术实施例的又一个方面,还提供了一种用于实施上述数据处理方法 的电子设备,如图7所示,该电子设备包括存储器702和处理器704,该存储器 702中存储有计算机程序,该处理器704被设置为通过计算机程序执行上述任一 项方法实施例中的步骤。
112.可选地,在本实施例中,上述电子设备可以位于计算机网络的多个网络设备 中的至少一个网络设备。
113.可选地,在本实施例中,上述处理器可以被设置为通过计算机程序执行以下 步骤:
114.s1,获取分布式消息系统中初始格式的消息数据,其中,初始格式为分布式 消息系统对应的数据格式,消息数据为待写入分布式文件系统的数据;
115.s2,对初始格式的消息数据进行格式转换,得到存储格式的消息数据,其中, 存储格式为分布式文件系统支持以预设存储方式进行数据存储的数据格式;
116.s3,将存储格式的消息数据以预设存储方式进行数据存储,并写入分布式文 件系统。
117.可选地,本领域普通技术人员可以理解,图7所示的结构仅为示意,电子设 备也可以是智能手机(如android手机、ios手机等)、平板电脑、掌上电脑以 及移动互联网设备(mobile internet devices,mid)、pad等终端设备。图7其 并不对上述电子设备的结构造
成限定。例如,电子设备还可包括比图7中所示更 多或者更少的组件(如网络接口等),或者具有与图7所示不同的配置。
118.其中,存储器702可用于存储软件程序以及模块,如本技术实施例中的数据 处理方法和装置对应的程序指令/模块,处理器704通过运行存储在存储器702 内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的数 据处理方法。存储器702可包括高速随机存储器,还可以包括非易失性存储器, 如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实 例中,存储器702可进一步包括相对于处理器704远程设置的存储器,这些远程 存储器可以通过网络连接至终端。上述网络的实例包括但不限于互联网、企业内 部网、局域网、移动通信网及其组合。其中,存储器702具体可以但不限于用于 存储初始格式的消息数据、存储格式的消息数据等信息。作为一种示例,如图7 所示,上述存储器802中可以但不限于包括上述数据处理装置中的第一获取单元 602、第一转换单元604、第一存储单元606。此外,还可以包括但不限于上述数 据处理装置中的其他模块单元,本示例中不再赘述。
119.可选地,上述的传输装置706用于经由一个网络接收或者发送数据。上述的 网络具体实例可包括有线网络及无线网络。在一个实例中,传输装置706包括一 个网络适配器(network interface controller,nic),其可通过网线与其他网络 设备与路由器相连从而可与互联网或局域网进行通讯。在一个实例中,传输装置 706为射频(radio frequency,rf)模块,其用于通过无线方式与互联网进行通 讯。
120.此外,上述电子设备还包括:显示器708,用于显示上述初始格式的消息数 据、存储格式的消息数据等信息;和连接总线710,用于连接上述电子设备中的 各个模块部件。
121.在其他实施例中,上述终端设备或者服务器可以是一个分布式系统中的一个 节点,其中,该分布式系统可以为区块链系统,该区块链系统可以是由该多个节 点通过网络通信的形式连接形成的分布式系统。其中,节点之间可以组成点对点 (peer to peer,简称p2p)网络,任意形式的计算设备,比如服务器、终端等电 子设备都可以通过加入该点对点网络而成为该区块链系统中的一个节点。
122.根据本技术的一个方面,提供了一种计算机程序产品,该计算机程序产品包 括计算机程序/指令,该计算机程序/指令包含用于执行流程图所示的方法的程序 代码。在这样的实施例中,该计算机程序可以通过通信部分从网络上被下载和安 装,和/或从可拆卸介质被安装。在该计算机程序被中央处理器执行时,执行本申 请实施例提供的各种功能。
123.上述本技术实施例序号仅仅为了描述,不代表实施例的优劣。
124.需要说明的是,电子设备的计算机系统仅是一个示例,不应对本技术实施例 的功能和使用范围带来任何限制。
125.计算机系统包括中央处理器(central processing unit,cpu),其可以根据 存储在只读存储器(read-only memory,rom)中的程序或者从存储部分加载 到随机访问存储器(random access memory,ram)中的程序而执行各种适当 的动作和处理。在随机访问存储器中,还存储有系统操作所需的各种程序和数据。 中央处理器、在只读存储器以及随机访问存储器通过总线彼此相连。输入/输出接 口(input/output接口,即i/o接口)也连接至总线。
126.以下部件连接至输入/输出接口:包括键盘、鼠标等的输入部分;包括诸如阴 极射
线管(cathode ray tube,crt)、液晶显示器(liquid crystal display,lcd) 等以及扬声器等的输出部分;包括硬盘等的存储部分;以及包括诸如局域网卡、 调制解调器等的网络接口卡的通信部分。通信部分经由诸如因特网的网络执行通 信处理。驱动器也根据需要连接至输入/输出接口。可拆卸介质,诸如磁盘、光盘、 磁光盘、半导体存储器等等,根据需要安装在驱动器上,以便于从其上读出的计 算机程序根据需要被安装入存储部分。
127.特别地,根据本技术的实施例,各个方法流程图中所描述的过程可以被实现 为计算机软件程序。例如,本技术的实施例包括一种计算机程序产品,其包括承 载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的 方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分从网络上 被下载和安装,和/或从可拆卸介质被安装。在该计算机程序被中央处理器执行时, 执行本技术的系统中限定的各种功能。
128.根据本技术的一个方面,提供了一种计算机可读存储介质,计算机设备的处 理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得 该计算机设备执行上述各种可选实现方式中提供的方法。
129.可选地,在本实施例中,上述计算机可读的存储介质可以被设置为存储用于 执行以下步骤的计算机程序:
130.s1,获取分布式消息系统中初始格式的消息数据,其中,初始格式为分布式 消息系统对应的数据格式,消息数据为待写入分布式文件系统的数据;
131.s2,对初始格式的消息数据进行格式转换,得到存储格式的消息数据,其中, 存储格式为分布式文件系统支持以预设存储方式进行数据存储的数据格式;
132.s3,将存储格式的消息数据以预设存储方式进行数据存储,并写入分布式文 件系统。
133.可选地,在本实施例中,本领域普通技术人员可以理解上述实施例的各种方 法中的全部或部分步骤是可以通过程序来指令终端设备相关的硬件来完成,该程 序可以存储于一计算机可读存储介质中,存储介质可以包括:闪存盘、只读存储 器(read-only memory,rom)、随机存取器(random access memory,ram)、 磁盘或光盘等。
134.上述本技术实施例序号仅仅为了描述,不代表实施例的优劣。
135.上述实施例中的集成的单元如果以软件功能单元的形式实现并作为独立的 产品销售或使用时,可以存储在上述计算机可读取的存储介质中。基于这样的理 解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案 的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在存储介 质中,包括若干指令用以使得一台或多台计算机设备(可为个人计算机、服务器 或者网络设备等)执行本技术各个实施例方法的全部或部分步骤。
136.在本技术的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中 没有详述的部分,可以参见其他实施例的相关描述。
137.在本技术所提供的几个实施例中,应该理解到,所揭露的客户端,可通过其 它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如单元的划 分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单 元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。 另一点,所显示或讨论的相互之间
的耦合或直接耦合或通信连接可以是通过一些 接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
138.作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显 示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分 布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现 本实施例方案的目的。
139.另外,在本技术各个实施例中的各功能单元可以集成在一个处理单元中,也 可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。 上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实 现。
140.以上仅是本技术的优选实施方式,应当指出,对于本技术领域的普通技术人 员来说,在不脱离本技术原理的前提下,还可以做出若干改进和润饰,这些改进 和润饰也应视为本技术的保护范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1