晨月

爱是恒久忍耐,又有恩慈;爱是不嫉妒,爱是不自夸,不张狂,不作害羞的事,不求自己的益处,不轻易发怒,不计算人的恶,不喜欢不义,只喜欢真理;凡事包容,凡事相信,凡事盼望,凡事忍耐---圣经

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

BI项目相关建议和说明

1,编写目的

    根据自己这一个月来对数据仓库、.net、相关数据访问技术以及图表组件的学习,写的一个对bi项目建设的简单思路,在此抛砖引玉,希望bi项目能做的很完美。

2,系统预计牵涉到的相关技术。

   开发环境:sql server 2000+asp.net

   其他主要相关技术:

         Mdx:多维数据集查询语言。

         Adomdolap数据源的编程接口。

         Owcoffice10的数据透视组件。

         Reporting service:微软的报表组件。可以生成各式报表,相对与水晶报表相比,可以得到比较完整的中文开发文档。

         DSO:用于决策分析和olap数据库管理的编程接口(暂时还没做相关测试,不知以后是否会有决策分析)。

3,系统的主要构架:

  

说明:

l         cs通过adomd取得共享维的相关数据准备查询条件,并按选择的条件生成mdx语句。

l         ReportViewer访问定制的reporting service报表。

l         3owc的数据透视组件通过webservice来取得olap数据库的数据。这样确保数据的安全。当然这里也可以把他放在.cs中。

      4,建议用来做统计打印的报表可以通过reporting service来做,而用来做透视分析的则用owc来做。

 

4,系统目录结构(如图)

如图所示analysis为系统主目录,对每个olap数据库(Animal)在主目录下建立一个子目录,然后每个olap数据库下可针对自己的报表做自己的分类,主要公用文件说明:

l         Web.config:系统配置文件,olap数据库连接的配置放于此文件中。

l         Fram.htm:系统主页面

l         Left.htm:为左面菜单

l         Right.htm:为右面默认页

l         Top.aspx:为上面页,显示用户信息

l         Logout.aspx:登出系统

l         Checkright.aspx:验证用户权限,在每个报表中加入如下代码验证用户权限:

        

 

MDX基础介绍 

SELECT 语句的语法

 

以下语法显示了一个包括 SELECTFROM WHERE 子句的基本 SELECT 语句用法:

 

[ WITH ]

SELECT

    <set > on rows,

    <set > on columns

FROM <cube>

where ([])

 

 

一个简单的SELECT 语句示例,此查询将返回2005年十月份世界各地的活跃用户情况。

 

select {[Measures].members} on columns,

        {[地域].[所有 地域].children} on rows

from [活跃用户分析]

where ([时间].[所有 时间].[2005].[Quarter 4].[10])

 

在此示例中,查询定义了以下单元集信息:

 

    * SELECT 子句将查询轴设置 Measures 维度的 所有度量值,以及 地域 纬度的所有一级成员。

    * FROM 子句指明数据源为 [活跃用户分析] 多维数据集。

    * WHERE 子句将切片器轴定义 [时间] 维度的 10月。

 

请注意,此查询示例还使用了 COLUMNS ROWS 轴别名。也可以使用这些轴的序号位置。以下示例显示了如何编写 MDX 查询以使用每个轴的序号位置:

select {[Measures].members} on 0,

        {[地域].[所有 地域].children} on 1

from [活跃用户分析]

where ([时间].[所有 时间].[2005].[Quarter 4].[10])

sql server 2000带的mdx示例应用程序,可以方便的来写mdx以及测试。

 

ADOMD数据库结构视图

该视图显示了对象和集合的层次体系。

 

说明:

  Catalog对象定义了用户连接的服务器和数据库的标识符,用以建立与olap服务的连接。比如在Animal中,Catalog就代表Animal数据库。

  CubeRef定义了单个多维数据集,CubeRefs集合包含了Catalog中的所有CubeRef对象,也就是数据库中的所有立方。

   Dimension代表多维数据集的维度,任何多维数据集中的维度都保存在Dimension集合中。

  Hierarchy对象定义了维度中的层次体系。维度中的所有层次体系列表都保存在Dimension集合中。

  Level对象提供了层次体系中的级别信息。Levels集合保存了它的父对象hierarchy中的所有级别。

  Memberlevel对象的成员属性。Members保存levels下面的所有属性。

 

 

在试用ADOMD之前需安装ADOMD.相关下载:

XMLA:http://www.microsoft.com/downloads/details.aspx?FamilyId=7564A3FD-4729-4B09-9EE7-5E71140186EE&displaylang=en

 

adomd:http://www.microsoft.com/downloads/details.aspx?FamilyId=790D631B-BFF9-4F4A-B648-E9209E6AC8AD&displaylang=en

 

 

添加对Microsoft.AnalysisServices.AdomdClient.dll的引用;

     安装了Adomd.net SDK后,该dll文件位于x::\Program Files\Microsoft.NET\Adomd.NET\80目录下(x为盘符)。

     添加对Microsoft ActiveX Data Objects(Multi-dimensional) Library的引用。

     using Microsoft.AnalysisServices.AdomdClient;

这样就可以进行adomd的编程了。

 

下面是一个简单的Adomd的示例:

 

Owc组件和Reporting service

这两个在这里就只简要提以下:

 

对于OWC可以参见上的一些例子。OWC本身支持查询OLAP数据库,但在我们的BI系统中我想它的数据来源主要是WEBSERVICE传过来的XMLSring,剩下的主要是在页面中设置OWC的参数,当然对现在来说设置OWC的参数有时有些困难。

关于怎样来使用OLAP,参见:

Reporting service我在本机写过一些例子,但以前哪个的立方给删掉了,现在无法运行,在开发时我会写一些例子来共享。它连接OLAP数据库用的是OLE的方式连接。

 

 

 

 

 

俯:

http://www.dwway.com/vbbs/index.php? 论坛上有许多不错的帖子,值得一看。

 

posted on 2006-03-21 10:58  晨月  阅读(1670)  评论(6编辑  收藏  举报