BI项目中ETL设计与思考(转)
BI项目中ETL设计与思考(转)[@more@]ETL即数据抽取(Extract)、转换(Transform)、装载(Load)的过程,它是构建数据仓库的重要环节。 ETL是将业务系统的数据经过抽取、清洗转换之后加载到数据仓库的过程,目的是将企业中的分散、零乱、标准不统一的数据整合到一起,为企业的决策提供分析依据。ETL是BI项目重要的一个环节。通常情况下,在BI项目中ETL会花掉整个项目的1/3的时间,ETL设计的好坏直接关接到BI项目的成败。 ETL的设计分三部分:数据抽取、数据的清洗转换、数据的加载。在设计ETL的时候我们也是从这三部分出发。数据的抽取是从
数据挖掘和知识发现的技术、方法及应用
-[@more@]数据挖掘和知识发现的技术、方法及应用 一幅凝固的油画 全部文章参考http://blog.csdn.net/ruixj/archive/2006/03/19/629161.aspxKeywords:data mining,Knowledge discovery in databases,DM,KDD,CRISP-DM,Internet 概念基于Internet的全球信息系统的发展使我们拥有了前所未有的丰富数据。大量信息在给人们带来方便的同时也带来了一大堆问题:第一是信息过量,难以消化;第二是信息真假难以辨识;第三是信息安全难以保证;第四是信息形式不一致,难以统一处理。数据丰富、知识贫乏已经成为一个典型问题。Data Mining(数据
两个表间,不存在的insert,存在地update
-[@more@]两个表间,不存在的insert,存在地updateIF OBJECT_ID('dbo.sp_showtable_insert') IS NOT NULLBEGIN DROP PROCEDURE dbo.sp_showtable_insert IF OBJECT_ID('dbo.sp_showtable_insert') IS NOT NULL PRINT '<<< FAILED DROPPING PROCEDURE dbo.sp_showtable_insert >>>' ELSE PRINT '<<< DROPPED PROCEDURE dbo.sp_showtable_insert >>>'ENDgoSET ANSI_NULLS ONgoSET QUOTED_IDENTIFIER ONgocreate procedure [dbo].[sp_showtable_insert] @tablename1 varchar(100),
按照字段名自动生成两个表间的insert语句
-[@more@]我们经常需要将一个表insert到另外一个表中,而大部分的字段名称都一些,这样,我们就可以使用一下的sp来实现,减少很多的工作量如将t2 insert到 t1run:sp_mapping 't1','t2'IF OBJECT_ID('dbo.sp_mapping') IS NOT NULLBEGIN DROP PROCEDURE dbo.sp_mapping IF OBJECT_ID('dbo.sp_mapping') IS NOT NULL PRINT '<<< FAILED DROPPING PROCEDURE dbo.sp_mapping >>>' ELSE PRINT '<<< DROPPED PROCEDURE dbo.sp_mapping >>>'ENDgoSET ANSI_NULLS OFFgoSET QUOTED_IDENTI
在sqlserver中显示表的结构
_[@more@]在sqlserver中显示表的结构比如现实表TEST1的结构就run sp_showtable 'TEST1'IF OBJECT_ID('dbo.sp_showtable') IS NOT NULLBEGIN DROP PROCEDURE dbo.sp_showtable IF OBJECT_ID('dbo.sp_showtable') IS NOT NULL PRINT '<<< FAILED DROPPING PROCEDURE dbo.sp_showtable >>>' ELSE PRINT '<<< DROPPED PROCEDURE dbo.sp_showtable >>>'ENDgoSET ANSI_NULLS ONgoSET QUOTED_IDENTIFIER ONgocreate procedure [dbo].[sp_showtable] @tablename varchar(50) as begi
显示数据库中表的主键
显示数据库中表的主键[@more@]以下以sqlserver为例写的显示数据库中表的主键declare @objname nvarchar(50),@i int, @thiskey nvarchar(131),@keys nvarchar(2126),@indid int,@objid int CREATE TABLE #pktab ( table_name nvarchar(50), pk_name nvarchar(300) ) declare ms_crs_ind cursor local static for select a.name from sysobjects a where xtype='U' and name like 'T%' order by name open ms_crs_ind fetch ms_crs_ind into @objname while @@fetch_status >= 0 begin set @objid=object_id(@
SSAS中Cube的结构
-[@more@]在SSAS(SQL Server Analysis Services)中构建Cube和编写MDX的时候,我们很容易被一些名词弄糊涂,比如:Dimension(维度),Measures Dimension(度量维度),Measure(度量),Hierarchy(层次结构),Attribute hierarchy(属性层次结构),Level(级别),Cell(单元),Member(成员),Member Property(成员属性),Set(集),Turple(元组)等等。要想弄清楚这些名词,就必须理解Cube的结构。上述名词的解释详见:http://msdn2.microsoft.com/en-us/library/ms144884.aspxCube、Dimension和MeasureCube就象一个坐标系
Where vs. Subselect/Subcube
Where vs. Subselect/Subcube[@more@]Where和Subselect/Subcube在MDX都是经常使用的语句,有的时候它们能起到相同的效果,而有的时候却又不能,这究竟是什么原因呢?本文将尝试就这些情况作一些分析(不对之处,欢迎大家及时指出)。以下MDX语句可以在SSAS(打了SP2补丁的版本)的示例库:Adventure Works中运行。 相同和不同Where和Subselect/Subcube都能够限定计算的范围。请看下面的两个语句:例一Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->SELECT[Measures].[Internet
MDX的上下文(Context)
MDX的上下文(Context) [@more@]我们说要构建Cube或编写MDX,就必须理解Cube的结构。可是当熟悉了Cube结构之后,我们还是会有很多困挠。比如:为何有些需求用MDX语句似乎做不出来?为何有些MDX语句无法输出我们想要的结果(不是抱错就是输出结果错误)?为何有些MDX语句执行起来非常的慢?要想解决这些问题,除了了解Cube结构,我们还必须理解MDX的运行机制,而运行机制的首要概念便是上下文(Context)。以下MDX语句可以在SSAS的示例库:Adventure Works中运行。 上下文(Context)MDX的运行机制可以用一句话来描述——在Cube结构的基础上,
在MDX中处理边界情况
本文来源于《MDX Solutions with Microsoft SQL.Server Analysis Services 2005 and Hyperion Essbase 2nd Edition》一书的内容[@more@]本文来源于《MDX Solutions with Microsoft SQL.Server Analysis Services 2005 and Hyperion Essbase 2nd Edition》一书的内容。在编写MDX中,各种各样的边界情况存在,比如:Member不存在,被0除,或则某个部分在cube和维度中并不存在等等,本文对这些情况下如何来处理做了一个小结。以下MDX语句可以在SSAS的示例库:Adventure Works中运行。 Member不存在的情况在使用Member的一些函数(比如:Lag,L
MDX中一些常见的计算 1
本文来源于《MDX Solutions with Microsoft SQL.Server Analysis Services 2005 and Hyperion Essbase 2nd Edition》一书的内容,主要介绍了一些经常编写的MDX语句的写法。以下MDX语句可以在SSAS的示例库[@more@]本文来源于《MDX Solutions with Microsoft SQL.Server Analysis Services 2005 and Hyperion Essbase 2nd Edition》一书的内容,主要介绍了一些经常编写的MDX语句的写法。以下MDX语句可以在SSAS的示例库:Adventure Works中运行。例子模型以下的MDX中用到的Hierarchy如下:百分比1)某个子项占总体的百分比。比如:每种Produc
建立DW2.0
建立DW2.0的相关技术和方案[@more@]DW2.0是随着信息系统架构逐步发展而产生的,它来源于很多公司信息系统架构的实际经验。在实际构建DW2.0时,尽管有着架构的蓝图,但是DW2.0的不同部件也是要逐步建立起来,即它的不同部件产生的时间是不一样的。通常DW2.0中第一个构建的部件是整合区(或者实现整合区的前几次少量的迭代过程)。整合区建立好后建立交互区。交互区之后是近线区,接着是归档区。这些不同部件的构建顺序和数据产生的生命周期的顺序是相同的。DW2.0的另一个构建顺序是先建立ODS再建立数据仓库。即先建立交互区,接着建立整合区
DW2.0中的System of Record
DW2.0中维护数据完整性和可信性的数据[@more@]DW2.0的数据来源是操作型源系统和遗留系统。对于一个企业来说,数据是最先在操作型环境中生成的。但是,这些操作型环境大多是很多年前开发的,文档记录基本上都不全。在这些系统中,数据是伴随着交易产生的,随着交易的发生,数据作为副产品被收集起来。典型的操作型环境的主要元素包括程序、报表、处理器、文件、数据库等内容。DW2.0中的数据来源于操作型环境,所以我们需要对操作型环境高度关注。进入DW2.0的数据需要准确、最新、完整。为了保证这一点,我们需要定义用什么来决定源系统的系
DW2.0-下一代数据仓库架构
DW2.0-下一代数据仓库架构,DW2.0 - The Architecture for the Next Generation of Data Warehouse[@more@]DW2.0 - The Architecture for the Next Generation of Data Warehouse数据仓库始于20世纪80年代中期。在1990年第一本关于数据仓库的图书出现后,数据集市、ODS、DSS应用等与数据仓库相关的概念开始依次出现。在数据仓库概念出现的同时,技术的进步促进了数据仓库的商业化进程。DBMS处理超大量数据的能力逐步增强。存储数据用的磁盘的价格大幅度下降。新的存储介质如磁带等出现。商业智能供应商的出现。数据仓库在短短的几年内就由理