定义数据源视图 (Analysis Services)
Microsoft SQL Server 中的联机分析处理 (OLAP) 和数据挖掘项目是根据一个或多个数据源中相关表、视图和查询的逻辑数据模型来设计的。此逻辑数据模型称为数据源视图。数据源视图是一个对象,它包含来自所选数据源对象(其中包括在基础数据源或数据源视图中定义的这些对象之间的所有关系)的元数据。数据源视图缓存生成视图所基于数据源中的元数据。使用缓存元数据可以在不具备持续有效的数据源连接的情况下开发 Analysis Services 项目。
使用数据源视图可以定义填充大型数据仓库的数据子集。此外,通过数据源视图还可以定义基于异类数据源或数据源子集的同源架构。因为数据源视图代表一个独立的架构,所以可以根据需要添加任何批注,而不会影响基础数据源的架构。
数据源视图包含以下几项:
名称和说明。
从一个或多个数据源(包括但不超过整个架构)中检索的架构的任何子集的定义,其中包括:
表名。
列名。
数据类型。
为空性。
列长度。
主键。
主键-外键关系。
基础数据源中架构的批注,其中包括:
表、视图和列的友好名称。
从一个或多个数据源(在架构中显示为表)返回列的命名查询。
从数据源(在表或视图中显示为列)返回列的命名计算。
逻辑主键(仅当未在基础表中定义主键或者未在视图或命名查询中包含主键时需要)。
表、视图和命名查询之间的逻辑主键-外键关系。
对不同对象使用数据源视图
Analysis Services 设计工具使用数据源视图来维护关系元数据缓存,并利用数据源视图中的某些批注。通过说明数据源中的表和视图的子集,数据源视图只能提供 OLAP 和数据挖掘对象所需的表。数据源视图处理表的布局、筛选器、SQL 表达式、关系以及架构的其他复杂性。因此,数据源视图通过 Analysis Services 多维数据集、维度和挖掘模型,可以对数据源视图中的表和列进行简单绑定。
在 Analysis Services 项目或数据库中,可以根据一个或多个数据源生成多个数据源视图,并构造每一个数据源视图以满足不同解决方案的要求。
一个简单数据源视图支持多个关系图,这些关系图显示该数据源视图的不同子集。有时,还可以使用单独的关系图来处理属于特定对象的数据源视图的各个部分。与不同的数据源视图不同,不同的关系图引用相同的架构。因此,在关系图中所做的任何更改都会应用到数据源视图中的所有其他关系图中。
如果数据源包含的字段属于 tinyint 数据类型,并且 AutoIncrement 属性设置为 True,则在数据源视图中这些字段将转换为整数。
使用多个数据源
定义包含来自多个数据源的表、视图或列的数据源视图时,会将第一个从中将对象添加到数据源视图的数据源指定为主数据源(主数据源定义之后便不能更改)。根据来自单个数据源的对象定义数据源视图之后,便可添加来自其他数据源的对象。如果 OLAP 处理或数据挖掘查询需要在单个查询中使用来自多个数据源的数据,则主数据源必须支持使用 OpenRowset 的远程查询。通常,此数据源将为 Microsoft SQL Server 数据源。例如,如果设计包含绑定到多个数据源列的属性的 OLAP 维度,则 Analysis Services 将构造 OpenRowset 查询以在处理过程中填充此维度。但是,如果通过单个数据源便可填充 OLAP 对象或解析数据挖掘查询,则不会构造 OpenRowset 查询。在某些情况下,可以定义属性之间的属性关系,从而不再需要 OpenRowset 查询。有关属性关系的详细信息,请参阅属性关系和定义属性关系。