数据转换方法及装置制造方法及图纸

技术编号:27562433 阅读:18 留言:0更新日期:2021-03-09 22:05
本公开公开了一种数据转换方法、装置、电子设备和计算机可读存储介质。其中方法包括:将获取的数据库的数据操作日志写入消息队列;通过消费者程序从消息队列获取数据操作日志;通过消费者程序执行数据转换逻辑代码;其中,数据转换逻辑代码由转换函数构成;通过转换函数将数据和/或数据变更信息转换为目标存储的数据结构信息。本公开实施例通过消费者程序执行由转换函数构成的数据转换逻辑代码,并通过转换函数将数据和/或数据变更信息转换为目标存储的数据结构信息,由于数据转换逻辑代码由转换函数构成,开发人员无需实现和运维整个消费者程序,只需要编写数据转换逻辑代码,开发运维的成本小,并且可以快速灵活实现复杂的转换规则。换规则。换规则。

【技术实现步骤摘要】
数据转换方法及装置


[0001]本公开涉及数据处理
,特别是涉及一种数据转换方法、装置和计算机可读存储介质。

技术介绍

[0002]在互联网技术中,通常使用数据库(例如,MySQL数据库)存储数据,但由于它不能满足缓存、搜索等需求,通常要把数据库的数据实时地异构到缓存、搜索服务器等中存储。
[0003]通常采用的异构方法是,从MySQL数据库提取数据操作日志,写入消息队列,下游的消费者使用业务的规则对数据操作日志做转换,再写入到异构的存储中。然而业务的需求是多变的,需要频繁地修改转换规则,从而实现不同的异构。
[0004]在现有技术中,一种做法为,为每个异构同步维护一个程序服务,每次规则变更后就修改发布程序代码,但是这种做法需要开发人员维护大量消费者程序,修改时需要修改各个程序的代码,并完成测试、编译和发布流程。整个流程开发和运维工作量很大。
[0005]另一种做法为,把数据转换抽象成固定的规则。比如抽象成数据库语句,数据来源被认作是一张表,可以使用查询数据库,目标存储是一张结果表,不断地接受流式更新。但这种做法欠缺灵活性,有一定的限制,固定的规则只能表达简单的筛选和映射,无法表达一些复杂的转换或是远程逻辑调用。

技术实现思路

