一种kafka流处理平台的数据导入方法、装置及设备

文档序号:1952552 发布日期:2021-12-10 浏览:13次 >En<

阅读说明:本技术 一种kafka流处理平台的数据导入方法、装置及设备 (Data import method, device and equipment of kafka stream processing platform ) 是由 孙雪永 汤乐奇 范渊 刘博� 于 2021-09-26 设计创作,主要内容包括:本发明公开了一种kafka流处理平台的数据导入方法,该方法包括以下步骤:通过对待导入kafka流处理平台的目标数据流进行字段拆分,分别获取拆分得到的各初始字段的字段类型,预先设置包含各字段类型与各数据格式转换规则之间对应关系的配置文件,利用预设配置文件进行格式转换规则匹配,根据各数据格式转换规则对各初始字段进行格式转换,得到统一格式的各目标字段,将各目标字段导入至kafka流处理平台。应用本发明所提供的kafka流处理平台的数据导入方法,较大地节省了人力,节省了时间成本,较大地提高了数据导入效率。本发明还公开了一种kafka流处理平台的数据导入装置、设备及存储介质,具有相应技术效果。(The invention discloses a data importing method of a kafka stream processing platform, which comprises the following steps: the method comprises the steps of splitting fields of a target data stream to be imported into a kafka stream processing platform, respectively obtaining the field types of initial fields obtained through splitting, presetting configuration files containing the corresponding relations between the field types and data format conversion rules, matching the format conversion rules by using the preset configuration files, carrying out format conversion on the initial fields according to the data format conversion rules to obtain target fields in a unified format, and importing the target fields into the kafka stream processing platform. By applying the data importing method of the kafka stream processing platform provided by the invention, the manpower and the time cost are greatly saved, and the data importing efficiency is greatly improved. The invention also discloses a data import device, equipment and a storage medium of the kafka stream processing platform, and the data import device, the equipment and the storage medium have corresponding technical effects.)

一种kafka流处理平台的数据导入方法、装置及设备

技术领域

本发明涉及存储技术领域,特别是涉及一种kafka流处理平台的数据导入方法、装置、设备及计算机可读存储介质。

背景技术

Kafka流处理平台是一个开源流处理平台,是一种高吞吐量的分布式发布订阅消息系统,它可以处理用户在网站中的所有动作流数据,如网页浏览、搜索等用户的行动。

现有的kafka流处理平台的数据导入方式为将数据集(DataSet)使用collect函数转成列表(List),再把列表中的数据发送至kafka流处理平台。但是,针对不同的数据集,开发人员均需要重新编写一段程序实现,使用小规模数据集可行,大规模数据不可行。在企业开发中有很多需要将文件数据导入到kakfa流处理平台中的场景,浪费了人力和时间成本,数据导入效率低。

综上所述,如何有效地解决现有的kafka流处理平台的数据导入方式,浪费了人力和时间成本,数据导入效率低等问题,是目前本领域技术人员急需解决的问题。

发明内容

本发明的目的是提供一种kafka流处理平台的数据导入方法,该方法较大地节省了人力,节省了时间成本,较大地提高了数据导入效率;本发明的另一目的是提供一种kafka流处理平台的数据导入装置、设备及计算机可读存储介质。

为解决上述技术问题,本发明提供如下技术方案:

一种kafka流处理平台的数据导入方法,包括:

获取待导入的目标数据流;

对所述目标数据流进行字段拆分操作,得到各初始字段;

分别获取各所述初始字段的字段类型;

利用预设配置文件对各所述字段类型分别进行格式转换规则匹配,得到各数据格式转换规则;

根据各所述数据格式转换规则对各所述初始字段进行格式转换,得到统一格式的各目标字段;

将各所述目标字段导入至kafka流处理平台。

在本发明的一种

具体实施方式

中,根据各所述数据格式转换规则对各所述初始字段进行格式转换,得到统一格式的各目标字段,包括:

根据各所述数据格式转换规则将各所述初始字段转换为各avro格式字段;

将各所述目标字段导入至kafka流处理平台,包括:

将各所述avro格式字段导入至所述kafka流处理平台。

在本发明的一种具体实施方式中,将各所述目标字段导入至kafka流处理平台,包括:

从所述预设配置文件中读取预设导入并行度;

按照所述预设导入并行度将各所述目标字段并行导入至所述kafka流处理平台。

在本发明的一种具体实施方式中,分别获取各所述初始字段的字段类型,包括:

