分类
高效的数据仓库管理设计以及所需注意事项‖
| 高效实现数据仓库的七个步骤 |
| 数据仓库和我们常见的 据仓库,那么从设定目标到 用户的评估,整个过程都会 旧有的方式创建数据仓库, | RDBMS系统有些亲缘关系,但它 给出设计,从创建数据结构到编 带给你一种与以往的项目完全不 那你所面对的不是预算超支就是 | 又有所不同。如果你没有实施过数 写数据分析程序,再到面对挑剔的 同的体验。一句话,如果你试图以 所建立的数据仓库无法良好运作。 |
| 在处理一个数据仓库项 助你更顺利的完成任务。开 法来说也是必需的。 | 目时需要注意的问题很多,但同 放思维,不断尝试新的途径,对 | 时也有很多有建设性的参考可以帮 于找到一种可行的数据仓库实现方 |
| 1. 配备一个全职的项目经理或你自己全面负责项目管理 |
| 在通常情况下,项目经 方面的考虑。但是对于数据 所处的领域是你和你的团队 编程、测试、修改、维护- 于项目的成功会有很大帮助 | 理都会同时负责多个项目的实施 仓库项目的管理,绝对不能出现 之前没有进入过的领域,有关数 全都是崭新的,因此你或者你指 。 | 。这么做完全是出于资金和IT资源 一人身兼数个项目的情况。由于你 据仓库的一切-数据分析、设计、 派的项目经理如果能全心投入,对 |
| 2. 将项目管理职责推给别的项目经理 |
| 由于数据仓库实现过程实在是太困难 就将项目管理职责推给别的项目经理。当 全职性。为什么要这么做呢?首先,从项 都足以让人身心疲惫。从物理存储设备的 模型到OLAP,所有阶段都明显的比以前接 、新的管理方法,还需要创新性的观点。 损害,还可以起到帮助作用。 | 了,为了避免自虐,你可以在当前阶段的项目完成后 然,这个新的项目经理一定要复合第一条所说的具有 目经理的角度看,数据仓库实施过程的任何一个阶段 开发到Extract-Transform-Load的实现,从设计开发 触的项目更加困难。每个阶段不但需要新的处理方法 所以将管理职责推给别的项目经理不但不会对项目有 |
| 3.与用户进行沟通 |
| 这里所讲的内容远比一篇文章本身要 些潜在用户自己也不清楚他们到底需要数 的需求,而你的开发团队也在和客户的接 记录,并让你的团队更关注于项目需求讨 | 重要的多。你必须明白,在数据仓库的设计阶段,那 据仓库为他们做什么。他们在不断的探索和发现自己 触中做着同样的事情。更加频繁的与客户接触,多做 论的结果而不是讨论的过程本身。 |
| 既然你和客户的交流是 要(和你的用户一起)采用 出隐藏的信息,比如在一段 案找上门来。 | 为了了解存储的数据是何种类型 一种新的方法观察数据,而不是 时期内的数字涨落等。不要试图 | 以及如何有效存储数据,你也许需 直接处理数据。你可猿⑹源又姓?br>追寻项目需求的答案,而是要让答 |
| 4. 以技术/信息库作为领导 |
| 由于数据仓库实施的各个阶段都有很 进行的作用,不过这个职责并不需要那种 务。将架构作为重点可以保证在整个项目 维护。而我们应该将技术作为重点,因为 具,必须有人监督开发过程以及工具使用 | 大不同,因此你需要有人能起到维持整个项目的连续 全职性。项目实施有三个重要方面:架构、技术和业 中,数据仓库的架构从物理层往上,都会受到良好的 开发团队和关键用户都在使用他们以前从未用过的工 的一致性。 |
| 最后,在数据仓库的应 过程持续下去。如果用户不 开发进程就会延期,所以必 | 用过程中浮现出来的业务需求必 能很好的开发人员以及其它用户 须有人关注业务方面的开发,推 | 须被详细分析和记录,以促机开发 沟通,那么数据分析和度量方面的 动开发进入更高级别。 |
| 5. 跳出反复修改程序的陷阱 |
| 第一问迪值氖莶挚?br>,你无法确定的知道自己的 后,才能明确告诉你这个产 发展的初期,每个公司对业 | 肯定不会是最终交付的版本。为 目标是什么。或者说,最终用户 品是不是他所希望的。与你以往 务智能都有不同的解释,因此你 | 什么呢?实际上在真正见到产品前 只有在使用数据仓库产品一段时间 处理的项目不同,业务智能还处于 的项目决不会一次成功。 |
| 为了以正确的格式获得 不同的环境、不同的市场以 据库管理员放在一个消息相 在不断的改变。对此没有别 | 数据,你需要在不断变化的状况 及不同的企业都有不同的BI。这 对封闭的环境中,不要让他知道 的办法。这样可以减轻你和DBA | 中摸索前进。BI具有很强的个性, 又代表什么呢?这表示你需要把数 数据仓库的数据结构以及ETL程序 所承受的压力。 |
| 6. 对大量的前端资源进行数据源分析 |
| 在数据仓库实现过程中,你不得不在 老的磁带机以及远程的数据。它们中的大 行大量处理,并且还要设计ETL程序来寻 顺利,并且找到一种方法能够一次成功, 究这些旧有数据,将凌乱的数据规则化, 仓库的ETL部分会占用整个项目资源的百 。 | 旧有的数据中艰难跋涉,这些数据来自老的数据库、 部分都凌乱不堪,并且难以获取。你要对这些数据进 找其中的有用信息。如果你希望整个项目做起来比较 那就需要你的开发人员必须花费足够的时间来充分研 并尽力设计和实现强壮的数据采集和转换过程。数据 分之八十,所以一定要确定你的资源都用在刀刃上了 |
| 7. 将人际关系处理放在首位 |
| 在数据仓库实现过程中真正的地狱不 也许会遇到一个对项目并不乐观而又没时 度拖延太长时间还抱怨为什么不能用老方 用户,他们希望轻点鼠标就能实现想象中 的培训他们自己的员工。而你也已经疲惫 )中推广新的开发技巧。 | 是来自技术或者开发方面,而是来自你周围的人。你 间听你陈述的领导。你也许会遇到一些开发人员将进 法实施。你也许还会遇到一些抱有不切实际的幻想的 的功能,但却不愿在他们那边多做些智力投资,更好 不堪,鼓励投资,以及诳⑼哦雍陀没Вㄉ踔晾习?br> |
| 总之你要保持微笑。当一切搞定,你的烦恼也就一扫而空了,笑到最后才笑得最轻松。 |
| 数据仓库开发过程中的七个禁忌 |
| 过去我们一直使用的OL 单的任务,你会发现以前积 | TP技术也许隐藏着许多严重的缺 累下来的丰富经验,并不适合处 | 陷。数据仓库的实现并不是一个简 理每个数据仓库的独特需求。 |
| 下面列出的条款是你在 象中那么严重,但是你还是 它没有一定的标准也不会实 司所建立的数据仓库都是唯 数据仓库时需要注意的不单 七点"不该如何作"。 | 实现数据仓库过程中一定会面对 应该尽量避免出现类似问题。数 现某个特定的应用,但它本质上 一的,并且每一次数据仓库的实 是"应该如何作",更要注意"不 | 的问题,其中一些看起来并没有想 据仓库并不是一个事务处理系统, 是非常有组织性的。总之,每个公 现方法都不是一成不变的。在实现 该如何做"。下面就是我们总结的 |
| 1.不要编写自己无法快速修改的代码 |
| 你所要编写的程序主要用于数据分析 自己真正想要一个什么样的程序。因此你 一个什么样的程序。如果你嘈吹某绦蚓?br>力气。反之,你会被自己累死。 | ,而不是处理事务。而你的用户也并不真正知道他们 不得不反复修改代码好几次,才会明白用户到底需要 有良好的结构和灵活性,就算需要修改也不会太浪费 |
| 2. 不要使用无法修改的数据库访问API |
| 在过去,你的数据库可 能够应付更多的数据查询。 势在必行的工作,而一般来 API,才能使程序尽快适应 | 以为大量的客户提供稳定的数据 这使得重新改写程序以使得每个 说这种代码修改都不会一次成功 新的需求。 | 查询服务。而如今,愕某绦虮匦?br>查询请求能得到最大的数据量成为 ,所以只有选择合适的可以修改的 |
| 3. 不要设计任何无法扩展的东西 |
| 在联机处理过程(OLTP 析的关键是获取大量旧的数 的访问潜在信息的代码应该 中假定数据都是固定格式的 | )应用中,数据分析并不是一个 据,从中提取数据模型,并以此 具有可扩展性,可以附加新的数 。 | 真正的应用程序。实际上,数据分 模型推断出新的信息。而你所编写 据。千万别在支持数据分析的代码 |
| 4. 不要附加不必要的功能 |
| 一个仓库要做的是恰到好处的服务, 而已。由于业务智能、分析以及规律性的 就是获取信息。他们需要一种应用环境, 数据,而不论这个数据是什么样子的。也 么做。一定要记住,不要给客户的数据分 | 用户走进仓库,从货架上取得自己所需得信息,仅此 问题都有各自的处理程序,因此你的客户唯一的需要 可以让他们快速的从数据仓库中取得分析过程所需的 许你想帮助他们精炼一下获得的数据,但最好不要这 析程序添加任何会影响数据访问性能的功能。 |
| 5. 不要简化数据清除和数据源分析的步骤 |
| 在实现数据仓库过程中 ,以及为优化负载而清除数 一半以上。相反,如果你在 不要简化清理旧的数据的过 | 最应该注意的地方就是为Extrac 据。安全的做法是假设项目经理 这方面进行了简化,稍后肯定会 程。 | t-Transform-Load机制分析数据源 在这个阶段会需要整个项目资源的 后悔。所以就算系统工作缓慢,也 |
| 6. 不要避免颗粒度和分区问题 |
| 在数据仓库设计过程中有两个最大的 的颗粒度等级,第二是如何将数据绝对的 仓库的响应能力受颗粒度影响,并且数据 关键性的工作,不要试图避免面对这些问 | 数据存储问题,第一是如何给转换数据定位一个恰当 分区。为什么这两点问题如此重要呢?因为整个数据 访问的效率直接与数据分区性能有关。因此这是具有 题。 |
| 7. 不要在没考虑业务问题前就使用OLAP |
| 用户在亲眼见到程序前 少错误,比如他们希望分析 务工作有所不同。而你必须 业的运行方式,才能在开发 解业务流程。而在联机分析 人也许并不会发现你对业务 的询问才能使你真正了解" | 通常都不知道自己到底想要个什 结果会忠实反应性能度量,或者 跳出自己的职责范围,从IT管理 过程中避免这类问题。在通常的 处理(OLAP)领域,任何事情都 方面存在的误解。因此,不要自 业务智能"中的"业务"到底是什 | 么样的程序。因此他们的观点有不 希望程序会使他们部门或公司的业 者的角度考虑用户部门直至整个企 OLTP开发中,你可以比较方便的理 需要亲自考察,而在你周围工作的 以为已经了解了足够的信息。不断 么样子的 |
| 顺利开发数据仓库的七种思路 |
| 对于大多数IT顾问来说 虑到不同的数据结构、用途 之地了。但是只要在你的前 算你是第一次实现数据仓库 | ,实现一个数据仓库的难度比以 以及应用程序开发方法,以前所 进道路上稍加修正,你就会发现 也没问题。 | 前做过的任何项目难度都要大。考 积累的经验和技巧大部分都无用武 实现一个数据仓库并不是难事,就 |
| 下面列出了数据仓库实施过程需要考 可能已经在实施过程中使用到了,但是重 尝试新的途径,找到一种可行的数据仓库 | 虑的步骤,有一些你可能从来没有意识到,而另一些 新思考一番也许你会有更多的领悟。开放思维,不断 实现方法。 |
| 1. 再三考虑应用程序的实现方法 |
| 数据仓库并不涉及事务 质是分析,尤其是针对业务 模型化得到的新的数据。那 是让你来完成的,而是你的 据表格设计师与你合作,进 是如何用新的方法观察数据 | 处理,并且在报表方面也仅占一 智能的分析。BI并不是通常所说 么如何才能从旧有数据中挖出这 客户所要完成的。从项目主管的 而决定如何将各类程序融合在一 ,这也是你的客户正在试图使用 | 小部分。而数据仓库应用程序的本 的数据:它是一种从旧有数据中, 些新数据呢?事实上,这个工作不 角度看,应该有一个经验丰富的数 起。其中所遇到的最主要的挑战将 的方法。 |
| 2. 创建抽象的、良好部署的数据库访问组件 |
| 在过去你接触过的数据库项目和现在 Online Transaction Processing (OLTP 少;而在Online Analytical Processing 用大量的数据。而你的工作就是编写一个 有的分析程序中,都要能抓取连续的数据 原数据物理结构类似的数据。具体如何实 小化读取请求数。按照这种方法,DBA会 | 的数据仓库之间,有一点绝对不同,那就是:在 )环境中,用户数量非常大,但使用到的数据却比较 (OLAP)环境中情况却正好相反,少量的用户在使 应用程序来优化这种不同。这里有一个线索:在你所 项,这样在以后建立和访问的数据结构中才能存放与 现呢?首先不要规格化数据。诙浞湃胧橹凶?br>很乐意与你合作。 |
| 3. 保持松散 |
| 现在回头看看第一步,你应该可以理 下,很难在第一次就实现符合要求的最终 种问题。一句话,实现过程会有很多变数 动次数降到最低。在一个数据仓库实现过 参与。不要死抓住你的程序设计、代码、 变化而不断进行调整。 | 解定义一个分析程序不是件简单事了,而且一般情况 产品。而在你将要进行分析的数据结构上同样存在这 ,你需要欢系母亩愕某绦颉MǔN颐嵌枷M?br>程中,本质是要分析过程毫无差错,这也需要DBA的 框图,或你建立的其它什么东西不放手,要根据这种 |
| 4. 将管理放在首位 |
| 在分析数据源方面你做 你一个人这样想,做过类似 实现过程的一部分,会有大 时编写转换程序将旧有数据 也是整个项目中最重要的一 待。 | 的如何呢?你是否认为清理垃圾 工作的人都有这种看法。在一个 量的旧有数据必须进行一致性处 导入数据仓库是整个数据仓库实 环,可以占到整个项目周期和预 | 数据的工作非常困难?并不是只有 一般规模的机构中,作为数据仓库 理。所以分析数据源并花费数个小 现过程中最艰难的一部分。并且这 算的四分之三。所以一定要小心对 |
| 5. 从字里行间发现问题 |
| 与用户交流是个很麻烦 道自己想要什么样的产品。 行。记住所谓的"业务智能" 些用户就是连接数据和业务 后面的智能性。你可以让他 们任意想象和发表那些"有 | 的事情,为什么这么说呢?因为 定义数据仓库应用程序是一个探 是用户自己定义的,他们按照自 处理过程间的桥梁。他们所要的 们讨论、思考并给出建设性的意 可能"的观点。最后,一定要随 | 很多用户在见到最终产品前都不知 索的过程,而且这个过程要反复进 己的理解来处理业务流程。因此这 并不是数据本身,而是隐藏在数据 见。但千万不要让他们解决或让他 时留意用户得出的结论。 |
| 6. 保持领先 |
| 数据仓库看起来没有传统的OLTP模式 发中,但由于其框架与以前的系统大相径 当混乱。但是坚持下去是很重要的。它具 | 根深蒂固,事实如此。虽然很多人投身数据仓库的开 庭,因此在开始的一段时间数据仓库的实现看上去相 有两方面重要的作用。 |
| 第一,技术的领先性。它可以跟踪项 发过程。如果这复合你的背景,你可以对 | 目中任何阶段的软件工具的部署和正确使用,以及开 此多加留意。 |
| 第二,体系结构的领先 物理以及逻辑架构都具有持 | 性。它使得项目在各个阶段转换 续性,不会发生改变。这也是你 | 时,数据仓库和它所支持的系统的 能提供的。 |
| 7. 发出警告 |
| 最后你要记住,你并不 问题:不现实的期望、对技 虽然交流沟通等任务应该是 术总监你该怎么作呢?首先 告。当你发现项目进度缓慢 确的给予警告在大部分情况 失败的项目把你拉下马。 | 是唯一登上新大陆的人。你周围 术的误解、旧习惯或坏习惯、竞 项目经理负责的,但实际上你也 当然是要真诚的对待周围的人, 、资源流失,或者员工失去目标 下都是明智之举。匆忙上马的数 | 的每一个人都会有下面一点或几点 争行为,或缺乏对项目的信任度。 要担负起相同的责任。那么作为技 但一定要竖立威信,适当的发出警 ,就要直言不讳的说出来。快速明 据仓库项目也许会出轨,但不要让 |