Expedition。免费点播。

面向从业者的技术专场,面向领导者的业务成果。

动态表

Snowflake 动态表

定义所需的数据状态,Snowflake 将管理增量更新和编排 — 无需手动编码,也无需第三方工具。

dynamic tables
Medium 博客

使用动态表物化加速 dbt 中的增量管道

概述

从构建、编排 到优化

动态表能够包揽数据管道中的棘手环节,从而让您的团队可以专注于业务洞察。

speed

实施与测试,简单易行

通过 Snowflake CoCo,用自然语言来构建管道、排查问题,同时也可以只用一条 SQL 语句来进行定义转换。原生支持 DAG(有向无环图)可观测性,无需第三方工具。

user icon

管道编排,化繁为简

用 TARGET_LAG 设定数据新鲜度,Snowflake 会自动推断依赖关系,并按您的目标安排刷新。您无需手动搭建 DAG,更无需编排工具。

easy-consolidate

运行维护,经济高效

增量刷新只处理有变更的数据,避免整表重新计算。 能够根据不可变性锁定稳定数据,按照自动查询模式按照您的服务等级协议(SLA)进行优化。

深受以下企业的数据团队信赖

主要特点

强大功能,内置其中

构建自主式数据管道所需的一切,尽在于此

risk management

Snowflake CoCo

面向数据工程的编码智能体,内置技能与工作流,用自然语言即可构建、排查和优化动态表。支持在 Snowflake Workspaces 和 CLI(命令行界面)中运行。

regulatory reporting

动态表中的 Cortex AI 函数

用自然语言即可构建、排查和优化动态表的 AI 智能体。支持在 Snowflake Workspaces 和 CLI 中运行。

customer 360

具有不可变性的成本控制

锁定动态表中的部分数据,刷新时不再重新计算。重新计算减少了,刷新成本也会显著降低。

risk management

动态 Apache Iceberg™ 表

功能强大的自主式管道,现已支持您的 Iceberg 湖仓。

Code browser icon

自定义增量处理

精细掌控增量刷新处理数据的方式。详情敬请期待。

Refresh icon

自适应刷新模式

智能选择刷新模式,并根据工作负载自动优化。详情敬请期待。

应用场景

专为您的数据管道需求而生

从分析管道到实时变更数据处理,再到湖仓工作流, 皆可胜任。

分析管道

变更数据处理

湖仓管道

分析管道

对于数据转换与建模进行分析,无需第三方转换或编排工具。
 

  • 会写 SQL,就能上手
  • 以不可变性管控成本
  • 智能体辅助编写与故障排查
speed e2e

变更数据处理

持续将摄取的变更数据转换为随时可用的数据集,并随上游数据的变化保持同步。

同时进行自动化增量更新,让数据新鲜度保持在一分钟以内。

data processing diagram

湖仓管道

让开放式湖仓中的管道开发更简单。 
 

  • 一条 SQL 查询即可定义管道,简单易用
  • 自主管理编排与增量刷新计划
  • 节省开发时间,交付稳定可靠的转换管道
lakehouse pipelines

开始使用

与 Snowflake 一起 迈出下一步开始使用

以 $40 免费额度²开始入门试用²

  • 加速端到端开发
  • 默认上下文感知语境
  • 开放、可扩展且可投入生产

动态表

常见问题 问题

动态表是一种在 Snowflake 中构建数据管道的声明式方式。您不必手动编写和调度转换逻辑,只需用 SQL 查询定义想要的结果,Snowflake 便会自动完成刷新,同时也无需管道编排。

传统 ETL 管道需要自行实现编排、调度和增量逻辑。动态表只需用一条 SQL 定义就能化繁为简:由 Snowflake 判断哪些数据有变更,只刷新需要更新的部分。

动态表将会采用用户定义的目标延迟,即从源数据发生变更到变更体现在表中,可接受的时间上限。 Snowflake 会持续监控上游数据,并自动触发增量刷新,使延迟保持在这一范围内。

目标延迟决定了数据需要多新鲜度。例如, TARGET_LAG = '1 minute' 表示上游发生变更后, Snowflake 会在一分钟内刷新该表。您也可以将其设为 DOWNSTREAM,让 Snowflake 根据依赖该表的下游对象来优化延迟。

用 SHOW DYNAMIC TABLES 查看状态和延迟,并查询 Information Schema 中的 DYNAMIC_TABLE_REFRESH_HISTORY() 以获取刷新日志。Snowsight 还提供管道的可视化 DAG 视图,故障、瓶颈以及卡在 UPSTREAM_FAILED 状态的表都一目了然。

dbt 与动态表相辅相成:dbt 擅长转换建模、测试、文档和血缘追踪,而动态表则提供自动化的增量刷新引擎,无需手动调度即可让数据保持及时更新。

从 dbt 1.12 版本起,您可以直接在 dbt 项目中将动态表用作原生物化类型。这样一来便能两全其美:在 Snowflake 自动化增量处理的基础上,叠加 dbt 的开发工作流、测试与文档能力。只需在模型配置中设置 materialized='dynamic_table' 及所需的 target_lag,dbt 就会为您创建并管理动态表,并且对于性能测试来说也很方便。

因此,对于已经在用 dbt 的团队来说,动态表是在 Snowflake 上构建增量管道的推荐方式。