摘要: 万恶的null啊和null进行数据计算会导致结果也是null例如 select null+3 return的结果是null但是对一个列求和 select sum(a) 即使a中有null ,也无关紧要,对于菜鸟的我来说,还是少用null为妙啊 阅读全文
posted @ 2012-03-19 16:49 野三坡 阅读(162) 评论(0) 推荐(0) 编辑
摘要: 走过2010年,回首走过的一年,全部精力投入到了数据平台的建设过程中,在不断的探索、尝试中探索一条适合数据仓库发展之路的数据模型建设方法;作为数据平台建设的主要驱动人,与团队一起完成数据平台基础数据模型(宽表层)的搭建,应用迁移、实现应用项目在新的数据模型上实施。在建设的过程中,有过困惑、走过弯路,但获得了对模型设计方法和理念的体会与沉淀。因此,我更多想对在数据平台建设工作中的历程、困惑、体会做一个梳理与总结。一、源系统数据调研阿里数据仓库普遍采用的建设方法是应用驱动型,源系统的业务逻辑知识散落在各个ETL开发与PD的头脑中,缺乏总整体上对源系统的一个全面了解。全面的数据调研工作对后续数据仓库 阅读全文
posted @ 2012-03-19 15:49 野三坡 阅读(2622) 评论(0) 推荐(0) 编辑
摘要: http://www.alidw.com/?p=309传统的关系数据库一般采用二维数表的形式来表示数据,一个维是行,另一个维是列,行和列的交叉处就是数据元素。关系数据的基础是关系数据库模型,通过标准的SQL语言来加以实现。 数据仓库是多维数据库,它扩展了关系数据库模型,以星形架构为主要结构方式的,并在它的基础上,扩展出理论雪花形架构和数据星座等方式,但不管是哪一种架构,维度表、事实表和事实表中的量度都是必不可少的组成要素。 维度:是多维数据集的结构性特性。它们是事实数据表中用来描述数据的分类的有组织层次结构(级别)。这些分类和级别分别描述了一些相似的成员集合,用户将基于这些成员集合进行分析。 阅读全文
posted @ 2012-03-19 13:50 野三坡 阅读(921) 评论(0) 推荐(0) 编辑
摘要: http://www.alidw.com/?p=1755继续ETL随笔三的话题,还是继续上回提到ETL数据质量问题,其实这是无法根治的,只能采取特定的手段去尽量避免,而且必须要定义出度量方法来衡量数据的质量是好还是坏。对于数据源的质量,客户对此应该更加关心,如果在这个源头不能保证比较干净的数据,那么后面的分析功能的可信度也都成问题。数据源系统也在不断进化过程中,客户的操作也在逐渐规范中,BI系统也同样如此。 如何应对数据源的质量问题?记得曾经讨论过一个话题-”-1的处理”,在数据仓库模型维表中,通常有一条-1记录,表示“未知”,这个未知含义可广了,任何可能出错的数据,NULL数据甚至是规则没有 阅读全文
posted @ 2012-03-19 13:38 野三坡 阅读(448) 评论(0) 推荐(0) 编辑
摘要: http://www.alidw.com/?p=781记得自己曾经实施的第一个数据仓库的项目上线后,我的师傅问我的第一个问题是“你认为数据仓库这种类型的项目什么才是最重要的?”我当时毫不犹豫的回答“是供数的效率,从源系统抽取完数据经过ETL并加载到目标表到给下游系统供完数据的时间间隔越短越好”,当时我的师傅告诉我最重要的应该是数据质量,一个数据仓库出来的数据最起码你应该保证你的数据可以被别人使用,它不需要绝对的数据准确,但是你必须要知道为什么不准确。确实,对绝对的数据准确谁也没有把握,不仅是系统集成商,包括客户也是无法确定。准确的东西需要一个标准,但首先要保证这个标准是准确的,至少现在还没有这 阅读全文
posted @ 2012-03-19 13:28 野三坡 阅读(159) 评论(0) 推荐(0) 编辑
摘要: http://www.alidw.com/?p=641谈下ETL过程中经常遇到的历史拉链表的做法,假定现在的目标表是t,增量表是s,现在要把S表的数据加载到历史拉链表T中,不要使用update语句,常见的实现方案有如下几种,具体实现步骤可参见下方。方法一: 1)用t表与s表进行关联比较,把t表中已经改变的记录选择出来,更新结束日期为当前etl日期,然后把结果加载到临时表tmp1 2)delete t表中已经发生改变的那些记录 3)把tmp1表中的记录以及s表的记录都加载到t中,注意,s表在加载要t表时,开始日期是当前etl日期,结果日期为最大日期方法二: 1)用t表与s表进行关联比较,把t表中 阅读全文
posted @ 2012-03-19 13:22 野三坡 阅读(599) 评论(0) 推荐(0) 编辑
摘要: http://www.alidw.com/?p=205谈到ETL,很多人都认为最重要的只是涉及到抽取、转换、加载那些脚本以及脚本的效率这几个方面,其实不尽然,ETL其实包含了很多方面,现在我谈谈个人在ETL方面的心得。(一)数据源。在跨系统做数据抽取的时候往往忽视了几个重要的原则,其一,源表结构的稳定性。如果源表结构有改变,如何保证ETL不受影响。其二,数据接口。源系统如何把数据提供给目标,如果是文本形式,那么就有必要对文本的格式进行约定,同时就如何保证文本的到达通讯、文本的完整性做好相应的策略,通常的做法都是由源提供一个标志文件,目标到固定未知去监测这个文件何时到达,并读取文件中的信息:数据 阅读全文
posted @ 2012-03-19 12:28 野三坡 阅读(402) 评论(0) 推荐(0) 编辑