CN108228756A - 基于日志解析技术的PG数据库到Hadoop平台的数据同步复制方法 - Google Patents
基于日志解析技术的PG数据库到Hadoop平台的数据同步复制方法 Download PDFInfo
- Publication number
- CN108228756A CN108228756A CN201711398111.2A CN201711398111A CN108228756A CN 108228756 A CN108228756 A CN 108228756A CN 201711398111 A CN201711398111 A CN 201711398111A CN 108228756 A CN108228756 A CN 108228756A
- Authority
- CN
- China
- Prior art keywords
- data
- databases
- postgressql
- hadoop platform
- log
- 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
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
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Computing Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明属于电力系统数据库技术领域,公开了一种基于日志解析技术的PostgresSQL数据库到Hadoop平台的数据同步复制方法。本发明开启PostgresSQL数据库的逻辑复制功能,并保证最大日志发送进程数大于设定的次数,修改数据库用户设置使得能直接使用流复制协议,采用日志解析模块对所需要处理的PostgresSQL数据库的逻辑日志进行规则过滤,并按照事务完整性发送完整的数据;采用消息接收模块根据配置的接收信息,接收来自日志解析模块的数据,并按照本地规则写入到本地用于数据加载的缓存数据文件中;采用SQL适配模块读取缓存数据文件,并根据Hadoop平台的类型,转换成通用标准SQL数据语句格式,将数据加载进入Hadoop平台。本发明提高了数据库同步复制的效率。
Description
技术领域
本发明属于电力系统数据库技术领域,具体是涉及一种基于日志解析技术的PostgresSQL数据库到Hadoop平台的数据同步复制方法。
背景技术
随着国际电网公司的“国网资源计划信息系统”(SG-ERP)工程的建设,国家电网公司在三集五大、两中心、信息平台、综合分析决策等方面都建设了相关的应用系统,信息系统架构更加复杂。为了保证不同业务系统之间的数据一致性,必须解决业务系统间的数据交换的问题,而通过业务系统数据库之间的实时同步便是解决该问题的可行途径之一。
但是数据库同步复制软件种类繁多,由于电网数据规模大、数据量庞杂、数据存储分散等特点,而且绝大多数产品主要是大数据库厂商针对自己公司的数据库产品开发出来的,不一定适用于其它数据库管理系统。
PostgreSQL是以加州大学伯克利分校计算机系开发的对象关系型数据库管理系统(可简称为PG数据库),Hadoop平台是一个由Apache基金会所开发的分布式系统基础架构,目前两者在电网业务系统中也到了广泛运用。以PG数据库同步复制为例,PG数据库的主从流复制就是从服务器通过TCP流从主服务器中同步相应的数据。这就要求源端、目标端的数据库必须是PG数据库才能使用该主从配置方案,这给业务系统之间的数据交换带来了难题。特别是要把PG数据库的数据同步复制到Hadoop平台中,存在很大困难。
发明内容
本发明目的是:针对现有技术的不足,提供一种基于日志解析技术的PostgresSQL数据库到Hadoop平台的数据同步复制方法。该方法通过日志解析技术,高效地进行从PostgresSQL数据库到Hadoop平台的数据同步复制,达到异构数据库备份的目的,能够满足业务系统复杂的数据交换需求的问题。
具体地说,本发明是采用以下技术方案实现的,包括以下步骤:
1)开启PostgresSQL数据库的逻辑复制功能,并保证最大日志发送进程数大于设定的次数,修改数据库用户设置使得能直接使用流复制协议;
2)采用日志解析模块对所需要处理的PostgresSQL数据库的逻辑日志进行规则过滤,并按照事务完整性发送完整的数据;
3)采用消息接收模块根据配置的接收信息,接收来自日志解析模块的数据,并按照本地规则写入到本地用于数据加载的缓存数据文件中;
4)采用SQL适配模块读取缓存数据文件,并根据Hadoop平台的类型,转换成通用标准SQL数据语句格式,将数据加载进入Hadoop平台。
进一步而言,所述步骤1)中的设定的次数为2。
进一步而言,所述步骤2)中,日志解析模块通过对PostgresSQL数据库的逻辑日志的格式分析,按照固定的字节读取方式和解析规则,得到用户对数据库的操作指令和操作结果集,在解析过程中添加事务完整性的检查点设置,对断电及故障情况下数据库重启做到无脏数据和重复数据的读取,主动过滤重复事务以及事务不完整的数据。
本发明的有益效果如下:本发明针对电网数据规模大、存储分散的特点,解决了电力系统网络环境下,PostgresSQL数据库到Hadoop平台的之间的数据同步、数据交换问题。采用日志解析技术,将数据解析成适配的SQL语句,能达到PG数据库与Hadoop平台数据库之间的数据备份功能。采用了以“事务”为单位的日志解析技术,减少了数据的传输量,在保证一致性和完整性的情况下,提高了数据库同步复制的效率。总而言之,本发明充分利用了数据库日志特性并通过本地缓存、异步复制的方法,最大限度上减少对数据库在运行过程中造成备份负担,大大加快了数据库对业务的响应时间,并且达到异库备份的目的。
附图说明
图1 是本发明实施例的总体架构图。
图2是本发明实施例的日志解析原理图。
图3是本发明实施例的消息接收原理图。
图4是本发明实施例的数据加载原理图。
图5是本发明在读写分离场景下应用的示意图。
图6是本发明在容灾场景下应用的示意图。
具体实施方式
下面结合实施例并参照附图对本发明作进一步详细描述。
实施例1:
本发明的一个实施例,公开了一种基于日志解析技术的PostgresSQL数据库到Hadoop平台的数据同步复制方法,其主要架构如图1所示,主要包括日志解析、消息接收、SQL适配几个阶段。
开始正式数据同步复制之前,首先要开启PostgresSQL数据库的逻辑复制功能,并保证最大日志发送进程数大于设定的次数(本实施例设定为2),修改数据库用户设置使得能直接使用流复制协议。
参见图2,采用日志解析模块对所需要处理的PostgresSQL数据库的逻辑日志进行规则过滤,并按照事务完整性发送完整的数据。具体而言,日志解析模块通过对PostgresSQL数据库的逻辑日志的格式分析,按照固定的字节读取方式和解析规则,得到用户对数据库的操作指令和操作结果集,在解析过程中添加事务完整性的检查点设置,对断电及故障情况下数据库重启做到无脏数据和重复数据的读取,主动过滤重复事务以及事务不完整的数据。由于在发送时添加了过滤规则,可以有针对性的选择数据进行同步,对不需要发送的数据进行过滤处理,以减小对发送数据量对网络的压力。由于对日志的整合和传输以“事务”为单位,无需处理复杂的“回滚”机制,可以在保证一致性和完整性的情况下高效的进行数据库同步。
参见图3,采用消息接收模块根据配置的接收信息,接收来自日志解析模块的数据,并按照本地规则写入到本地用于数据加载的缓存数据文件中,并记录检查点位置。采用缓存的方式存储接收到的数据主要是为了减少网络压力,增加网络发送接收响应时间,减少目标端数据库阻塞对数据接收的影响,从根本是解决因为数据库数据同步入库造成的源端和目标端之间数据阻塞问题。
参见图4,采用SQL适配模块读取缓存数据文件,并根据Hadoop平台的类型,转换成通用标准SQL数据语句格式,最终以JDBC的方式进行统一加载,将数据加载进入Hadoop平台。
本实施可以应用于以下场景。
场景1:读写分离场景。
参见图5,业务应用的应用程序需要将数据写入到写入数据库中,再从读取数据库读取相关数据。当写入数据库为PG数据库,而读取数据库为Hadoop平台时,就可以采用本实施例的方法,实现读写分离。
具体而言,采用本实施例应用在读写分离场景的步骤如下:
步骤1:应用程序A将数据写入PG数据库,修改数据库表。
步骤2:采用本实施例的方法,通过复制节点将数据从PostgresSQL数据库到Hadoop平台。
步骤3:应用程序B读取Hadoop平台的数据内容。
场景2:容灾场景。
参见图6,在生产中心发生故障的情况下,为了能够在灾备中心接管应用,需要同时设置业务数据库和灾备数据库,并保持两者数据一致,从而尽量减少系统停机时间,提高业务连续性。当业务数据库为PG数据库,而灾备数据库为Hadoop平台时,就可以采用本实施例的方法,实现容灾。
具体而言,采用本实施例应用在容灾场景的步骤如下:
步骤1:应用程序将数据写入PG数据库,修改数据库表。
步骤2:采用本实施例的方法,通过复制节点将数据从PostgresSQL数据库到Hadoop平台,实现灾备数据库与业务数据库数据一致。
虽然本发明已以较佳实施例公开如上,但实施例并不是用来限定本发明的。在不脱离本发明之精神和范围内,所做的任何等效变化或润饰,同样属于本发明之保护范围。因此本发明的保护范围应当以本申请的权利要求所界定的内容为标准。
Claims (3)
1.基于日志解析技术的PostgresSQL数据库到Hadoop平台的数据同步复制方法,其特征在于,包括以下步骤:
1)开启PostgresSQL数据库的逻辑复制功能,并保证最大日志发送进程数大于设定的次数,修改数据库用户设置使得能直接使用流复制协议;
2)采用日志解析模块对所需要处理的PostgresSQL数据库的逻辑日志进行规则过滤,并按照事务完整性发送完整的数据;
3)采用消息接收模块根据配置的接收信息,接收来自日志解析模块的数据,并按照本地规则写入到本地用于数据加载的缓存数据文件中;
4)采用SQL适配模块读取缓存数据文件,并根据Hadoop平台的类型,转换成通用标准SQL数据语句格式,将数据加载进入Hadoop平台。
2.根据权利要求1中所述的基于日志解析技术的PostgresSQL数据库到Hadoop平台的数据同步复制方法,其特征在于,所述步骤1)中的设定的次数为2。
3.根据权利要求2中所述的基于日志解析技术的PostgresSQL数据库到Hadoop平台的数据同步复制方法,其特征在于:所述步骤2)中,日志解析模块通过对PostgresSQL数据库的逻辑日志的格式分析,按照固定的字节读取方式和解析规则,得到用户对数据库的操作指令和操作结果集,在解析过程中添加事务完整性的检查点设置,对断电及故障情况下数据库重启做到无脏数据和重复数据的读取,主动过滤重复事务以及事务不完整的数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711398111.2A CN108228756A (zh) | 2017-12-21 | 2017-12-21 | 基于日志解析技术的PG数据库到Hadoop平台的数据同步复制方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711398111.2A CN108228756A (zh) | 2017-12-21 | 2017-12-21 | 基于日志解析技术的PG数据库到Hadoop平台的数据同步复制方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN108228756A true CN108228756A (zh) | 2018-06-29 |
Family
ID=62648397
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711398111.2A Pending CN108228756A (zh) | 2017-12-21 | 2017-12-21 | 基于日志解析技术的PG数据库到Hadoop平台的数据同步复制方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108228756A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110569142A (zh) * | 2019-08-29 | 2019-12-13 | 天津大学 | 一种oracle数据增量同步系统及方法 |
CN112269823A (zh) * | 2020-10-30 | 2021-01-26 | 浪潮云信息技术股份公司 | 一种实现PostgreSQL增量数据同步的方法及系统 |
CN113760920A (zh) * | 2020-08-20 | 2021-12-07 | 北京沃东天骏信息技术有限公司 | 一种数据同步方法、装置、电子设备和存储介质 |
CN113792094A (zh) * | 2021-08-26 | 2021-12-14 | 广东电网有限责任公司 | 一种数据同步系统、方法、设备及介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101187888A (zh) * | 2007-12-11 | 2008-05-28 | 浪潮电子信息产业股份有限公司 | 一种异构环境中复制数据库数据的方法 |
CN106709043A (zh) * | 2016-12-30 | 2017-05-24 | 江苏瑞中数据股份有限公司 | 一种基于数据库日志的数据同步加载方法 |
-
2017
- 2017-12-21 CN CN201711398111.2A patent/CN108228756A/zh active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101187888A (zh) * | 2007-12-11 | 2008-05-28 | 浪潮电子信息产业股份有限公司 | 一种异构环境中复制数据库数据的方法 |
CN106709043A (zh) * | 2016-12-30 | 2017-05-24 | 江苏瑞中数据股份有限公司 | 一种基于数据库日志的数据同步加载方法 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110569142A (zh) * | 2019-08-29 | 2019-12-13 | 天津大学 | 一种oracle数据增量同步系统及方法 |
CN113760920A (zh) * | 2020-08-20 | 2021-12-07 | 北京沃东天骏信息技术有限公司 | 一种数据同步方法、装置、电子设备和存储介质 |
CN112269823A (zh) * | 2020-10-30 | 2021-01-26 | 浪潮云信息技术股份公司 | 一种实现PostgreSQL增量数据同步的方法及系统 |
CN113792094A (zh) * | 2021-08-26 | 2021-12-14 | 广东电网有限责任公司 | 一种数据同步系统、方法、设备及介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11575746B2 (en) | System and method for real-time cloud data synchronization using a database binary log | |
CN108228755A (zh) | 基于日志解析技术的MySQL数据库到Hadoop平台的数据同步复制方法 | |
CN107528872B (zh) | 一种数据恢复方法、装置及云存储系统 | |
CN108228756A (zh) | 基于日志解析技术的PG数据库到Hadoop平台的数据同步复制方法 | |
WO2022126974A1 (zh) | 基于Kafka的增量数据同步方法、装置、设备及介质 | |
CN104657497A (zh) | 一种基于分布式计算的海量用电信息并行计算系统及方法 | |
US11269731B1 (en) | Continuous data protection | |
US20070255763A1 (en) | Database replication method and system | |
CN102508886B (zh) | 一种基于xml的空间数据增量同步更新方法 | |
US10726042B2 (en) | Replication control using eventually consistent meta-data | |
CN110569269A (zh) | 一种数据同步方法及系统 | |
CN109298978B (zh) | 一种指定位置的数据库集群的恢复方法及系统 | |
CN115374102A (zh) | 数据处理方法及系统 | |
CN112948492A (zh) | 一种数据处理系统、方法、装置、电子设备及存储介质 | |
CN110096545A (zh) | 一种基于大数据平台数据处理域构架方法 | |
CN112765272A (zh) | 多源数据同步方法、系统及其应用的模型中枢 | |
CN114048217A (zh) | 增量数据的同步方法和装置、电子设备和存储介质 | |
CN109446267B (zh) | 一种基于95598异地双活灾备模型的跨库数据集成系统及方法 | |
CN104281980A (zh) | 基于分布式计算的火力发电机组远程诊断方法及系统 | |
CN113486095A (zh) | 一种民航空管跨网安全数据交换管理平台 | |
CN114077518A (zh) | 数据快照方法、装置、设备及存储介质 | |
WO2024103898A1 (zh) | 数据库集群管理的方法和装置 | |
CN111770145A (zh) | 一种基于日志解析的单向网络双边数据同步系统及方法 | |
CN111049898A (zh) | 一种实现计算集群资源跨域架构的方法及系统 | |
CN115757642A (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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20180629 |