Bootstrap

数据实时同步或抽取上收的技术分析

原文:http://blog.csdn.net/dsg_gulibin/article/details/1696365


1           实现数据集中的技术手段分析比较

根据业界提供数据同步或抽取的解决方案来看,主要包括以下几大类:

l         存储复制技术

l         数据库复制技术

l         ETL抽取技术

1.1         存储复制技术

实现原理

存储复制技术主要由磁盘阵列复制技术、主机卷复制技术以及一些文件复制技术。

存储复制方案的技术核心是利用存储阵列自身的盘阵对盘阵的数据块复制技术实现对生产数据的远程拷贝,从而实现生产数据的灾难保护。在主数据中心发生灾难时,可以利用灾备中心的数据在灾备中心建立运营支撑环境,为业务继续运营提供IT支持。同时,也可以利用灾备中心的数据恢复主数据中心的业务系统,从而能够让企业的业务运营快速回复到灾难发生前的正常运营状态。

基于存储的复制方案有两种方式:同步方式和异步方式,说明如下: 同步方式,可以做到主/备中心磁盘阵列同步地进行数据更新,应用系统的I/O写入主磁盘阵列后(写入Cache中),主磁盘阵列将利用自身的机制(如EMC的SRDF/S)同时将写I/O写入后备磁盘阵列,后备磁盘阵列确认后,主中心磁盘阵列才返回应用的写操作完成信息。 异步方式,是在应用系统的I/O写入主磁盘阵列后(写入Cache中),主磁盘阵列立即返回给主机应用系统“写完成”信息,主机应用可以继续进行读、写I/O操作。同时,主中心磁盘阵列将利用自身的机制(如EMC的SRDF/A)将写I/O写入后备磁盘阵列,实现数据保护。 采用同步方式,使得后备磁盘阵列中的数据总是与生产系统数据同步,因此当生产数据中心发生灾难事件时,不会造成数据丢失。为避免对生产系统性能的影响,同步方式通常在近距离范围内(FC连接通常是200KM范围内,实际用户部署多在35KM左右)。 而采用异步方式应用程序不必等待远程更新的完成,因此远程数据备份的性能的影响通常较小,所以一般可以到100KM左右。

采用基于存储数据复制技术建设复制方案的必要前提是:

l         通常必须采用同一厂家的存储平台,通常也必须是同一系列的存储产品,给用户的存储平台选择带来一定的限制。

l         复制中心的主机平台也需要和生产中心为相同类型。

l         采用同步方式可能对生产系统性能产生影响,而且对通信链路要求较高,有距离限制,通常在近距离范围内实现(同城复制或园区复制方案)

因此,采用基于存储的数据复制技术建设复制系统是目前金融电信企业采用较多的复制方案,因为这些行业具有很好的网络带宽资源,而且其数据量非常庞大,第三就是这些数据复制的主要目的就是灾难恢复,而重点不在于数据的再利用。

优缺点分析

存储复制技术的优点:

l         支持所有数据类型复制。

l         可支持同步方式复制

存储复制技术的缺点:

l         目标端数据不可用:目标端数据库在复制过程中不能被打开,造成大量投资浪费;

l         必需同构:源和目标必需要求相同的磁盘阵列、相同的操作系统、相同的数据库版本;

l         只能全库复制:复制的对象是整个数据库

l         不能实现数据整合和数据分发;

l         带宽高:要求独占的光纤网络,动辄需要上GB的带宽。

l         距离有限制,不适合于全省范围的多对一容灾。

1.2         数据库复制技术

数据库复制技术是通过数据库的日志或者交易方式来进行数据同步的,代表性的产品例如DSG Realsync,QUEST Shareplex以及ORACLE DataGuard。

实现原理

数据库复制技术的工作原理大都与oracle log相关,例如DSG Realsync数据库复制产品就是通过对Oracle Log日志进行分析获取跟踪源系统的交易指令,然后将交易指令传到目标端进行重新执行的方式来实现数据复制的。

复制系统包括两个部分组成:

- DS: Data Source端,即源系统端;

- DT:Data Target端,即目标系统端。

 

系统由安装在Data Source端和Data Target上的Agent进程组成,Source端的Agent进程对ORACLE日志进行监控,发现改变及时对目标数据库进行更新。

当应用系统在Data Source端向数据库进行任何操作时时,这些信息都将在Redo Log中保存,RealSync Agent通过对实时获取的Log日志进行分析,获得本次操作的交易指令和交易数据,然后将这些交易指令和交易数据经过格式转化生成xf1数据格式,并实时通过网络传送到Data Target系统。

Data Target系统的RealSync Agent接收数据库包,经过校验码检查,确认正确的数据库包后,调用Oracle函数按照交易的先后顺序在Data Target系统中执行该交易。

 

优缺点分析

数据库复制技术的优点:

l         异构系统复制:源端系统和目标端系统可以采用异构的操作系统平台、存储平台;

l         支持选择性复制:支持只复制指定的user、指定的Table、指定的行和列。节省存储空间,提高应用灵活性;

l         支持1对多,多对1的复制结构:能够将多个数据库中的数据复制到一个数据库中;能够将一个数据库中的不同数据分发到不同的数据库中。

l         目标端数据可用:目标端数据库在复制过程中出于可用状态,可用作数据查询、报表、数据抽取等任务分担;

l         节约带宽和网络资源:所需带宽一般在几Mbps,几十Mbps。

l         实时性好:一般数据延迟可在秒钟级;

数据库复制技术的缺点:

l         只支持ORACLE数据库系统。

l         只支持异步复制,不支持同步方式。

