繁体   English   中英

同一个维度有不同的值,根据具体的标准,如何实现维度表设计?

How to implement dimension table design when having different values for the same dimension according to specific criteria?

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

如果我有一个这样的Dimension Date table

CREATE TABLE [Dimension].[Date](
    [Date Key] [int] IDENTITY(1,1) NOT NULL,
    [Date] [date] NOT NULL,
    [Day] [tinyint] NOT NULL,
    [Day Suffix] [char](2) NOT NULL,
    [Weekday] [tinyint] NOT NULL,
    [Weekday English Name] [varchar](10) NOT NULL,
    [Weekday English Name Short] [char](3) NOT NULL,
    [Weekday English Name FirstLetter] [char](1) NOT NULL,
    [Weekday Arabic Name] [nvarchar](15) NOT NULL,
    [Weekday Arabic Name FirstLetter] [nchar](1) NOT NULL,
    [Day Of Year] [smallint] NOT NULL,
    [Week Of Month] [tinyint] NOT NULL,
    [Week Of Year] [tinyint] NOT NULL,
    [Month] [tinyint] NOT NULL,
    [Month English Name] [varchar](10) NOT NULL,
    [Month English Name Short] [char](3) NOT NULL,
    [Month English Name FirstLetter] [char](1) NOT NULL,
    [Month Arabic Name] [nvarchar](15) NOT NULL,
    [Month Arabic Name FirstLetter] [nchar](1) NOT NULL,
    [Quarter] [tinyint] NOT NULL,
    [Quarter Name] [varchar](6) NOT NULL,
    [Year] [int] NOT NULL,
    [MMYYYY] [char](6) NOT NULL,
    [Month Year] [char](7) NOT NULL,
    [Is Weekend] [bit] NOT NULL,
    [Is Holiday] [bit] NOT NULL,
    [Holiday Name] [nvarchar](50) NOT NULL,
    [Special Day] [nvarchar](50) NOT NULL,
    [First Date Of Year] [date] NULL,
    [Last Date Of Year] [date] NULL,
    [First Date Of Quater] [date] NULL,
    [Last Date Of Quater] [date] NULL,
    [First Date Of Month] [date] NULL,
    [Last Date Of Month] [date] NULL,
    [First Date Of Week] [date] NULL,
    [Last Date Of Week] [date] NULL,
    [Lineage Key] [int] NULL,
 CONSTRAINT [PK__Date__B7A341C5SWWC2006D] PRIMARY KEY CLUSTERED 
(
    [Date Key] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
GO

我面临以下问题:

并非所有组织部门的所有weekends and holidays都相同,例如有默认的周末( Fri,Sat ),但有些部门有不同的时间表,因此他们有不同的周末天数。 当我根据特定标准对同一维度有不同的值时,如何处理这种情况? 我应该为同一个 Dim 创建多个版本吗? 在这种情况下,如何在企业数据仓库中使用 Date Dim 作为conformed dimension

1 个回复

在以下情况下,将日期维度作为符合表是有利的:

  • 由 ETL 作业更新的一个中心位置
  • 易于实施“单一事实来源”,因为在整个组织中都可以看到相同的数据副本。
  • 由于删除了相同数据的不必要副本,因此减少了数据占用。

在您的情况下,您不需要所有列,因此您可以在数据库中拥有 DimDate 表,但使用简单视图指向它以仅获取您需要的列。 此外,您可以在 DimDate 视图和 DimDepartment 之间创建一个桥接表,如下所示:

在此处输入图片说明

一个逻辑数据模型可能包含一个或多个多对多关系。 物理数据建模技术通过添加附加表将多对多关系转换为一对多关系。 这些被称为桥接表。

1 如何在同一个维度内对具有不同坐标的值进行运算?

当对不同的数据数组进行操作时, xarray足以确保操作在具有相同坐标的值上进行。 这通常是理想的,但有时我想对具有不同坐标的值进行显式操作。 这将导致一个空的DataArray : 当然,我可以绕过xarray而对底层.values进行操作,但是在xarray API中有没有办法做 ...

3 在同一个TestFixture中将Dependecy用作具体实现和模拟

我有一个TestFixture类,可以在当前项目中练习一些代码。 在大多数情况下,我会将某些依赖项的实际,具体实现提供给SUT。 但是,我遇到了一个不希望使用真实事物的情况。 由于我使用自定义的AutoDataAttribute创建SUT,因此除非我手动创建所有详细信息,否则现在似乎已经失 ...

5 TSQL,重构一个维度表

我有一个表Players (id, PlayerName)。 ID 参赛者姓名 1 梅西 2 罗纳尔多 以及许多其他表(至少 6 个),具有属性和时间限制 ...

6 BigQuery-DataWarehouse的维度表设计?

我注意到BigQuery可以很好地维护历史数据,但是在进行单独的记录更新时,它的性能不佳。 对于历史数据,在“维度与事实范例”中的BigQuery中维护维度表有多有效? 我只想在定期完全刷新维度数据的情况下使用此范例,因为维度表不能包含重复的键,并且BigQuery在记录级别更新时不起作 ...

7 事实表的数据仓库维度设计

我对正在启动的新多维数据集有疑问。 多维数据集与风险管理过程有关。 事实表将不包含任何事实,仅包含存在的风险列表。 我对此表的维度有疑问,Risk ex有很多属性: 项目开始之前发生的可能性:(高,中,低) 项目发生的概率:(高,中,低) 项目结束后出现的可能性:(高 ...

8 如何在ssas中设计维度和事实表

我的数据库很少,例如: 员工(编号,姓名,州,国家/地区) 物料(编号,名称,颜色,类型,数量,库存) 订单(编号,物料编号,员工编号,金额,折扣,总金额) ShippingOrders(OrderId,MaterialId,EmployeeId,金额,折扣,总 ...

9 星型模式设计 - 一个列维度

我是数据仓库的新手,但我认为我的问题可以相对容易地回答。 我构建了一个星型模式,其中包含维度表'product'。 该表有一列'PropertyName'和一列'PropertyValue'。 因此,维度看起来有点像这样: 等等。 在我的事实表中,我总是使用维度的代理键。 ...

10 使用SQL中另一个维度的值创建新维度?

我目前有一个SQL表,看起来像这样: 我目前正在SSMS中编写一个存储过程,该存储过程将从现有表中提取这些维。 但是,我还希望该过程创建一个新的维度,该新维度将基于规则中的文本(每个规则的其他列)为每个规则创建一个“ SuperGroup”维度。 例如: 我目前尝试使用“ G ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2022 STACKOOM.COM