掌桥专利:专业的专利平台
掌桥专利
首页

一种数据入库方法、装置、电子设备和存储介质

文献发布时间:2023-06-19 10:24:22


一种数据入库方法、装置、电子设备和存储介质

技术领域

本发明实施例涉及数据处理处理技术领域,尤其涉及一种数据入库方法、装置、电子设备和存储介质。

背景技术

Flink是大数据领域一个新兴的使用流式处理来模拟批量处理的框架,使用场景之一是构建实时的数据通道,在不同的存储之间搬运和转换数据。并且还可扩展到实时监控、实时报表和实时仓库等应用场景。

但是目前关于Flink框架的研究应用主要在于数据处理的实时需求,但时当面对海量数据源时,通常会存在许多不规则或复杂的数据结构,而基于Flink框架如何实现对不同复杂数据的入库处理的目前还没有很好的解决方案。

发明内容

本发明实施例提供了一种数据入库方法、装置、电子设备和存储介质。以实现在Flink框架下将复杂的源数据进行处理并准确的入库保存。

第一方面,本发明实施例公开了一种数据入库方法,包括:

基于Flink框架获取用户配置的任务参数,其中,任务参数中包含数据源地址和数据转换方式;

根据数据源地址进行数据抽取获取源数据,其中,源数据的类型包括文件数据、数据库数据、消息队列数据或分布式文件系统HDFS数据;

根据数据转换方式对源数据进行转换获得转换数据,并将转换数据以数据流的形式写入到目标数据库的指定位置。

第二方面,本发明实施例提供了一种数据入库装置,包括:

任务参数获取模块,用于基于Flink框架获取用户配置的任务参数,其中,任务参数中包含数据源地址和数据转换方式;

源数据获取模块,用于根据数据源地址进行数据抽取获取源数据,其中,源数据的类型包括文件数据、数据库数据、消息队列数据或分布式文件系统HDFS数据;

数据入库模块,用于根据数据转换方式对源数据进行转换获得转换数据,并将转换数据以数据流的形式写入到目标数据库的指定位置。

第三方面,本发明实施例还提供了一种电子设备,电子设备包括:

一个或多个处理器;

存储装置,用于存储一个或多个程序;

当一个或多个程序被一个或多个处理器执行,使得一个或多个处理器实现本发明任意实施例的方法。

第四方面,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现本发明任意实施例的方法。

在本发明实施例中,通过在Flink框架下获取包含数据源地址和数据转换方式的任务参数,将从数据源地址获取的源数据根据转换方式进行转换,并将转换数据写入到目标数据库的指定位置,从而实现了基于Flink框架将复杂的源数据进行处理并进行准确的入库保存。

附图说明

图1A是本发明实施例一提供的数据入库方法的流程图;

图1B是本发明实施例一提供的可视化任务配置界面示意图;

图2A是本发明实施例二提供的数据入库方法的流程图;

图2B是本发明实施二提供的应用架构示意图;

图3是本发明实施例三提供的数据入库装置结构示意图;

图4是本发明实施例四提供的一种电子设备的结构框图。

具体实施方式

下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。

实施例一

图1A是本发明实施例提供的数据入库方法的流程图,本实施例可适用在Flink框架下对数据进行处理并入库保存的情况。该方法可以由本发明实施例中的数据入库装置来执行,该装置可以通过软件和/或硬件的方式实现,本发明实施例的方法具体包括如下步骤:

步骤S101,基于Flink框架获取用户配置的任务参数,其中,任务参数中包含数据源地址和数据转换方式。

可选的,基于Flink框架获取用户的任务配置参数之前,还包括:获取用户的任务创建指令;根据任务创建指令进行任务参数的配置。

可选的,获取用户的任务创建指令,包括:获取用户在可视化任务配置界面的操作指示,其中,可视化任务配置界面包括画布工具栏、组件栏和任务组件配置区;根据操作指示获取用户的任务创建指令。

可选的,数据转换方式包括:字段选择、类型校验、范围校验、替换、设置缺省值、脱敏、日期转换、合并、字段添加、字段截取、拆分和IP回填中的至少一种。

