文章提纲

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

一、商业智能(BI, Business Intelligence)基本概念

商业智能的概念在1996年最早由加特纳集团(Gartner Group)提出,加特纳集团将商业智能定义为:商业智能描述了一系列的概念和方法,通过应用基于事实的支持系统来辅助商业决策的制定。商业智能技术提供使企业迅速分析数据的技术和方法,包括收集、管理和分析数据,将这些数据转化为有用的信息,然后分发到企业各处。

-- 以上摘自百度百科

简而言之,商业智能是一个将数据转换为信息,进而发现信息中隐藏的知识,并将其应用于商业的过程。

以微软BI解决方案为例。

典型架构举例(以下大部分图片都来自于百度图片):

我们可以将BI整体系统架构归纳为四个部分:

数据源(关系数据库)à 数据仓库 à OLAP à 前端展现工具

与之对应的,BI解决方案的相关产品模块

我们对照产品看架构比较直观。

可以看到,BI解决方案比传统的报表方案更加强大的就是增加了OLAP组件。

-------------------------------------------------------------------------------

补充背景知识:

当今的数据处理大致可以分成两大类: 联机事务处理OLTP(on-line transaction processing)、联机分析处理OLAP(On-Line Analytical Processing)。OLTP是传统的关系型数据库的主要应用,主要是基本的、日常的事务处理,例如银行交易。OLAP是数据仓库系统的主要应用,支持复杂的分析操作,侧重决策支持,并且提供直观易懂的查询结果。下表列出了OLTP与OLAP之间的比较。

数据处理类型

OLTP

OLAP

面向对象

业务开发人员

分析决策人员

功能实现

日常事务处理

面向分析决策

数据模型

关系模型

多维模型

数据量

相对较少

相对较大

操作类型

查询、插入、更新、删除

查询为主

-------------------------------------------------------------------------------

因为有了OLAP(数据库中以多维数据集的形式存储),使得钻取,切片,旋转等变得非常容易,如下图。

要想应用OLAP,必须先构造一个多维数据集(Cube),下面要介绍的SSAS数据库的实例就是指的Cube.

说明:Cube(立方体)只是多维模型的一个形象的说法。立方体其本身只有三维,但多维模型不仅限于三维模型,可以组合更多的维度,但一方面是出于更方便地解释和描述,同时也是给思维成像和想象的空间;另一方面是为了与传统关系型数据库的二维表区别开来,于是就有了数据立方体的叫法。

下面我们就来介绍SSAS数据库开发要用到的工具,为后续实战做好准备。

二、SSAS(SQL Server Analysis Services)相关工具(开发、管理和客户端)介绍

Analysis Services针对开发和管理提供了不同的环境。

开发环境称为SSDT, 并且与Microsoft Visual Studio集成。

管理环境称为SSMS,它是一个完整的集成管理环境,适用于多种服务(和我们平时管理SQL Server关系数据库是同一个),如下图。

从Analysis Services中分析和检索数据的功能已经集成到SSDT和SSMS中。可以从这两种环境浏览源数据。

在SSMS中,提供了一种查询生成器,用于编写查询以便从Analysis Services检索数据。查询生成器为MDX语言提供智能感知(IntelliSense)支持,包括自动完成及语法颜色设置。

另一种有用的Analysis Services工具是SQL Server事件探查器。可以使用事件探查器捕获的Analysis Services事件探查器信息来分析和改善性能。

我们后续课程就会用到这几种工具(最主要是SSDT),大家先做个了解就可以了,具体步骤时会详细讲解。

先简单介绍下SSDT(SQL Server Data Tools)

SSDT是用于设计Analysis Services数据库的开发环境,我们使用SSDT构建Analysis Services多维应用程序。启动位置:

All Programs à Microsoft SQL Server 2012 à SQL Server Data Tools

说明:完整安装SQL SERVER2012就会有SSDT(安装时步骤里面能找到Analysis Services), 具体安装就不再讲解了,如有问题请查阅其他资料。

打开后可以看到是一个Visual Studio 2010 Shell,如下图。

在Visual Studio中工作可以提供很多益处,例如可以在同一Visual Studio解决方案中支持多个项目。一个Visual Studio解决方案是由一系列项目组成的集合,其中可能包括Analysis Services项目、C#项目、Integration Services项目或者Reporting Services项目。

使用SSDT创建项目,选择如下图方框处类别就是一个多维数据集项目。

通常情况下,需要在SSDT中设计数据库,进行相应的更改,最后将数据库定义发送到你的Analysis Services 实例。

对于SSDT中的每个Analysis Services项目来说,在将项目中所有对象的定义(元数据)都发送到服务器以后,它们将成为Analysis Services实例上的一个数据库。

也可以使用SSDT直接连接到某个现有的Analysis Services数据库并进行相应的更改。

注意:如果按照这种方式使用SSDT, 则你所做的更改是针对实时Analysis Services数据库进行的,请格外谨慎。

下篇文章起,我们将会使用SSDT从创建一个简单的项目起,通过这个项目学习各种知识点,不断完善这个项目,使之贯穿整个系列文章。

三、总结

本篇文章是系列文章的开篇,主要做了一些前提准备,介绍了必须知道的相关概念,大家重点理解下Cube的概念。