分别获取各所述初始字段的字段名称和字段类型;

利用预设配置文件对各所述字段类型分别进行格式转换规则匹配,包括:

判断各所述字段名称对应的字段类型是否均合法;

若是,则利用预设配置文件对各所述字段类型分别进行格式转换规则匹配;

若否,则对字段类型不合法的初始字段进行数量统计,并利用预设配置文件对合法的各所述字段类型分别进行格式转换规则匹配。

在本发明的一种具体实施方式中,在对字段类型不合法的初始字段进行数量统计之后,还包括:

获取不合法的初始字段的数量统计结果;

将所述数量统计结果打印到日志中。

在本发明的一种具体实施方式中,将各所述目标字段导入至kafka流处理平台,包括:

从所述预设配置文件中读取预设kafka地址;

将各所述目标字段导入至所述kafka流处理平台的预设kafka地址。

在本发明的一种具体实施方式中,将各所述目标字段导入至所述kafka流处理平台的预设kafka地址,包括:

从所述预设配置文件中读取预设存储主题;

按照所述预设存储主题将各所述目标字段导入至所述kafka流处理平台的预设kafka地址。

一种kafka流处理平台的数据导入装置,包括:

数据流获取模块,用于获取待导入的目标数据流;

字段拆分模块,用于对所述目标数据流进行字段拆分操作,得到各初始字段;

字段类型获取模块,用于分别获取各所述初始字段的字段类型;

转换规则匹配模块,用于利用预设配置文件对各所述字段类型分别进行格式转换规则匹配,得到各数据格式转换规则;

格式转换模块,用于根据各所述数据格式转换规则对各所述初始字段进行格式转换,得到统一格式的各目标字段;

字段导入模块,用于将各所述目标字段导入至kafka流处理平台。

一种kafka流处理平台的数据导入设备,包括:

存储器,用于存储计算机程序;

处理器,用于执行所述计算机程序时实现如前所述kafka流处理平台的数据导入方法的步骤。

一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如前所述kafka流处理平台的数据导入方法的步骤。

本发明所提供的kafka流处理平台的数据导入方法,通过对待导入kafka流处理平台的目标数据流进行字段拆分,分别获取拆分得到的各初始字段的字段类型,预先设置包含各字段类型与各数据格式转换规则之间对应关系的配置文件,利用预设配置文件进行格式转换规则匹配,根据各数据格式转换规则对各初始字段进行格式转换,得到统一格式的各目标字段,将各目标字段导入至kafka流处理平台。实现了对各初始字段进行格式转换规则的自动匹配,从而将各初始字段转换为统一格式的各目标字段,进而将各目标字段导入至kafka流处理平台,避免了重复编程,较大地节省了人力,节省了时间成本,较大地提高了数据导入效率。

相应的,本发明还提供了与上述kafka流处理平台的数据导入方法相对应的kafka流处理平台的数据导入装置、设备和计算机可读存储介质,具有上述技术效果,在此不再赘述。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例中kafka流处理平台的数据导入方法的一种实施流程图;

图2为本发明实施例中kafka流处理平台的数据导入方法的另一种实施流程图;

图3为本发明实施例中一种kafka流处理平台的数据导入装置的结构框图;

图4为本发明实施例中一种kafka流处理平台的数据导入设备的结构框图;

图5为本实施例提供的一种kafka流处理平台的数据导入设备的具体结构示意图。

具体实施方式

为了使本技术领域的人员更好地理解本发明方案,下面结合附图和具体实施方式对本发明作进一步的详细说明。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

参见图1,图1为本发明实施例中kafka流处理平台的数据导入方法的一种实施流程图,该方法可以包括以下步骤:

S101:获取待导入的目标数据流。

当需要向kafka流处理平台中导入数据时,获取待导入的目标数据流。可以预先获取待导入的目标数据流对应的文件路径,根据文件路径获取待导入的目标数据流。读取文件的方式可以使用flink提供的TextInputFormat文件读取器。

S102:对目标数据流进行字段拆分操作,得到各初始字段。

在获取到待导入的目标数据流之后,对目标数据流进行字段拆分操作,得到各初始字段,从而实现对包含多种字段类型的大数据量的目标数据流的字段拆分。

flink还提供了csv(Comma-Separated Values,字符分隔值)读取器(Reader),即专门用于读取csv文件的工具,会自动将一行数据拆分为不同的字段。

S103:分别获取各初始字段的字段类型。

