CN111324610A - 一种数据同步的方法及装置 - Google Patents
一种数据同步的方法及装置 Download PDFInfo
- Publication number
- CN111324610A CN111324610A CN202010101450.5A CN202010101450A CN111324610A CN 111324610 A CN111324610 A CN 111324610A CN 202010101450 A CN202010101450 A CN 202010101450A CN 111324610 A CN111324610 A CN 111324610A
- Authority
- CN
- China
- Prior art keywords
- target
- data
- database
- information
- synchronization
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 47
- 238000013515 script Methods 0.000 claims abstract description 54
- 230000001360 synchronised effect Effects 0.000 claims abstract description 32
- 238000004590 computer program Methods 0.000 claims description 27
- 230000006870 function Effects 0.000 description 11
- 230000008569 process Effects 0.000 description 7
- 238000010586 diagram Methods 0.000 description 5
- 238000012545 processing Methods 0.000 description 4
- 230000004044 response Effects 0.000 description 4
- 238000004422 calculation algorithm Methods 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 230000008676 import Effects 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000007405 data analysis Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000005192 partition Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000013075 data extraction Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 238000011068 loading method Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 238000007619 statistical method Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2282—Tablespace storage structures; Management thereof
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请适用于计算机技术领域,提供了一种数据同步的方法,包括:获取数据同步指令;基于所述数据库地址信息、所述数据库权限信息和所述表名信息,确定所述目标数据对应的字段信息和字段类型;基于所述字段信息、所述字段类型、所述目标同步地址信息和预设分布式数据库工具,在分布式数据库中建立目标表;基于所述数据同步指令确定所述目标数据对应的同步脚本;基于所述同步脚本将所述目标数据同步至所述分布式数据库中的目标表。上述方法,通过生成同步脚本,把原本手动编写的脚本通过自动化实现,提高了数据同步的效率,并且减少了出错的可能。
Description
技术领域
本申请属于计算机技术领域,尤其涉及一种数据同步的方法及装置。
背景技术
大数据开发中的第一个环节是将海量数据导入平台之中,供数据分析或算法建模,现有技术中针对存储在不同类型数据库的数据,导入的方式是手动编写对应的脚本,从而实现数据同步。但是现有的大批量数据导入的方式效率过低,并且容易在同步时出现错误。
发明内容
本申请实施例提供了一种数据同步的方法及装置,可以解决现有的大批量数据导入的方式效率过低,并且容易在同步时出现错误的问题。
第一方面,本申请实施例提供了一种数据同步的方法,包括:
获取数据同步指令;所述数据同步指令包括待同步的目标数据所属的关系数据库的数据库地址信息、数据库权限信息、所述目标数据在所述关系数据库中对应的表的表名信息、目标同步地址信息;
基于所述数据库地址信息、所述数据库权限信息和所述表名信息,确定所述目标数据对应的字段信息和字段类型;
基于所述字段信息、所述字段类型、所述目标同步地址信息和预设分布式数据库工具,在分布式数据库中建立目标表;所述分布式数据库为所述目标数据进行数据同步的目标数据库;所述目标表用于存储所述目标数据;
基于所述数据同步指令确定所述目标数据对应的同步脚本;
基于所述同步脚本将所述目标数据同步至所述分布式数据库中的目标表。
进一步地,所述基于所述字段信息、所述字段类型和预设分布式数据库工具,在分布式数据库中建立目标表,包括:
基于所述字段信息、所述字段类型和预设分布式数据库工具,确定元数据;所述元数据包括所述目标表的表信息;
基于所述元数据在分布式数据库中建立目标表。
进一步地,所述基于所述数据同步指令确定所述目标数据对应的同步脚本,包括:
基于预设生成策略和所述数据同步指令,生成所述目标数据对应的Apache Spark提交脚本。
进一步地,所述数据同步指令还包括所述关系数据库的数据库类型;
所述基于所述同步脚本将所述目标数据同步至所述分布式数据库中的目标表,包括:
根据所述数据库类型确定关系数据库的驱动信息;
基于所述同步脚本和所述驱动信息,确定可执行任务文件;
基于所述可执行任务文件进行任务调度,将所述目标数据同步至所述分布式数据库中的目标表。
进一步地,在所述基于所述可执行任务文件进行任务调度,将所述目标数据同步至所述分布式数据库中的目标表之后,还包括:
当检测到所述可执行任务文件调度失败时,再次基于所述可执行任务文件进行任务调度。
第二方面,本申请实施例提供了一种数据同步的装置,包括:
获取单元,用于获取数据同步指令;所述数据同步指令包括待同步的目标数据所属的关系数据库的数据库地址信息、数据库权限信息、所述目标数据在所述关系数据库中对应的表的表名信息、目标同步地址信息;
第一确定单元,用于基于所述数据库地址信息、所述数据库权限信息和所述表名信息,确定所述目标数据对应的字段信息和字段类型;
建立单元,用于基于所述字段信息、所述字段类型、所述目标同步地址信息和预设分布式数据库工具,在分布式数据库中建立目标表;所述分布式数据库为所述目标数据进行数据同步的目标数据库;所述目标表用于存储所述目标数据;
第二确定单元,用于基于所述数据同步指令确定所述目标数据对应的同步脚本;
同步单元,用于基于所述同步脚本将所述目标数据同步至所述分布式数据库中的目标表。
进一步地,所述建立单元,具体用于:
基于所述字段信息、所述字段类型和预设分布式数据库工具,确定元数据;所述元数据包括所述目标表的表信息;
基于所述元数据在分布式数据库中建立目标表。
进一步地,所述第二确定单元,具体用于:
基于预设生成策略和所述数据同步指令,生成所述目标数据对应的Apache Spark提交脚本。
进一步地,所述数据同步指令还包括所述关系数据库的数据库类型;
所述同步脚本,具体用于:
根据所述数据库类型确定关系数据库的驱动信息;
基于所述同步脚本和所述驱动信息,确定可执行任务文件;
基于所述可执行任务文件进行任务调度,将所述目标数据同步至所述分布式数据库中的目标表。
进一步地,所述数据同步的装置,还包括:
执行单元,用于当检测到所述可执行任务文件调度失败时,再次基于所述可执行任务文件进行任务调度。
第三方面,本申请实施例提供了一种数据同步的设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如上述第一方面所述的数据同步的方法。
第四方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如上述第一方面所述的数据同步的方法。
第五方面,本申请实施例提供了一种计算机程序产品,当计算机程序产品在终端设备上运行时,使得终端设备执行如上述第一方面所述的数据同步的方法。
可以理解的是,上述第二方面至第五方面的有益效果可以参见上述第一方面中的相关描述,在此不再赘述。
本申请实施例中,获取数据同步指令;基于所述数据库地址信息、所述数据库权限信息和所述表名信息,确定所述目标数据对应的字段信息和字段类型;基于所述字段信息、所述字段类型、所述目标同步地址信息和预设分布式数据库工具,在分布式数据库中建立目标表;基于所述数据同步指令确定所述目标数据对应的同步脚本;基于所述同步脚本将所述目标数据同步至所述分布式数据库中的目标表。上述方法,通过生成同步脚本,把原本手动编写的脚本通过自动化实现,提高了数据同步的效率,并且减少了出错的可能。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本申请第一实施例提供的一种数据同步的方法的示意流程图;
图2是本申请第一实施例提供的一种数据同步的方法中S103的细化的示意流程图;
图3是本申请第一实施例提供的一种数据同步的方法中S105的细化的示意流程图;
图4是本申请第二实施例提供的数据同步的装置的示意图;
图5是本申请第三实施例提供的数据同步的设备的示意图。
具体实施方式
以下描述中,为了说明而不是为了限定,提出了诸如特定***结构、技术之类的具体细节,以便透彻理解本申请实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本申请。在其它情况中,省略对众所周知的***、装置、电路以及方法的详细说明,以免不必要的细节妨碍本申请的描述。
应当理解,当在本申请说明书和所附权利要求书中使用时,术语“包括”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
还应当理解,在本申请说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
如在本申请说明书和所附权利要求书中所使用的那样,术语“如果”可以依据上下文被解释为“当...时”或“一旦”或“响应于确定”或“响应于检测到”。类似地,短语“如果确定”或“如果检测到[所描述条件或事件]”可以依据上下文被解释为意指“一旦确定”或“响应于确定”或“一旦检测到[所描述条件或事件]”或“响应于检测到[所描述条件或事件]”。
另外,在本申请说明书和所附权利要求书的描述中,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
在本申请说明书中描述的参考“一个实施例”或“一些实施例”等意味着在本申请的一个或多个实施例中包括结合该实施例描述的特定特征、结构或特点。由此,在本说明书中的不同之处出现的语句“在一个实施例中”、“在一些实施例中”、“在其他一些实施例中”、“在另外一些实施例中”等不是必然都参考相同的实施例,而是意味着“一个或多个但不是所有的实施例”,除非是以其他方式另外特别强调。术语“包括”、“包含”、“具有”及它们的变形都意味着“包括但不限于”,除非是以其他方式另外特别强调。
请参见图1,图1是本申请第一实施例提供的一种数据同步的方法的示意流程图。本实施例中数据同步的的方法的执行主体为具有数据同步功能的设备,可以为计算机、服务器等等。如图1所示的数据同步的的方法可包括:
S101:获取数据同步指令;所述数据同步指令包括待同步的目标数据所属的关系数据库的数据库地址信息、数据库权限信息、所述目标数据在所述关系数据库中对应的表的表名信息、目标同步地址信息。
大数据开发中的第一个环节是将海量的数据导入平台之中,供数据分析或算法建模,但是现存技术无法批量自动化的进行数据同步。所以,本实施例中,通过自动构建数据同步脚本,从而实现高效率的、自动化的数据同步。在本实施例中,设备获取数据同步指令,其中,用户可以在前端页面上输入相关数据,然后点击“数据同步”的虚拟按钮触发设备生成数据同步指令。数据同步指令包括待同步的目标数据所属的关系数据库的数据库地址信息、数据库权限信息、目标数据在关系数据库中对应的表的表名信息、目标同步地址信息。目标数据所属的关系数据库的数据库地址信息即为数据库对应的ip地址;数据库权限信息即为数据库中的表属于哪一个用户,该用户可以对该表进行访问或者修改等等;目标同步地址信息为目标数据将要同步至哪一地址,目标同步地址信息可以为映射表的形式。
其中,关系数据库即为关系型数据库。关系型数据库,是指采用了关系模型来组织数据的数据库,其以行和列的形式存储数据,关系型数据库这一系列的行和列可以被称为表,一组表组成了数据库。可以通过查询来检索数据库中的数据,而查询是一个用于限定数据库中某些区域的执行代码。关系模型可以简单理解为二维表格模型,而一个关系型数据库就是由二维表及其之间的关系组成的一个数据组织。
也就是说,用户可以在前端页面上输入待同步的目标数据所属的关系数据库的数据库地址信息、数据库权限信息、目标数据在关系数据库中对应的表的表名信息、目标同步地址信息,根据用户输入的这些相关数据生成数据同步指令。
S102:基于所述数据库地址信息、所述数据库权限信息和所述表名信息,确定所述目标数据对应的字段信息和字段类型。
设备基于数据库地址信息和数据库权限信息查找到数据库以及数据库中的内容,基于表名信息确定目标数据对应的目标表,从目标表中读取目标数据对应的字段信息和字段类型。在数据库中,大多数情况下,表的“列”称为“字段”,每个字段包含某一信息。例如,通讯录数据库中,“姓名”、“联系电话”这些都是表中所有行共有的属性,所以把这些列称为“姓名”字段和“联系电话”字段。字段类型一般情况下可以包括text、int、tinyint、datetime、vachar、 char。
S103:基于所述字段信息、所述字段类型、所述目标同步地址信息和预设分布式数据库工具,在分布式数据库中建立目标表;所述分布式数据库为所述目标数据进行数据同步的目标数据库;所述目标表用于存储所述目标数据。
设备中预先存储分布式数据库工具,预设分布式数据库工具用于在分布式数据库中建立用于存储目标数据的表,在本实施例中,预设分布式数据库工具可以为数据仓库工具(hive),hive是基于Hadoop的一个数据仓库工具,用来进行数据提取、转化、加载,这是一种可以存储、查询和分析存储在Hadoop 中的大规模数据的机制。hive数据仓库工具能将结构化的数据文件映射为一张数据库表,并提供SQL查询功能,能将SQL语句转变成MapReduce任务来执行。Hive的优点是学习成本低,可以通过类似SQL语句实现快速MapReduce 统计,使MapReduce变得更加简单,而不必开发专门的MapReduce应用程序。 hive是十分适合数据仓库的统计分析和Windows注册表文件。
设备基于字段信息、字段类型、目标同步地址信息和预设分布式数据库工具,在分布式数据库中建立目标表,分布式数据库为目标数据进行数据同步的目标数据库,目标表用于存储目标数据。
其中,分布式数据库***通常使用较小的计算机***,每台计算机可单独放在一个地方,每台计算机中都可能有DBMS的一份完整拷贝副本,或者部分拷贝副本,并具有自己局部的数据库,位于不同地点的许多计算机通过网络互相连接,共同组成一个完整的、全局的逻辑上集中、物理上分布的大型数据库。
进一步地,为了准确的建立目标表,从而更准确的进行数据同步,S103可以包括S1031~S1032,如图2所示,S1031~S1032具体如下:
S1031:基于所述字段信息、所述字段类型和预设分布式数据库工具,确定元数据;所述元数据包括所述目标表的表信息。
元数据(Metadata),又称中介数据、中继数据,为描述数据的数据(data aboutdata),主要是描述数据属性(property)的信息,用来支持如指示存储位置、历史数据、资源查找、文件记录等功能。设备基于字段信息、字段类型和预设分布式数据库工具,确定元数据,元数据包括目标表的表信息,一般情况下,hive 中的元数据包括表的名字,表的列和分区及其属性,表的属性(是否为外部表等),表的数据所在目录等。具体来说,设备将字段信息、字段类型转为hive 类型,生成数据库基本信息,也就是元数据,如DBS、TBLS等,该元数据信息就像hadoop翻译器,将负责的java代码翻译成sql,最终是hadoop分布式存储与关系型数据的一个交互。
S1032:基于所述元数据在分布式数据库中建立目标表。
设备已知表的名字,表的列和分区及其属性,表的属性,表的数据所在目录等信息,基于元数据在分布式数据库中建立目标表。
S104:基于所述数据同步指令确定所述目标数据对应的同步脚本。
数据同步指令包括待同步的目标数据所属的关系数据库的数据库地址信息、数据库权限信息、目标数据在关系数据库中对应的表的表名信息、目标同步地址信息,设备对待同步的目标数据所属的关系数据库的数据库地址信息、数据库权限信息、目标数据在关系数据库中对应的表的表名信息、目标同步地址信息进行组装,确定目标数据对应的同步脚本。其中,同步脚本用于同步目标数据。
进一步地,为了提升数据同步的效率,S104可以包括:基于预设生成策略和所述数据同步指令,生成所述目标数据对应的Apache Spark提交脚本。
设备中预先存储预设生成策略,预设生成策略用于生成目标数据对应的 ApacheSpark提交脚本,设备基于数据同步指令中包括的待同步的目标数据所属的关系数据库的数据库地址信息、数据库权限信息、目标数据在关系数据库中对应的表的表名信息、目标同步地址信息,生成目标数据对应的Apache Spark 提交脚本,Apache Spark是专为大规模数据处理而设计的快速通用的计算引擎。Spark启用了内存分布数据集,除了能够提供交互式查询外,它还可以优化迭代工作负载。Spark提交是改良后的提交方式,相比于之前的sqoop提交速度保守估计可快10倍,spark框架采用内存计算的方式,大大提高数据处理效率,目前etl命令中生成默认内存和cpu大小,在spark命令中,也可灵活配置内存大小,cpu使用个数,根据不同的任务采用相应合理的资源。
S105:基于所述同步脚本将所述目标数据同步至所述分布式数据库中的目标表。
同步脚本用于将目标数据同步至分布式数据库中的目标表,设备运行同步脚本,将述目标数据同步至分布式数据库中的目标表中。
进一步地,为了能够更准确的对数据进行同步,S105可以包括 S1051~S1053,如图3所示,S1051~S1053具体如下:
S1051:根据所述数据库类型确定关系数据库的驱动信息。
在本实施例中,数据同步指令还包括关系数据库的数据库类型,设备中预先存储预设数据库类型和预设驱动信息之间的对应关系,设备基于预设数据库类型和预设驱动信息之间的对应关系确定数据库类型对应的驱动信息,即为关系数据库的驱动信息,驱动信息用于触发关系数据库启动,例如驱动关系数据库进行数据输出等等。
S1052:基于所述同步脚本和所述驱动信息,确定可执行任务文件。
设备基于同步脚本和驱动信息确定可执行任务文件,具体地说,设备基于同步脚本和驱动信息可以生成Azkaban可执行的job文件。Azkaban是由 Linkedin开源的一个批量工作流任务调度器。用于在一个工作流内以一个特定的顺序运行一组工作和流程。Azkaban定义了一种KV文件格式来建立任务之间的依赖关系,并提供一个易于使用的web用户界面维护和跟踪工作流。
S1053:基于所述可执行任务文件进行任务调度,将所述目标数据同步至所述分布式数据库中的目标表。
设备基于可执行任务文件进行任务调度,azkaban使用java开发,封装了 jetty作为轻量的web服务器,使用web ui来操控,web ui能够直观地看到不同的任务之间的依赖关系,azkaban可以单点部署,也可以双机部署。设备进行任务调度,若任务调度成功,则将目标数据同步至分布式数据库中的目标表中。
进一步地,若任务调度失败,在S1053之后,还可以包括:当检测到所述可执行任务文件调度失败时,再次基于所述可执行任务文件进行任务调度。当设备检测到可执行任务文件调度失败时,再次基于可执行任务文件进行任务调度,每个任务可以进行多次重新调度,这样可有效避免因网络原因造成的任务失败问题。
本申请实施例中,获取数据同步指令;基于所述数据库地址信息、所述数据库权限信息和所述表名信息,确定所述目标数据对应的字段信息和字段类型;基于所述字段信息、所述字段类型、所述目标同步地址信息和预设分布式数据库工具,在分布式数据库中建立目标表;基于所述数据同步指令确定所述目标数据对应的同步脚本;基于所述同步脚本将所述目标数据同步至所述分布式数据库中的目标表。上述方法,通过生成同步脚本,把原本手动编写的脚本通过自动化实现,提高了数据同步的效率,并且减少了出错的可能。
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
请参见图4,图4是本申请第二实施例提供的数据同步的装置的示意图。包括的各单元用于执行图1~图3对应的实施例中的各步骤。具体请参阅图1~图3各自对应的实施例中的相关描述。为了便于说明,仅示出了与本实施例相关的部分。参见图4,数据同步的装置4包括:
获取单元410,用于获取数据同步指令;所述数据同步指令包括待同步的目标数据所属的关系数据库的数据库地址信息、数据库权限信息、所述目标数据在所述关系数据库中对应的表的表名信息、目标同步地址信息;
第一确定单元420,用于基于所述数据库地址信息、所述数据库权限信息和所述表名信息,确定所述目标数据对应的字段信息和字段类型;
建立单元430,用于基于所述字段信息、所述字段类型、所述目标同步地址信息和预设分布式数据库工具,在分布式数据库中建立目标表;所述分布式数据库为所述目标数据进行数据同步的目标数据库;所述目标表用于存储所述目标数据;
第二确定单元440,用于基于所述数据同步指令确定所述目标数据对应的同步脚本;
同步单元450,用于基于所述同步脚本将所述目标数据同步至所述分布式数据库中的目标表。
进一步地,建立单元430,具体用于:
基于所述字段信息、所述字段类型和预设分布式数据库工具,确定元数据;所述元数据包括所述目标表的表信息;
基于所述元数据在分布式数据库中建立目标表。
进一步地,第二确定单元440,具体用于:
基于预设生成策略和所述数据同步指令,生成所述目标数据对应的Apache Spark提交脚本。
进一步地,所述数据同步指令还包括所述关系数据库的数据库类型;
同步脚本450,具体用于:
根据所述数据库类型确定关系数据库的驱动信息;
基于所述同步脚本和所述驱动信息,确定可执行任务文件;
基于所述可执行任务文件进行任务调度,将所述目标数据同步至所述分布式数据库中的目标表。
进一步地,数据同步的装置4,还包括:
执行单元,用于当检测到所述可执行任务文件调度失败时,再次基于所述可执行任务文件进行任务调度。
图5是本申请第三实施例提供的数据同步的设备的示意图。如图5所示,该实施例的数据同步的设备5包括:处理器50、存储器51以及存储在所述存储器51中并可在所述处理器50上运行的计算机程序52,例如数据同步的程序。所述处理器50执行所述计算机程序52时实现上述各个数据同步的方法实施例中的步骤,例如图1所示的步骤101至105。或者,所述处理器50执行所述计算机程序52时实现上述各装置实施例中各模块/单元的功能,例如图4所示模块410至450的功能。
示例性的,所述计算机程序52可以被分割成一个或多个模块/单元,所述一个或者多个模块/单元被存储在所述存储器51中,并由所述处理器50执行,以完成本申请。所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序52在所述接入点5中的执行过程。例如,所述计算机程序52可以被分割成获取单元、第一确定单元、建立单元、第二确定单元、同步单元,各单元具体功能如下:
获取单元,用于获取数据同步指令;所述数据同步指令包括待同步的目标数据所属的关系数据库的数据库地址信息、数据库权限信息、所述目标数据在所述关系数据库中对应的表的表名信息、目标同步地址信息;
第一确定单元,用于基于所述数据库地址信息、所述数据库权限信息和所述表名信息,确定所述目标数据对应的字段信息和字段类型;
建立单元,用于基于所述字段信息、所述字段类型、所述目标同步地址信息和预设分布式数据库工具,在分布式数据库中建立目标表;所述分布式数据库为所述目标数据进行数据同步的目标数据库;所述目标表用于存储所述目标数据;
第二确定单元,用于基于所述数据同步指令确定所述目标数据对应的同步脚本;
同步单元,用于基于所述同步脚本将所述目标数据同步至所述分布式数据库中的目标表。
所述数据同步的设备可包括,但不仅限于,处理器50、存储器51。本领域技术人员可以理解,图5仅仅是数据同步的设备5的示例,并不构成对数据同步的设备5的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述数据同步的设备还可以包括输入输出设备、网络接入设备、总线等。
所称处理器50可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列 (Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
所述存储器51可以是所述数据同步的设备5的内部存储单元,例如数据同步的设备5的硬盘或内存。所述存储器51也可以是所述数据同步的设备5的外部存储设备,例如所述数据同步的设备5上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。进一步地,所述数据同步的设备51还可以既包括所述数据同步的设备5的内部存储单元也包括外部存储设备。所述存储器51用于存储所述计算机程序以及所述数据同步的设备所需的其他程序和数据。所述存储器51还可以用于暂时地存储已经输出或者将要输出的数据。
需要说明的是,上述装置/单元之间的信息交互、执行过程等内容,由于与本申请方法实施例基于同一构思,其具体功能及带来的技术效果,具体可参见方法实施例部分,此处不再赘述。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述***中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
本申请实施例还提供了一种网络设备,该网络设备包括:至少一个处理器、存储器以及存储在所述存储器中并可在所述至少一个处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述任意各个方法实施例中的步骤。
本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现可实现上述各个方法实施例中的步骤。
本申请实施例提供了一种计算机程序产品,当计算机程序产品在移动终端上运行时,使得移动终端执行时实现可实现上述各个方法实施例中的步骤。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实现上述实施例方法中的全部或部分流程,可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质至少可以包括:能够将计算机程序代码携带到拍照装置/终端设备的任何实体或装置、记录介质、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,RandomAccess Memory)、电载波信号、电信信号以及软件分发介质。例如U盘、移动硬盘、磁碟或者光盘等。在某些司法管辖区,根据立法和专利实践,计算机可读介质不可以是电载波信号和电信信号。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
在本申请所提供的实施例中,应该理解到,所揭露的装置/网络设备和方法,可以通过其它的方式实现。例如,以上所描述的装置/网络设备实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
以上所述实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围,均应包含在本申请的保护范围之内。
Claims (10)
1.一种数据同步的方法,其特征在于,包括:
获取数据同步指令;所述数据同步指令包括待同步的目标数据所属的关系数据库的数据库地址信息、数据库权限信息、所述目标数据在所述关系数据库中对应的表的表名信息、目标同步地址信息;
基于所述数据库地址信息、所述数据库权限信息和所述表名信息,确定所述目标数据对应的字段信息和字段类型;
基于所述字段信息、所述字段类型、所述目标同步地址信息和预设分布式数据库工具,在分布式数据库中建立目标表;所述分布式数据库为所述目标数据进行数据同步的目标数据库;所述目标表用于存储所述目标数据;
基于所述数据同步指令确定所述目标数据对应的同步脚本;
基于所述同步脚本将所述目标数据同步至所述分布式数据库中的目标表。
2.如权利要求1所述的数据同步的方法,其特征在于,所述基于所述字段信息、所述字段类型和预设分布式数据库工具,在分布式数据库中建立目标表,包括:
基于所述字段信息、所述字段类型和预设分布式数据库工具,确定元数据;所述元数据包括所述目标表的表信息;
基于所述元数据在分布式数据库中建立目标表。
3.如权利要求1所述的数据同步的方法,其特征在于,所述基于所述数据同步指令确定所述目标数据对应的同步脚本,包括:
基于预设生成策略和所述数据同步指令,生成所述目标数据对应的Apache Spark提交脚本。
4.如权利要求1所述的数据同步的方法,其特征在于,所述数据同步指令还包括所述关系数据库的数据库类型;
所述基于所述同步脚本将所述目标数据同步至所述分布式数据库中的目标表,包括:
根据所述数据库类型确定关系数据库的驱动信息;
基于所述同步脚本和所述驱动信息,确定可执行任务文件;
基于所述可执行任务文件进行任务调度,将所述目标数据同步至所述分布式数据库中的目标表。
5.如权利要求4所述的数据同步的方法,其特征在于,在所述基于所述可执行任务文件进行任务调度,将所述目标数据同步至所述分布式数据库中的目标表之后,还包括:
当检测到所述可执行任务文件调度失败时,再次基于所述可执行任务文件进行任务调度。
6.一种数据同步的装置,其特征在于,包括:
获取单元,用于获取数据同步指令;所述数据同步指令包括待同步的目标数据所属的关系数据库的数据库地址信息、数据库权限信息、所述目标数据在所述关系数据库中对应的表的表名信息、目标同步地址信息;
第一确定单元,用于基于所述数据库地址信息、所述数据库权限信息和所述表名信息,确定所述目标数据对应的字段信息和字段类型;
建立单元,用于基于所述字段信息、所述字段类型、所述目标同步地址信息和预设分布式数据库工具,在分布式数据库中建立目标表;所述分布式数据库为所述目标数据进行数据同步的目标数据库;所述目标表用于存储所述目标数据;
第二确定单元,用于基于所述数据同步指令确定所述目标数据对应的同步脚本;
同步单元,用于基于所述同步脚本将所述目标数据同步至所述分布式数据库中的目标表。
7.如权利要求6所述的数据同步的装置,其特征在于,所述建立单元,具体用于:
基于所述字段信息、所述字段类型和预设分布式数据库工具,确定元数据;所述元数据包括所述目标表的表信息;
基于所述元数据在分布式数据库中建立目标表。
8.如权利要求6所述的数据同步的装置,其特征在于,所述第二确定单元,具体用于:
基于预设生成策略和所述数据同步指令,生成所述目标数据对应的Apache Spark提交脚本。
9.一种数据同步的设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至5任一项所述的方法。
10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至5任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010101450.5A CN111324610A (zh) | 2020-02-19 | 2020-02-19 | 一种数据同步的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010101450.5A CN111324610A (zh) | 2020-02-19 | 2020-02-19 | 一种数据同步的方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111324610A true CN111324610A (zh) | 2020-06-23 |
Family
ID=71167355
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010101450.5A Pending CN111324610A (zh) | 2020-02-19 | 2020-02-19 | 一种数据同步的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111324610A (zh) |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112069261A (zh) * | 2020-09-09 | 2020-12-11 | 携程计算机技术(上海)有限公司 | 基于分布式***的数据同步方法、***、设备及存储介质 |
CN112364049A (zh) * | 2020-11-10 | 2021-02-12 | 中国平安人寿保险股份有限公司 | 数据同步脚本生成方法、***、终端及存储介质 |
CN112507020A (zh) * | 2020-11-20 | 2021-03-16 | 平安普惠企业管理有限公司 | 数据同步方法、装置、计算机设备及存储介质 |
CN112612783A (zh) * | 2020-12-22 | 2021-04-06 | 航天信息股份有限公司 | 一种实现跨平台数据共享的方法 |
CN112732242A (zh) * | 2021-01-12 | 2021-04-30 | 中国邮政储蓄银行股份有限公司 | 宽表加工脚本的生成方法及装置 |
CN113204598A (zh) * | 2021-05-28 | 2021-08-03 | 平安科技(深圳)有限公司 | 一种数据同步方法、***及存储介质 |
CN113254534A (zh) * | 2021-06-04 | 2021-08-13 | 四川省明厚天信息技术股份有限公司 | 数据同步方法、装置及计算机存储介质 |
CN113297326A (zh) * | 2021-05-21 | 2021-08-24 | 中国邮政储蓄银行股份有限公司 | 数据的处理方法及装置、计算机可读存储介质、处理器 |
CN113486116A (zh) * | 2021-07-07 | 2021-10-08 | 建信金融科技有限责任公司 | 一种数据同步方法、装置、电子设备及计算机可读介质 |
CN115391459A (zh) * | 2022-08-24 | 2022-11-25 | 南京领行科技股份有限公司 | 数据同步方法、装置、电子设备及计算机可读存储介质 |
CN116881244A (zh) * | 2023-06-05 | 2023-10-13 | 北京捷泰云际信息技术有限公司 | 一种基于列存数据库的空间数据的实时处理方法及装置 |
CN113672683B (zh) * | 2021-08-19 | 2024-03-29 | 上海沄熹科技有限公司 | 基于Spark SQL的分布式数据库元数据同步装置及方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107967316A (zh) * | 2017-11-22 | 2018-04-27 | 平安科技(深圳)有限公司 | 一种数据同步方法、设备及计算机可读存储介质 |
CN110109897A (zh) * | 2019-04-15 | 2019-08-09 | 深圳壹账通智能科技有限公司 | 数据库脚本生成方法、装置、计算机设备和存储介质 |
CN110543476A (zh) * | 2019-07-03 | 2019-12-06 | 威富通科技有限公司 | 一种数据库表结构的同步方法、装置及服务器 |
CN110708335A (zh) * | 2019-10-29 | 2020-01-17 | 深圳市融壹买信息科技有限公司 | 访问认证方法、装置及终端设备 |
-
2020
- 2020-02-19 CN CN202010101450.5A patent/CN111324610A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107967316A (zh) * | 2017-11-22 | 2018-04-27 | 平安科技(深圳)有限公司 | 一种数据同步方法、设备及计算机可读存储介质 |
CN110109897A (zh) * | 2019-04-15 | 2019-08-09 | 深圳壹账通智能科技有限公司 | 数据库脚本生成方法、装置、计算机设备和存储介质 |
CN110543476A (zh) * | 2019-07-03 | 2019-12-06 | 威富通科技有限公司 | 一种数据库表结构的同步方法、装置及服务器 |
CN110708335A (zh) * | 2019-10-29 | 2020-01-17 | 深圳市融壹买信息科技有限公司 | 访问认证方法、装置及终端设备 |
Cited By (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112069261B (zh) * | 2020-09-09 | 2023-07-07 | 携程计算机技术(上海)有限公司 | 基于分布式***的数据同步方法、***、设备及存储介质 |
CN112069261A (zh) * | 2020-09-09 | 2020-12-11 | 携程计算机技术(上海)有限公司 | 基于分布式***的数据同步方法、***、设备及存储介质 |
CN112364049A (zh) * | 2020-11-10 | 2021-02-12 | 中国平安人寿保险股份有限公司 | 数据同步脚本生成方法、***、终端及存储介质 |
CN112364049B (zh) * | 2020-11-10 | 2024-05-17 | 中国平安人寿保险股份有限公司 | 数据同步脚本生成方法、***、终端及存储介质 |
CN112507020A (zh) * | 2020-11-20 | 2021-03-16 | 平安普惠企业管理有限公司 | 数据同步方法、装置、计算机设备及存储介质 |
CN112612783A (zh) * | 2020-12-22 | 2021-04-06 | 航天信息股份有限公司 | 一种实现跨平台数据共享的方法 |
CN112732242A (zh) * | 2021-01-12 | 2021-04-30 | 中国邮政储蓄银行股份有限公司 | 宽表加工脚本的生成方法及装置 |
CN113297326A (zh) * | 2021-05-21 | 2021-08-24 | 中国邮政储蓄银行股份有限公司 | 数据的处理方法及装置、计算机可读存储介质、处理器 |
CN113204598A (zh) * | 2021-05-28 | 2021-08-03 | 平安科技(深圳)有限公司 | 一种数据同步方法、***及存储介质 |
CN113204598B (zh) * | 2021-05-28 | 2023-05-09 | 平安科技(深圳)有限公司 | 一种数据同步方法、***及存储介质 |
CN113254534A (zh) * | 2021-06-04 | 2021-08-13 | 四川省明厚天信息技术股份有限公司 | 数据同步方法、装置及计算机存储介质 |
CN113486116A (zh) * | 2021-07-07 | 2021-10-08 | 建信金融科技有限责任公司 | 一种数据同步方法、装置、电子设备及计算机可读介质 |
CN113672683B (zh) * | 2021-08-19 | 2024-03-29 | 上海沄熹科技有限公司 | 基于Spark SQL的分布式数据库元数据同步装置及方法 |
CN115391459A (zh) * | 2022-08-24 | 2022-11-25 | 南京领行科技股份有限公司 | 数据同步方法、装置、电子设备及计算机可读存储介质 |
CN116881244A (zh) * | 2023-06-05 | 2023-10-13 | 北京捷泰云际信息技术有限公司 | 一种基于列存数据库的空间数据的实时处理方法及装置 |
CN116881244B (zh) * | 2023-06-05 | 2024-03-26 | 易智瑞信息技术有限公司 | 一种基于列存数据库的空间数据的实时处理方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111324610A (zh) | 一种数据同步的方法及装置 | |
CN110196871B (zh) | 数据入库方法和*** | |
CN108536761B (zh) | 报表数据查询方法及服务器 | |
CN109997126B (zh) | 事件驱动提取、变换、加载(etl)处理 | |
CN107506451B (zh) | 用于数据交互的异常信息监控方法及装置 | |
US10558615B2 (en) | Atomic incremental load for map-reduce systems on append-only file systems | |
CN101719149B (zh) | 数据同步方法及装置 | |
CN111241203B (zh) | Hive数据仓库同步方法、***、设备及存储介质 | |
CN110795499B (zh) | 基于大数据的集群数据同步方法、装置、设备及存储介质 | |
CN112148788A (zh) | 异构数据源的数据同步方法及*** | |
CN111651519B (zh) | 数据同步方法、数据同步装置、电子设备及存储介质 | |
CN103810272A (zh) | 一种数据处理方法和*** | |
CN115934855A (zh) | 一种全链路字段级血缘解析方法、***、设备及存储介质 | |
CN113177090A (zh) | 数据处理方法及装置 | |
CN112347192A (zh) | 数据同步方法、装置、平台以及可读介质 | |
CN115858488A (zh) | 基于数据治理的平行迁移方法、装置及可读介质 | |
CN109473178B (zh) | 医疗数据整合的方法、***、设备及存储介质 | |
EP2904520B1 (en) | Reference data segmentation from single to multiple tables | |
CN109800069B (zh) | 一种实现数据治理的方法及装置 | |
CN105930354B (zh) | 存储模型转换方法和装置 | |
CN113962597A (zh) | 一种数据分析方法、装置、电子设备及存储介质 | |
CN112965939A (zh) | 一种文件合并方法、装置和设备 | |
CN103809915B (zh) | 一种磁盘文件的读写方法和装置 | |
CN114547206A (zh) | 一种数据同步方法和数据同步*** | |
CN113672556A (zh) | 一种批量文件的迁移方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20200623 |
|
WD01 | Invention patent application deemed withdrawn after publication |