Sql server sql多值维
(这是我问的第一个问题,所以请大家耐心听我说) 我在SQL Server 2014 Enterprise上创建了一个数据仓库,我正在努力将一个事实映射到一个维度中的多个值 设想一个数据中心,其服务器为特定服务和客户保留。 这些服务器具有特定的组件,如网络适配器、CPU或操作系统 事实表中的几行如下所示:Sql server sql多值维,sql-server,data-warehouse,business-intelligence,dimensional-modeling,Sql Server,Data Warehouse,Business Intelligence,Dimensional Modeling,(这是我问的第一个问题,所以请大家耐心听我说) 我在SQL Server 2014 Enterprise上创建了一个数据仓库,我正在努力将一个事实映射到一个维度中的多个值 设想一个数据中心,其服务器为特定服务和客户保留。 这些服务器具有特定的组件,如网络适配器、CPU或操作系统 事实表中的几行如下所示: ServerID CustomerID OSID ServiceID NetworkGroupID CPUID 1 1 1
ServerID CustomerID OSID ServiceID NetworkGroupID CPUID
1 1 1 1 1 1
2 1 2 1 2 1
3 2 1 2 2 2
服务器1和2属于客户1。服务器1正在运行操作系统1,另一个操作系统2正在运行。两者都提供服务1。
服务器1有一组标识为“1”的网络适配器,其他2个。这些集合包含多个网络适配器(一些是虚拟的,一些是物理的)
我的网络维度具有属性ID和NetworkAdapterName,我需要该ID多次出现,如下所示:
ID NetworkAdapterName
1 IntelAdapter#1
1 IntelAdapter#2
1 VirtualAdapter#1
2 IntelAdapter#1
2 DellAdapter#1
3 VirtualAdapter#1
3 VirtualAdapter#2
我想我需要一些子维度作为桥梁,如下所示:
NetworkGroupID NetworkID
1 1
1 2
1 3
2 1
2 5
3 3
3 4
NetworkID NetworkAdapterName
1 IntelAdapter#1
2 IntelAdapter#2
3 VirtualAdapter#1
4 VirtualAdapter#2
5 DellAdapter#1
但是,既然存在与NetworkGroupID具有相同值的多个外观,那么我如何定义从事实表到桥接维度的主键或关系呢
(CPU和操作系统也是如此,但一旦我让它为网络适配器工作,我就可以为其他组件工作了。)
编辑:
最后,我想在SSAS中构建一个多维数据集,该多维数据集可以显示一台服务器拥有的多个组件。您可以创建一个表(或维度)来定义网络组:
CREATE TABLE NetworkGroup (
NetworkGroupID int not null PRIMARY KEY,
Name nvarchar(50) null
);
然后使用您的“桥接”表(也称为“桥接”)将其与您的网络连接起来表:
CREATE TABLE NetworkGroupNetwork (
NetworkGroupID int not null,
NetworkID int not null,
CONSTRAINT PK_NetworkGroupNetwork
PRIMARY KEY (NetworkGroupID, NetworkID),
CONSTRAINT FK_NetworkGroupNetwork_NetworkGroup
FOREIGN KEY (NetworkGroupID)
REFERENCES NetworkGroup (NetworkGroupID),
CONSTRAINT FK_NetworkGroupNetwork_Network
FOREIGN KEY (NetworkID)
REFERENCES Network (NetworkID)
);
这也是一本值得一读的书。这是我一直在思考的问题,但是我如何才能创建一个从PK网络组到NetworkGroupNetwork中的复合PK的约束呢;约束从NetworkGroupNetwork
中的一列到NetworkGroup
的主键。与事实表(CustomerID列)和客户表之间的内容类似。我现在觉得很傻,当然这是可行的:D看起来很有希望,我还需要几分钟来验证结果。我仍然需要弄清楚如何将它们放入SSASexactly中的多维数据集中;)谢谢你的帮助!在SSAS中,我必须将NetworkGroupNetwork定义为另一个度量组(事实表),并通过NetworkGroupNetwork在原始事实表和dimNetwork之间建立多对多关系