在对目标数据流进行字段拆分操作,得到各初始字段之后,分别获取各初始字段的字段类型。字段类型可以包括String(字符串)、Bigint(不限长度整形数字)、timestamp(时间戳)、int(整形数字)。

S104:利用预设配置文件对各字段类型分别进行格式转换规则匹配,得到各数据格式转换规则。

预先设置包含各字段类型与各数据格式转换规则之间对应关系的配置文件。在分别获取到各初始字段的字段类型之后,利用预设配置文件对各字段类型分别进行格式转换规则匹配,得到各数据格式转换规则。数据格式转换规则为将某数据格式的数据转换为特定格式的数据的规则,一般设置为各数据格式转换规则对应的待转换为的数据格式相同。

S105:根据各数据格式转换规则对各初始字段进行格式转换,得到统一格式的各目标字段。

在匹配到各字段类型分别对应的数据格式转换规则之后,根据各数据格式转换规则对各初始字段进行格式转换,得到统一格式的各目标字段。

S106:将各目标字段导入至kafka流处理平台。

在根据各数据格式转换规则对各初始字段进行格式转换,得到统一格式的各目标字段之后,将各目标字段导入至kafka流处理平台,如由于各目标字段的格式统一,因此可以采用并行导入的方式将各目标字段导入至kafka流处理平台,也可以按照各目标字段的字段顺序对各目标字段进行串行导入。实现了对各初始字段进行格式转换规则的自动匹配,从而将各初始字段转换为统一格式的各目标字段,进而将各目标字段导入至kafka流处理平台,避免了重复编程,较大地节省了人力,节省了时间成本,较大地提高了数据导入效率。

本发明所提供的kafka流处理平台的数据导入方法,通过对待导入kafka流处理平台的目标数据流进行字段拆分,分别获取拆分得到的各初始字段的字段类型,预先设置包含各字段类型与各数据格式转换规则之间对应关系的配置文件,利用预设配置文件进行格式转换规则匹配,根据各数据格式转换规则对各初始字段进行格式转换,得到统一格式的各目标字段,将各目标字段导入至kafka流处理平台。实现了对各初始字段进行格式转换规则的自动匹配,从而将各初始字段转换为统一格式的各目标字段,进而将各目标字段导入至kafka流处理平台,避免了重复编程,较大地节省了人力,节省了时间成本,较大地提高了数据导入效率。

需要说明的是,基于上述实施例,本发明实施例还提供了相应的改进方案。在后续实施例中涉及与上述实施例中相同步骤或相应步骤之间可相互参考,相应的有益效果也可相互参照,在下文的改进实施例中不再一一赘述。

在本发明的一种具体实施方式中,步骤S106可以包括以下步骤:

步骤一:从预设配置文件中读取预设导入并行度;

步骤二:按照预设导入并行度将各目标字段并行导入至kafka流处理平台。

为方便描述,可以将上述两个步骤结合起来进行说明。

预先设置配置文件schema,配置文件中包含支持的原始数据格式(一般为yaml格式),元数据信息(如数据流包含的各初始字段的字段名称、字段类型、字段顺序),文件路径,主题(topic)、kafka地址、导入并行度、文件分隔符等信息。

在确定得到统一格式的各目标字段之后,从预设配置文件中读取预设导入并行度,按照预设导入并行度将各目标字段并行导入至kafka流处理平台。通过使用flink的多并发字段导入功能,较大地提高的数据导入速度。

在本发明的一种具体实施方式中,步骤S106可以包括以下步骤:

步骤一:从预设配置文件中读取预设kafka地址;

步骤二:将各目标字段导入至kafka流处理平台的预设kafka地址。

为方便描述,可以将上述两个步骤结合起来进行说明。

配置文件中还包含kafka地址,在确定得到统一格式的各目标字段之后,从预设配置文件中读取预设kafka地址,将各目标字段导入至kafka流处理平台的预设kafka地址。从而实现了针对指定kafka地址的数据导入,方便了对数据导入结果的有效记录。

在本发明的一种具体实施方式中,将各目标字段导入至kafka流处理平台的预设kafka地址,可以包括以下步骤:

步骤一:从预设配置文件中读取预设存储主题;

步骤二:按照预设存储主题将各目标字段导入至kafka流处理平台的预设kafka地址。

为方便描述,可以将上述两个步骤结合起来进行说明。

