基于数据库容灾备份技术 建设实时ODS的思路苏更殊1 王学高2 陈 曦21.中国电信集团公司 北京 1000322.中国电信股份有限公司杭州分公司 杭州 310000 1 前言数据仓库大师Bill Inmon是ODS(运营数据仓储)概念的最初提出者,他对ODS的定义是“一个面向主题的、集成的、可变的、当前的细节数据集合,用于支持企业对于即时性的、操作性的、集成的全体信息的需求”也就是说,ODS应该具有EDW(企业数据仓库)面向主题、集成数据的特点,又具有OLTP(联机事务处理系统)数据库实时更新的特点,从而解决跨系统企业数据统计分析和实时监控问题,向EDW提供高质量的数据源传统EDW通过ETL(抽取转化加载)方式从多个生产系统获取数据,定期批量将数据转换成EDW的企业数据模型,以此来解决跨系统的数据关联分析和挖掘问题但是当某些应用需要实时汇总多个IT系统的数据进行关联统计分析时,传统ETL方式很难满足数据质量和实时性的要求中国电信CTG-MBOSS技术架构中规划了ODS,使ODS处于操作环境和分析环境之间,理论上可以解决IT系统松耦合、模块化带来的数据冗余、数据不一致问题,实时提供高效、高质量的跨系统关联数据分析服务。
利用何种方法构建实时ODS,是一个急需解决的问题,目前包括增量更新法、程序监控法、DBMS(数据库管理系统)事务触发法等,这些方法的共同问题是系统资源消耗严重,只适用于少量数据的同步更新中国电信近年在OSS建设方面的思路越来越清晰,同时正在逐步解决由于系统和数据分散带来的一系列问题2 O S S 存在的问题中国电信在IT系统建设、演进过程中,根据CTG-MBOSS技术架构目标,将建设成省集中、松耦合的服务开通、资源管理和综合激活等多个OSS模块系统功能模块间的松耦合和紧耦合各有利弊松耦合有利于工作的分解和成果继承,通过松耦合有利于选择市场化、专业化的应用软件,可以解决IT省集中所必需的实施队伍快速扩张、软件选型和系统过于庞大28 TelecommunicaTions Technology/ 2009·4全业务下的运营支撑 特别策划图1 A P P D B 、O D S 及E D W的特点比较所带来的一系列管理问题,但是OSS的松耦合也带来了接口复杂、数据分散、数据不一致等急需解决的问题以浙江电信OSS和相关EDW应用为例,主要存在以下问题● 资源数据的一致性和准确性维护:OSS存在“九七”系统、多个专业的设备资源管理系统、SG带宽型业务开通系统、管线资源管理系统、多个激活系统等众多子系统,OSS数据过于分散,导致资源数据的一致性和准确性维护非常困难。
● EDW数据及时性和准确性保障:在EDW系统建设和使用过程中,每天直接从众多OSS生产系统中抽取数据,经常影响生产系统日常运作,即由于按日抽取关联系统众多,OSS数据及时性和准确性无法很好地满足实际应用3 O D S 定位及应用特点在CTG-MBOSS技术架构中,各生产系统、ODS和EDW有明确的定位和分工,实时ODS可以解决OSS松耦合带来的一系列问题在 通 常 情 况 下 , 生 产 数 据 库(APP DB)的主要任务是业务处理,承担主要的业务处理功能,其特点在于数据变化频繁,保存时间短,统计分析等功能较弱EDW的主要目的是信息挖掘和历史统计分析EDW保留大量的历史数据汇总信息,基本不发生变化实时ODS介于APP DB与EDW之间,以查询统计类应用为主,集中了多个APP DB的实时数据,可以承担APP DB与EDW之间的数据模型隔离、转换任务一方面ODS汇总了各业务系统中的详细数据信息,且和APP DB保持秒一级的数据同步;另一方面,可以在ODS中进行跨APP DB的统计和分析,获得反映全面业务信息的、接近实时的数据报表ODS的应用既减轻了大量A P P D BO D SE D W特点?● 单一性:反映特定业务变化;● 实时性:数据实时变化;● 操作性:包含了数据的增加、删除、修改及结构变化等;● 短期性:保留数据时间不长,定期清除● 全局性:汇总不同业务系统的细节数据;● 实时性:数据准实时变化;● 操作性:和业务系统数据基本保持一致;● 历史性:保留较长时间的细节数据信息;● 面对主题:可以执行面对主题的统计分析● 全局性:汇总不同业务系统的概括信息;● 累积性:数据定期装载到E D W,装载到E D W中的数据不再进行修改和删除;● 面对主题:主要执行面对主题的统计分析,展现报表信息;● 非实时性:定期装入历史数据用途● 支持特定业务的业务处理;● 反映单一业务的最新数据变化● 整合孤立的业务系统数据,展现全局业务的变化;● 反映实时数据信息,满足业务实时监控需求;● 减少外围统计、分析及数据抽取对业务系统的压力;● 为前端应用系统提供公共统一的业务数据服务,便于前端应用系统的热插拔;● 有效隔离生产系统数据模型变化的影响,为E D W提供统一的企业数据模型,保持E D W历史数据的一致性● 保留长期的业务处理数据;● 进行面向对象、面向主体的统计分析,展现企业业务发展趋势;● 用于决策分析(D D S )、商业智能(B I ),支持企业宏观发展EDW ODS APP DB数 据 全 面 性 数据时间跨度 及时性 高 低 大 小 高 低 表1 A P P D B 、O D S 及E D W的作用及特点比较 29查询、统计和数据抽取对APP DB的巨大压力,又能更加方便、及时地获得比EDW更加细致的报表展示(具体特点和应用对比,见图1和表1)。
4 建设实时O D S 的可行性分析通过实时ODS的建设可以解决BSS、OSS、MSS三大类系统松耦合设计和OSS众多带来的跨系统数据问题,如跨系统数据一致性控制、跨系统实时统计报表、大量的数据抽取转换接口等实时ODS的核心任务是信息实时抽取和集中,即如何实时、高效、无干扰地将业务APP DB必要的数据信息集中到ODS实现该数据库所使用的关键技术是TB级数据库和数据库复制技术,这些技术应该满足以下要求● TB级数据库技术:ODS要集中多个业务系统数据库的数据,必须具备TB级的容量和可扩展的高性能处理能力● 实时复制:业务系统数据库的变化应能在数秒至数分钟的时间内反映到ODS中,复制过程要确保数据准确、不丢失、不重复● 异构支持:大量的业务系统可能与ODS具有不同的主机、存储、操作系统和数据库版本,数据复制过程应该能够同时满足以上复杂异构环境的要求● 低干扰:数据复制的过程中对业务系统的影响要尽可能的小● 数据可操作:数据复制过程中要允许ODS进行必要的读写操作,如创建视图、统计临时表等随着大容量数据库技术的日益成熟,Oracle在9i及以上版本采用了RAC(真正应用集群)等新技术,配合海量存储设备技术,即使是10 TB级别的单一数据库也完全可以轻松实现。
在数据库复制方面,随着RealSync等基于数据库日志分析的容灾软件日益成熟,异构平台数据库的低干扰实时复制和集中已经有了成熟的解决方案总体上,建设实时ODS的关键技术均已具备5 一种实时O D S 的实现方法5 . 1 O D S 层次设计首先需要根据数据和应用特点对ODS进行分层设计实时ODS可分为:原始数据层、数据处理层和数据应用层3个层次 1 ) 原始数据层该层处于数据模型的最底端,主要用于接收和存储从生产系统实时复制过来的数据该层数据具有和业务系统生产库完全相同的数据结构,但是存储结构可以有所不同 2 ) 数据处理层该层位于原始数据层之上,用于将原始数据层的数据实时转换成ODS 企业数据模型,并存储处理结果该层主要由各种负责数据转换的存储过程、数据转换函数、数据模型转换所需的分析配置表等组成该层根据企业数据模型和ODS的分析统计、查询需求所设计 3 ) 数据应用层该层用于前端客户查询程序访问原始数据或企业模型数据该层主要由不同权限的视图、查询函数以及客户应用程序组成该层结构主要根据实际查询和报表展示的需要来设计实时ODS的内部结构如图2所示针对不同的数据层,在ODS中应创建不同的用户,且不同用户对不同层次的数据访问权限不一样,如数据处理层的用户只能访问而不能修改原始数据层的数据,即充分利用DBMS的现有功能可以在确保系统可靠的同时减轻ODS的建设工作量。
5 . 2 数据复制模块在完成上述3个层次架构设计后,如何将CRM、开通系统、资源系统等众多业务系统APP DB的部分数据实时数据应用层 组成:不同权限的视图、查询函数以及客户应用程序生产系统原始数据层 组成:和生产系统数据表结构相同的表层层层数据处理层 组成:负责数据转换的存储过程 、数据转换函数、数 据模型转换所需的分析配置表综合查询及营销支撑系统123数据实时复制ODS图2 实时O D S 内部结构模型30 TelecommunicaTions Technology/ 2009·4全业务下的运营支撑 特别策划集中到原始数据层是ODS实施的一个关键任务实现此功能需要考虑以下模块● APP DB抽取模块:通常采用代理模式连接业务系统数据库进行分析和实时数据抽取● 网络传输模块:负责将抽取的数据通过网络传输到ODS平台,并负责处理网络中断等情况下的断点续传● 数据装载模块:负责将需要复制的数据及时装载到ODS的原始数据表中由于中国电信CTG-MBOSS规模庞大、结构复杂、建设周期长,不可避免地出现了设备型号多、软件厂家多、数据库版本多、数据量庞大等复杂情况,同时还要考虑容灾备份系统的要求,要适应这样的复杂环境,实时数据复制系统应满足以下条件:● 同时支持多点对一点的实时数据复制和一点到多点的实时数据复制;● 支持跨操作系统平台的数据复制;● 支持不同数据库版本间,甚至不同数据库厂商平台间的数据复制;● 支持部分数据复制,可以复制APP DB的部分表空间、部分物理表,甚至可以只复制一张表的部分字段;● 效率高、速度快、延时短,既要快速初始化平台数据,又要确保高效实时、完整的同步数据;● 具有自修复性,在发生意外导致复制中断的情况下能够自动修复,重新实现一致性同步。
理论上可以通过数据库日志分析工具实时分析数据库的日志,将分析的结果转换成sql语句在目标端进行加载,但在跨硬件平台、跨操作系统、跨数据库版本、数据选择性复制和高性能方面还需要根据需求进一步综合评估按照目前的应用特点和数据库技术看,可以根据需要直接选择RealSync等比较成熟的数据库容灾备份软件作为数据复制工具5 . 3 实施过程完成基本的ODS架构设计后,可以根据具体需求选择成熟的容灾备份软件作为数据实时复制模块,但ODS数据平台的实施过程仍然是一项复杂的系统工程,包含以下几个步骤 1 ) 数据需求分析该部分的重点是分析即将创建的ODS需要哪些业务系统中的数据,并针对这些业务系统数据库,确定哪些表需要复制,其表结构如何,存储结构如何,数据量多少等这些信息是ODS内部系统构建的基本要素 2 ) ODS 数据库设计在获取了详细的数据需求后,应总体规划ODS内的用户、权限、存储空间、表结构、数据库函数、存储过程、视图等完成上述规划方案后,在数据库中创建相应的对象并进行测试 3 ) 数据复制系统实施在确定了APP DB和ODS中的用户和表信息后,即可配置实时复制系统在配置过程中需要注意复制的策略,表与表的对应关系及操作先后顺序。
构建实时ODS数据平台的关键是实时数据复制和集中技术,在创建ODS时可以考虑采用日志复制技术代替传统的ETL定时数据抽取工具复制系统实施后,应对其可用性、实时性、准确性以及稳定性进行充分的测试 4 ) 数据导入及测试验证在数据复制系统配置好后,在原始数据层测试并确认复制数据的实时性和准确性;在数据处理层测试数据转换是否正确及时;在数据应用层测试。