1.3         ETL抽取技术

实现原理及定位

ETL即数据抽取(Extract)、转换(Transform)、装载(Load)的过程。它是构建数据仓库的重要环节。数据仓库是面向主题的、集成的、稳定的且随时间不断变化的数据集合,用以支持经营管理中的决策制定过程。

ETL工具实质上仍为一类数据转换器,提供一种从源到目标系统转换数据的方法。即从操作型系统提取、清洗并转换数据,然后将数据载入决策支持系统的操作型数据存储、数据仓库或数据集市中。具体功能针对不同的数据源编写不同的数据抽取、转换和加载程序处理,这完成了数据集成的大部分工作。总的来说,ETL工具提供了一种数据处理的通用解决方案。

 

优缺点分析

虽然ETL工具在一定程度上可实现数据的集中抽取,表面上看起来和数据复制软件有些类似。但是该软件的定位和重点和前两类技术完全不同的:

首先,ETL的定位是在数据仓库和业务系统之间搭建起一座桥梁,确保新的业务数据源源不断地进入数据仓库;

其次,ELT工具的最复杂点在于其涉及到大量的业务逻辑和异构环境,因此在一般的数据仓库项目中ETL部分往往也是牵扯精力最多的,因此其主要的难点在于数据的清晰转换功能:字段映射;映射的自动匹配;字段的拆分;多字段的混合运算;跨异构数据库的关联;自定义函数;多数据类型支持;复杂条件过滤;支持脏读;数据的批量装载;时间类型的转换;对各种码表的支持;环境变量是否可以动态修改;去重复记录;抽取断点;记录间合并或计算;记录拆分;抽取的字段是否可以动态修改;行、列变换;排序;统计;度量衡等常用的转换函数;代理主键的生成;调试功能;抽取远程数据;增量抽取的处理方式;制造样品数据;在转换过程中是否支持数据比较的功能;数据预览;性能监控;数据清洗及标准化;按行、按列的分组聚合等。

第三:ETL抽取的性能较低,因为该工具是通过数据库的SQL接口来获取数据的,因此其性能比较低。例如在某证券行业(对于1GB的数据,每天完成一次抽取需要几个小时,而当时用DSG Realsync作一次同步只需要3-5分钟)。

 

1.4         复制技术的推荐

经过上面的分析,我们可以看出几种数据复制工具各有自己适合的场合:

l         存储级复制技术:适合单纯的数据容灾,但不适合低带宽,远距离,以及不适合在备份中心实现数据的再利用;

l         数据库复制技术:适合oracle数据库的数据复制,可用于数据库系统的备份、以及备份数据的再利用,在备份系统上开发新的业务模块。但是该技术以来于数据库,所以一般都支持ORACLE数据库;

l         ETL工具:适合于数据仓库系统,尤其适合于数据抽取中需要进行数据清晰、转换和运算的情况。但抽取的数据不适合作备份使用。

 

所以,为了满足某省的备份和数据再利用双重需求,我们建议选择数据库复制技术,DSG Realsync就是一款不错的数据库复制软件。

2           DSG Realsync如何实现数据集中

2.1         系统结构

 

在11个地市的(财政、税务征管、社保、电力营销、综合警务)系统数据库服务器上(RAC环境下只安装在一个服务器上)安装DSG RealSync代理程序,该程序对ORACLE数据库产生的redo log进行实时分析,生成sql语句。并将sql语句通过IP网络传输到区中心。

在区中心上,需要配备数据库服务器,必要时再加上其他的应用服务器(例如全省数据共享服务器、灾备切换接管服务器等)。

在省中心,安装一个ORACLE数据库,创建11个用户,每个用户对应一个地市的系统,这样就将11个地市的系统集中容灾到一个数据库上,只不过在集中数据库上以不同的用户存在。

 

省集中的数据查询可通过建立联合view的方式来完成,在省中心数据库上再创建一个专门用于查询的用户,在该用户下创建若干视图(view),这些view的数据就来源于13个用户下的表。

 

2.2         集中数据库的功能

集中的数据库可实现两个功能:集中容灾备份和数据集中共享。

集中容灾备份

在本方案中采用DSG RealSync实现了多对一的容灾结构,各地市将数据统一复制到省数据中心的一台容灾数据库,每个地市在数据库中对应一个用户;

正常情况下各地市的数据可互不干扰的复制到省中心容灾数据库;

在某一地市发生灾难数据丢失时,可在省中心以用户的方式反向复制该地市的容灾数据,最大程度的避免了数据的损失。

同时,当某个地市系统发生严重故障而无法在短期内修复时,可利用省中心的备份数据以及省中心的备用服务器来临时接管出现故障的地市。具体过程如下:

l         将省中心复制数据库中对应用户下的数据装载到备用服务器的数据库上;

l         切换地市应用连接到省中心备用数据库上,恢复业务运行;

l         当地市系统修复后,将省中心备用数据库上的数据恢复到地市数据库上;

l         将地市应用切换回到地市服务器上。

 

数据集中共享

采用DSG RealSync容灾技术的非常明显的优势还在于省中心集中数据库一直处于open状态,可以对省中心数据库进行实时访问,系统保持生产中心和灾备中心的数据库处于双激活状态;

同时通过DSG Realsync软件将11个地市的数据都集中到了一个数据库平台上,因此比较适合对这些数据进行统一查询和使用。

第三、RealSync的复制延迟很小,从容灾数据库读取到的数据是实时最新数据,

第四、集中的数据还可以为省中心的数据仓库系统提供了ETL操作的数据源。

;