我正在尝试基于单个表创建一个SSAS多维数据集。遗憾的是,以表格模式运行服务不是一种选择,因为我们已经在Analysis服务器模式下运行实例。
我读了几篇其他帖子,人们提到它确实可以根据单个表或视图创建一个多维数据集。
问题是:在基于单一来源创建时,如何以及在何处指定维度和度量?
我创建了一个数据源视图,但我不确定如何指定维度和度量。以为我会在这里寻求帮助。
提前致谢, 蜂
答案 0 :(得分:1)
要使维度键具有唯一性,您必须将维度(例如,国家/地区维度)基于
SELECT Sum(gross_motor + visual_motor_skills
+ draws_a_person + prints_personal_data)
FROM brigance_screening_term0 AS T0
WHERE year = 2011
AND Str_to_date(date, '%Y-%m-%d') = 2016 - 05 - 11
LIMIT 1
查询。
这种方法有缺点。维度永远不会在多维数据集本身之外实现,这使得在维度数据看起来错误时分析问题非常困难。出于同样的原因,创造一个缓慢变化的维度是不可能的。
优点是您不必执行任何ETL工作来检测新维度成员并在新数据进入时填充维度表。缺点是,除非每个维度仅基于单个列,否则表,它会变得不连贯。
如果维度基于多个列,例如:
SELECT DISTINCT Country[,... other things] FROM TheSingleTable
然后,如果单个表或ETL过程没有约束来保证两列值的范围彼此正好1到1,那么新数据将扰乱您的维度成员资格。
例如,您有一个现有成员,CountryCode为“USA”,CountryName为“United States”。如果只有一个新的事实行进入表中,使用CountryCode“USA”,CountryName“Uited States”(或NULL),则这将被解释为新的维度成员。您将获得维度处理重复键错误(如果您很幸运)或虚假多维度成员。
新数据很容易打乱这种设计,除非它是一个非常小的简单项目,否则我建议不要使用它,并且你有时间深入分析传入的更新并思考它们可能带来的后果。
答案 1 :(得分:0)
只需像创建正常尺寸一样创建它们。