问题标签 [scd2]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
5350 浏览

sql-server - SCD2 + 合并语句 + SQL Server

我正在尝试使用 MERGE 语句来插入/更新 SCD2 类型的维度表

我的来源是与 Dimension 表合并的 Table var。

我的 MERGE 语句引发错误:

当 FROM 子句包含嵌套的 INSERT、UPDATE、DELETE 或 MERGE 语句时,INSERT 语句的目标表“DM.DATA_ERROR.ERROR_DIMENSION”不能位于(主键、外键)关系的任一侧。找到参考约束“FK_ERROR_DIMENSION_to_AUDIT_CreatedBy”。

我的合并声明:

我究竟做错了什么 ?

0 投票
1 回答
1805 浏览

ssis - 加载具有 SCD1 和 SCD2 属性 + SSIS 的混合维度表

我只是在开始一项新任务的过程中,其中我需要加载带有 SCD1 和 SCD2 的混合维度表。这需要作为 SSIS 包来实现。有人可以指导在 SSIS 中处理这个问题的最佳方法是什么,我应该使用 SCD 组件还是有其他方法?这方面的最佳做法是什么。

对于 SCD2 类型,我正在使用 Merge 语句。

谢谢

0 投票
0 回答
56 浏览

ssis - 基于源到维度值比较的维度更改

我在 SSIS 中使用 Kimball SCD 组件。我希望能够根据当前维度值与源数据的比较将行定向到类型 1 或类型 2 路径,即,如果源中的日期小于维度中相应的当前日期,然后输入 2 否则输入 1。

有人做过这种类型的数据比较吗?我考虑过使用触发器,但性能影响可能很大。

似乎拆分器可以工作,但我看不到在哪里可以评估两个数据流的值。

谢谢,

0 投票
2 回答
1912 浏览

sql-server-2005 - SCD 类型 2 的 T-SQL 语法

我目前正在尝试完成将 scd 类型 2 数据加载到维度中的查询的最后一部分。根据下面提供的数据,除了过期的旧记录和跟踪历史记录等之外,我想生成一个可以插入维度的输出。数据是这样的,我拥有属性已更改的最新记录。更改的值与 dateOfchange (即更改发生的日期)一起在 Lookup 列中找到。这个 dateOfchange 显然应该成为最新记录的 validTo 日期。

样本数据如下:

有了这些数据,新的输出应该是

有任何想法吗

0 投票
2 回答
668 浏览

sql-server - 如何创建 SCD 2 表的每日更改报告

我需要生成报告,该报告将显示 SCD 表每天的新/更改行数。

下面是创建表的 SQL:

结果如下所示:

现在,我需要制作这样的东西:

任何帮助深表感谢。

0 投票
0 回答
253 浏览

dimension - 使用mysql实现SCD2逻辑

我需要将具有以下记录的表处理到 SD2 表中。这将需要读取前一行的值并确定其匹配,然后进行处理。如果分数记录没有变化,则更新,否则将其删除,因此在 SCD2 中将其标记为终止。

名称 分数 删除/更新 时间 Hemant 100 2012-08-01 Hemant 200 2012-08-10 Hemant 100 2012-08-11 Rahul 100 2012-08-01 Rahul 100 2012-08-02 Rahul 200 2012-08-03

数据需要像这样加载到表中:

名称 值 有效 从有效到 Hemant 100 - 2012-08-01 Hemant 200 2012-08-01 2012-08-10 Hemant 100 2012-08-10 2012-08-11 Rahul 100 - 2012-08-02 Rahul 200 2012- 08-02 2012-08-03

不能使用 group by 函数,因为相同的键值对可以在以后的日期或多个日期重复。任何建议将不胜感激。

问候

0 投票
1 回答
1886 浏览

sql - 使用 SQL 从类型 2 缓慢变化的维度中删除重复项

我正在构建一个具有多层存储相同数据的数据仓库。中间层中的所有数据都使用开始和结束日期进行版本化,就好像它是第 2 类缓慢变化的维度一样。当我查询这些表时会出现问题。表中的列通常比查询中的多,因此查询中的相邻版本具有不同的开始日期和结束日期,但在其他方面是相同的。我想组合这些版本,以显示查询中的列更改时的日期,而不是表中的行更改时的日期。

我有一些几乎可以工作的 SQL:

这里的问题是它返回两行 id "4",而需要三行。实际的:

期望:当值 DD 正确时,值 D 不正确,因此我的查询的第一行 (4,'D') 上的版本日期不正确。

我希望能够在纯 SQL 或内联表值函数中删除这些重复项(我有一个生成器,可以创建执行此操作的多语句表值函数,但生成的函数性能不佳)。有没有人有任何想法?

0 投票
1 回答
51 浏览

sql-server - 删除 SCD 后避免孤立记录

我正在从 DW 中删除一些 SCD,因为它们不是必需的,并且使用会产生大量重复的 SELECT EXCEPT 语句来实现。我想重定向事实表中的引用,这样我们就没有孤立的记录。我设法使用下面的光标来完成此操作(我认为)。只是想知道是否有更流畅的方法?

0 投票
1 回答
189 浏览

datetime - 需要帮助编写 Teradata SQL 来验证从多个 SCD type2 表组合的多个日期范围

我想验证从多个 SCD type2 表派生的视图。因此,我必须根据两个(或更多)表中可用的日期组合创建一个日期范围。请参见下面的示例。

表格1:

表 2:

结果集:

实现这一目标的步骤:我的方法:

1) 取两个(或更多)表中所有可用的 STRT_DTTM 字段值的并集。

2) 从步骤 1 中可用的上述日期分发/重新创建日期范围。(作为开始日期和结束日期)

3)然后尝试在新创建的日期范围内识别 CDC 字段(h1name 和 h2name )并将它们放入结果集中。查询:

步骤1:

第2步:

第 3 步:

现在问题出在第 2 步:我无法在子查询和 CTE 中使用 order by。如果没有订购开始日期,我无法正确列出日期范围。

任何人都可以指导我寻求解决方案或其他简单的方法。请注意,由于我是 QA,因此我没有对大多数数据库的创建表访问权限。因此,任何使用 select 的建议都会更受重视。我已经包含了用于创建表的 DDL 和 DML。

0 投票
1 回答
86 浏览

ssas - 管理具有渐变维度的 PerformancePoint 筛选器

只是一点背景信息:

我有一个维度表,它使用 SCD2 来跟踪我们公司中的用户变化(团队变化、职位变化等)见下面的例子:

一些用户维度列

我已经构建了一个 Analysis Services Cube 并为维度创建了所有必要的层次结构,并且在导航和向下钻取事实表时效果很好。

SSAS 层次结构

我遇到的问题是 PerformancePoint 仪表板上的过滤器。当我使用用户维度表时,它有多个用户实例,它在列表中显示重复项。我可以理解为什么在 Dimension 上引用了代理 ID。但是,如果我选择 A 团队的第一个实例,我将看到他们在特定时期的所有销售额,如果我选择第二个实例,我将看到他们在不同时期的所有销售额。

1 个重复团队名称的示例

处理此类行为的最佳方法是什么?理想情况下,我希望看到按字母顺序排列的不同团队列表,当我选择团队名称时,它会随着时间的推移显示他们的所有数据。

我考虑过使用 MDX 查询过滤器,但我想看看是否有什么我没有想到的。

我意识到这不是一个简单而快速的问题,但任何帮助将不胜感激!