[0006]提供该
技术实现思路
部分以便以简要的形式介绍构思,这些构思将在后面的具体实施方式部分被详细描述。该
技术实现思路
部分并不旨在标识要求保护的技术方案的关键特征或必要特征,也不旨在用于限制所要求的保护的技术方案的范围。
[0007]本公开解决的技术问题是提供一种数据转换方法,以至少部分地解决现有技术中整个消费者程序开发和运维工作量大、实现复杂不灵活的技术问题。此外,还提供一种数据转换装置、数据转换硬件装置、计算机可读存储介质和数据转换终端。
[0008]为了实现上述目的,根据本公开的一个方面,提供以下技术方案:
[0009]一种数据转换方法,包括:
[0010]将获取的数据库的数据操作日志写入消息队列;其中,所述数据操作日志中包含数据和/或数据变更信息;
[0011]通过消费者程序从所述消息队列获取所述数据操作日志;
[0012]通过所述消费者程序执行数据转换逻辑代码;其中,所述数据转换逻辑代码由转换函数构成;
[0013]通过所述转换函数将所述数据和/或数据变更信息转换为目标存储的数据结构信息。
[0014]为了实现上述目的,根据本公开的一个方面,提供以下技术方案:
[0015]一种数据转换装置,包括:
[0016]日志写入模块,用于将获取的数据库的数据操作日志写入消息队列;其中,所述数据操作日志中包含数据和/或数据变更信息;
[0017]日志获取模块,用于通过消费者程序从所述消息队列获取所述数据操作日志;
[0018]代码执行模块,用于通过所述消费者程序执行数据转换逻辑代码;其中,所述数据转换逻辑代码由转换函数构成;
[0019]数据转换模块,用于通过所述转换函数将所述数据和/或数据变更信息转换为目标存储的数据结构信息。
[0020]为了实现上述目的,根据本公开的一个方面,提供以下技术方案:
[0021]一种电子设备,包括:
[0022]存储器,用于存储非暂时性计算机可读指令;以及
[0023]处理器,用于运行所述计算机可读指令,使得所述处理器执行时实现上述任一项所述的数据转换方法。
[0024]为了实现上述目的,根据本公开的一个方面,提供以下技术方案:
[0025]一种计算机可读存储介质,用于存储非暂时性计算机可读指令,当所述非暂时性计算机可读指令由计算机执行时,使得所述计算机执行上述任一项所述的数据转换方法。
[0026]为了实现上述目的,根据本公开的又一个方面,还提供以下技术方案:
[0027]一种数据转换终端,包括上述任一数据转换装置。
[0028]本公开实施例通过消费者程序执行由转换函数构成的数据转换逻辑代码,并通过转换函数将数据和/或数据变更信息转换为目标存储的数据结构信息,由于数据转换逻辑代码由转换函数构成,开发人员无需实现和运维整个消费者程序,只需要编写数据转换逻辑代码,开发运维的成本小,并且可以快速灵活实现复杂的转换规则。
[0029]上述说明仅是本公开技术方案的概述,为了能更清楚了解本公开的技术手段,而可依照说明书的内容予以实施,并且为让本公开的上述和其他目的、特征和优点能够更明显易懂,以下特举较佳实施例,并配合附图,详细说明如下。
附图说明
[0030]结合附图并参考以下具体实施方式,本公开各实施例的上述和其他特征、优点及方面将变得更加明显。贯穿附图中,相同或相似的附图标记表示相同或相似的元素。应当理解附图是示意性的,原件和元素不一定按照比例绘制。
[0031]图1为根据本公开一个实施例的数据转换方法的流程示意图;
[0032]图2为根据本公开一个实施例的数据转换装置的流程示意图;
[0033]图3为根据本公开一个实施例的电子设备的结构示意图。
具体实施方式
[0034]下面将参照附图更详细地描述本公开的实施例。虽然附图中显示了本公开的某些实施例,然而应当理解的是,本公开可以通过各种形式来实现,而且不应该被解释为限于这里阐述的实施例,相反提供这些实施例是为了更加透彻和完整地理解本公开。应当理解的是,本公开的附图及实施例仅用于示例性作用,并非用于限制本公开的保护范围。
[0035]应当理解,本公开的方法实施方式中记载的各个步骤可以按照不同的顺序执行,
和/或并行执行。此外,方法实施方式可以包括附加的步骤和/或省略执行示出的步骤。本公开的范围在此方面不受限制。
[0036]本文使用的术语“包括”及其变形是开放性包括,即“包括但不限于”。术语“基于”是“至少部分地基于”。术语“一个实施例”表示“至少一个实施例”;术语“另一实施例”表示“至少一个另外的实施例”;术语“一些实施例”表示“至少一些实施例”。其他术语的相关定义将在下文描述中给出。
[0037]实施例一
[0038]为了解决现有技术中整个消费者程序开发和运维工作量大、实现复杂不灵活的技术问题,本公开实施例提供一种数据转换方法。如图1所示,该数据转换方法主要包括如下步骤S11至步骤S14。
[0039]步骤S11:将获取的数据库的数据操作日志写入消息队列;其中,所述数据操作日志中包含数据和/或数据变更信息。
[0040]其中,数据操作日志为数据库的数据操作日志,例如,MySQL数据库。该数据操作日志描述了数据库中行级别的数据变更信息和对应的数据,例如,每行变更的数据包括变更前和变更后的内容值。
[0041]其中,数据变更信息包括但不限于插入、更新、删除、部分更新等。
[0042]具体的,为了便于下游消费者获取,将获取的数据库的数据操作日志写入消息队列。其中,消息队列为在消息的传输过程中保存消息的容器。在本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种数据转换方法,其特征在于,包括:将获取的数据库的数据操作日志写入消息队列;其中,所述数据操作日志中包含数据和/或数据变更信息;通过消费者程序从所述消息队列获取所述数据操作日志;通过所述消费者程序执行数据转换逻辑代码;其中,所述数据转换逻辑代码由转换函数构成;通过所述转换函数将所述数据和/或数据变更信息转换为目标存储的数据结构信息。2.根据权利要求1所述的方法,其特征在于,所述转换函数的输入为所述数据和/或数据变更信息,所述转换函数的输出为所述目标存储的数据结构和/或所述数据的操作行为。3.根据权利要求1所述的方法,其特征在于,所述方法还包括:通过数据库异构存储平台管理所述数据转换逻辑代码。4.根据权利要求3所述的方法,其特征在于,所述通过数据库异构存储平台管理所述数据转换逻辑代码,包括:通过数据库异构存储平台接收所述数据转换逻辑代码的编辑、修改、编译、测试和发布中的至少一项操作。5.根据权利要求1-4任一项所述的方法,其特征在于,所述方法还包括:以动态更新的方式将所述数据转换逻辑代码加载到所述消费者程序中。6.根据权利要求5所述的方法,其特征在于,所述方法还包括:若所述数据转换逻辑代码为编译型语言,则将所述数据转换逻辑代码编译成动态库;相应的,所述以动态更新的方式...

【专利技术属性】
技术研发人员:曹晋其
申请(专利权)人:北京字节跳动网络技术有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1