问题标签 [data-vault]
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.
database-design - 涉及多个源表的 Kimball 模型中的历史负载 SCD2
我热衷于找到一个有效的设计解决方案,Ralph Kimball 的模型建议处理 SCD 类型 2 维度的历史负载,涉及多个源表,而不使用 PIT 表。
源数据由许多启用 CDC 的表组成,其中有几个日内更改。目标数据仓库预计每天都有粮食。
在过去,我使用过时间点 (PIT) 表,它使用维度构建所涉及的源表的业务键来构建日终快照。当涉及的源表既宽又深时,这极大地优化了维度加载能力。我的组织更喜欢使用 Kimball 的方法,因为 PIT 是一个 DV 概念,因此它是脱离桌面的。
请分享替代方法。您可能使用过的一些通用示例或任何有用的提示将很高兴听到。
绝对我理解 PIT 可以很好地加载初始加载的历史数据(不幸的是,Kimball 似乎没有提到它,因此解决方案设计者并不热衷于允许使用 PIT 加载)
例如,我必须创建一个具有属性 Member_Status 的成员维度,该属性是根据成员在给定时间点持有的所有帐户派生的。
举一个非常简单的例子,假设:在给定日期 D1 一个成员有 1 个打开和 1 个关闭的帐户 成员状态是:第二天活动 D2,他有 2 个关闭的帐户,成员状态是:第二天退出 D3,他打开另一个账号,会员状态为:再次活跃
现在必须回顾性加载整个内容(例如,过去 10 年的数据作为 SCD2) 我可以在其中看到 2 个选项
- 从开始日期开始每天循环运行负载(不是有效的解决方案)
- 创建一个 PIT(不允许:()
还有其他选择吗?
“源数据由许多启用 CDC 的表组成,其中有几个日内变化。目标数据仓库预计会有一个每日粒度。”只是为了解释这一点
说有一个member(实体)和account(实体) Member:Account的关系是1:Many
在一天中,成员可以进行多次更新(例如更正姓名、出生日期、地址等)对于帐户来说也是如此,CDC 将捕获所有这些更改,而对于目标 DWH,只需要捕获一天结束的快照。实现它并不是一个很大的障碍,我的主要问题围绕初始负载和处理它的有效策略。
data-warehouse - 在 Data Vault DWH 中存储字典值
假设我有一些实体,例如Order
. 它可以具有状态属性,让我们用代码N
来说明“新订单”的含义。还有另一个字典表包含所有这些订单状态值。如何为其设计数据库结构?我应该把什么放到卫星上?状态码?描述?或两者?
salesforce - 在 Data Vault 2.0 方法中建模 Salesforce 多态关系
有时 Salesforce 对象与其他 Salesforce 对象具有多态关系。在多态关系中,关系的引用对象可以是几种不同类型的对象之一。这些多态关系是使用 Salesforce Object 中包含的多态字段定义的。多态字段是相关对象可能是几种不同类型对象之一的字段。例如,Who
任务的关系字段可以是联系人或潜在客户。同样,What
任务的关系字段可以是 Salesforce 中的任何非人员对象。
在 Data Vault 方法中对这些 Salesforce 多态关系建模的最佳方法是什么?
sql - 如何从包含 json 查询的表中构建多活动卫星表?
我有一张如下表:
我想根据 Data Vault 原则有一个卫星表,如下所示:
到目前为止,我只知道如何选择 json 查询的内容。例如,如果我运行
JSON_VALUE([openingtimes_json], '$.openingTimes[0}.applicable_days')
我的第一条记录是 63 分。
data-modeling - 数据保险库建模
假设以下数据架构:源系统 -> 数据仓库(使用数据保险库模型)-> 数据虚拟化 -> 消费层(例如,BI 工具和报告)
我读到,对于数据保险库,关键原则之一是加载原始数据并保存来自所有来源的记录——因此无需出于可追溯性/审计目的进行重复数据删除或转换。如果这是真的,那么转变会发生在哪里?
data-vault - Data Vault 将多个集线器连接成链接,是使用一个链接的最佳方式,还是拆分链接始终是 Data Vault 中的好方法?
我正在将现有的星型模式模型转换为数据库。主表包含来自 4 个不同表的 4 个外键。在数据库建模技术中,建模此类事物的最佳实践是什么:
- 使用一个链接将 4 个散列 FK 表连接到主表的集线器?
- 还是使用 4 个链接,每个链接都是主表和自身之间的关系?
我是数据保险库的新手,当我了解它时我没有经历过这样的事情。
database-design - Data Vault 2 我们可以在没有定义主键的情况下构建卫星吗?
我正在构建一个简单的数据保险库模型以将其上传到雪花中。我在所有卫星中都遇到了某种问题。我知道在 sat 中添加 auto incement 代理键既不错误也不实用,这意味着我们可以添加它,但它不会代表整个设计的任何内容。每个 SAT 都包含一个来自相关 HUB 并表示为 FK 的哈希键。
- 我认为选择
LOAD_DATE
为 PK 会导致重复的 PK 值。 - 在 HUB 与其 SAT 之间存在一对多关系的同一个表中添加 FK 作为 PK 是不合逻辑的。
我们可以跳过在 DV2.0 中向 SAT 添加主键的部分吗?
sql - 如果我们试图将数据拟合到数据保险库模型中,如何在雪花合并语句中的 WHEN MATCHED THEN 上插入一行?
我正在将数据加载到雪花数据保险库建模数据库中。当行的字段已更新时,模型的工作方式如下:
- 将此行的加载结束日期设置为等于
current_timestamp()
。 - 将具有新值的同一行再次添加到模型中。
我merge
在 JavaScript 过程中使用来自 Snowflake 的命令来执行此操作:
问题出在 内WHEN MATCHED THEN
,我需要用它的新值对同一行进行插入,但有额外的条件说:
而且我真的知道我们不能在WHEN MATCHED THEN
语句中执行插入查询。
我们怎样才能找到转机呢?
database - Data Vault 2.0 - 什么是多活动卫星?
我的问题是关于数据建模的Data Vault 2.0 方法。
--------什么是多源卫星?--------
我在任何书籍或网站中都找不到一个非常基本的定义和一个非常基本的例子。