|
<script type=text/javascript> </script><script src="http://pagead2.googlesyndication.com/pagead/show_ads.js" type=text/javascript></script>
1.不要编写自己无法快速修改的代码 你所要编写的程序主要用于数据分析,而不是处理事务。而你的用户也并不真正知道他们自己真正想要一个什么样的程序。因此你不得不反复修改代码好几次,才会明白用户到底需要一个什么样的程序。如果你编写的程序具有良好的结构和灵活性,就算需要修改也不会太浪费力气。反之,你会被自己累死。 2. 不要使用无法修改的数据库访问API 在过去,你的数据库可以为大量的客户提供稳定的数据查询服务。而如今,你的程序必须能够应付更多的数据查询。这使得重新改写程序以使得每个查询请求能得到最大的数据量成为势在必行的工作,而一般来说这种代码修改都不会一次成功,所以只有选择合适的可以修改的API,才能使程序尽快适应新的需求。 3. 不要设计任何无法扩展的东西 在联机处理过程(OLTP)应用中,数据分析并不是一个真正的应用程序。实际上,数据分析的关键是获取大量旧的数据,从中提取数据模型,并以此模型推断出新的信息。而你所编写的访问潜在信息的代码应该具有可扩展性,可以附加新的数据。千万别在支持数据分析的代码中假定数据都是固定格式的。 4. 不要附加不必要的功能 一个仓库要做的是恰到好处的服务,用户走进仓库,从货架上取得自己所需得信息,仅此而已。由于业务智能、分析以及规律性的问题都有各自的处理程序,因此你的客户唯一的需要就是获取信息。他们需要一种应用环境,可以让他们快速的从数据仓库中取得分析过程所需的数据,而不论这个数据是什么样子的。也许你想帮助他们精炼一下获得的数据,但最好不要这么做。一定要记住,不要给客户的数据分析程序添加任何会影响数据访问性能的功能。 5. 不要简化数据清除和数据源分析的步骤 在实现数据仓库过程中最应该注意的地方就是为Extract-Transform-Load机制分析数据源,以及为优化负载而清除数据。安全的做法是假设项目经理在这个阶段会需要整个项目资源的一半以上。相反,如果你在这方面进行了简化,稍后肯定会后悔。所以就算系统工作缓慢,也不要简化清理旧的数据的过程。 6. 不要避免颗粒度和分区问题 在数据仓库设计过程中有两个最大的数据存储问题,第一是如何给转换数据定位一个恰当的颗粒度等级,第二是如何将数据绝对的分区。为什么这两点问题如此重要呢?因为整个数据仓库的响应能力受颗粒度影响,并且数据访问的效率直接与数据分区性能有关。因此这是具有关键性的工作,不要试图避免面对这些问题。 7. 不要在没考虑业务问题前就使用OLAP 用户在亲眼见到程序前通常都不知道自己到底想要个什么样的程序。因此他们的观点有不少错误,比如他们希望分析结果会忠实反应性能度量,或者希望程序会使他们部门或公司的业务工作有所不同。而你必须跳出自己的职责范围,从IT管理者的角度考虑用户部门直至整个企业的运行方式,才能在开发过程中避免这类问题。在通常的OLTP开发中,你可以比较方便的理解业务流程。而在联机分析处理(OLAP)领域,任何事情都需要亲自考察,而在你周围工作的人也许并不会发现你对业务方面存在的误解。因此,不要自以为已经了解了足够的信息。不断的询问才能使你真正了解"业务智能"中的"业务"到底是什么样子的 顺利开发数据仓库的七种思路 对于大多数IT顾问来说,实现一个数据仓库的难度比以前做过的任何项目难度都要大。考虑到不同的数据结构、用途以及应用程序开发方法,以前所积累的经验和技巧大部分都无用武之地了。但是只要在你的前进道路上稍加修正,你就会发现实现一个数据仓库并不是难事,就算你是第一次实现数据仓库也没问题。 下面列出了数据仓库实施过程需要考虑的步骤,有一些你可能从来没有意识到,而另一些可能已经在实施过程中使用到了,但是重新思考一番也许你会有更多的领悟。开放思维,不断尝试新的途径,找到一种可行的数据仓库实现方法。 1. 再三考虑应用程序的实现方法 数据仓库并不涉及事务处理,并且在报表方面也仅占一小部分。而数据仓库应用程序的本质是分析,尤其是针对业务智能的分析。BI并不是通常所说的数据:它是一种从旧有数据中,模型化得到的新的数据。那么如何才能从旧有数据中挖出这些新数据呢?事实上,这个工作不是让你来完成的,而是你的客户所要完成的。从项目主管的角度看,应该有一个经验丰富的数据表格设计师与你合作,进而决定如何将各类程序融合在一起。其中所遇到的最主要的挑战将是如何用新的方法观察数据,这也是你的客户正在试图使用的方法。 2. 创建抽象的、良好部署的数据库访问组件 在过去你接触过的数据库项目和现在的数据仓库之间,有一点绝对不同,那就是:在Online Transaction Processing (OLTP)环境中,用户数量非常大,但使用到的数据却比较少;而在Online Analytical Processing (OLAP)环境中情况却正好相反,少量的用户在使用大量的数据。而你的工作就是编写一个应用程序来优化这种不同。这里有一个线索:在你所有的分析程序中,都要能抓取连续的数据项,这样在以后建立和访问的数据结构中才能存放与原数据物理结构类似的数据。具体如何实现呢?首先不要规格化数据。第二将其放入数组中最小化读取请求数。按照这种方法,DBA会很乐意与你合作。 3. 保持松散 现在回头看看第一步,你应该可以理解定义一个分析程序不是件简单事了,而且一般情况下,很难在第一次就实现符合要求的最终产品。而在你将要进行分析的数据结构上同样存在这种问题。一句话,实现过程会有很多变数,你需要不断的改动你的程序。通常我们都希望将改动次数降到最低。在一个数据仓库实现过程中,本质是要分析过程毫无差错,这也需要DBA的参与。不要死抓住你的程序设计、代码、框图,或你建立的其它什么东西不放手,要根据这种变化而不断进行调整。 4. 将管理放在首位 在分析数据源方面你做的如何呢?你是否认为清理垃圾数据的工作非常困难?并不是只有你一个人这样想,做过类似工作的人都有这种看法。在一个一般规模的机构中,作为数据仓库实现过程的一部分,会有大量的旧有数据必须进行一致性处理。所以分析数据源并花费数个小时编写转换程序将旧有数据导入数据仓库是整个数据仓库实现过程中最艰难的一部分。并且这也是整个项目中最重要的一环,可以占到整个项目周期和预算的四分之三。所以一定要小心对待。 5. 从字里行间发现问题 与用户交流是个很麻烦的事情,为什么这么说呢?因为很多用户在见到最终产品前都不知道自己想要什么样的产品。定义数据仓库应用程序是一个探索的过程,而且这个过程要反复进行。记住所谓的"业务智能"是用户自己定义的,他们按照自己的理解来处理业务流程。因此这些用户就是连接数据和业务处理过程间的桥梁。他们所要的并不是数据本身,而是隐藏在数据后面的智能性。你可以让他们讨论、思考并给出建设性的意见。但千万不要让他们解决或让他们任意想象和发表那些"有可能"的观点。最后,一定要随时留意用户得出的结论。 6. 保持领先 数据仓库看起来没有传统的OLTP模式根深蒂固,事实如此。虽然很多人投身数据仓库的开发中,但由于其框架与以前的系统大相径庭,因此在开始的一段时间数据仓库的实现看上去相当混乱。但是坚持下去是很重要的。它具有两方面重要的作用。 第一,技术的领先性。它可以跟踪项目中任何阶段的软件工具的部署和正确使用,以及开发过程。如果这复合你的背景,你可以对此多加留意。 第二,体系结构的领先性。它使得项目在各个阶段转换时,数据仓库和它所支持的系统的物理以及逻辑架构都具有持续性,不会发生改变。这也是你能提供的。 7. 发出警告 最后你要记住,你并不是唯一登上新大陆的人。你周围的每一个人都会有下面一点或几点问题:不现实的期望、对技术的误解、旧习惯或坏习惯、竞争行为,或缺乏对项目的信任度。虽然交流沟通等任务应该是项目经理负责的,但实际上你也要担负起相同的责任。那么作为技术总监你该怎么作呢?首先当然是要真诚的对待周围的人,但一定要竖立威信,适当的发出警告。当你发现项目进度缓慢、资源流失,或者员工失去目标,就要直言不讳的说出来。快速明确的给予警告在大部分情况下都是明智之举。匆忙上马的数据仓库项目也许会出轨,但不要让失败的项目把你拉下马。 Trackback: |
src="http://aosustudio.com.cn/ad/GoogleSerch.htm" frameborder="0" width="100%" scrolling="no" height="30"> |
|
|
|
构建大数据管理仓库 大数据仓库的设计原则
转载本文章为转载内容,我们尊重原作者对文章享有的著作权。如有内容错误或侵权问题,欢迎原作者联系我们进行内容更正或删除文章。
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
