具体的说,本实施方式中用户可以基于Flink框架获取用户的任务创建指令,并且具体是根据任务创建指令进行任务参数的配置。如图1B所示为可视化任务配置界面示意图,因此获取用户的任务创建指令的方式具体可以是,获取用户在可视化任务配置界面的操作指示,根据操作指示获取用户的任务创建指令。由图1B可知,在可视化任务配置界面中包括顶端的画布工具栏,左侧的组件栏以及位于中间区域的任务组件配置区。在组件栏中具体包含四大类型组件:基础组件、输入组件、转换组件和输出组件,并且在转换组件中又具体包含不同的转换方式所对应的组件。用户可以根据实际需求将组件栏中的各组件向任务组件配置区进行拖拽,并通过连线将各组件进行连接,因此本实施方式中具体可以是获取用户在可视化任务配置界面的操作指示,操作指示具体可以是:组件选择、组件拖拽和组件连接等操作,并根据用户的操作指示获取用户的任务创建指令。例如,用户选择了开始组件、文件1组件、字段转换组件、输出文件和结束组件,并进行了顺次连接的操作指示以进行任务创建,而在文件1组件中可以包含文件1的数据源地址X,因此根据操作指示可以获取用户的任务创建指令:请对数据源地址X中的文件按照字段转换方式进行数据转换。在获得任务创建指令后会根据用户的任务创建指令进行任务参数的配置,其中,在任务参数中包含数据源地址和数据转换方式。

需要说明的是,本实施方式中用户可以通过在可视化任务配置界面同时进行多条任务的创建,即可以同时获取多条任务创建指令,因此在后续数据入库的过程中多条任务是可以独立并行运行的,本实施方式中并不不对所创建的任务的具体个数进行限定。

其中,本实施方式中转换组件所对应的转换方式包括多种,包括:字段选择—支持选择所有类型的字段,选择的字段即为想要输出的字段;类型校验—支持选择除String类型外的,所有类型字段,Float、Double、Long型字段校验数字,Integer型字段校验规则支持2进制、10进制、16进制,Date型字段校验规则为输入组件中填写的数据格式;范围校验—支持选择所有类型的字段,Float、Double、Long、Integer型字段校验数值范围,Date型字段校验时间范围,String型字段校验字符串的长度;替换—支持String类型的字段,可将选择字段的数据中任意字符(串)替换成设置的“替换后”的内容,无新字段添加;设置缺省值—支持选择所有类型的字段,针对选择的字段,设置缺省值,当对应字段的内容没空时,输出时会将设置的缺省值填到对应的字段中;脱敏—支持选择String类型的字段,支持的脱敏类型有前脱敏、后脱敏、范围脱敏和全字段脱敏,前脱敏、后脱敏和范围脱敏支持屏蔽脱敏算法,全字段脱敏支持高级加密标准(Advanced Encryption Standard,AES)、MD5、屏蔽3种脱敏算法;合并—支持选择String类型的字段,原字段保留不变,合并后的字段以新字段显示到最后列,使用合并组件,会有新字段生成,新字段名不与新老字段重名,字段类型默认为String型;字段添加—在任意字段前后添加新字段,新字段支持删除修改,老字段不支持删除修改,新字段名不与新老字段重名;字段截取—支持选择String和Date类型的字段,针对原字段进行截取,输出字段截取部分的内容,不会有新字段生成;拆分—支持选择String和Date类型的字段,拆分后的部分生成新字段,显示到最后列,会有新字段生成,新字段名不可与新老字段重名;IP回填—支持选择String类型字段,通过字段的数据IP地址回显出IP对应的信息,包括国家、省或直辖市、地区或城市、学校或单位、运营商字段、经度、纬度、时区一、时区二、行政区划代码、国际电话代码、国家二位代码和世界大洲代码等13个信息,会生成新字段(每一个信息为一个新字段),显示到最后列,可对新字段今夕重命名,且新字段名不与新老字段重名。当然本实施方式中仅是举例说明,而并不对数据转换方式的具体类型进行限定。

