问题标签 [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.
sql - 如何在缓慢变化的维度和事实中跟踪合并
在 2 个或 3 个或更多维度合并以形成新维度的数据集市中。如何管理 scd 以跟踪历史上的所有合并并呈现与这些维度相关的趋势事实?
一个具体的例子是三个商店(业务 ID 8897、8965、9135)合并以创建一个新的商店业务 ID 9700。如何从事实表中获取历史销售数据以显示直到给定日期 8897、8965 和 9135是单独的商店,现在都是新的商店 9700。
此外,如果新店的营业编号不是 9700,但新店采用以前的商店营业 ID 之一怎么办。因此,新的合并商店业务 ID 不是 9700,而是 8897。
SurrogateKey -------- StoreBusinessID---------- StoreName
=============== ============== ===== ===================
=================================================== ==
teradata - 在 Informatica/Teradata 中对 CLOB 列执行 CDC
我有一个 clob 列,我需要对其执行 CDC 以根据 CLOB 数据的更改将其标记为更新/插入/不更改。我的源/目标是 teradata。我们使用的 ETL 工具是 informatica。我需要在这个 CLOB 列上执行 CDC。我的表将有一个 Key 列和这个 CLOB 列,即 2 列。
任何人都可以帮助我如何在 Teradata 或 informatica 中或同时使用两者来实现此场景。
提前致谢。
sql - 在 Postgres 中优化 SCD2 JOINS
现在,我正在为一个应用程序开发数据库模式,该应用程序需要对几组不同的数字数据进行版本控制,这些数字数据必须连接在一起才能在视图中使用。该应用程序要求我们能够“回顾”并找到这些多个变量在任意时间点的状态。
我使用子查询构建了一些视图定义,以根据任意连接条件获取各种输入,并根据time_created
字段检查版本。这不是严格的 SCD2 实现,但很接近。
您可以在此处看到与我们的架构类似(尽管已大大简化)的实现:DB Fiddle 链接。真正的模式有 6 个子查询/连接。
这对我的目的非常有效,除了当我们开始将其扩展到数千个“购买”记录时,我们会产生大量的查询成本。针对 2000 多行的查询需要大约 1 秒,这不适合我们的应用程序。
想到的第一个解决方案是创建一个表,它将“购买”连接到它的各种版本化输入表,由应用程序在创建购买时创建。这应该更有效,但需要更多的模式复杂性。
任何人都可以就如何最好地规划我的模式/查询以最适合这种设置提供建议吗?
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
python - 在 Python 中加载具有“缓慢变化的维度”的数据库表
好的,我可以使用 in 将记录加载到表to_sql
中pandas
。(不幸的是,我不能使用bcp
or bulk insert
,因为我的(SQL Server)数据库服务器是远程的)。(类型 2)尺寸变化缓慢的桌子怎么样?在 SSIS 中,我会使用SCD 向导- Python 替代方案是什么?我想避免从头开始编写 SCD 逻辑 - 希望有一个包(可能是其中一个包)可以做到这一点?简单地加载一个表是好的和花哨的,但在维度数据集市的世界中,肯定必须支持 SCD 吗?
sql - 如何在 6 类 SCD 维度表上强制执行参照完整性?
我在设计事实表和类型 6 SCD 维度表之间的主键和外键关系时遇到了困难。
维度表的定义如下:
数据外观示例:
根据我对维基百科页面的理解,我应该能够通过 PK/FK 关系强制执行参照完整性,但是主代理键在此表中不是唯一的,因此我不知道如何将事实表中的 surrogate_id 指向具有 FK 约束的 surrogate_key。
有什么办法可以绕过这个限制,还是我理解的描述有误?
顺便说一句,这是我第一次在这里提问,所以如果有任何不清楚或遗漏的地方,请告诉我!
编辑:列名是通用的虚拟名称。实际的列名更具描述性。
sql-server - SCD 类型 2,包括每次记录更改时的版本计数器
我想要一个 +1 计数器,用于我的缓慢变化的维度 DIM_Object。每次当 PMEObject 表中的记录发生更改时,我希望 DIM_Object.Versie 增加 1。
关于代码的一切工作正常,这也可以在没有任何错误的情况下运行。但是,在我有“+1 Versie”的地方,我需要它来实际计数并参考过去的行,它显示了需要将 +1 添加到的实际数字。我不知道如何正确引用旧记录。
在我放置“+1 Versie”的地方,我希望它根据之前的 DIM_Object.Versie 数量实际累积。现在它只会保持“1”,因为我猜它只在当前记录中看到 NULL。
你有什么想法?
亲切的问候,
广告
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。(请原谅任何语法错误)
ssis - 初始构建中的历史数据集
我目前面临的问题是我认为一个合乎逻辑的问题,也许是 SSIS 的一个限制。
我的数据有一组账户,在任何时候这个账户都可以归一个组织所有。这个组合控制了我的“账户”的历史维度
例如
这样做很容易,因为我只是让 SCD 做它的事情,这是我正在努力解决的初始负载。
使用 SSIS 作为我的 ETL 工具,我是否能够使用内部连接,给我三个记录,按“ValidFrom”对它们进行排序,然后将所有三个传递给 SCD,SSIS 会解决问题吗?
在这种情况下,人们过去做了什么?
sql - 如何识别 SQL Server 表中的 SCD 类型 1 和类型 2 列
有什么方法可以在表中找到 SCD Type 1、Type 2 列。
没有使用 SCD 或查找,几乎所有列都发生了更新。但是听说type1很少,type2列很少。
所以建议我一个想法来识别它。
谢谢。