kafka数据存储以主题形式存储,配置文件中还包含存储主题,其可以理解为数据库的一张表。在确定得到统一格式的各目标字段之后,从预设配置文件中读取预设存储主题,按照预设存储主题将各目标字段导入至kafka流处理平台的预设kafka地址。通过按照预设存储主题进行数据导入,提升了数据导入的条理性,方便后期的数据查找。

参见图2,图2为本发明实施例中kafka流处理平台的数据导入方法的另一种实施流程图,该方法可以包括以下步骤:

S201:获取待导入的目标数据流。

S202:对目标数据流进行字段拆分操作,得到各初始字段。

S203:分别获取各初始字段的字段名称和字段类型。

在拆分得到各初始字段之后,分别获取各初始字段的字段名称和字段类型。

S204:判断各字段名称对应的字段类型是否均合法,若是,则执行步骤S205,若否,则执行步骤S206。

预先设置字段名称与字段类型之间的对应关系,在获取到各初始字段的字段名称和字段类型之后,判断各字段名称对应的字段类型是否均合法,当前各字段名称对应的字段类型是否为设定的字段类型,若是,则执行步骤S205,若否,则执行步骤S206。

在还分得到各初始字段之后,使用yaml文件格式将各初始字段名称放入param参数下,使用##隔开,前面是字段名称,后面是字段类型,如下所示:

param:

-c_sip##bigint;

-c_dip##bigint;

-c_domain##string;

-c_time##timestramp。

S205:利用预设配置文件对各字段类型分别进行格式转换规则匹配,得到各数据格式转换规则。

S206:对字段类型不合法的初始字段进行数量统计,并利用预设配置文件对合法的各字段类型分别进行格式转换规则匹配,得到各数据格式转换规则。

当各字段名称对应的字段类型中存在不合法的字段类型时,对字段类型不合法的初始字段进行数量统计,如预先定义一个异常格式转换计数器,用于统计因为数据类型不匹配而没有转换成功的字段数量。并利用预设配置文件对合法的各字段类型分别进行格式转换规则匹配,得到各数据格式转换规则。通过对字段类型不合法的初始字段进行数量统计,方便后续查询数据导入结果。

S207:获取不合法的初始字段的数量统计结果。

在对字段类型不合法的初始字段进行数量统计之后,获取不合法的初始字段的数量统计结果。

S208:将数量统计结果打印到日志中。

在获取到不合法的初始字段的数量统计结果之后,将数量统计结果打印到日志中,从而方便用户查看数据导入结果。承接上述举例,计数器可以在监控界面或者REST API中可以查看的到。

S209:根据各数据格式转换规则将各初始字段转换为各avro格式字段。

在匹配到各字段类型分别对应的数据格式转换规则之后,根据各数据格式转换规则将各初始字段转换为各avro格式字段。avro格式是一种高效通用的数据压缩格式,通过将各初始字段转换为各avro格式字段,从而实现对各初始字段的数据压缩。

由于目标数据流中可能存在部分容错性,所以可以选择TextInputFormat手动处理数据字段转换。

S210:将各avro格式字段导入至kafka流处理平台。

在将各初始字段转换为各avro格式字段之后,将各avro格式字段导入至kafka流处理平台。通过可以将各初始字段转换为各avro格式字段进行数据导入,可以结合并行导入方式实现海量数据的批量导入操作,较大地节省了数据传输和数据存储的成本。

相应于上面的方法实施例,本发明还提供了一种kafka流处理平台的数据导入装置,下文描述的kafka流处理平台的数据导入装置与上文描述的kafka流处理平台的数据导入方法可相互对应参照。

参见图3,图3为本发明实施例中一种kafka流处理平台的数据导入装置的结构框图,该装置可以包括:

数据流获取模块31,用于获取待导入的目标数据流;

字段拆分模块32,用于对目标数据流进行字段拆分操作,得到各初始字段;

字段类型获取模块33,用于分别获取各初始字段的字段类型;

转换规则匹配模块34,用于利用预设配置文件对各字段类型分别进行格式转换规则匹配,得到各数据格式转换规则;

格式转换模块35,用于根据各数据格式转换规则对各初始字段进行格式转换,得到统一格式的各目标字段;

字段导入模块36,用于将各目标字段导入至kafka流处理平台。

