项目简介:我在实习公司为一个物流公司做BI里关于OLAY部分的工作,使用分析数据的工具是SQL Server。这个公司在此之前已经完成了SSIS的部分,建立了一个数据仓库,现在我需要根据这个数据仓库来完成SSAS,也就是OLAY的部分。
我理解中要实现SSAS需要事先创建好数据仓库,并且在数据仓库中要有事实表和维度表,但实际情况是他们建立的数据仓库中仅仅包含了事实表,而维度表需要我在事实表中先寻找相应的外键,然后再回到他们的关系数据库里寻找可以匹配的“维度”。
补充:他们原本的BI数据仓库与关系数据库是放在一个数据库中,一共900多张表,显得很乱。。
以下是部分的数据仓库表,我选择了其中一个作为例子:
仓库货物出入表(事实表):ID(主键),仓库ID,客户CODE,入库数量,出库数量,剩余数量...(仓库ID,客户CODE用来关联仓库和客户的两个维度,后面三个则是度量值)
仓库表(维度表):仓库ID(主键),仓库名称,仓库地点...
客户表(维度表):客户ID,仓库ID(主键),客户CODE(主键),客户名称,客户所在城市...(这里把仓库ID和客户CODE作为复合主键)
于是我按照微软官方的SSAS教程,一步步进行配置,因为客户表是双主键,所以在数据源视图里,我把两个字段都进行了关联。但是在最后部署的时候发现有错误:
#####错误 12 服务器: 已取消当前 *** 作,因为事务中的另一个 *** 作失败。#####
这个错误我根本查不到在哪里有问题,于是我还做了相应的实验:
我按照微软的格式,在物流公司同一个数据库下,建立了测试的事实表和维度表,通过部署后发现没有问题。——说明软件、数据库均没有问题。
1.同一数据库下,复制三张表格,删除了不必要的列,部署出错。
2.同一数据库下,复制三张表格,删除所有数据,填入一些简单的测试数据,部署成功。——数据之间的问题。
3.同一数据库下,复制三张表格,删除了客户表数据,并填入一些简单的测试数据,部署成功——应该是客户表中的数据问题,4.因为另外两张表都是原表,如果另外两张表有问题就不会部署成功了。
5.同一数据库下,复制三张表格,删除了客户表数据,并添加了一条原本和事实表相关联的数据,部署成功。——猜测:客户表中不能有不关联的数据?
6.同一数据库下,复制三张表格,删除了客户表数据,添加了一条原本和事实表相关联的数据,一条原本和事实表不关联的数据,部署失败。
那么问题来了:如果因为客户表里面有不关联的数据而报错,那么在仓库表中同样有和事实表不关联的数据,为什么仓库表没有问题?而且在6报错的信息与之前的错误信息不同:
#####
错误 7 内部错误: *** 作未能成功,已终止。
错误 10 OLAP 存储引擎中存在错误: 由于处理过程中遇到的错误数达到为 *** 作定义的最大允许错误数,处理 *** 作结束。
错误 11 OLAP 存储引擎中存在错误: 处理“t Dc Inventory Snapshot”分区时出错,该分区属于 BI1 数据库的“AAD”多维数据集的“t Dc Inventory Snapshot”度量值组。
错误 12 服务器: 已取消当前 *** 作,因为事务中的另一个 *** 作失败。
#####
这几天都在搞这个项目,自己又完全不懂,如果我以上有什么概念理解问题,请大神不要鄙视。。
ssis ssas SSRS是BI的三个部分。ETL是数据抽取、清洗、转换、装载的过程,ETL是用SSIS来实现的,也就是说SSIS是ETL工具。而SSAS是建立多维数据集,SSRS是建立前台报表。
微软SQL SERVER 2012 BI体系。
SSIS,数据抽取服务,实现数据Extract,Transfom,Cleansing,Loading,或是按Kimball的说法,进行ECCD 的ETL过程,它实现了从源头提取、数据,清洗数据,一致化数据,加载交付数据到数据仓库这些功能。
另外,在2012中,SSIS还包括了数据质量服务于主数据服务,它们的功用,顾名思义的可以了解到。
SSAS,主要是建立、组织多维数据库,在2012之前,这么说是比较合适的。
在2012及以后,称之为用SSAS建模,分析模型挖掘模型等,会更合适些。2012中包含了传统CUBE模式,和BISM模式的建模,还可以建数据挖掘模型。
SSRS,仍是报表和分析开发。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)