步骤S102,根据数据源地址进行数据抽取获取源数据,其中,源数据的类型包括文件数据、数据库数据、消息队列数据或分布式文件系统HDFS数据。

可选的,根据数据源地址进行数据抽取获取源数据,包括:对数据源地址进行扫描获取扫描文件;从扫描文件中获取源数据。

具体的说,本实施方式中在基于Flink框架获取用户配置的任务参数之后,会根据任务参数中所包含的数据源地址进行抽取获取源数据,本实施方式中从不同数据源地址所获取的源数据的具体形式包括半结构化、结构化或非结构化,并且源数据的类型可以包括文件数据、数据库数据、消息队列数据或分布式文件系统(Hadoop Distributed FileSystem,HDFS)数据,而文件数据具体为半结构化形式,数据库数据具体为结构化形式,HDFS数据具体为非结构化数据,当然,本实施方式中仅是举例说明,而并不对源数据的类型进行具体限定。

在一个具体实现中,当确定数据源地址为X,则对数据源地址X进行扫描获取扫描文件1,然后再从扫描文件1中获取源数据,由于通过对数据源地址X进行扫描获取的是文件,因此从文件中所获取的源数据的类型为文件数据,即半结构化形式的数据。本实施方式中仅是以源数据为文件数据为例进行的说明,对于其它类型源数据的获取方式与此大致相同,因此本实施方式中不再进行赘述。

步骤S103,根据数据转换方式对源数据进行转换获得转换数据,并将转换数据以数据流的形式写入到目标数据库的指定位置。

具体的说,本实施方式中在基于Flink框架获取用户配置的任务参数后,具体是根据任务参数中所包含的数据转换方式对从数据源地址所抽取的源数据进行转化,其中,转换方式可以仅包含一种,例如,仅包含字段选择,也可以是多种的组合,例如,包含字段选择和范围校验,转换方式的具体内容具体是根据用户在可视化任务配置界面的操作指示所确定,并且当数据转换方式包括多种时,具体按照预定的先后顺序分别对源数据进行处理,例如,在确定数据转换方式包括字段选择和范围校验时,可以先对源数据进行字段选择,然后进行范围校验,本实施方式中并不对源数据进行转换的具体方式进行限定。

需要说明的是,在获得转换数据后会将转换数据以数据流的形式写入到目标数据库的指定位置,本实施方式中不同类型的源数据在进行转换后分别保存在目标数据库的不同位置,并且这些位置也是提前所设置的。例如,在数据入库之前,提前设置文件数据在目标数据库的存储位置为位置1,数据库数据在目标数据库的存储位置为位置2,消息队列数据在目标数据库的存储位置为位置3,HDFS数据在目标数据库的存储位置为位置4,当针对文件数据在按照数据转换方式进行转换后写入到目标数据库中的位置1中。

需要说明的是,目标数据库的数量也可以为多个,本实施方式中并不限定目标数据库的具体数量,支持多路输出即同一数据源经过相同的处理之后,可以输出到多个目标数据库中进行存储。

在本发明实施例中,通过在Flink框架下获取包含数据源地址和数据转换方式的任务参数,将从数据源地址获取的源数据根据转换方式进行转换,并将转换数据写入到目标数据库的指定位置,从而实现了基于Flink框架将复杂的源数据进行处理并进行准确的入库保存。

实施例二

图2A是本发明实施例二提供的一种数据入库方法的流程图,本实施方式以上述实施例为基础,在根据数据转换方式对源数据进行转换获得转换数据之前,还包括:对源数据进行解析获得解析数据,对解析数据进行识别并确定解析数据不是脏数据。

如图2A所示,本公开实施例的方法具体包括:

步骤S201,基于Flink框架获取用户配置的任务参数,其中,任务参数中包含数据源地址和数据转换方式。

可选的,基于Flink框架获取用户的任务配置参数之前,还包括:获取用户的任务创建指令;根据任务创建指令进行任务参数的配置。

