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

sql - 如何在缓慢变化的维度和事实中跟踪合并

在 2 个或 3 个或更多维度合并以形成新维度的数据集市中。如何管理 scd 以跟踪历史上的所有合并并呈现与这些维度相关的趋势事实?

一个具体的例子是三个商店(业务 ID 8897、8965、9135)合并以创建一个新的商店业务 ID 9700。如何从事实表中获取历史销售数据以显示直到给定日期 8897、8965 和 9135是单独的商店,现在都是新的商店 9700。

此外,如果新店的营业编号不是 9700,但新店采用以前的商店营业 ID 之一怎么办。因此,新的合并商店业务 ID 不是 9700,而是 8897。

SurrogateKey -------- StoreBusinessID---------- StoreName
=============== ============== ===== ===================

=================================================== ==

0 投票
1 回答
290 浏览

teradata - 在 Informatica/Teradata 中对 CLOB 列执行 CDC

我有一个 clob 列,我需要对其执行 CDC 以根据 CLOB 数据的更改将其标记为更新/插入/不更改。我的源/目标是 teradata。我们使用的 ETL 工具是 informatica。我需要在这个 CLOB 列上执行 CDC。我的表将有一个 Key 列和这个 CLOB 列,即 2 列。

任何人都可以帮助我如何在 Teradata 或 informatica 中或同时使用两者来实现此场景。

提前致谢。

0 投票
1 回答
293 浏览

sql - 在 Postgres 中优化 SCD2 JOINS

现在,我正在为一个应用程序开发数据库模式,该应用程序需要对几组不同的数字数据进行版本控制,这些数字数据必须连接在一起才能在视图中使用。该应用程序要求我们能够“回顾”并找到这些多个变量在任意时间点的状态。

我使用子查询构建了一些视图定义,以根据任意连接条件获取各种输入,并根据time_created字段检查版本。这不是严格的 SCD2 实现,但很接近。

您可以在此处看到与我们的架构类似(尽管已大大简化)的实现:DB Fiddle 链接。真正的模式有 6 个子查询/连接。

这对我的目的非常有效,除了当我们开始将其扩展到数千个“购买”记录时,我们会产生大量的查询成本。针对 2000 多行的查询需要大约 1 秒,这不适合我们的应用程序。

想到的第一个解决方案是创建一个表,它将“购买”连接到它的各种版本化输入表,由应用程序在创建购买时创建。这应该更有效,但需要更多的模式复杂性。

任何人都可以就如何最好地规划我的模式/查询以最适合这种设置提供建议吗?

0 投票
1 回答
286 浏览

oracle-data-integrator - ODI how to compare clob fields

I'm trying to implement ODI scd km and the table has a clob field. I'm getting error in the step where it compares the clob value from the target table with the i$ temporary table.

ORA-00932: inconsistent datatypes: expected - got CLOB

Any suggestions on how to get past this error

0 投票
0 回答
1669 浏览

python - 在 Python 中加载具有“缓慢变化的维度”的数据库表

好的,我可以使用 in 将记录加载到表to_sqlpandas。(不幸的是,我不能使用bcpor bulk insert,因为我的(SQL Server)数据库服务器是远程的)。(类型 2)尺寸变化缓慢的桌子怎么样?在 SSIS 中,我会使用SCD 向导- Python 替代方案是什么?我想避免从头开始编写 SCD 逻辑 - 希望有一个包(可能是其中一个包可以做到这一点?简单地加载一个表是好的和花哨的,但在维度数据集市的世界中,肯定必须支持 SCD 吗?

0 投票
1 回答
186 浏览

sql - 如何在 6 类 SCD 维度表上强制执行参照完整性?

我在设计事实表和类型 6 SCD 维度表之间的主键和外键关系时遇到了困难。

维度表的定义如下:

数据外观示例:

根据我对维基百科页面的理解,我应该能够通过 PK/FK 关系强制执行参照完整性,但是主代理键在此表中不是唯一的,因此我不知道如何将事实表中的 surrogate_id 指向具有 FK 约束的 surrogate_key。

有什么办法可以绕过这个限制,还是我理解的描述有误?

顺便说一句,这是我第一次在这里提问,所以如果有任何不清楚或遗漏的地方,请告诉我!

编辑:列名是通用的虚拟名称。实际的列名更具描述性。

0 投票
2 回答
139 浏览

sql-server - SCD 类型 2,包括每次记录更改时的版本计数器

我想要一个 +1 计数器,用于我的缓慢变化的维度 DIM_Object。每次当 PMEObject 表中的记录发生更改时,我希望 DIM_Object.Versie 增加 1。

关于代码的一切工作正常,这也可以在没有任何错误的情况下运行。但是,在我有“+1 Versie”的地方,我需要它来实际计数并参考过去的行,它显示了需要将 +1 添加到的实际数字。我不知道如何正确引用旧记录。

在我放置“+1 Versie”的地方,我希望它根据之前的 DIM_Object.Versie 数量实际累积。现在它只会保持“1”,因为我猜它只在当前记录中看到 NULL。

你有什么想法?

亲切的问候,

广告

0 投票
1 回答
1162 浏览

sql-server - 使用 BINARY_CHECKSUM 的 T-SQL 类型 2 SCD

我正在尝试为我在 T-SQL 中的工作实现类型 2 SCD。我正在遵循此链接中给出的绝妙方法:https ://www.mssqltips.com/sqlservertip/2883/using-the-sql-server-merge-statement-to-process-type-2-slowly-changing-方面/

但是,在我的情况下,表中没有内置 BinaryCheckSum 列。我需要即时计算相同的值。我将在下面发布我的代码(创建了一些示例数据)以实现此实现。

有人可以让我知道这种方法是否有效吗?还是我需要在列本身中有 DimensionCheckSum?另外,就我而言,我不需要代理 ID。(请原谅任何语法错误)

0 投票
1 回答
33 浏览

ssis - 初始构建中的历史数据集

我目前面临的问题是我认为一个合乎逻辑的问题,也许是 SSIS 的一个限制。

我的数据有一组账户,在任何时候这个账户都可以归一个组织所有。这个组合控制了我的“账户”的历史维度

例如

这样做很容易,因为我只是让 SCD 做它的事情,这是我正在努力解决的初始负载。

使用 SSIS 作为我的 ETL 工具,我是否能够使用内部连接,给我三个记录,按“ValidFrom”对它们进行排序,然后将所有三个传递给 SCD,SSIS 会解决问题吗?

在这种情况下,人们过去做了什么?

0 投票
0 回答
870 浏览

sql - 如何识别 SQL Server 表中的 SCD 类型 1 和类型 2 列

有什么方法可以在表中找到 SCD Type 1、Type 2 列。

没有使用 SCD 或查找,几乎所有列都发生了更新。但是听说type1很少,type2列很少。

所以建议我一个想法来识别它。

谢谢。