Anchky's Tech Blog
专注.NET 专注BI
尽最大的努力,以求更好!

            ADOMD.NETADOMD.NET是开发过程中最重要的部分,与AS的交互都是通过ADOMD.NET来完成的。ADOMD.NET跟其他的.NET Framework Data Providers 一样,提供应用程序与数据源之间的桥梁作用。不同的是,与ADOMD.NET对应的是多维数据,ADOMD.NET提供比其他Data Providers更加强大的功能。

1.      AdomdConnection,AdomdCommand,AdomdDataReader, AdomdDataAdapter 对象是ADOMD.NET的核心元素。AdomdDataReader对象提供连接状态下的从多维数据源读取数据的快速、高效的方法;AdomdDataReader对象实现了System.Data 命名空间的下的IDbDataReader接口,所以任何可绑定于标准.NET Framework Data Providers获取数据的请求均可以用于AdomdDataReaderAdomdDataAdapter可用于转移CellSet,特别是用Select命令获取数据的时候。

2.      几个常用的ADOMD.NET对象:

Ø        Axies,即所谓的轴,一个CellSet最多可容纳128个轴,体现在mdx表达式中就是   ON COLUMNS(0),ON  ROWS(1),没有别称的可用直接用数字(0-127)表示。目前淘金者中仅用到轴0、轴1,所遵循的mdx表达式也仅仅构建的2个轴。Axis轴本质上是用于组织CellSet中众多Cells的有规则、合理的Tuples元组的集合。

Ø        CellCellset集合中的某个单元,一般对应的是某个值Value,单是并非CellSet中的每个Cell都有对应的数据。一个Cell就是某个CellSet中所有轴(包括切片轴)的唯一的逻辑交叉点,这个交叉点在事实表中可能没有对应的记录,表现这个CellValue值为空。

Ø        CellProperty,是CellSet中各个Cell的属性,一般说来,CellProperty包含丰富的信息,比如CellOrdinalCELLVALUEFORMATTED_VALUE等。

Ø        CellSet,简单说,CellSet就是AdomdCommand执行Execute或者ExecuteCellset方法后返回的结果集合,返回的结果集取决于mdx表达式,往往包含不连续数据点的集合。

Ø        CubeDefCubeMeasuresDimensions组成,CubeDef仅仅给出Cube的元数据,无法从CubeDef获得单元数据;相反,CuebDef提供从客户端获取给定Cube的元数据、DimensionsMeasures、命名集的一种机制。AdomdConnection对象连接后,可能含有多个Catalog,每个 Catalog含多个CuebDef

Ø        Dimension,维度,每个CubeDef下含多个Dimension,每个Dimension是描述问题的一个角度,多个Dimension构成了一个多维的CubeDef。这里顺带说下UDMUnified Dimension Model统一维度模型),各维度下的层次可以是层次递进、逐级深入的,也可以类似属性的直接引用。DimensionHierarchy的集合。

Ø        HierarchyHierarchy是成员的集合,这些成员的位置是彼此相对的,在AS2000中,Hierarchy都是单独的,即每个Dimension都只存在Hierarchy[0]CellSet中也可直接到Hierarchy这一级。这个在AS2005有了改进,Dimension 下可含有多个Hierarchy,真正实现了层次化。Hierarchy下成员是分Level的,从上往下呈金字塔式结构,越往塔底的成员越详细。Hierarchy分父子Hierarchy和用户Hierarchy,可用HierarchyOrigin属性来区分。

Ø        Level级别,Level包含在Hierarchy下,一个Hierarchy可以有一个或者多个LevelLevel才是真正体现Hierarchy的层次的东西,更加具有实际意义。微软的SQL Server2005 Book Online是如下评论Level的,“在SSAS中,Dimensions是相当复杂的结构,包含组织成Levels的成员,这些Levels进而组织成Hierarchy”。比如时间维度下,Hierarchy下的Level就可以有年、季度、月份等Level,这些Level下包含各自的成员。需要特别强调的是,可用Level.GetMembers()方法获得该级别下的所有成员。这个在程序中需要经常用到。

Ø        MeasureCube中,Measure是用作度量的元数据,跟Dimension同一个级别,直接在Cube下,Measure是一个特殊的Dimension,因为其包含的具体的表现值,是Cube中重点要考察的一个角度,如果没有Measure,其他的普通维度也将失去意义。

Ø        MemberMemberHierarchy下重要的项,这个项展现了底层关系数据库的一个或者多个记录,成员是CellSet结果集中较为重要的部分,很多值信息需要通过Menber丰富的成员属性来辅助说明,也只有在特定的信息下这个Member才真正体现其价值。Member可从 hierarchy, tuple, level获得。从Member可获得的信息取决于其父成员(或者父成员集合)。

 

posted on 2006-09-18 08:08  anchky  阅读(2432)  评论(2编辑  收藏  举报