另外,为方便理解,SSAS相关概念大家可以这样类比到普通关系数据库:

Analysis Services -- Database Engine

MDX -- SQL

Cube(AS数据库的实例) -- 关系数据库实例

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

相关文章列表:

BI之SSAS完整实战教程1 -- 开篇, BI简介 & SSAS简介的更多相关文章

  1. BI之SSAS完整实战教程7 -- 设计维度、细化维度中 :浏览维度,细化维度

    上篇文章我们已经将Dim Geography维度设计好. 若要查看维度的成员, AS需要接收该维度的详细信息(包括已创建的特性.成员属性以及多级层次结构), 通过XMLA与AS的实例进行通信. 今天我 ...

  2. BI之SSAS完整实战教程6 -- 设计维度、细化维度上:创建维度定义特性关系

    前面我们使用过数据源向导.数据源视图向导.Cube向导来创建相应的对象. 本篇我们将学习使用维度向导来创建维度. 通过前面几个向导的学习,我们归纳一下共同点,主要分成两步 1. 使用某种对象类型的向导 ...

  3. BI之SSAS完整实战教程5 -- 详解多维数据集结构

    之前简单介绍过多维数据集(Cube)的结构. 原来计划将Cube结构这部分内容打散,在实验中穿插讲解, 考虑到结构之间不同的部分都有联系,如果打散了将反而不好理解,还是直接一次性全部讲完. 本篇我们将 ...

  4. BI之SSAS完整实战教程4 -- 部署至SSAS进行简单分析

    上一篇已经创建了多维数据集的结构. 接下来我们将多维数据集的架构定义发送到Analysis Services实例,部署到AS上去. 文章提纲 部署和浏览多维数据集 SSMS使用简介 总结 一.部署和浏 ...

  5. BI之SSAS完整实战教程2 -- 开发环境介绍及多维数据集数据源准备

    上一篇我们已经完成所有的准备工作,现在我们就开始动手,通过接下来的三篇文章创建第一个多维数据集. 传统的维度和多维数据集设计方法主要是基于现有的单源数据集. 在现实世界中,当开发商业智能应用程序时,很 ...

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

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

  7. 《Genesis-3D开源游戏引擎完整实例教程-2D射击游戏篇:简介及目录》(附上完整工程文件)

    G-3D引擎2D射击类游戏制作教程 游戏类型: 打飞机游戏属于射击类游戏中的一种,可以划分为卷轴射击类游戏. 视觉表现类型为:2D 框架简介: Genesis-3D引擎不仅为开发者提供一个3D游戏制作 ...

  8. ActiveReports 9实战教程(3): 图文并茂的报表形式

    基于上面2节内容,我们搭建了AR9的开发环境,配置好了数据源.在本节,我们以官方提供的3个中文图文并茂的报表来展示AR9的功能,并通过实战的方式一一分享. 以往做报表相关的工作时,最害怕的是报表的UI ...

  9. 《软件性能测试与LoadRunner实战教程》新书上市

    作者前三本书<软件性能测试与LoadRunner实战>.<精通软件性能测试与LoadRunner实战>和<精通软件性能测试与LoadRunner最佳实战>面市后,受 ...

随机推荐

  1. ubuntu 下安装 lxml 失败

    /tmp/pip-build-7HN4t8/lxml/src/lxml/includes/etree_defs.h:14:31: fatal error: libxml/xmlversion.h: N ...

  2. 前端经常使用插件使用文档 以及demo

    watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/ ...

  3. C# 文件操作方法

    方法一: FileStream textFile = File.Open(@"F:\程序\新手测试\linqApplication1\linqApplication1\IO.txt" ...

  4. 顺序执行到来的消息 actor

    在某项目里,有个 actor 需要做一些持久化的操作,这些操作耗时比较久,理应使用异步的代码来写,但是需求又强调每次只能做一个持久化操作,后来的请求应该等待.一个显然的做法是阻塞式的写,这样就能比较简 ...

  5. C primer plus 练习题 第七章

    1. #include <stdio.h> #define SPACE ' ' #define NEWLINE '\n' int main() { int spaces,newlines, ...

  6. List的遍历和删除元素

    package test; import java.util.ArrayList; import java.util.Iterator; import java.util.List; public c ...

  7. django shell 集合

    1.创建project $ django-admin startproject mysite 2.真正执行,修改数据库 $ python manage.py migrate 3.运行服务 $ pyth ...

  8. 记一个dynamic的坑

    创建一个控制台程序和一个类库, 在控制台创建一个匿名对象,然后再在类库中访问它,代码如下: namespace ConsoleApplication1 { class Program { static ...

  9. `cocos2dx非完整` 添加xxtea加密模块

    在上一篇文章中,我已经开始着手写自己的模块,也就是fw部分.其中上一篇文章中完成的是lua部分的配置解析部分,涉及一点点平台方面的封装.这一片文章我来说明一下我是如何处理cocos2dx资源加密的.首 ...

  10. java模仿qq好友面板的布局(BoxLayout问题)

    .............. JLabel ll = new JLabel(dlg.getNameText() + ":" + dlg.getIPText(), ii[index] ...