本发明所提供的kafka流处理平台的数据导入装置,通过对待导入kafka流处理平台的目标数据流进行字段拆分,分别获取拆分得到的各初始字段的字段类型,预先设置包含各字段类型与各数据格式转换规则之间对应关系的配置文件,利用预设配置文件进行格式转换规则匹配,根据各数据格式转换规则对各初始字段进行格式转换,得到统一格式的各目标字段,将各目标字段导入至kafka流处理平台。实现了对各初始字段进行格式转换规则的自动匹配,从而将各初始字段转换为统一格式的各目标字段,进而将各目标字段导入至kafka流处理平台,避免了重复编程,较大地节省了人力,节省了时间成本,较大地提高了数据导入效率。

在本发明的一种具体实施方式中,格式转换模块35具体为根据各数据格式转换规则将各初始字段转换为各avro格式字段的模块;

字段导入模块36具体为将各avro格式字段导入至kafka流处理平台的模块。

在本发明的一种具体实施方式中,字段导入模块36包括:

并行度读取子模块,用于从预设配置文件中读取预设导入并行度;

第一字段导入子模块,用于按照预设导入并行度将各目标字段并行导入至kafka流处理平台。

在本发明的一种具体实施方式中,字段类型获取模块33具体为分别获取各初始字段的字段名称和字段类型的模块;

转换规则匹配模块34包括:

判断子模块,用于判断各字段名称对应的字段类型是否均合法;

第一转换规则匹配子模块,用于当确定各字段名称对应的字段类型均合法时,利用预设配置文件对各字段类型分别进行格式转换规则匹配;

第二转换规则匹配子模块,用于确定各字段名称对应的字段类型中存储不合法的字段类型时,对字段类型不合法的初始字段进行数量统计,并利用预设配置文件对合法的各字段类型分别进行格式转换规则匹配。

在本发明的一种具体实施方式中,该装置还可以包括:

统计结果获取模块,用于获取不合法的初始字段的数量统计结果;

日志打印模块,用于将数量统计结果打印到日志中。

在本发明的一种具体实施方式中,字段导入模块36包括:

地址读取子模块,用于从预设配置文件中读取预设kafka地址;

第二字段导入子模块,用于将各目标字段导入至kafka流处理平台的预设kafka地址。

在本发明的一种具体实施方式中,字段导入模块36包括:

主题读取子模块,用于从预设配置文件中读取预设存储主题;

第三字段导入子模块,用于按照预设存储主题将各目标字段导入至kafka流处理平台的预设kafka地址。

相应于上面的方法实施例,参见图4,图4为本发明所提供的kafka流处理平台的数据导入设备的示意图,该设备可以包括:

存储器332,用于存储计算机程序;

处理器322,用于执行计算机程序时实现上述方法实施例的kafka流处理平台的数据导入方法的步骤。

具体的,请参考图5,图5为本实施例提供的一种kafka流处理平台的数据导入设备的具体结构示意图,该kafka流处理平台的数据导入设备可因配置或性能不同而产生比较大的差异,可以包括处理器(central processing units,CPU)322(例如,一个或一个以上处理器)和存储器332,存储器332存储有一个或一个以上的计算机应用程序342或数据344。其中,存储器332可以是短暂存储或持久存储。存储在存储器332的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对数据处理设备中的一系列指令操作。更进一步地,处理器322可以设置为与存储器332通信,在kafka流处理平台的数据导入设备301上执行存储器332中的一系列指令操作。

kafka流处理平台的数据导入设备301还可以包括一个或一个以上电源326,一个或一个以上有线或无线网络接口350,一个或一个以上输入输出接口358,和/或,一个或一个以上操作系统341。

上文所描述的kafka流处理平台的数据导入方法中的步骤可以由kafka流处理平台的数据导入设备的结构实现。

相应于上面的方法实施例,本发明还提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时可实现如下步骤:

通过对待导入kafka流处理平台的目标数据流进行字段拆分,分别获取拆分得到的各初始字段的字段类型,预先设置包含各字段类型与各数据格式转换规则之间对应关系的配置文件,利用预设配置文件进行格式转换规则匹配,根据各数据格式转换规则对各初始字段进行格式转换,得到统一格式的各目标字段,将各目标字段导入至kafka流处理平台。

该计算机可读存储介质可以包括:U盘、移动硬盘、只读存储器(Read-OnlyMemory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。

对于本发明提供的计算机可读存储介质的介绍请参照上述方法实施例,本发明在此不做赘述。

本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装置、设备及计算机可读存储介质而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。

本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的技术方案及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。

15页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:消息持久化存储方法及装置

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!