上一篇我们已经完成所有的准备工作,现在我们就开始动手,通过接下来的三篇文章创建第一个多维数据集。
传统的维度和多维数据集设计方法主要是基于现有的单源数据集。
在现实世界中,当开发商业智能应用程序时,很可能需要处理多个关系数据源。
我们可以通过创建一个DSV提供一个整合的单源视图,其中仅包括你定义的一个或多个数据源中感兴趣的数据。数据源和数据源视图构成了后面要介绍的维度和多维数据集等结构的基础。
AS2012 支持的主要关系数据源包括SQL SERVER, Oracle, DB2,Teradata等。
对于某种特定的数据源,可能需要安装数据提供程序的其他客户端组件,以便可以在计算机上使用适用于该特定数据源的OLE DB提供程序或.NET提供程序。
这些客户端组件应该不仅可以在使用SSDT设计数据库的开发计算机上使用,还必须可以在运行AS实例的服务器计算机上使用。
另外,创建数据源时还可以通过Connection Manager对话框指定其他连接属性,例如连接查询超时、隔离级别以及最大连接数等。
本篇我们先准备好多维数据集要使用的数据源,为后续创建多维数据集打下基础。
文章提纲
-
主要步骤
- 新建项目及IDE中结构介绍
- 创建数据源
- 创建数据源视图(DSV,作为多维数据集的构建基础)
- 关于DSV必须掌握的六点
- 总结
紧接着上篇文章,我们打开SSDT后,按照如下步骤进行。
主要步骤
一、新建项目及IDE结构介绍
1. 主菜单中, File à New à Project
2. 选择 Analysis Services Multidimensional and Data Mining Project 模板
3. 输入ASMultidimensionalPOC名称,点击OK创建此项目。
SSDT环境包括多个工具窗口,需要重点关注 Solution Explorer, Properties, Output 窗口。
其中Solution Explorer 窗口需要说明下。
包括8个文件夹:
- Data Sources:数据源
- Data Source Views :数据源视图,后面简称为DSV,可包含一个或多个数据源的表
- Cubes :分析的基础。一个Cube(多维数据集)由一个度量值组集合和一个维度集合构成。
-
Dimensions:维度,指的是对数据进行切片以查看感兴趣的特定数量数据时所依据的类别。
说明:
每个维度包含一个或多个层次结构。存在两种类型的层次结构:特性层次结构和用户层次结构。
约定:后面特性层次结构被称为特性,用户层次结构被称为层次结构。特性对应于维度表中的列,而层次结构是通过组合若干相关特性(列)构成的。例如, 绝大多数数据集都具有Time维度。通常情况下,Time维度包含Year、Month、Date和Day特性,以及一个Year – Month – Date 层次结构。
- Mining Structures (先不讨论)
- Roles (先不讨论)
- Assemblies (先不讨论)
- Miscellaneous (先不讨论)
二、创建数据源
使用微软示例数据库AdventureWorksDW2012为数据源,下载地址
http://msftdbprodsamples.codeplex.com/downloads/get/165405
下载完直接附加一下就可以了。
创建顺序基本按照Solution Explorer 窗口里面文件夹的顺序
右键 Data Sources à New Data Source…
新建一个源,参考下图进行填写。(注意选中Save my password)
指向我们事先准备的AdventureWorksDW2012, 点击Test Connection通过后点击OK
可以看到新建的数据源,继续点击 Next
选择 Use a specific Windows user name and password选项,输入对AdventureWorksDW数据库具有访问权限的账户凭证,单击 Next
最后一个页面,可以更改Data source name,我们使用默认名称, 点击Finish就完成了数据源的创建。
三、创建数据源视图
DSV提供了在OLAP数据库中使用的表的逻辑视图。DSV可以包含来自一个或多个数据源的表和视图。因为多维数据集和维度是从DSV创建的,而不是直接从数据源对象创建的,我们需要在AS数据库中创建DSV.
步骤:
右键 Data Source Views à New Data Source View…
点击 Next进入下一步
选择之前我们创建的数据源,下一步。
从左边Available objects选择需要的表移至右边 Included objects中。
下一步
使用默认提供的名字,点击Finish完成DSV的创建。
完成创建后会自动打开DSV.
DSV设计器包含三个窗格: Diagram Organizer, Tables, Diagram View.
可以通过在DSV设计器中添加、删除以及修改表和视图来对DSV进行更改。
下面我们分别介绍这三个窗格:
最右侧是 Diagram View 窗格。
Diagram View显示表及其关系的图形表示形式。显示的每个表都包含相应的列及是否有主外键标志的指示。表之间关系是通过连接两个表的线条表示的, 小钥匙表示主键列。连接线显示表之间的关系。如果双击某个连接线,可以找到用于构成该关系的联接的每个表的列。
若要查看DSV所指定的数据样本,右击表,选择Explore Data, 默认查询前5000行。通过单击Sampling Options更改检索的行数。
左上是Diagram Organizer(关系图组织程序) 。对关系图中的表所做的操作会实时反映在整个DSV中。默认情况下,有一个称为All Tables的关系图会包含DSV中的所有对象。
左下是Tables窗格,其中显示DSV中所有表的树视图,以及这些表及其他表的关系。
可以看到,主键是CurrencyKey
展开Relationships文件夹,DimCurrency通过CurrencyKey列联接到两个Fact表
右键Relationships à FactInternetSales(using CurrencyKey),选择Edit Relationship… 可以看到主外键关系
关于DSV必须掌握的六点
关于数据源视图的一些常用功能(针对三个窗格进行操作)需要掌握:
一、在DSV中添加/删除表
如果一开始表没有添加完全或需要删除一些表, 可以右击 Diagram View 窗格, 选择Add/Remove Tables 可以进行修改。
二、在DSV中指定主键和关系
DSV向导可以提取在基础关系数据库中指定的主键和关系,并将它们添加到DSV中。但是,你使用的某些OLTP数据可能并没有为相关表指定主键和关系。
DSV设计器提供了针对没有定义主键的表指定逻辑主键的功能。通过这种方式,可以高效的修改DSV中表之间的关系,或者在表之间添加新的关系。
若要为某个表设立逻辑主键,有两种方式
1. 在表中选择要指定为逻辑主键的一列或多列,右击并选择Set Logical Primary Key
2. 可以通过拖拽的方式设立主外键关系。(起点为外键, 目标是主键)
三、在DSV中添加一个基于命名查询的表
当现有物理表不能满足我们要求时,可以直接在DSV 设计器中通过SQL语句查询已有的表,产生自定义表。
如下图,在DSV设计器的关系图窗格中右击,选择 New Named Query,直接用一个SQL查询创建新表。
四、在某些情况下可能要在已有表中创建新列。
例如,员工的首名、中间名和姓氏创建一个包含该员工全名的列。
可以直接右击Employee,然后选择New Named Calculation
DSV在AS数据库的元数据中维护命名计算定义;不会将定义写到基础表中。
五、在Diagram Organizer中创建新的视图
数据仓库设计由一个或多个事实表以及关联的维度表构成。
小型数据仓库通常包含10~20个表, 而较大的数据仓库可能会包含一百多个表。
DSV中包含非常多的表肯定会在一定程度上增加导航和使用的复杂性。
可以按照主题新建一些自定义的视图以方便使用。
如下图方框处默认会创建一个<All Tables>关系图,你可以增加其他的,如HR主题,财务主题等。
若要创建新的关系图,请执行以下操作:
1.右击Diagram Organizer窗格,然后选择New Diagram
2.将新的关系图命名为Internet Sales
3.右击Diagram窗格并选择Show Tables,选择需要包含的表。
4.选择FactInternetSales表,单击OK
5.右击刚刚添加的表的标题,然后选择Show Related Tables.
上述操作可以获得一个包含FactInternetSales事实表以及相关维度表的关系图。
如果不想看到某个关系图中的某个特定表,可以右击该表并选择Hide
如果要添加单个表,也可以直接从左下Tables窗格拖拽到Diagram窗格。
六、查看数据源视图属性
AS项目中每个对象(表,视图,列和关系)都具有特定的属性。
这些属性就不一一讲述了,大家可以自己打开看看。
有几个简单提一下。
1. 普通列有Length属性,仅适用于字符串数据类型,其他数据类型均为 -1.
2. 不能更改的属性,显示为灰色(只读属性)
3. 可以更改FriendlyName属性,DSV关系图视图中右击,通过选择Show FriendlyName选项在用户友好名称和原始列名称直接切换。
4. 命名计算列不包含FriendlyName属性。
5. 表属性中TableType显示基础数据源时表还是视图。
总结
现在,你已经成功使用SSDT创建了一个DSV,可以使用这些表来构建多维数据集和维度,后续将会围绕这个例子继续进行扩展。
另外说明一下,我们示例中DSV的表都来自于一个数据源,DSV设计器可以在单个DSV中包含来自多个数据源的表。
新增不同源表的步骤类似,只需要将我们提到的步骤稍加组合,简单说明一下:
首先, 使用数据源向导定义涉及的各个表的数据源。
完成该操作后,可以创建一个DSV, 并在其中包含来自上述数据源之一的表。
这第一个数据源被称为主要数据源,要求必须是SQL Server数据源。
然后,在DSV设计器中可以选择其他数据源来添加表(通过Add/Remove Tables)
欢迎大家多多评论与支持, 祝学习进步:)
相关文章列表:
- BI之SSAS完整实战教程4 -- 部署至SSAS进行简单分析 @20160908
- BI之SSAS完整实战教程3 -- 创建第一个多维数据集 @20160907
- BI之SSAS完整实战教程2 -- 开发环境介绍及多维数据集数据源准备 @20160823
- BI之SSAS完整实战教程1 -- 开篇, BI简介 & SSAS简介 @20160816