CN111143468B - 基于mpp分布式技术的多数据库数据管理方法 - Google Patents
基于mpp分布式技术的多数据库数据管理方法 Download PDFInfo
- Publication number
- CN111143468B CN111143468B CN201911267516.1A CN201911267516A CN111143468B CN 111143468 B CN111143468 B CN 111143468B CN 201911267516 A CN201911267516 A CN 201911267516A CN 111143468 B CN111143468 B CN 111143468B
- Authority
- CN
- China
- Prior art keywords
- database
- structural information
- mpp
- csv file
- source database
- 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.)
- Active
Links
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/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- 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/21—Design, administration or maintenance of databases
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/54—Indexing scheme relating to G06F9/54
- G06F2209/548—Queue
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Computing Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请实施例提出的基于MPP分布式技术的多数据库数据管理方法,包括获取源数据库的结构信息,将结构信息发送至消息队列集群;周期性的从消息队列集群中获取结构信息,解析结构信息得到对应每个源数据库的模式以及表结构信息,基于解析得到的模式以及表结构信息构建CSV文件;基于对应每个源数据库的CSV文件的文件内容在MPP数据库中创建与源数据库相同结构的数据库。通过将原来属于不同数据库的数据快速镜像到MPP分布式数据库,完全保留原有数据库的表层级结构,表字段结构,表索引和表数据。上层业务和开发人员只需接入MPP分布式数据库对相关数据进行统一的访问和管理,从而解决原来不能对跨数据库进行关联访问的问题。
Description
技术领域
本发明属于数据库管理领域,尤其涉及基于MPP分布式技术的多数据库数据管理方法。
背景技术
随着当前大数据发展趋势,各种数据库产品琳琅满目,相关业务系统甚至同一业务系统不同功能模块之间都可能使用不同类型的数据库。
对开发人员来讲,如何处理不同数据库之间的数据访问将面临一个巨大的挑战,繁琐的数据库信息配置,不同数据库之间的SQL格式处理以及数据访问效率优化等问题都将大大增加开发成本。对业务人员来讲,随着统一业务数据的需求增加,如何处理不同业务系统之间数据的关联访问和数据管理也是急需解决的问题。
发明内容
为了解决现有技术中存在的缺点和不足,本发明提出了基于MPP分布式技术的多数据库数据管理方法,通过使用MPP技术将多种不同类型的数据库进行数据提取,并在同一环境下基于提取到的数据建立与原数据库完全一致的数据库,解决原来不能对跨数据库进行关联访问的缺陷。
具体的,本申请实施提出的基于MPP分布式技术的多数据库数据管理方法,所述多数据库数据管理方法包括:
获取源数据库的结构信息,将结构信息发送至消息队列集群;
周期性的从消息队列集群中获取结构信息,解析结构信息得到对应每个源数据库的模式以及表结构信息,基于解析得到的模式以及表结构信息构建CSV文件;
基于对应每个源数据库的CSV文件的文件内容在MPP数据库中创建与源数据库相同结构的数据库。
可选的,所述获取源数据库的结构信息,将结构信息发送至消息队列集群,包括:
从待处理的数据库中选取源数据库;
获取源数据库的模式以及表信息,基于获取到的模式以及表信息生成一个JSON字符串消息,将生成的JSON字符串消息以消息队列的方式发送至消息队列集群。
可选的,所述周期性的从消息队列集群中获取结构信息,解析结构信息得到对应每个源数据库的模式以及表结构信息,基于解析得到的模式以及表结构信息构建CSV文件,包括:
每隔预设周期从消息队列中获取结构消息;
对结构消息进行解析,基于解析结果采用JDBC的方式接入源数据库,采集解析结果中的schema和表结构信息,
创建与源数据库对应的CSV文件,基于解析结果对CSV文件进行修改,得到对应源数据库的修改后的CSV文件。
可选的,所述基于解析结果对CSV文件进行修改,包括:
对采集到的数据进行拆分;
使用多线程方式将拆分后的数据写入到CSV文件。
可选的,所述基于对应每个源数据库的CSV文件的文件内容在MPP数据库中创建与源数据库相同结构的数据库,包括:
提取CSV文件的名称以及所包含的数据内容,获取schema和表名称,使用JDBC连接MPP数据库;
编写SQL在MPP数据库创建与源数据库的Schema和表结构相同的数据库,将CSV文件内的数据导入创建的表,得到创建完成的数据库。
本发明提供的技术方案带来的有益效果是:
通过将原来属于不同数据库的数据快速镜像到MPP分布式数据库,完全保留原有数据库的表层级结构,表字段结构,表索引和表数据。上层业务和开发人员只需接入MPP分布式数据库对相关数据进行统一的访问和管理,从而解决原来不能对跨数据库进行关联访问的问题。
附图说明
为了更清楚地说明本发明的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提出的基于MPP分布式技术的多数据库数据管理方法的流程示意图。
具体实施方式
为使本发明的结构和优点更加清楚,下面将结合附图对本发明的结构作进一步地描述。
实施例一
为了解决现有技术中无法跨库使用不同数据库的缺陷,本申请实施例提出了基于MPP分布式技术的多数据库数据管理方法,如图1所示,包括:
11、获取源数据库的结构信息,将结构信息发送至消息队列集群;
12、周期性的从消息队列集群中获取结构信息,解析结构信息得到对应每个源数据库的模式以及表结构信息,基于解析得到的模式以及表结构信息构建CSV文件;
13、基于对应每个源数据库的CSV文件的文件内容在MPP数据库中创建与源数据库相同结构的数据库。
在实施中,本申请图提出的多数据库数据管理方法,基于现有大规模并行处理(Massively Parallel Processing,MPP)分布式数据库和消息队列技术,实现对多业务数据库系统的访问,统一进行数据实时同步,标准SQL查询和数据管理的通用解决方案,从而有效隔离开发业务人员对底层多数据库系统的操作,只需要基于单一MPP分布式数据库进行开发和业务数据访问。
在现有的数据库中,模式schema是数据库的组织和结构,显示了数据库对象及其相互之间的关系。schema对象可以是表(table)、列(column)、数据类型(data type)、视图(view)、存储过程(stored procedures)、关系(relationships)、主键(primary key)、外键(foreign key)。
基于上述论述,本申请实施例所提出的多数据库数据管理方法,通过实施数据获取、CSV文件创建以及数据库重构三个步骤,可实现在同一环境中创建原本属于不同环境的数据库,使得使用人员能够实现跨库调用数据库数据的技术效果,解决原来不能对跨数据库进行关联访问的问题。
具体的,步骤11中所提出的数据获取步骤,包括:
111、从待处理的数据库中选取源数据库;
112、获取源数据库的模式以及表信息,基于获取到的模式以及表信息生成一个JSON字符串消息,将生成的JSON字符串消息以消息队列的方式发送至消息队列集群。
在实施中,从其他原有数据库获取需要接入的数据库,schema和表,通过消息队列的方式,以单个表为单位生成一个JSON字符串消息,其中包含了接入数据库的连接信息,schema和表的名称等信息,将其发送到消息队列集群中,集群中的消息数据处理引擎将并行的处理接收到的消息。
步骤12所提出的CSV文件创建的步骤,包括:
121、每隔预设周期从消息队列中获取结构消息;
122、对结构消息进行解析,基于解析结果采用JDBC的方式接入源数据库,采集解析结果中的schema和表结构信息;
123、创建与源数据库对应的CSV文件,基于解析结果对CSV文件进行修改,得到对应源数据库的修改后的CSV文件。
将解析消息中的信息,根据信息采用JDBC的方式接入源头数据库,采集消息中对应的schema和表结构信息,包括:schema名称,表的名称,表所包含的字段名称,字段数据类型,字段长度,以及表内储存的数据。
其中针对基于解析结果对CSV文件进行修改,包括:
1231、对采集到的数据进行拆分;
1232、使用多线程方式将拆分后的数据写入到CSV文件。
为了加快数据写入到csv文件的效率,数据引擎将对采集完成的表数据进行拆分。采用Java多线程的方式,每个线程通过IO数据流的方式同时将拆分后的数据写入到一个CSV文件,文件的第一行对应表的各个字段名称,第二行开始写入各个字段对应的具体数据,直至数据写入完成。
CSV的文件采用数据库名称+shema+表名称的形式命名,方便数据导入引擎识别。
步骤13所提出的数据库重构操作,包括:
131、提取CSV文件的名称以及所包含的数据内容,获取schema和表名称,使用JDBC连接MPP数据库;
132、编写SQL在MPP数据库创建与源数据库的Schema和表结构相同的数据库,将CSV文件内的数据导入创建的表,得到创建完成的数据库。
在实施中,读取相关CSV文件,解析CSV文件的名称和里面包含的数据内容,获取schema和表名称,使用JDBC连接MPP数据库,编写SQL在MPP数据库创建与源数据库相同的数据库,Schema和表结构。并将CSV文件内的数据导入创建的表。
下面将通过一次实际同步数据表的操作来详细介绍本解决方案的实施步骤,从而进一步理解本发明。本次实施方式选取的MPP分布式数据库为Greenplum,消息队列中间件为ActiveMQ。
第一步:用户登入源数据库平台,选择需要同步的数据库或者表
第二步:消息队列生产者将用户选择的数据库或者表,按照单表为一任务分发至消息队列中,消息中包含所选数据库的地址,账户密码,表名称等数据库元数据信息。
第三步:消息队列消费者获取队列中的任务,采用JDBC(Java DataBaseConnectivity,java数据库连接)方式连接所选源头数据库,获取表结构、表数据。并行写入表结构和表数据至CSV文件。
第四步:消息队列消费者使用Greenplum自带的数据同步服务GPFDIST,将CSV文件数据导入到Greenplum外部表,Greenplum外部表是Greenplum数据库特有的一种表形式,其内容是与服务器上的其他数据资源关联,类似于一个数据中间缓存,本例子中即关联服务器节点中的CSV文件,真实数据并不保存在Greenplum数据库中,但是可以在Greenplum中展现数据,并根据外部表的创建类型,可对数据进行只读或更新操作。真实数据仍然在CSV文件中,如果CSV文件丢失,Greenplum的外部表的数据也将丢失。因此,为了进行正常的数据操作和保证数据安全因素,还需要通过SQL语句将外部表数据导入至内部表。
上述实施例中的各个序号仅仅为了描述,不代表各部件的组装或使用过程中的先后顺序。
以上所述仅为本发明的实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (4)
1.基于MPP分布式技术的多数据库数据管理方法,其特征在于,所述多数据库数据管理方法包括:
获取源数据库的结构信息,将结构信息发送至消息队列集群;
周期性的从消息队列集群中获取结构信息,解析结构信息得到对应每个源数据库的模式以及表结构信息,基于解析得到的模式以及表结构信息构建CSV文件;
基于对应每个源数据库的CSV文件的文件内容在MPP数据库中创建与源数据库相同结构的数据库;
所述基于对应每个源数据库的CSV文件的文件内容在MPP数据库中创建与源数据库相同结构的数据库,包括:
提取CSV文件的名称以及所包含的数据内容,获取schema和表名称,使用JDBC连接MPP数据库;
编写SQL在MPP数据库创建与源数据库的Schema和表结构相同的数据库,将CSV文件内的数据导入创建的表,得到创建完成的数据库。
2.根据权利要求1所述的基于MPP分布式技术的多数据库数据管理方法,其特征在于,所述获取源数据库的结构信息,将结构信息发送至消息队列集群,包括:
从待处理的数据库中选取源数据库;
获取源数据库的模式以及表信息,基于获取到的模式以及表信息生成一个JSON字符串消息,将生成的JSON字符串消息以消息队列的方式发送至消息队列集群。
3.根据权利要求1所述的基于MPP分布式技术的多数据库数据管理方法,其特征在于,所述周期性的从消息队列集群中获取结构信息,解析结构信息得到对应每个源数据库的模式以及表结构信息,基于解析得到的模式以及表结构信息构建CSV文件,包括:
每隔预设周期从消息队列中获取结构消息;
对结构消息进行解析,基于解析结果采用JDBC的方式接入源数据库,采集解析结果中的schema和表结构信息;
创建与源数据库对应的CSV文件,基于解析结果对CSV文件进行修改,得到对应源数据库的修改后的CSV文件。
4.根据权利要求3所述的基于MPP分布式技术的多数据库数据管理方法,其特征在于,所述基于解析结果对CSV文件进行修改,包括:
对采集到的数据进行拆分;
使用多线程方式将拆分后的数据写入到CSV文件。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911267516.1A CN111143468B (zh) | 2019-12-11 | 2019-12-11 | 基于mpp分布式技术的多数据库数据管理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911267516.1A CN111143468B (zh) | 2019-12-11 | 2019-12-11 | 基于mpp分布式技术的多数据库数据管理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111143468A CN111143468A (zh) | 2020-05-12 |
CN111143468B true CN111143468B (zh) | 2022-12-06 |
Family
ID=70518478
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911267516.1A Active CN111143468B (zh) | 2019-12-11 | 2019-12-11 | 基于mpp分布式技术的多数据库数据管理方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111143468B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111786956B (zh) * | 2020-06-05 | 2022-04-19 | 四川省东宇信息技术有限责任公司 | 基于消息中间件通信安全接入内网网络的系统及方法 |
CN112328696A (zh) * | 2020-11-17 | 2021-02-05 | 北京金和网络股份有限公司 | 一种MySQL数据库中数据同步到SQL Server数据库中的方法和装置 |
CN113986519B (zh) * | 2021-12-29 | 2022-06-03 | 深圳市毕美科技有限公司 | 数据调度处理方法、装置、设备及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102073698A (zh) * | 2010-12-28 | 2011-05-25 | 中国工商银行股份有限公司 | 企业级数据仓库系统的样本数据获取方法及装置 |
CN108664505A (zh) * | 2017-03-30 | 2018-10-16 | 腾讯科技(深圳)有限公司 | 一种数据库表结构的导出方法及装置 |
CN109284334A (zh) * | 2018-09-05 | 2019-01-29 | 拉扎斯网络科技(上海)有限公司 | 实时数据库同步方法、装置、电子设备及存储介质 |
-
2019
- 2019-12-11 CN CN201911267516.1A patent/CN111143468B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102073698A (zh) * | 2010-12-28 | 2011-05-25 | 中国工商银行股份有限公司 | 企业级数据仓库系统的样本数据获取方法及装置 |
CN108664505A (zh) * | 2017-03-30 | 2018-10-16 | 腾讯科技(深圳)有限公司 | 一种数据库表结构的导出方法及装置 |
CN109284334A (zh) * | 2018-09-05 | 2019-01-29 | 拉扎斯网络科技(上海)有限公司 | 实时数据库同步方法、装置、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN111143468A (zh) | 2020-05-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111143468B (zh) | 基于mpp分布式技术的多数据库数据管理方法 | |
CN107122443B (zh) | 一种基于Spark SQL的分布式全文检索系统及方法 | |
CN102426609B (zh) | 一种基于MapReduce编程架构的索引生成方法和装置 | |
CN109063196B (zh) | 数据处理方法、装置、电子设备及计算机可读存储介质 | |
CN106934014B (zh) | 一种基于Hadoop的网络数据挖掘与分析平台及其方法 | |
CN112685385A (zh) | 一种用于智慧城市建设的大数据平台 | |
CN110674154B (zh) | 一种基于Spark的对Hive中数据进行插入、更新和删除的方法 | |
CN105989150B (zh) | 一种基于大数据环境的数据查询方法及装置 | |
CN112286941B (zh) | 一种基于Binlog+HBase+Hive的大数据同步方法和装置 | |
CN106708993A (zh) | 基于大数据技术的空间数据存储处理中间件框架实现方法 | |
CN109753502B (zh) | 一种基于NiFi的数据采集方法 | |
CN113282611B (zh) | 一种流数据同步的方法、装置、计算机设备及存储介质 | |
CN115374102A (zh) | 数据处理方法及系统 | |
Silberstein et al. | Pnuts in flight: Web-scale data serving at yahoo | |
CN112559634A (zh) | 一种基于计算机云计算大数据用数据管理系统 | |
CN111177244A (zh) | 面向多个异构数据库的数据关联分析方法 | |
CN110659283A (zh) | 数据标签处理方法、装置、计算机设备及存储介质 | |
CN116662441A (zh) | 一种分布式数据血缘构建及展现方法 | |
CN115168396A (zh) | 一种基于时空体系的综合智能平台数据管理方法及系统 | |
CN112015795A (zh) | 一种大数据量即席查询的系统和方法 | |
CN110704442A (zh) | 一种大数据的实时获取方法及装置 | |
CN102945270B (zh) | 并行化分布式网络舆情数据管理方法及系统 | |
CN114860780A (zh) | 一种数据仓库、数据处理系统及计算机装置 | |
CN114003634A (zh) | 基于es技术的大数据分析检索系统及方法 | |
CN112306992A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |