摘要: 此图是根据个人经验总结出的一个BI通用流程,适用于报表方案,多维分析方案,但不适用于数据挖掘的方案。BI项目关键资源:业务专家,BI开发人员,业务开发人员。业务专家的参与有助于提高需求的准确性,BI开发人员主要负责BI过程相关资源的组织和管理,业务开发人员配合BI开发人员确认数据及业务的相关工作。下面对这个开发流程做一个解释:首先,从报表下手可以很容易的掌握用户所关注的东西,结合业务系统以及数据结构可以有助于对主题有个大体的印象,同事对一些用户比较关注的维度和度量才能有个概念。但是理解业务是个需要经验和理解能力的过程,不同行业都会有不同的特点,所以这里需求人员和业务专家的参与就比较重要。另外同 阅读全文
posted @ 2012-01-06 17:54 诺哥的传奇 阅读(1412) 评论(0) 推荐(0) 编辑
摘要: declare @BusinessID int declare @MSMnum bigint DECLARE MSMnum_cursor CURSOR FOR select BusinessID,MSMnum from #temp1 OPEN MSMnum_cursor FETCH NEXT FROM MSMnum_cursor INTO @BusinessID,@MSMnum WHILE (@@FETCH_STATUS <> -1) BEGIN update A set A.BusinessID=@BusinessID ... 阅读全文
posted @ 2012-01-06 17:10 诺哥的传奇 阅读(302) 评论(0) 推荐(0) 编辑
摘要: 微软的SQL SERVER提供了两种索引:聚集索引(clustered index,也称聚类索引、簇集索引)和非聚集索引(nonclustered index,也称非聚类索引、非簇集索引)……(一)深入浅出理解索引结构 实际上,您可以把索引理解为一种特殊的目录。微软的SQL SERVER提供了两种索引:聚集索引(clustered index,也称聚类索引、簇集索引)和非聚集索引(nonclustered index,也称非聚类索引、非簇集索引)。下面,我们举例来说明一下聚集索引和非聚集索引的区别: 其实,我们的汉语字典的正文本身就是一个聚集索引。比如,我们要查“安”字,就会很自然地翻开字.. 阅读全文
posted @ 2012-01-06 17:04 诺哥的传奇 阅读(165) 评论(0) 推荐(0) 编辑
摘要: Where和Subselect/Subcube在MDX都是经常使用的语句,有的时候它们能起到相同的效果,而有的时候却又不能,这究竟是什么原因呢?本文将尝试就这些情况作一些分析(不对之处,欢迎大家及时指出)。以下MDX语句可以在SSAS(打了SP2补丁的版本)的示例库:Adventure Works中运行。 相同和不同Where和Subselect/Subcube都能够限定计算的范围。请看下面的两个语句:例一Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/ 阅读全文
posted @ 2012-01-06 13:34 诺哥的传奇 阅读(242) 评论(0) 推荐(0) 编辑
摘要: 在前面的Blog中,我们说要构建Cube或编写MDX,就必须理解Cube的结构。可是当熟悉了Cube结构之后,我们还是会有很多困挠。比如:为何有些需求用MDX语句似乎做不出来?为何有些MDX语句无法输出我们想要的结果(不是抱错就是输出结果错误)?为何有些MDX语句执行起来非常的慢?要想解决这些问题,除了了解Cube结构,我们还必须理解MDX的运行机制,而运行机制的首要概念便是上下文(Context)。以下MDX语句可以在SSAS的示例库:Adventure Works中运行。 上下文(Context)MDX的运行机制可以用一句话来描述——在Cube结构的基础上,按照一定顺序执行MDX中的不同部 阅读全文
posted @ 2012-01-06 12:27 诺哥的传奇 阅读(312) 评论(0) 推荐(0) 编辑
摘要: 本文来源于《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,Lead,ParalledPeriod等)的时候,我们经常需要得到当前的Membe 阅读全文
posted @ 2012-01-06 11:47 诺哥的传奇 阅读(259) 评论(0) 推荐(0) 编辑
摘要: 本文来源于《MDX Solutions with Microsoft SQL.Server Analysis Services 2005 and Hyperion Essbase 2nd Edition》一书的内容,主要介绍了一些经常编写的MDX语句的写法。以下MDX语句可以在SSAS的示例库:Adventure Works中运行。例子模型以下的MDX中用到的Hierarchy如下:百分比1)某个子项占总体的百分比。比如:每种Product的销售额占所有Product销售额的百分比。WITHMEMBER[Measures].[SaleAmountRatio]AS'[Measures]. 阅读全文
posted @ 2012-01-06 10:53 诺哥的传奇 阅读(792) 评论(0) 推荐(0) 编辑
摘要: 如何使用MDX编写同比和环比在做BI项目中,用户会经常提出类似下面这样的需求:1. 本月比上月的销售额增长了多少?百分比是多少?2. 本季度第一个月比上季度第一个月的销售额增长了多少?百分比是多少?其实这两个需求就是我们常说的同比和环比问题,它们用关系数据库的SQL语句难于实现,而用BI中的MDX来做却轻而易举。以下例子采用的是SQL Server2005的Analysis Services中的示例库。环比需求:本月比上个月的销售额增长了多少个百分点?MDX语句如下:WITHMEMBERMeasures.[AmountChangeRate]AS[Measures].[InternetSales 阅读全文
posted @ 2012-01-06 10:39 诺哥的传奇 阅读(427) 评论(0) 推荐(1) 编辑
摘要: 在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-u 阅读全文
posted @ 2012-01-06 10:37 诺哥的传奇 阅读(2979) 评论(0) 推荐(0) 编辑
摘要: SSAS是用于SQL Server 2008 数据库用于BI的组件,通过SSAS可以创建多维数据库,并在之上进行数据挖掘操作。本文我们主要介绍一些关于SSAS数据分析的知识…… SSAS是用于SQL Server 2008 数据库用于BI的组件,通过SSAS可以创建多维数据库,并在之上进行数据挖掘操作。本文我们主要介绍一些关于SSAS数据分析的知识。接下来就让我们来一起了解一下吧。 商业智能提供的解决方案能够从多种数据源获取数据并且能够把各种数据转化成同一格式数据进行存储,最终达到让用户可以快速访问解读数据,为用户分析和制定决定提供有效的数据支持。可以人为的把商业智能分为以下几层: 数据... 阅读全文
posted @ 2012-01-06 10:08 诺哥的传奇 阅读(5927) 评论(1) 推荐(0) 编辑