上一篇我们已经完成所有的准备工作,现在我们就开始动手,通过接下来的三篇文章创建第一个多维数据集。

传统的维度和多维数据集设计方法主要是基于现有的单源数据集。

在现实世界中,当开发商业智能应用程序时,很可能需要处理多个关系数据源。

我们可以通过创建一个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为数据源,下载地址

下载完直接附加一下就可以了。

创建顺序基本按照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中包含非常多的表肯定会在一定程度上增加导航和使用的复杂性。

可以按照主题新建一些自定义的视图以方便使用。

如下图方框处默认会创建一个关系图,你可以增加其他的,如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)

欢迎大家多多评论与支持, 祝学习进步:)

相关文章列表:

ssas 数据源mysql_BI之SSAS完整实战教程2 -- 开发环境介绍及多维数据集数据源准备...相关推荐

  1. Arduino可穿戴开发入门教程Arduino开发环境介绍

    Arduino可穿戴开发入门教程Arduino开发环境介绍 Arduino开发环境介绍 Arduino不像我们使用的PC端操作系统一样,可以直接在操作系统中安装软件为操作系统编程.Arduino的软件 ...

  2. 神经网络与深度学习——TensorFlow2.0实战(笔记)(二)(开发环境介绍)

    开发环境介绍 Python3 1.结构清晰,简单易学 2.丰富的标准库 3.强大的的第三方生态系统 4.开源.开放体系 5.高可扩展性:胶水语言 6.高可扩展性:胶水语言 7.解释型语言,实现复杂算法 ...

  3. 【k8s完整实战教程3】k8s集群部署kubesphere

    系列文章:这个系列已完结,如对您有帮助,求点赞收藏评论. 读者寄语:再小的帆,也能远航! [k8s完整实战教程0]前言 [k8s完整实战教程1]源码管理-Coding [k8s完整实战教程2]腾讯云搭 ...

  4. M1W Dock 教程之开发环境配置

    最近入手了sipeed M1W dock开发板,打算学习下图像处理,打算把自己的学习经历整理成个教程吧 开发环境 开发配置: 烧录固件 ide的使用 串口终端 参考文章:Maixpy官方文档 视频教程 ...

  5. 单片机开发教程1——开发环境的搭建

    文章目录 开发环境介绍 Keil安装教程 下载安装包 安装keil 运行注册机 STC-ISP 单片机型号 串口驱动 串口助手 开发环境介绍 51单片机的开发只需要用到两个软件--keil和stc-i ...

  6. linux 搭建开发stm32 stlink,ROS2与STM32入门教程-搭建开发环境(ubuntu+eclipse+cubemx+stlink+openocd)...

    ROS2与C++入门教程-搭建开发环境(ubuntu+eclipse+cubemx+stlink+opencd) 说明: 介绍如何在ubuntu下搭建开发环境 环境:ubuntu20.04 + ecl ...

  7. ssas连接mysql_BI之SSAS完整实战教程1 -- 开篇, BI简介 SSAS简介

    文章提纲 商业智能(BI, Business Intelligence)基本概念 SSAS(SQL Server Analysis Services)相关工具(开发.管理和客户端) 总结 一.商业智能 ...

  8. BI之SSAS完整实战教程3 -- 创建第一个多维数据集

    上一篇我们已经完成了数据源的准备工作,现在我们就开始动手,创建第一个多维数据集(Cube). 文章提纲 使用多维数据集向导创建多维数据集 总结Cube设计器简介 维度细化 总结 一.使用向导创建多维数 ...

  9. 《软件功能测试自动化实战教程》—第6章6.7节文件数据源的数据驱测试

    本节书摘来自异步社区<软件功能测试自动化实战教程>一书中的第6章6.7节文件数据源的数据驱测试,作者51Testing网 , 周焕来 , 贾海涛,更多章节内容可以访问云栖社区"异 ...

最新文章

  1. Open3D DbScanClustering聚类算法
  2. 【2020 Fall】哥伦比亚大学最新《机器学习》课程
  3. 理解GBDT算法(三)——基于梯度的版本
  4. Learning to Rank中Pointwise关于PRank算法源码实现
  5. VTK:可视化算法之SplatFace
  6. 声明式事务控制的实现
  7. 【论文阅读】Learning Traffic as Images: A Deep Convolutional ... [将交通作为图像学习: 用于大规模交通网络速度预测的深度卷积神经网络](1)
  8. 如何在DevSecOps道路上快速、安全地抵达终点
  9. Redis 缓存实战——缓存、数据库一致性问题分析与解决方案
  10. mongodb or and 条件拼凑 Query.And Query.Or
  11. 【ElasticSearch】Es 源码之 IndicesClusterStateService 源码解读
  12. Mysql用户管理以及权限管理
  13. CCF201412-5 货物调度【费用流】(100分解题链接)
  14. android服务器接口测试,使用Retrofit和Mockito进行可靠的Android API测试
  15. Linux中如何恢复rm命令误删除的文件之extundelete编译安装及使用
  16. 本地计算机上的mysql57_win10出现本地计算机上的MySQL57服务启动后停止
  17. HDU1164 Eddy's research I(解法二)
  18. Atitit mybatis3 注解模式使用总结 目录 1. mybatisdemo 1 1.1. /ormMybatis3demo/src/db.properties 1 1.2. /ormMyb
  19. Java线程并发协作与任务定时调度
  20. 研究生的生活原来是酱紫的……

热门文章

  1. Spring——原理解析-利用反射和注解模拟IoC的自动装配
  2. html中盒子模型立体结构图
  3. #define const typedef
  4. bzoj2005: [Noi2010]能量采集
  5. 怎么样才能写出出色的代码
  6. springboot动态加载native类库
  7. nginx重新编译添加ssl模块
  8. linux下配置vsftpd虚拟用户为登录用户
  9. js-ES6学习笔记-module(2)
  10. 基于Delphi的接口编程入门