一种基于datax的数据同步方法及装置、电子设备、存储介质
技术领域
1.本技术涉及大数据中台设计领域,特别涉及一种基于datax的数据同步方法及装置、电子设备、存储介质。
背景技术:2.datax作为alibaba的开源项目,致力于实现各种异构数据源之间稳定高效的数据同步功能。在使用datax的时候,需要按照datax的json格式进行参数配置,每种数据源也都有各自复杂的配置项,其配置格式复杂,手动进行参数配置易出错。而且由于datax自身没有可视化界面,datax需要使用自身提供的python脚本才能运行。以上限制都要求使用者很熟练地掌握datax底层原理与设计思想才能使用,不仅使用门槛高,而且易出错,且调试不方便。
技术实现要素:3.本技术实施例提供了一种基于datax的数据同步方法,用于降低datax工具使用门槛、简化配置过程,并降低错误发生的概率。
4.本技术实施例提供了一种基于datax的数据同步方法,包括:
5.响应于数据同步按钮的触发指令,展示数据同步页面;
6.根据所述数据同步页面中输入的数据来源信息、数据目标信息、字段映射关系以及同步参数,获得datax工具的配置参数;
7.将所述datax工具的配置参数上传至服务端,使服务端根据所述配置参数,运行datax工具进行数据同步;
8.接收服务端运行所述datax工具返回的运行日志。
9.在一实施例中,在所述响应于数据同步按钮的触发指令,展示数据同步页面之前,所述方法还包括:
10.显示数据源添加页面,获取所述数据源添加页面中输入的多种数据源信息。
11.在一实施例中,所述数据源信息包括数据源名称、数据源地址、用户名、密码以及数据源描述。
12.在一实施例中,在根据所述数据同步页面中输入的数据来源信息、数据目标信息、字段映射关系以及同步参数,获得datax工具的配置参数之前,所述方法还包括:
13.获取所述数据同步页面的基本设置栏下输入的数据来源信息和数据目标信息;
14.所述数据来源信息包括数据来源的数据源类型、数据源名称以及表名;所述数据目标信息包括数据目标的数据源类型、数据源名称以及表名。
15.在一实施例中,在根据所述数据同步页面中输入的数据来源信息、数据目标信息、字段映射关系以及同步参数,获得datax工具的配置参数之前,所述方法还包括:
16.响应于字段映射设置指令,显示数据来源的字段名称以及数据目标对应的字段名称;
17.响应于同名映射或同行映射的触发指令,建立数据来源的字段名称以及数据目标对应的字段名称之间的映射关系。
18.在一实施例中,在根据所述数据同步页面中输入的数据来源信息、数据目标信息、字段映射关系以及同步参数,获得datax工具的配置参数之前,所述方法还包括:
19.响应于字段映射设置指令,显示来源字段输入框以及目标字段输入框;
20.根据所述来源字段输入框输入的来源字段以及目标字段输入框输入的目标字段,建立所述来源字段与输入字段之间的字段映射关系。
21.在一实施例中,在根据所述数据同步页面中输入的数据来源信息、数据目标信息、字段映射关系以及同步参数,获得datax工具的配置参数之前,所述方法还包括:
22.响应于高级配置设置指令,显示输入源设置框以及输出源设置框;
23.根据所述输入源设置框输入的拆分字段、过滤条件以及输出源设置框输入的写入模式、同步通道以及容错比例,得到所述同步参数。
24.本技术实施例还提供了一种基于datax的数据同步装置,包括:
25.数据同步触发模块,用于响应于数据同步按钮的触发指令,展示数据同步页面;
26.配置参数模块,用于根据所述数据同步页面中输入的数据来源信息、数据目标信息、字段映射关系以及同步参数,获得datax工具的配置参数;
27.数据处理模块,用于将所述datax工具的配置参数上传至服务端,使服务端根据所述配置参数,运行datax工具进行数据同步;
28.日志接收模块,用于接收服务端运行所述datax工具返回的运行日志。
29.本技术实施例还提供了一种电子设备,所述电子设备包括:
30.处理器;
31.用于存储处理器可执行指令的存储器;
32.其中,所述处理器被配置为执行上述基于datax的数据同步方法。
33.本技术实施例还提供了一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序可由处理器执行以完成上述基于datax的数据同步方法。
34.本技术上述实施例提供的技术方案,通过响应于数据同步按钮的触发指令,展示数据同步页面,根据数据同步页面中输入的数据来源信息、数据目标信息、字段映射关系以及同步参数,获得datax工具的配置参数,将datax工具的配置参数上传至服务端,使服务端根据配置参数,运行datax工具进行数据同步;接收服务端运行datax工具返回的运行日志,从而降低datax工具使用门槛、简化配置过程,并降低错误发生的概率。
附图说明
35.为了更清楚地说明本技术实施例的技术方案,下面将对本技术实施例中所需要使用的附图作简单地介绍。
36.图1为本技术一实施例提供的基于datax的数据同步方法的应用场景示意图;
37.图2为本技术一实施例提供的电子设备的结构示意图;
38.图3是本技术一实施例提供的基于datax的数据同步方法的流程示意图;
39.图4为本技术一实施例示出的基于datax的数据同步装置的框图。
具体实施方式
40.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行描述。
41.相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本技术的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
42.本技术中当用户基于datax工具进行数据源的数据同步时,首先在客户端显示的可视化界面上选择数据源,配置相应的参数;然后服务端会自动解析配置参数并生成相应的配置文件,进而提交datax工具运行,数据开始同步;最后服务端将datax的运行日志反馈给客户端,用户可根据客户端显示的运行日志得到实时的数据同步信息。
43.图1为本技术一实施例提供的基于datax的数据同步方法的应用场景示意图。如图1所示,该应用场景可以包括客户端10及服务端20。客户端10可以是智能手机、平板电脑、笔记本电脑或台式电脑等,服务端20可以为台式电脑、服务器、服务器集群或云计算中心等。客户端10及服务端20通过有线或无线网络连接。客户端10及服务端20可用于执行下述基于datax的数据同步方法。
44.图2为本技术一实施例提供的电子设备的结构示意图。该电子设备可以用于执行本技术实施例提供的基于datax的数据同步方法。如图2所示,该电子设备200包括:一个或多个处理器202,一个或多个存储处理器可执行指令的存储器204,其中,所述处理器202被配置为执行本技术下述实施例提供的基于datax的数据同步方法。
45.所述处理器202可以是网关,也可以为智能终端,或者是包含中央处理单元(cpu)、图像处理单元(gpu)或者具有数据处理能力和/或指令执行能力的其它形式的处理单元的设备,可以对所述电子设备200中的其它组件的数据进行处理,还可以控制所述电子设备200中的其它组件以执行期望的功能。
46.所述存储器204可以包括一个或多个计算机程序产品,所述计算机程序产品可以包括各种形式的计算机可读存储介质,例如易失性存储器和/或非易失性存储器。所述易失性存储器例如可以包括随机存取存储器(ram)和/或高速缓冲存储器(cache)等。所述非易失性存储器例如可以包括只读存储器(rom)、硬盘、闪存等。在所述计算机可读存储介质上可以存储一个或多个计算机程序指令,处理器202可以运行所述程序指令,以实现下文所述的基于datax的数据同步方法。在所述计算机可读存储介质中还可以存储各种应用程序和各种数据,例如所述应用程序使用和/或产生的各种数据等。
47.在一实施例中,图2所示电子设备200还可以包括输入装置206、输出装置208以及数据采集装置210,这些组件通过总线系统212和/或其它形式的连接机构(未示出)互连。应当注意,图2所示的电子设备200的组件和结构只是示例性的,而非限制性的,根据需要,所述电子设备也可以具有其他组件和结构。
48.所述输入装置206可以是用户用来输入指令的装置,并且可以包括键盘、鼠标、麦克风和触摸屏等中的一个或多个。所述输出装置208可以向外部(例如,用户)输出各种信息(例如,图像或声音),并且可以包括显示器、扬声器等中的一个或多个。所述数据采集装置210可以采集对象的图像,并且将所采集的图像存储在所述存储器204中以供其它组件使用。示例性地,该数据采集装置210可以为摄像头。
49.在一实施例中,用于实现本技术实施例的基于datax的数据同步方法的示例电子
设备中的各器件可以集成设置,也可以分散设置,诸如将处理器202、存储器204、输入装置206和输出装置208集成设置于一体,而将数据采集装置210分离设置。
50.在一实施例中,用于实现本技术实施例的基于datax的数据同步方法的示例电子设备可以被实现为诸如智能手机、平板电脑、智能手表、车载设备等智能终端。
51.图3为本技术实施例提供的基于datax的数据同步方法的流程示意图。如图3所示,该方法可以包括以下步骤s310-s340。
52.步骤s310:响应于数据同步按钮的触发指令,展示数据同步页面。
53.具体的,在使用datax工具进行数据同步时,客户端响应于数据同步按钮的触发指令,展示数据同步页面。
54.步骤s320:根据数据同步页面中输入的数据来源信息、数据目标信息、字段映射关系以及同步参数,获得datax工具的配置参数。
55.具体的,客户端根据数据同步页面中输入的数据来源信息、数据目标信息、字段映射关系以及同步参数,获得datax工具所需要的配置参数,其中,关系型数据库和非关系型数据库的数据来源信息、数据目标信息均需要选择其数据源类型、数据源名称以及表名。特殊的数据源还有其他配置项,例如hive需要配置分区字段,sqlserver、oracle、db2需要配置用户空间等,而消息中间件,例如kafka需要配置topic,每种数据源都有自己相关的配置,此处不作限定;字段映射配置关系支持同名字段一键映射、同行字段一键映射以及自定义选择字段建立映射关系;同步参数包括数据来源设置、数据目标设置以及全局的datax高级配置,数据来源设置与数据目标设置会根据不同的数据源类型展示不同的配置项,例如关系型数据库的数据来源设置包含了拆分字段、过滤条件等,数据目标设置包含了同步前需要执行的sql、同步后需要执行的sql等,datax的全局配置包含并行度、错误数据容忍度等。
56.步骤s330:将datax工具的配置参数上传至服务端,使服务端根据配置参数,运行datax工具进行数据同步。
57.具体的,客户端将步骤s320获得的datax工具的配置参数上传至服务端,服务端根据配置参数,对其解析后生成datax的json文件,通过datax提供的python脚本进行提交,并开始数据同步。
58.步骤s340:接收服务端运行datax工具返回的运行日志。
59.具体的,客户端接收服务端运行datax工具返回的实时的运行日志,运行日志中包括数据同步信息和异常数据信息等,此处不作限定。
60.在一实施例中,在上述步骤s310响应于数据同步按钮的触发指令,展示数据同步页面之前,本技术实施例提供的方法还包括:
61.显示数据源添加页面,获取数据源添加页面中输入的多种数据源信息。
62.具体的,客户端在响应数据同步按钮的触发指令,展示数据同步页面之前,先显示数据源添加页面,获取所述数据源添加页面中输入的多种数据源信息。其中,数据源包括数据来源和数据目标,可配置的数据源支持datax支持的所有数据源类型,数据源类型包括但不限于hdfs、mysql、sqlserver、oracle、db2、postgresql、txt、ftp、elasticsearch等。还有,数据源架构为插件式架构,因此数据源还可以支持datax目前支持以外的数据源类型,数据源类型包括但不限于hive、kafka、neo4j、clickhouse、rabbitmq等。
63.在一实施例中,数据源信息包括数据源名称、数据源地址、用户名、密码以及数据源描述。
64.具体的,用户在选择数据同步之前,先选择添加数据源,包括数据来源的数据源和数据目标的数据源,相应的填写其对应的数据源信息,数据源信息包括数据源名称、数据源地址、用户名、密码以及数据源描述。
65.举例来说,用户在数据源添加页面添加了两个数据源,分别为mysql和hive。其中,数据源mysql的数据源名称为mysql_from、数据源地址为jdbc:mysql://zhuanli_host:3306/dataworks、用户名为zhuanli_test、密码为xxx。数据源hive的数据源名称为hive_to、数据源地址为hdfs://zhuanli_host:8020、无用户名和密码。
66.在一实施例中,在上述步骤s320根据数据同步页面中输入的数据来源信息、数据目标信息、字段映射关系以及同步参数,获得datax工具的配置参数之前,本技术实施例提供的方法还包括:
67.获取数据同步页面的基本设置栏下输入的数据来源信息和数据目标信息;
68.数据来源信息包括数据来源的数据源类型、数据源名称以及表名;数据目标信息包括数据目标的数据源类型、数据源名称以及表名。
69.具体的,客户端获取数据同步页面的基本设置栏下输入的数据来源和数据目标信息的数据源类型、数据源名称以及表名。
70.举例来说,客户端获取数据同步页面的基本设置栏下输入的数据来源的数据源类型为mysql,数据源为mysql_from,表名为test_input;数据目标选择数据源类型为hive,数据源为hive_to,表名为test_output。
71.在一实施例中,在上述步骤s320根据数据同步页面中输入的数据来源信息、数据目标信息、字段映射关系以及同步参数,获得datax工具的配置参数之前,本技术实施例提供的方法还包括:
72.响应于字段映射设置指令,显示数据来源的字段名称以及数据目标对应的字段名称;
73.响应于同名映射或同行映射的触发指令,建立数据来源的字段名称以及数据目标对应的字段名称之间的映射关系。
74.具体的,客户端响应于字段映射设置指令,显示数据来源的字段名称以及数据目标对应的字段名称,以及显示数据来源的字段列表和数据目标的字段列表,用户可根据显示的可视化界面配置映射关系。客户端响应于同名映射或同行映射的触发指令,建立数据来源的字段名称以及数据目标对应的字段名称之间的映射关系。
75.举例来说,客户端显示的数据来源字段为id,name,age,marriage,income,birth_day,online_time;客户端显示的数据目标字段为id,name,age,marriage,income,birth_day,online_time。若点击同名映射,则客户端将数据来源与数据目标同名的字段进行映射,从而建立映射关系。
76.在一实施例中,在上述步骤s320根据数据同步页面中输入的数据来源信息、数据目标信息、字段映射关系以及同步参数,获得datax工具的配置参数之前,本技术实施例提供的方法还包括:
77.响应于字段映射设置指令,显示来源字段输入框以及目标字段输入框;
78.根据来源字段输入框输入的来源字段以及目标字段输入框输入的目标字段,建立来源字段与输入字段之间的字段映射关系。
79.具体的,如步骤s320所述,字段映射配置关系除了支持同名字段一键映射、同行字段一键映射,还支持自定义选择字段建立映射关系。客户端根据字段映射设置指令,显示来源来源字段的输入框以及目标字段的输入框,用户根据自定义选择的字段,将其输入到来源字段和目标字段的输入框中,客户端根据所述来源字段输入框输入的来源字段以及目标字段输入框输入的目标字段,建立所述来源字段与输入字段之间的字段映射关系。
80.在一实施例中,在上述步骤s320根据数据同步页面中输入的数据来源信息、数据目标信息、字段映射关系以及同步参数,获得datax工具的配置参数之前,本技术实施例提供的方法还包括:
81.响应于高级配置设置指令,显示输入源设置框以及输出源设置框;
82.根据输入源设置框输入的拆分字段、过滤条件以及输出源设置框输入的写入模式、同步通道以及容错比例,得到同步参数。
83.具体的,客户端响应于高级配置设置指令,显示输入源设置框以及输出源设置框,其中,高级配置包含数据来源设置、数据目标设置以及全局的datax高级配置。数据来源设置与数据目标设置会根据不同的数据源类型展示不同的配置项。例如关系型数据库的数据来源设置包含了拆分字段、过滤条件等;数据目标设置包含了同步前需要执行的sql、同步后需要执行的sql等。全局datax的高级配置包含并行度、错误数据容忍度等。然后客户端根据输入源设置框输入的拆分字段、过滤条件以及输出源设置框输入的写入模式、同步通道以及容错比例,得到所述同步参数。
84.举例来说,假设数据来源设置拆分字段为id,过滤条件为id》100,其中,拆分字段要求字段必须为整形,而且最好是主键,进而保证唯一性,通过该字段将数据拆分为datax的channel*5个范围,实现多个线程并发同步。过滤条件实现数据过滤或增量同步。数据目标设置写入模式为append,表示数据以追加的方式写入hive。全局datax的高级配置中设置datax同步通道为2,即channel为2,也就是说,将数据分成2个通道,每个通道有5个线程,错误数据容忍比例为0.01%,此处不作限定,最后得到同步参数。
85.下述为本技术装置实施例,可以用于执行本技术上述基于datax的数据同步方法实施例。对于本技术装置实施例中未披露的细节,请参照本技术基于datax的数据同步方法实施例。
86.图4为本技术一实施例示出的基于datax的数据同步装置的框图。如图4所示,该装置包括数据同步触发模块410,配置参数模块420,数据处理模块430,日志接收模块440。
87.数据同步触发模块410,用于响应于数据同步按钮的触发指令,展示数据同步页面;
88.配置参数模块420,用于根据所述数据同步页面中输入的数据来源信息、数据目标信息、字段映射关系以及同步参数,获得datax工具的配置参数;
89.数据处理模块430,用于将所述datax工具的配置参数上传至服务端,使服务端根据所述配置参数,运行datax工具进行数据同步;
90.日志接收模块440,用于接收服务端运行所述datax工具返回的运行日志。
91.上述装置中各个模块的功能和作用的实现过程具体详见上述基于datax的数据同
步方法中对应步骤的实现过程,在此不再赘述。
92.在本技术所提供的几个实施例中,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本技术的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
93.另外,在本技术各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
94.功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本技术各个实施例方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质。