Friday, July 8, 2011

从SQL Server数据库管理员到数据仓库管理员

不管企业在Oracle还是SQL Server的 平台上构建了数据仓库都只是一个开始,要令这个仓库正常运转还需要有另外一群人的不懈努力,这就是数据仓库管理员(DWA)。他们和数据库管理员 (DBA)很相似,但又有所区别。想知道数据仓库管理员都要担负起哪些职责和任务吗?想知道需要具备哪些技能和知识才能成为一名优秀的数据仓库管理员吗? 想知道数据库管理员和数据仓库管理员之间的关系和区别在哪里吗?下面为你一一道来。
数据仓库市场的火热也带动了国内很多企业对数据仓 库应用的需求,特别是一些大型企业和机构,如保险业等。目前国内一些企业在数据仓库项目开发完成后并没有专门培训特定的数据仓库管理员,大都是从开发团队 里挑选一些人留下来执行维护任务,因为即使在通常情况下,经过简单的指导一般的技术人员也没有能力维护这个复杂的系统,更不用说出现突发事件应该怎么处理 了。数据仓库的管理是不少企业数据仓库应用的软肋。要保证数据仓库系统的稳定性、可用性和高效性必须要有具备专业素养的数据仓库管理员来完成。
数据仓库管理员(Data Warehouse Administrator),如果取首英文字母简写为DWA,很多人会以为讲的是数据仓库架构师(Data Warehouse Architect),不过本文的主角是数据仓库管理员,而且主要讲述的是活跃在SQL Server平台上的数据仓库管理员。
数据仓库管理员主要负责维护企业数据仓库的完整性和可用性,包括数据的质量问题,确保数据仓库的正常持续运行。数据仓库管理员要管理的也许是容量上到5TB级的高可用性SQL Server 2005数据仓库,而且有遍布全球的有几十家分公司好几百名用户将其应用于商业智能和客户关系管理;也许只是被某公司总部十几个用户用作销售、客户和产品分析的300GB单服务器数据仓库。不管数据仓库管理员需要管理的是哪一种数据库,其最重要工作就是维护。

数据仓库系统每天都要进行大量的ETL操作,按照特定的时间间隔把数据抽取整合到数据仓库里。这个时间间隔也许是每隔一天、每隔一个星 期或每隔几个小时。DWA的其中一个主要任务就是监测这些ETL处理进程,确保其正常运作。监测ETL处理进程的任务非常重要,因为这个进程在不断地为数 据仓库供给数据原料。如果ETL处理进程运行不当,数据仓库里的数据就会过时;如果ETL处理进程运行到一半就卡壳了,那么数据仓库里的数据就会不完整; 如果ETL处理进程运行出错,那么存入的数据也会不正确;而如果数据不正确不完整,那么根据这些数据而制定的所有决策都会受到影响。这就是为什么确保 ETL进程由始至终正常运作的重要原因。
数据仓库管理员最好是向数据仓库主管汇报工作,不过有时候他们会向数据仓库架构师汇报。数据仓库管理员的关键任务包括以下几个方面(假设在SQL Server平台上运行):
· 监测每天(每星期)的ETL进程、数据转化服务工具包和SQL Server集成服务任务的运行
· 管理数据仓库的数据库,维护所有数据库服务器
· 管理分析服务立方体和服务器
· 管理报表服务和服务器(很可能是一个网络场)
· 管理数据挖掘模型和预测分析
· 管理数据仓库安全
· 制作数据仓库工作负荷和活动情况报表
· 向数据仓库批量上载新数据
· 安装补丁程序并执行更新升级
· 管理数据仓库端口
· 备份和检测还原所有数据仓库对象
· 与开发团队保持合作以部署代码
· 与业务团队保持联系以解决关于数据请求的问题
· 为终端用户组织培训班

