动态表

Snowflake 中的数据管道自动化

Emily Melhuish

Technical Curriculum Developer, Snowflake

动态表 vs Streams 与 Tasks

动态表:

截图 2026-05-11 11:14:23 am.png

  • 用 SQL 声明式语句简化数据管道转换
  • 自动刷新流程
  • Snowflake 负责检测、调度与合并

Streams 与 tasks:

截图 2026-05-11 11:14:13 am.png

1 * Snowflake 学习资料
Snowflake 中的数据管道自动化

什么是动态表?

声明式流水线自动化

  • SELECT 查询定义内容——描述结果,由 Snowflake 管理刷新
  • 无需配置 stream、无需调度 task
CREATE DYNAMIC TABLE logistics.delivery_summary
  TARGET_LAG = '1 hour'
  WAREHOUSE = harbr_wh
AS
  SELECT region, COUNT(*) AS shipments,
         AVG(delivery_days) AS avg_days
  FROM logistics.shipments GROUP BY region;
Snowflake 中的数据管道自动化

TARGET_LAG:降低滞后

您与 Snowflake 的新鲜度约定

TARGET_LAG 值 作用
'5 minutes' 表最多滞后 5 分钟——高频刷新
'1 hour' 刷新更少——计算消耗更低
DOWNSTREAM 从下游依赖推断滞后——适合链式表
Snowflake 中的数据管道自动化

全量 vs 增量刷新

增量刷新

  • 精确跟踪变更的源行
  • 仅刷新受影响的行——大规模更快、更省
-- 适合增量: 
SELECT region, COUNT(*) AS shipments
FROM logistics.shipments 
GROUP BY region;

全量刷新

  • 重新处理整个查询
  • 某些聚合与集合操作必须使用
Snowflake 中的数据管道自动化

串联动态表

管道图——delivery_events(源)→ cleaned_events(target_lag = DOWNSTREAM)→ delivery_summary(target_lag = 1 HOUR)

  • 每个转换都是独立的动态表,拥有各自的查询
  • 刷新会沿链路自动传播
  • DOWNSTREAM 由下游需求决定滞后——避免过度刷新
Snowflake 中的数据管道自动化

动态表 vs Streams 与 Tasks

动态表: 声明式

  • 描述结果;Snowflake 负责刷新,易于管理
  • 最适用于分析/报表层
-- 向 Snowflake 声明结果 
CREATE DYNAMIC TABLE logistics.summary
  TARGET_LAG = '1 hour' 
  WAREHOUSE = harbr_wh
AS SELECT region, COUNT(*) 
FROM shipments 
GROUP BY 1;

Streams + Tasks: 命令式

  • 控制运行内容与时间
  • 适合分支的复杂自定义逻辑与运维流水线
-- 您控制每一步
CREATE TASK process_events 
  SCHEDULE = '5 MINUTE'
  WHEN SYSTEM$STREAM_HAS_DATA
  ('events_stream')
AS CALL logistics.process_new_events();
Snowflake 中的数据管道自动化

DYNAMIC_TABLE_REFRESH_HISTORY

SELECT name, state, refresh_start_time, refresh_end_time
FROM TABLE (
    INFORMATION_SCHEMA.DYNAMIC_TABLE_REFRESH_HISTORY (
      NAME_PREFIX => 'HARBR_DB.DELIVERY_SUMMARY.', ERROR_ONLY => TRUE
    )
  )
ORDER BY name, data_timestamp;
NAME TRIGGER STATE START END
DELIVERY_SUMMARY SCHEDULED SUCCEEDED 2026-03-01 05:00:00 2024-03-01 05:00:08
DELIVERY_SUMMARY SCHEDULED FAILED 2026-03-01 04:00:00 2024-03-01 04:00:03
Snowflake 中的数据管道自动化

Passons à la pratique !

Snowflake 中的数据管道自动化

Preparing Video For Download...