建立数据仓库:入门的八个诀窍
当使用SQL Server技术建立一个数据仓库时,你可能会面临一些挑战。我将给你一些建议来克服它们。当然,每个环境可能会给建立数据仓库所面临的挑战增添自己的难度,但是这些建议大多数都是通用的,足以应用于许多公司着手构建商业智能(BI)应用。
1. 管理部门的支持。这是你必须要克服的第一个,也是最重要的挑战。它困扰着技术人员(当然包括你),因为它涉及政治而不是软件。但是让我们记住是谁签发你的薪水。如果管理部门不相信他们需要一个数据仓库,那你的所有技能都是无用的。
不幸的是上层管理人员至今仍经常认为数据仓库是另一个系统,他们需要投资却不能立即获得回报。你的工作就是使他们确信他们不会是在购买一些无用的东西——数据仓库会通过使企业中分散的数据关联起来,从而帮助他们做出更好、更明智的决定。在采用了数据仓库之后组织运行方式完全改变是并不罕见的。有时它会帮助建立一个概念证明模型(POC)项目来证明商业智能的力量。POC数据仓库将只包含所有数据的一小部分,并将只显示给一小部分人,以便测试。即使你并没有获准采用POC,你也应该证明数据仓库的某些部分将有益于你的用户,这么做使他们有兴趣并确信这个系统将帮助他们使他们的工作更有效。
2. 数据可用性。数据仓库将不一定明显或不一定容易获得的多个数据源的数据结合起来。根据公司的规模不同,你可能需要到多个办公室和许多雇员谈话来弄清楚你可以从哪获得那些用于生成你的用户想要的分析视图的必要的数据。再次,根据你的公司的政治氛围的不同,你可能发现要获得所有的必要数据元素很困难。因为你用的数据可能包含机密和高敏感性的细节。此外,一些数据可能只能通过一个外部实体所提供的报告访问,而他不会给你他们的数据源的访问权限。
你怎么克服这个挑战?首先,一定要说服每个人你不会取代他们的工作。数据仓库是用来补充的而不是取代任何已存在的系统。如果有管理层站在你这边,你就不会有太多内部员工的问题。但是如果你不能访问数据源——因为不可预见的原因——那么你可能就需要用创造性来解决这一问题了。如果数据只能通过报告屏幕或纸上来获得,那么你可能需要找到个方法来捕获这个数据,可能通过抓取报告屏幕或扫描文档。
3. 数据源的复杂性。有时你很幸运,你需要的所有的数据元素都在你选择的数据库管理系统(DBMS)中。更多时候,数据是分散在多个数据库管理系统中的,电子表格、电子邮件系统、电子文档,甚至纸张上。是的,我们是在21世纪,但是记住我的话——还是有一些其它的公司是把某些数据只保存在纸上的。这是你的工作,找出怎样从分散的数据源获得数据并转化为共同的形式,然后录入到你的数据仓库中去的方法。
4. 数据质量。许多交易处理应用通常是由对其使用的工具具有有限的知识或经验的人利用快速发展的技术放到一起的。这并没有贬低的意思;一个人必然要从某一处开始,而初级程序员是公司可以使用的最实惠的资源。麻烦的是如果这个应用没有验证数据那你很可能发现字符串类型的数据是缩写的、拼错了或完全遗漏了。对于交易级别的报告,这可能不是什么大问题,但是当你试图给数据分组并提供给你的用户作做决定的能力时,数据质量就是至关重要的了。
例如,看一下下面的用户姓名:
a. ACME Boot Outlet
b. ACME bt outlt
c. A.C.M.E
d. Boots (ACME)
e. A c m e boot store (outlet)
人眼可以很容易的辨识出上面的每一个都是指同一个事务实体。但是对于计算机程序来说,每一个值代表一个不同的用户。不幸的是利用集成服务(或者数据转移服务)包没有容易的方法来校正所有的不好的数据。SQL Server2005集成服务提供了模糊查询转化,它可以大大简化你的数据清理工作。但即使如此,你可能还是需要文职人员帮忙修正数据。