问题标签 [scd]

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 投票
1 回答
393 浏览

data-warehouse - 了解渐变维度类型 2

在我的场景中,我很难理解如何使用缓慢变化的维度类型 2。我浏览了不同的教程网站,但它们不适合。

我有一个员工维度表,其中包含:

我有一个帐户事实表

现在我们看到维度发生了变化,因此为同一 Ola 员工提供了一个新 ID。我们将如何在事实表中进行管理?

  • 在 Fact Table 中将找不到 Ola 的新 ID。

  • 因此,如果我们实际上添加了一个新行,使用 Ola 的新 ID,当他们以不同方式标识时,我们将如何链接他们是同一员工,“主键”。

  • 我们如何区分该员工不是新员工,实际上位置/名称已更改。

0 投票
1 回答
351 浏览

sql - 渐变维度类型 1 - 访问

假设我有一个包含描述错误的产品表。计量单位被拼错为“garms”而不是“grams”。这将如何使用表示类型 1 - SCD 技术的查询语句来实现。

0 投票
1 回答
399 浏览

sql-server - 需要帮助了解 SSIS 中 scd 的替代方案

我正在从事一个数据仓库项目,该项目将涉及集成来自多个源系统的数据。我已经建立了一个 SSIS 包来填充客户维度并使用渐变维度工具来跟踪客户的更新。

我遇到了一些问题。举个例子:

源系统 A 可能具有如下所示的记录:

名字,姓氏,邮政编码 Jane,Doe,14222

源系统 B 可能具有相同客户端的记录,如下所示:

名字,姓氏,邮政编码 Jane,Doe,未知

如果我首先从系统 A 导入记录,我将拥有名字、姓氏和种族。伟大的。现在,如果我从系统B导入客户记录,我可以做模糊匹配识别这是同一个人,并使用渐变维度工具更新信息。但在这种情况下,我会丢失邮政编码,因为“未知”会覆盖有效数据。

我想知道我是否以错误的方式处理这个问题。SCD 工具似乎没有提供任何根据新数据是否有效来选择性地更新属性的方法。合并语句会更好吗?我是否犯了某种我没有看到的基本设计错误?

感谢您的任何建议!

0 投票
1 回答
278 浏览

ssas - SSAS & SCD2 - 如何处理 Dim 中的 IsActive 行

我正在使用 SQL Server 2014 和 Visual Studio 2015。
例如,我有一个 SCD2 用于员工姓名

在事实表中

因此,您可以看到多维数据集当前链接在 FctAgentSK 和 DimSK 上。这按计划工作。但是,当 Jo 更改性别时,SCD2 使该行处于非活动状态 (0) 并插入一个具有新性别和 IsActive 为“1”的新行。

我面临的问题是事实SK 101 仍然引用代理的“旧”详细信息。我应该如何处理这个问题才能仍然报告电话,但也参考代理的“正确”详细信息 - 反映他们当前的性别。

当插入一个新事实时,它将分配“新”SK,但基本上我需要报告发生在性别变化两侧的所有呼叫。

请问有什么建议吗?

谢谢你。

0 投票
0 回答
208 浏览

sql - sql developer中的SCD type2示例实现

我正在尝试实现 SCD type2 的示例。所以我正在创建一个包含 empid、ename、location、hiredate、startdate、enddate 和一个标志的表。现在最初假设hiredate和startdate是01-jan-2012,enddate默认是01-jan-2099。对于结束日期为 2099 年 1 月 1 日的任何地方,标志保持为“Y”,显示当前的活动信息。

现在,每当有人更新位置时,都会将该员工的新行与 new.startdate 添加到同一员工(旧行)的前一行的更新旧结束日期,并且 new.enddate 默认变为 01-jan- 2099,并将标志设置为“Y”。

员工的旧行现在代表历史数据,将 enddate 设置为 systemdate 并将 flag 设置为“N”。我被卡住了,无法理解触发器动作的执行顺序。

0 投票
1 回答
592 浏览

sql-server - SQL Server - 如何在两个以上条件下使用 Merge 语句进行缓慢变化的维度?

我正在尝试通过 T-SQL 实现缓慢变化的维度类型 2,但我不知道如何使请求生效。

表格列:cpf, nome, telefone_update,endereco_insert

基本上逻辑是:如果使用MATCH 没有发生cpf,则必须插入记录;如果MATCH发生了但只有telefone_update字段发生了变化,则不需要另一条记录,我只想更新并覆盖这些值;如果MATCH发生这种情况但只有endereco_insert字段发生了变化,我想添加一条新记录并更新开始日期和结束日期。

到目前为止,我所拥有的是:

但我认为放置另一个WHEN MATCH AND ...不会使这项工作。

有什么建议么?

提前致谢!

0 投票
0 回答
821 浏览

talend - 在 Talend 中使用 SCD 组件的最佳实践

我正在使用 tPostgresqlSCD。性能真的很慢。它每秒插入 1 行甚至更慢。有没有办法提高它的性能?我尝试了“使用内存节省模式”。这使它变得更慢。我在 500 万行维度中插入大约 9000 行。我什至还有更大的尺寸。它如何扩展?

0 投票
1 回答
784 浏览

sql-server - SQL Server - 渐变维度连接

比方说,我有一个事实表和员工“层”表。

所以事实表看起来有点像

然后需要有一个“层级”的数据结构——一个缓慢变化的维度表。我想保持简单——我可以将此表的结构更改为任何结构,但现在我已经创建了它。

两个重要的注意事项。该表的运行假设是晋升只会发生一次 - 也就是不会发生降级和再晋升。此外,有可能从第 1 层跳到第 3 层。

我试图想出最好的查询来为事实表提供一个“层”维度(非规范化)。

例如,我想查看 2 月的第 1 层指标,或 2 月的第 2 层指标。显然,历史变化的层级维度必须联系起来。

我现在能想到的最笨拙的方法......只是使用employee_id在层表上加入事实表。

然后,做一个更笨拙的 case 语句:

是的,正如您所看到的,这非常笨拙。我在想也许我需要稍微改变一下它的结构。

0 投票
1 回答
5146 浏览

data-warehouse - 通过示例了解渐变维度 (SCD) 类型 5 和 7

我试图了解 SCD 类型 5,6 和 7 的工作原理。

我阅读了 Kimball Group 的这篇文章和关于 Type 6 的堆栈溢出答案。

我可以理解 Type 6 的概念,它是如何工作的以及何时使用它。

但是,我仍然无法理解类型 5 和 7 的工作原理以及何时使用它们。非常感谢用示例解释类型 5 和 7。

提前致谢。

0 投票
0 回答
206 浏览

sql-server - 渐变维度:更新“行是当前”值

我有一个配置为渐变维度的客户 SSIS 包。

在向导期间,选择当前或开始日期选项时,我选择了开始日期和结束日期选项。我还有一个名为RowIsCurrentIt 的列,它的bit (boolean)数据类型的默认值为1.

我正在尝试配置以将 SCD 结束历史行时SCD的值更改为10我想我可以在derived column task设置结束日期的地方添加一行。

我很可能错过了一些相当基本的东西,但是我不知道我哪里出错了。