可选的,获取用户的任务创建指令,包括:获取用户在可视化任务配置界面的操作指示,其中,可视化任务配置界面包括画布工具栏、组件栏和任务组件配置区;根据操作指示获取用户的任务创建指令。

步骤S202,根据数据源地址进行数据抽取获取源数据,其中,源数据的类型包括文件数据、数据库数据、消息队列数据或分布式文件系统HDFS数据。

可选的,根据数据源地址进行数据抽取获取源数据,包括:对数据源地址进行扫描获取扫描文件;从扫描文件中获取源数据。

步骤S203,对源数据进行解析获得解析数据,对解析数据进行识别并确定解析数据不是脏数据。

具体的说,如图2B所示为本实施方式中应用架构的示意图,在应用架构中主要包含3个组件分别是:ELT-Reader、ELT-Core和ELT-Writer,其中,ELT-Reader组件中包含不同的读插件,通过不同的读插件进行不同类型的源数据的抽取;ELT-Core组件用于根据数据转换方式对源数据进行转换获得转换数据;ELT-Writer组件中包含不同的写入插件,通过不同的写入插件进行不用类型的源数据转换之后的写入。

具体的说,本实施方式中在获取源数据对源数据进行转换之前会首先对源数据进行解析,其中,不同类型的源数据分别对应不同的解析方式,并且这些解析方式是预知的,数据解析主要是提取出源数据中所包含的有效值,例如,针对源数据“?#@1234&”,通过对其进行解析可以获得解析之后的结果为“1234”,当然,本实施方式中仅是举例说明,而并不对解析的具体方式进行限定。并且只有对解析结果进行识别并确定解析数据不是脏数据的情况下才会进行后续的数据转换。

可选的,方法还包括:对解析数据进行识别;根据识别结果确定解析数据为脏数据时,将解析数据进行删除。

其中,在对源数据进行解析后如果通过对解析数据进行识别,并且根据识别结果确定解析数据为脏数据即不包含有效数据,则会通过ELT-Core将脏数据进行删除,而不会继续将脏数据写入到目标数据库中。

步骤S204,根据数据转换方式对源数据进行转换获得转换数据,并将转换数据以数据流的形式写入到目标数据库的指定位置。

在本发明实施例中,通过在Flink框架下获取包含数据源地址和数据转换方式的任务参数,将从数据源地址获取的源数据根据转换方式进行转换,并将转换数据写入到目标数据库的指定位置,从而实现了基于Flink框架将复杂的源数据进行处理并进行准确的入库保存。通过对源数据进行解析,并在确定解析结果不是脏数据的情况下才会写入到目标数据库中,而在确定为脏数据的情况下进行删除,从而保障了目标数据库所保存数据的有效性。

实施例三

图3是本发明实施例提供的一种数据入库装置的结构示意图,具体包括:任务参数获取模块310、源数据获取模块320和数据入库模块330。

任务参数获取模块310,用于基于Flink框架获取用户配置的任务参数,其中,任务参数中包含数据源地址和数据转换方式;

源数据获取模块320,用于根据数据源地址进行数据抽取获取源数据,其中,源数据的类型包括文件数据、数据库数据、消息队列数据或分布式文件系统HDFS数据;

数据入库模块330,用于根据数据转换方式对源数据进行转换获得转换数据,并将转换数据以数据流的形式写入到目标数据库的指定位置。

可选的,装置还包括任务创建指令获取模块,用于获取用户的任务创建指令;

任务参数配置模块,用于根据任务创建指令进行任务参数的配置。

可选的,任务创建指令获取模块,用于获取用户在可视化任务配置界面的操作指示,其中,可视化任务配置界面包括画布工具栏、组件栏和任务组件配置区;

根据操作指示获取用户的任务创建指令。

可选的,源数据获取模块用于,对数据源地址进行扫描获取扫描文件;

从扫描文件中获取源数据。

可选的,装置还包括解析模块用于,对源数据进行解析获得解析数据;

对解析数据进行识别并确定解析数据不是脏数据;

数据入库模块用于,根据数据转换方式对解析数据进行转换获得转换数据。

可选的,装置还包括脏数据删除模块用于,对解析数据进行识别;

根据识别结果确定解析数据为脏数据时,将解析数据进行删除。

可选的,数据转换方式包括:字段选择、类型校验、范围校验、替换、设置缺省值、脱敏、日期转换、合并、字段添加、字段截取、拆分和IP回填中的至少一种。

上述装置可执行本发明任意实施例所提供的数据入库方法,具备执行方法相应的功能模块和有益效果。未在本实施例中详尽描述的技术细节,可参见本发明任意实施例提供的方法。

实施例四

图4是本发明实施例提供的一种电子设备的结构示意图。图4示出了适用于用来实现本发明实施方式的示例性电子设备412的框图。图4显示的电子设备412仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。

如图4所示,电子设备412以通用计算设备的形式出现。电子设备412的组件可以包括但不限于:一个或者多个处理器412,存储器428,连接不同系统组件(包括存储器428和处理器416)的总线418.

总线418表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(ISA)总线,微通道体系结构(MAC)总线,增强型ISA总线、视频电子标准协会(VESA)局域总线以及外围组件互连(PCI)总线。

电子设备412典型地包括多种计算机系统可读介质。这些介质可以是任何能够被电子设备412访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。

存储器428用于存储指令。存储器428可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(RAM)430和/或高速缓存存储器432。电子设备412可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储系统434可以用于读写不可移动的、非易失性磁介质(图4未显示,通常称为“硬盘驱动器”)。尽管图4中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如CD-ROM,DVD-ROM或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线418相连。存储器428可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本发明各实施例的功能。

具有一组(至少一个)程序模块442的程序/实用工具440,可以存储在例如存储器428中,这样的程序模块442包括但不限于操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块442通常执行本发明所描述的实施例中的功能和/或方法。

电子设备412也可以与一个或多个外部设备414(例如键盘、指向设备、显示器424等)通信,还可与一个或者多个使得用户能与该电子设备412交互的设备通信,和/或与使得该电子设备412能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口422进行。并且,电子设备412还可以通过网络适配器420与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器420通过总线418与电子设备412的其它模块通信。应当明白,尽管图4中未示出,可以结合电子设备412使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。

处理器416通过运行存储在存储器428中的指令,从而执行各种功能应用以及数据处理,例如执行以下操作:基于Flink框架获取用户配置的任务参数,其中,任务参数中包含数据源地址和数据转换方式;根据数据源地址进行数据抽取获取源数据,其中,源数据的类型包括文件数据、数据库数据、消息队列数据或分布式文件系统HDFS数据;根据数据转换方式对源数据进行转换获得转换数据,并将转换数据以数据流的形式写入到目标数据库的指定位置。

实施例五

本发明实施例五还提供一种包含计算机可执行指令的存储介质,计算机可执行指令在由计算机处理器执行时用于执行数据入库方法,该方法包括:

基于Flink框架获取用户配置的任务参数,其中,任务参数中包含数据源地址和数据转换方式;根据数据源地址进行数据抽取获取源数据,其中,源数据的类型包括文件数据、数据库数据、消息队列数据或分布式文件系统HDFS数据;根据数据转换方式对源数据进行转换获得转换数据,并将转换数据以数据流的形式写入到目标数据库的指定位置。

当然,本发明实施例所提供的一种包含计算机可执行指令的存储介质,其计算机可执行指令不限于如上的方法操作,还可以执行本发明任意实施例所提供的数据入库方法中的相关操作。

通过以上关于实施方式的描述,所属领域的技术人员可以清楚地了解到,本发明可借助软件及必需的通用硬件来实现,当然也可以通过硬件实现,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如计算机的软盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(RandomAccess Memory,RAM)、闪存(FLASH)、硬盘或光盘等,包括若干指令用以使得一台电子设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的跨平台的作业转换方法。

值得注意的是,上述实施例中所包括的各个单元和模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。

注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。

相关技术
  • 一种数据入库方法、装置、电子设备和存储介质
  • 数据入库管理方法、装置、电子设备,及存储介质
技术分类

06120112533372