BI之SSAS完整实战教程2 -- 开发环境介绍及多维数据集数据源准备
上一篇我们已经完成所有的准备工作,现在我们就开始动手,通过接下来的三篇文章创建第一个多维数据集。
传统的维度和多维数据集设计方法主要是基于现有的单源数据集。
在现实世界中,当开发商业智能应用程序时,很可能需要处理多个关系数据源。
我们可以通过创建一个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
BI之SSAS完整实战教程2 -- 开发环境介绍及多维数据集数据源准备的更多相关文章
- BI之SSAS完整实战教程7 -- 设计维度、细化维度中 :浏览维度,细化维度
上篇文章我们已经将Dim Geography维度设计好. 若要查看维度的成员, AS需要接收该维度的详细信息(包括已创建的特性.成员属性以及多级层次结构), 通过XMLA与AS的实例进行通信. 今天我 ...
- BI之SSAS完整实战教程6 -- 设计维度、细化维度上:创建维度定义特性关系
前面我们使用过数据源向导.数据源视图向导.Cube向导来创建相应的对象. 本篇我们将学习使用维度向导来创建维度. 通过前面几个向导的学习,我们归纳一下共同点,主要分成两步 1. 使用某种对象类型的向导 ...
- BI之SSAS完整实战教程5 -- 详解多维数据集结构
之前简单介绍过多维数据集(Cube)的结构. 原来计划将Cube结构这部分内容打散,在实验中穿插讲解, 考虑到结构之间不同的部分都有联系,如果打散了将反而不好理解,还是直接一次性全部讲完. 本篇我们将 ...
- BI之SSAS完整实战教程4 -- 部署至SSAS进行简单分析
上一篇已经创建了多维数据集的结构. 接下来我们将多维数据集的架构定义发送到Analysis Services实例,部署到AS上去. 文章提纲 部署和浏览多维数据集 SSMS使用简介 总结 一.部署和浏 ...
- BI之SSAS完整实战教程1 -- 开篇, BI简介 & SSAS简介
文章提纲 商业智能(BI, Business Intelligence)基本概念 SSAS(SQL Server Analysis Services)相关工具(开发.管理和客户端) 总结 一.商业智能 ...
- BI之SSAS完整实战教程3 -- 创建第一个多维数据集
上一篇我们已经完成了数据源的准备工作,现在我们就开始动手,创建第一个多维数据集(Cube). 文章提纲 使用多维数据集向导创建多维数据集 总结Cube设计器简介 维度细化 总结 一.使用向导创建多维数 ...
- Arduino可穿戴开发入门教程Arduino开发环境介绍
Arduino可穿戴开发入门教程Arduino开发环境介绍 Arduino开发环境介绍 Arduino不像我们使用的PC端操作系统一样,可以直接在操作系统中安装软件为操作系统编程.Arduino的软件 ...
- [译]Vulkan教程(03)开发环境
[译]Vulkan教程(03)开发环境 这是我翻译(https://vulkan-tutorial.com)上的Vulkan教程的第3篇. In this chapter we'll set up y ...
- vue.js2.0实战(1):搭建开发环境及构建项目
Vue.js学习系列: vue.js2.0实战(1):搭建开发环境及构建项目 https://my.oschina.net/brillantzhao/blog/1541638 vue.js2.0实战( ...
随机推荐
- ECSHOP后台SQL查询提示错误 this sql May contain UPDATE,DELETE,TRUNCATE,ALTER,DROP,FLUSH,INSERT
一).首先说一下错误现象:市面上流行的绝大部分ECSHOP模板,安装的时候都需要执行一段或几段SQL语句来修改数据结构或者初始化一些数据.大多数ECSHOP管理员为了省事,都会通过 “ECSHOP后台 ...
- VC++ 学习笔记(二):VC++与C、VB和C#
罗马不是一天建成的,VC++的也不是凭空产生的——它一直标榜自己的从C发展而来的.VB好像是专门为了羞辱VC++而创建的.C#呢,是微软类C语言的新秀——其实也不新了.乱吧?貌似挺乱的,其实这里有章可 ...
- Aspose转PDF时乱码问题的解决
主要原因是服务器上一般安装的字体都是有限的,而我们日常生活工作中总是喜欢用一些比较特别的字体,比如宋体GB2312,这时候如果用Aspose转PDF就会出现乱码,解决方法也比较简单,把本地的特殊字体拷 ...
- 未能正确加载“Microsoft.VisualStudio.Editor.Implementation.EditorPackage”包。
最近在升级 Visual Studio 2015 Update 3 的过程中,等了很长时间都没一点进展,于是就强行终止了升级程序,但VS也因此出了问题. 后来经过修复,不行,卸载再重装,仍然提示这个错 ...
- js后退一直停留在当前页面或者禁止后退
//禁用后退按钮 function stopHistoryGo() { //禁用回退 window.location.hash="no-back-button"; window.l ...
- Kafka 分区备份实战
1.概述 在 Kafka 集群中,我们可以对每个 Topic 进行一个或是多个分区,并为该 Topic 指定备份数.这部分元数据信息都是存放在 Zookeeper 上,我们可以使用 zkCli 客户端 ...
- 二十一、【.Net开源框架】EFW框架Web前端开发之目录结构和使用FireBug调试方法
回<[开源]EFW框架系列文章索引> EFW框架源代码下载V1.2:http://pan.baidu.com/s/1hcnuA EFW框架实例源代码下载:http://pan.baidu. ...
- 在MACOS上实现交叉编译
在嵌入式开发过程中,设备的存储空间和运算能力通常会比较低,这时候,比如要编译一个linux的内核,嵌入式设备就不能胜任了,所以,实现交叉编译还是很必要的.通过交叉编译,我们就能够在我们的pc上编译出能 ...
- BW对应后台表[转]
数据源对应后台表 (2012-01-04 20:08:57) 转载▼ 标签: 杂谈 分类: SAP MM Data Sources Tables Purchasing 2LIS_02_SCL EKKO ...
- centos下安装ZooKeeper
1.需求 安装ZooKeeper,metaQ 2.下载 http://zookeeper.apache.org/releases.html 当前stable版是zookeeper-3.4.6 3.解压 ...