1

我在使用 SSAS 和数据挖掘时遇到了一些问题——尤其是 Microsoft Clustering 包。

我打算最终在 AMO 和 MDX 中完成我的工作,但现在,我很高兴通过 Visual Studio 了解它在 BIDS 中的工作原理。一步一步来!

整个问题是围绕从垂直组织的表中“垂直”和“水平”(单独)聚类。我的 OLTP 数据库中的主要源数据表看起来像 =>

ID_NUM {数字 1 - 20,000}

TECK_ID {numbers 1-500, {for each ID_NUM}} (虽然只是抓住了其中的一些来玩弄屏幕截图中的数据)

TECK_VALUE {双重,“事实”位}

所以 - 1000 万行,两个 int 和一个 double。

看起来像这样-http: //i.imgur.com/KG1LhaJ.jpg

因此,我在 Visual Studio 中创建了一个新的 Analysis Services 项目,设置了一个数据源,并将上表以及两个“维度表”(id_num 的标识,每个 teck_id 的名称)放入数据源视图并将其链接起来,匹配适当的键。

看起来像这样-http: //i.imgur.com/Q0vgwIc.jpg

接下来我想操纵我的数据是如何表示的,所以我要从这个数据源视图中设置一个多维数据集。我根据我的两个“维度”表(上面的“id_num”主键一个和“teck_id”主键一个)创建维度,并从我的主表中创建 teck_value 列的单个度量(作为总和)。这一切似乎编译成功。

看起来像这样-http: //i.imgur.com/y5pUSjh.jpg

我认为一切运行良好的原因是我可以通过浏览多维数据集来安排我想要的数据。我可以将我的“行”定义为 id_num 或“teck_id”,另一个填满列。度量“Teck_value”始终构成表的数据集。这正是我想要的,以两种方式排列我的数据的灵活性。

看起来像这样 - http://i.imgur.com/ugLUkgg.jpg 而这个 - http://i.imgur.com/RwQgj58.jpg

美丽的!现在我想在此基础上做一些挖矿!很简单,我希望使用 Microsoft Clustering 来(单独)-

  • 根据每个 ID_NUM 上的变化情况为每个 TECK_ID 分配一个集群编号
  • 根据每个 TECK_ID 上的变化情况为每个 ID_NUM 分配一个集群

看似简单的要求 - 只需更改表示为“行”的内容和表示为“列”的内容 - 我似乎已经能够通过多维数据集浏览器完成。从我未受过教育的角度来看,这似乎是 OLAP 而不是 OLTP 的要点之一!

然而,当我尝试设置它时,我完全失败了!

聚类向导让我感到困惑,我想出了无意义的结果。我可以选择一个键(我可以选择上述任何一个),但没有选项可以通过另一个维度进行解析。事实上,我唯一可以选择挖掘的是 TECK_VALUE,它没有任何好处,因为它不能区分不同的字段!

我的向导看起来像这样- http://i.imgur.com/lHfasv0.jpg

所以,我被留在了泡菜中。我真的不想返回并水平排列我的 OLTP 数据库,因为 1) 这意味着当我尝试对我的 TECK_ID 进行分类时有 20k 列。和 2) 我希望 SSAS 和 OLAP 能给我提供我需要的灵活性来挖掘我想要的字段 - 这不是你设置一个多维数据集“按照你喜欢的方式切割数据”的部分原因吗?

帮助我处理 AMO / MDX 方面的奖励积分!:)

4

0 回答 0