阅读材料: 第14部分. Silver layer:客户、账户、卡片、支付

模块「第14部分. Silver layer:客户、账户、卡片、支付」中第 1 / 5 节课
您正在未登录状态下查看课程。 请登录,以保存进度并参加测试。

第 14 部分。Silver 层:客户、账户、卡片、支付

Silver 层创建稳定的中间实体。这不是面向消费者的最终数据集市,但也不再是原始数据源。Silver 必须是可复用的:Customer 360、风险数据集市和信用数据集市可以读取相同的中间模型,而无需复制逻辑。

Silver 层包含什么

在教学示例中,Silver 由 intermediate 模型表示:

  • int_customer_balances
  • int_customer_card_activity

它们将账户和卡片交易聚合到客户级别的信号,然后由 mart_customer_360 使用。

Silver 层规则

  • 不在超出必要范围之外暴露直接 PII;
  • 保持清晰的粒度;
  • 不混合不相关的领域;
  • 如果模型是可复用的,则不做产品决策;
  • 使用 ref(),以便在 dbt 中读取血缘关系。

如果 int_customer_card_activity 计算 risk_event_count_7d,规范必须解释什么是 7 天以及风险标志从何而来。如果没有这一点,模型看起来像 SQL,但不是一个稳定的数据资产。

验收事实

对于 Silver 层:

  • 输入模型只能通过 ref() 读取;
  • 客户级别的模型每个 customer_id 有一行;
  • 金额不会无故变为 null;
  • 风险计数器有清晰的窗口;
  • PII 不会在没有策略的情况下泄漏到可复用层。

Qwen 查询

Сравни intermediate-модели со спецификациями и требованиями mart.
Покажи grain каждой intermediate-модели, входные `ref()`, переиспользуемые поля
и разрывы проверки.
Файлы не меняй.

最小输出

构建一个表格:

模型粒度输入使用于验证差距
int_customer_balancescustomer_idstg_accountsmart_customer_360
int_customer_card_activitycustomer_idstg_card_transactionsmart_customer_360

空的验证差距表示模型有足够的描述和可验证性。

读者解析

Silver 层往往成为项目要么成熟、要么陷入随机变换的地方。在这里,源数据已被转换为清晰的类型,但尚未成为产品。因此,会出现「略微改进」数据的诱惑:将客户与账户连接起来,删除奇怪的行,重命名风险,计算方便的指标。如果这些决策没有被记录下来,

silver 就变成了一个隐藏的业务层。

一个好的 Silver 层构建稳定的实体:客户、账户、交易、信贷、同意书。它消除了技术上的混乱,但并不赋予自己改变产品承诺的权利。例如,可以将 customer_id 统一为一个名称,并为进一步的聚合准备余额。在没有规范的情况下,不能决定客户仅在余额为正时才被视为活跃,因为这会影响消费者。

Silver 还作为一层复用层非常有用。如果每个 gold 数据集市都自己清理客户和账户,分歧将不可避免地出现。一个数据集市会以不同方式处理 null,另一个会不同地过滤已关闭的账户,第三个会不同地计算逾期。共享的 Silver 层使这些决策可见并减少重复,但前提是它本身保持清晰和可验证。

读者不应以模型数量来衡量 Silver。有时一个精心设计的 intermediate 模型比三个名字漂亮但混乱的层更好。标准很简单:该层是否有助于表达可重复的实体并证明其质量?如果答案是否定的,那么该模型很可能是为了架构对称性而创建的,而不是为了读者或数据消费者。

实践

为示例中的两个 intermediate 模型构建粒度/输入/使用于的表格。 如果模型有多个用途,请在更改 SQL 之前用文字描述区分用途。

常见错误

将 Silver 变成「方便 CTE 的垃圾场」。如果模型无法用一个粒度和一个用途来描述,那么它就太宽泛了。

自检问题

  1. 为什么 Silver 不应该绑定到单一产品?
  2. 哪些 staging 的字段在没有任何策略的情况下不能向下传递?
  3. ref() 如何帮助审查者?
我的笔记
0 / 10000

笔记保存在当前浏览器中。在其他设备上将不会显示。

课程菜单

课程

SDD Data. 使用 Qwen Code 和 dbt 构建银行数据平台
进度 0 / 110