· 帮助用户解决查询问题
数据仓库管理员需要具备的核心技术能力:
· 具有维护SQL Server数据库的经验
· 具备报表和分析服务的知识
· 充分了解数据仓库构建原理
· 熟悉维度建模
· 清楚如何管理SQL Server集成服务作业和数据转化服务工具包
· 最好具有MCDBA认证或者MCITP的BI认证
数据仓库管理员必须知道怎样对数据仓库进行性能调优,必须了解对维度数据存储的事实表调优和对联机事务处理系统的事务表调优之间的区别,必须清楚为什么简单恢复更适合于阶段和维度数据存储而完全恢复更适合于操作数据存储。
在一些企业里,数据仓库管理员还要负责维护报表和SQL Server集成服务。不过大多数情况下,这些任务都是由另外的数据仓库开发员负责的。如果企业使用商业智能和企业绩效管理工具,例如Business Objects、SAS、Cognos、Hyperion、MicroStrategy 和ProClarity等,很可能数据仓库管理员也要负责管理这类工具。还要企业会为报表服务端口配置SharePoint,所以SQL Server数据仓库管理员也要具备与Sharepoint相关的技能。
“数据仓库管理员”这个术语在Teradata、DB/2和Oracle的机构里的流行程度比在SQL Server机构里的更高。不过自从SQL Server 2005上市后,构建在微软平台上的数据仓库也越来越受欢迎了。我们期待明年二月底发布的SQL Server 2008在将来能够给SQL Server数据仓库管理员角色更多的用武之地。
现在我们已经了解了数据仓库管理员究竟是个什么角色,那么一个SQL Server数据库管理员怎样才能成功地转型为SQL Server数据仓库管理员呢?其实,SQL Server数据库是SQL Server数据仓库管理员的最佳候选人,比IT业内的其他职位更接近和符合SQL Server数据仓库管理员的标准。SQL Server数据库管理员需要负责管理SQL Server数据库,维护用户安全,配置SQL Server,备份数据库,管理磁盘空间,进行SQL Server打补丁和升级等等任务。所有这些技能都为执行SQL Server数据仓库任务提供了坚实的基础。

通常两者的技能差距就在于分析服务立方体。要熟练掌握SQL Server集成服务作业和报表服务的管理工作非常困难,这里的困难不是指开发难度而仅仅是指管理工作的难度。不过管理分析服务立方体则有点不一样,你必须花上一定时间来熟悉多维数据库的概念。如果所在企业同时还使用数据挖掘工具,那么还要花一定时间去学习如何维护数据挖掘模型。
除了分析服务立方体和数据挖掘以外,其他的技能差别就在于对数据仓库构建概念的知识了。SQL Server数 据仓库管理员必须熟悉数据仓库构建和维度建模的概念(例如事实表、维度表、缓慢变化维度、代理键、聚集表、概要表、维度层次结构、迟到数据以及一致性维度 等)以及缓慢变化维度Type 2中有效数据列的作用。数据仓库管理员还必须能够描述向事务事实表、周期快照事实表和累积快照事实表里加载数据的区别。
数据仓库构建概念是数据仓库管理员必须具备的基础知识。数据仓库管理员不需要拥有从头开始设计一个数据仓库的经验,不过必须具备一些关于数据仓库架构的 基础知识,例如数据仓库数据库和联机事务处理数据库之间有什么区别。这些基础知识的积累非常必要,因为会影响到调优、表分区操作(扩展分区和旧区归档)、 构建索引、查询和聚集操作等。理想状态下,数据仓库管理员还需要熟练掌握ETL过程的操作原理,例如关于数据是怎么从源系统抽取出来并装载到目标数据仓库 里的;这是因为前面提到数据仓库管理员的重要职责之一就是监测ETL进程,而且这些知识的有无可能会影响到备份策略的实施。数据仓库管理员必须清楚在重新 运行一个已经失败的ETL进程时,数据完整性会不会受到影响。
数据仓库管理员还需要深化对数据质量概念的认识。保证数据仓库中的数据准 确性和完整性绝对是一项关键任务。如果我们连数据仓库中的数据都无法信任,那拥有数据仓库还有什么意义呢?数据仓库管理员需要明白保证数据质量的机制,例 如在坏数据被加载进数据仓库之前,数据质量防火墙是怎样检测出这些坏数据的;而系统是如何报告这些坏数据并把它们纠正过来的。对数据质量控制过程有一个透 彻的了解将有助于数据仓库管理员维护数据的质量。
以上就是数据仓库管理员必须执行的任务和必须担负的责任,以及执行这些 任务所需要的技能和知识。如果有人希望走进数据仓库管理员大家庭,在此致以衷心的祝愿,希望一切顺利,不过要记住掌握扎实的技能和知识才是立足数据仓库管 理员角色的王道。随着数据仓库在国内市场的开拓,相信这个角色也会越来越吃香的。目前越来越多的企业在考虑利用SQL Server平台来构建数据仓库,这意味着对于SQL Server数据库管理员而言是个难得的好机会。鉴于SQL Server 2008在数据仓库功能方面做了很大的改善(例如,星型联接查询优化、利用数据压缩功能改善事实表查询性能、利用变化数据捕获功能优化ETL过程,利用 Merge命令来进行更新插入操作等),SQL Server数据仓库的吸引力将会越来越大。

No comments: