问题标签 [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 投票
1 回答
242 浏览

etl - 哪个是维度的最佳方法(SCD-2 或 SCD-1 + 全新维度)

假设我有以下情况:

具有一些非易变属性的维度产品(描述和直径 - 它们只能通过 SCD-1 更改进行更改以进行更正)和一个可能易变的属性(销售组,同一产品可能随时间而变化)。

因此,当一种产品的这些易变属性发生变化时,我需要以某种方式跟踪它们。

我有这两种方法:

对于两者:继续将 SCD-1 用于非易失性属性。

方法 #1:在 product_dim 中使用 SCD-2 仅用于易失属性。

在此处输入图像描述

方法二:让销售组成为一个全新的维度,每次销售都将跟踪 ETL 时刻的当前价值。这里不需要 SCD-2。

在此处输入图像描述

我是数据仓库的新手,我试图了解哪个更好以及为什么。我的目标之一是使用 OLAP 软件来阅读所有这些内容。

0 投票
2 回答
106 浏览

sql - Postgres 索引

我是 Postgres 的新手。

我们使用 Postgres 在我们的项目中实现了 SCD type-2。输入文件是一个完整的刷新文件,每天大约有 3000 万条记录。

帐号是关键列。

新记录的大约数量为 20K/天。如果源中缺少记录,则该记录将在目标中以结束日期关闭。关闭的大约记录数 - 10k/天

查询的运行时间正在稳步增加。索引是否有助于加快进程?

对要使用的索引有什么建议吗?

0 投票
1 回答
4605 浏览

sql-server - MERGE 多次尝试更新或删除同一行

我正在尝试使用从以下网站获得的合并语句加载标准 Kimball SCD2 Dimension: http ://www.kimballgroup.com/2008/11/design-tip-107-using-the-sql-merge -声明用于缓慢变化的维度处理/

除了处理新实体之外,此合并语句是相同的。这将作为数据流中的直接插入处理。此问题仅涉及同一业务密钥的多个版本。

当我执行合并语句时,SQL 返回错误:

消息 8672,级别 16,状态 1,第 3 行
MERGE 语句多次尝试更新或删除同一行。当目标行匹配多个源行时会发生这种情况。
MERGE 语句不能多次 UPDATE/DELETE 目标表的同一行。优化 ON 子句以确保目标行最多匹配一个源行,或使用 GROUP BY 子句对源行进行分组。

我正在使用 SQL Server 2012:

源数据集

在此处输入图像描述

目标数据集

在此处输入图像描述

这是我所期望的:

在此处输入图像描述

您可以在下面找到重现问题的脚本:

你能帮我解决这个问题吗?

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

oracle - SCD2 一次性合并违反 Oracle 12 中的主键

一段时间后,我发现恕我直言,一次性合并语句可以非常快速地记录缓慢变化的维度类型 2。

它在没有唯一约束的表上完美运行。

大多数情况下,它也适用于具有唯一约束的表。但有时(通常当历史变化较大时)我收到错误 ORA-00001,违反唯一约束。当然,我知道有两遍方法有效,但它们速度较慢。

我唯一的猜测是,Oracle 有时会在 UPDATE 之前执行 INSERT,这会暂时复制 TH_Valid_To_Date。

任何想法如何避免它(同时保持主键)?

源表:

历史表:

合并:

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 投票
0 回答
64 浏览

sql-server - SCD 在 BIDS 2016 SSIS 中

我正在尝试使用 SCD 转换来实现 2 型 SCD。当我更新源中的某些内容时,SCD 转换不是单独更新该行,而是更新并插入所有行。

例如,在第一次运行后,源有 50 行,目标有相同的 50 行。现在我更新了源中的第 1 行并运行了包,然后再次插入所有行,而不是更新那一行。

知道为什么吗?

0 投票
1 回答
303 浏览

ssis - 使用 SCD 类型 2 的 SSIS 校验和转换

在 SSISSCD Type 2转换中,我们可以保留旧的历史数据。

我们如何使用校验和转换来保存历史数据?

0 投票
0 回答
716 浏览

sql-server - SSIS SCD 转换开始日期和结束日期相同 - 这怎么可能?

我的 ETL 有问题。我有一个维度表,其中包含一些 SCD 1 和 SCD 2 列 - 我已在 SCD 转换中分别正确映射这些Changing AttributeHistorical Attribute

然后在“历史属性选项”页面上,我检查了Use start and end dates to identify current and expired records,将我的 ValidFrom 列输入为 ,Start date column并将我的 ValidTo 列输入为End date column

据我了解,这应该意味着任何插入的记录都会被赋予当前日期时间值的 ValidFrom ,并且它们的 ValidTo 列保持不变NULL。对于那些已经存在但已经过时的记录,他们的 ValidTo 成为当前的日期时间值。

但是,在某些但不是所有导入的记录上 - 插入的最新记录在 ValidFrom 和 ValidTo 记录中以完全相同的日期时间插入。这成为一个巨大的痛苦,因为我不得不在我的查询中将该记录视为无效,以及对事实表加载的连锁反应。

任何人都可以帮助解释为什么会这样吗?