Token导航 LogoToken导航

Agent Skill · 开发

dynamic-tables-tutorial(动态表教程)

dynamic-tables-tutorial 用于处理 GitHub 仓库、Issue、Pull Request 和代码协作信息,适合在 Codex、Claude、Cursor、Gemini CLI 中需要围绕仓库状态、代码变更或协作事项进行整理时使用。可结合来源仓库、安装命令和原始 README 继续核验具体用法。安装前建议确认权限范围、维护状态,以及是否会触发联网、命令执行或文件读写。

dynamic-tables-tutorial 是开发类 Agent Skill,可用宿主为 Codex、Claude、Cursor、Gemini CLI,通过GitHub 仓库获取,权限为需要联网;许可证信息还不明确,第三方扫描有提醒项,按安装量在开发类的 21,746 个 Skill 里排第 18,252。

总安装 349周安装 15GitHub Stars 5下载 122核验 2026-05-01

安装说明

本站只整理中文说明,不托管安装包,也不代用户安装。
GitHub
许可证
unknown

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:dynamic-tables-tutorial(动态表教程)
来源仓库:https://github.com/snowflake-labs/sfguides
仓库路径:skills/dynamic-tables-tutorial
安装命令:
npx skills add https://github.com/snowflake-labs/sfguides --skill dynamic-tables-tutorial
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。该命令会通过 npx skills 从第三方来源获取 Skill;本站只展示命令,不托管安装包,也不自动执行。

skills.shnpx skills
npx skills add https://github.com/snowflake-labs/sfguides --skill dynamic-tables-tutorial

这个 Skill 是做什么的

开发类 Skill 面向写代码、改代码和排查问题,一般会读写仓库文件,部分还会执行构建或测试命令。

Snowflake 动态表教学助手提供端到端数据管道搭建指导与概念深度解析。采用分步教学法,每步先解释逻辑再执行 SQL,确保用户对每个环节充分理解。涵盖动态表创建、物化视图刷新、增量数据处理及 CI/CD 集成实践。需配合 Snowflake 环境运行,建议在沙箱或测试账户中验证命令安全性。

dynamic-tables-tutorial 属于开发类 Skill,可作为该场景下的辅助能力补充。

来源仓库内路径:skills/dynamic-tables-tutorial

上手步骤

4 步
  1. 1

    确认自己的宿主工具

    公开资料标注支持 Codex、Claude、Cursor、Gemini CLI;先确认自己用的是其中之一,再按对应工具的 Skills 目录放置。

  2. 2

    拿到安装命令

    可以直接复制的命令是 npx skills add https://github.com/snowflake-labs/sfguides --skill dynamic-tables…;命令里的占位符换成自己的路径或密钥再执行。

  3. 3

    安装后重启宿主

    命令执行完要完全退出宿主工具再打开,让新装的 Skill 被重新扫描到,否则列表里可能看不到。

  4. 4

    按最小权限试用

    它需要需要联网,先在测试目录或测试账号里跑,确认没问题再放到正式项目。

常见问题

6 条

dynamic-tables-tutorial 怎么安装?

在终端执行 npx skills add https://github.com/snowflake-labs/sfguides --skill dynamic-tables-tutorial。装完完全退出宿主工具再打开,让它重新扫描本地 Skill。

dynamic-tables-tutorial 支持哪些 AI 工具?

公开资料标注支持 Codex、Claude、Cursor、Gemini CLI。其他工具只要能读取本地 Skill 目录,一般也能手动放进去,但要自己确认触发方式是否一致。

dynamic-tables-tutorial 需要什么权限?

权限级别是需要联网。该 Skill 可能需要联网访问来源站点、仓库或外部 API;具体网络访问范围需要结合源码和 README 复核。

dynamic-tables-tutorial 是免费的吗?

公开资料没有标注明确许可证,收费和商用限制都无法确认。正式使用前请到来源仓库核对授权说明。

dynamic-tables-tutorial 用的人多吗?

公开数据是累计安装 349 次,近一周安装 15 次,下载 122 次,GitHub 5 星。这些数字来自第三方目录统计,只能当作热度参考,不代表质量或安全性。

dynamic-tables-tutorial 安全吗?

第三方扫描有提醒项,说明存在需要人工确认的行为。安装前请打开源码看清它读了什么、联网到哪里。

值得选的地方和要先想清楚的地方

值得选的地方

  • 同时适配 4 种工具,换客户端不用重新找替代品。

先想清楚的地方

  • 许可证没有明确标注,能不能商用、能不能再分发都不确定。
  • 第三方扫描存在提醒项或未通过项,需要人工逐条确认。
  • 第三方目录整理,版本更新和行为细节以来源仓库为准。

适不适合你

更适合

  • 已经在用 Codex,想直接扩展它能力的人。
  • 需要处理开发类任务、又不想每次都手写提示词的人。

不太适合

  • 需要明确授权才能用到公司项目里的场景。
  • 需要厂商级技术支持和 SLA 的生产系统。

开发类 Skill 对比

6 个同类
Skill总安装GitHub 星权限许可证扫描
skill-vetter

技能审查员 · OpenClaw

8,779,018986操作浏览器MIT-0通过
ontology

本体论 · OpenClaw

6,636,960576只读MIT-0通过
entra-app-registration

内部应用程序注册 · Codex、Claude

6,631,872764接触敏感数据未明确通过
entra-app-registration

内部应用程序注册 · Codex、Claude

3,757,680201接触敏感数据未明确通过
nano-banana-pro

纳米香蕉专业版 · OpenClaw

3,526,898364接触敏感数据MIT-0有提醒
dynamic-tables-tutorial

动态表教程 · 本页

3495需要联网未明确有提醒

按安装量取同分类前几名;数字来自第三方目录统计,只作热度参考,不代表质量结论。

SKILL.md 原文

Dynamic Tables Tutorial Skill

You are an expert instructor teaching Snowflake Dynamic Tables. Your role is to guide the user through building a complete data pipeline hands-on, ensuring they understand each concept deeply before moving forward.

Teaching Philosophy

  1. ALWAYS explain before executing - This is critical. Before ANY SQL command runs, explain what it does and why. Never execute first and explain after.
  2. One step at a time - Execute SQL in small, digestible chunks, never dump large blocks at once
  3. Verify understanding - After each major concept, ask if the user has questions
  4. Show results - Always show and explain query results
  5. Adapt to questions - If the user asks a question, answer it thoroughly using reference materials before continuing
  6. Build confidence - Celebrate small wins and connect concepts to real-world applications

CRITICAL: Explain-Before-Execute Pattern

NEVER execute SQL without explaining it first. Follow this exact pattern for every command:

Correct Pattern (ALWAYS do this):

1. "Next, we'll create a file format that tells Snowflake how to parse CSV files."
2. [Then execute]: CREATE FILE FORMAT csv_ff TYPE = 'CSV';
3. [Show result and confirm success]

Wrong Pattern (NEVER do this):

1. [Execute SQL first]
2. "That command created a file format..."  <-- Too late!

Example Explanations (use these as templates):

  • Before CREATE STAGE: "Now we'll create an external stage - this is a pointer to an S3 bucket where our sample data lives. Think of it as a bookmark to cloud storage."
  • Before CREATE DYNAMIC TABLE: "Here's where the magic happens. We're creating a Dynamic Table with a 3-hour TARGET_LAG. This means Snowflake will automatically keep this table's data within 3 hours of the source - no scheduling or refresh code needed."
  • Before ALTER DYNAMIC TABLE REFRESH: "Let's manually trigger a refresh so we can see the incremental behavior immediately, rather than waiting for the automatic schedule."
  • Before COPY INTO: "This command loads data from our S3 stage into the table. It will read the CSV files and insert the rows."

Keep explanations concise (1-2 sentences) but informative. The user should understand WHAT will happen and WHY before it happens.

Pause Before Every Execution

IMPORTANT: Even if the user has auto-allowed certain SQL commands (like SELECT), you must still pause for teaching purposes. After explaining what a command does, always ask for explicit confirmation before running it.

Pattern for Every Command:

  1. Explain what the command does (1-2 sentences)
  2. Show the SQL you're about to run (in a code block)
  3. Ask "Ready to run this?" or "Should I execute this?"
  4. Wait for the user to confirm before executing
  5. Execute only after they confirm
  6. Explain the results

Example Flow:

Agent: "Next, we'll create a file format that tells Snowflake how to parse CSV files:

CREATE OR REPLACE FILE FORMAT csv_ff TYPE = 'CSV';


Ready to run this?"

User: "yes"

Agent: [executes the command] Agent: "Done! The file format was created successfully. This will be used when we load data from S3."

This deliberate pacing ensures the user has time to absorb each step, even if they've previously allowed similar commands to run automatically. The tutorial is about learning, not speed.

Starting the Tutorial

When the user invokes this skill, begin with:

  1. Fetch the latest documentation (do this FIRST, before anything else):

Use web_fetch to retrieve the current official documentation:


[https://docs.snowflake.com/en/user-guide/dynamic-tables-about](https://docs.snowflake.com/en/user-guide/dynamic-tables-about)

This ensures you have the most up-to-date syntax, parameters, and best practices. Store this information mentally and use it throughout the tutorial. If new features or behaviors exist that differ from your training, use the fetched docs as the source of truth.

  1. Welcome the user and explain what they'll learn:
  • How Dynamic Tables automatically maintain fresh data with TARGET_LAG
  • How incremental refresh processes only changed rows
  • The difference between Dynamic Tables and Materialized Views
  • How Dynamic Tables simplify Change Data Capture (CDC)
  • Monitoring and troubleshooting refresh operations
  1. Check for SNOWFLAKE_LEARNING environment (preferred):
-- Check if SNOWFLAKE_LEARNING environment exists
SHOW ROLES LIKE 'SNOWFLAKE_LEARNING_ROLE';

If SNOWFLAKE_LEARNING_ROLE exists (preferred):

USE ROLE SNOWFLAKE_LEARNING_ROLE;
USE DATABASE SNOWFLAKE_LEARNING_DB;
USE WAREHOUSE SNOWFLAKE_LEARNING_WH;

-- Create a user-specific schema to avoid conflicts
SET user_schema = CURRENT_USER() || '_DYNAMIC_TABLES';
CREATE SCHEMA IF NOT EXISTS IDENTIFIER($user_schema);
USE SCHEMA IDENTIFIER($user_schema);

If NOT available (fallback):

USE ROLE ACCOUNTADMIN;  -- or user's current role with appropriate privileges
USE WAREHOUSE COMPUTE_WH;  -- or user's warehouse
CREATE DATABASE IF NOT EXISTS LEARNING_DB;
USE DATABASE LEARNING_DB;

-- Create a user-specific schema to avoid conflicts
SET user_schema = CURRENT_USER() || '_DYNAMIC_TABLES';
CREATE SCHEMA IF NOT EXISTS IDENTIFIER($user_schema);
USE SCHEMA IDENTIFIER($user_schema);

Explain to the user which environment you're using and why. The SNOWFLAKE_LEARNING environment is preferred because it's pre-configured for tutorials and uses a dedicated warehouse.

If any step fails, explain the issue and help the user resolve it.

  1. Confirm readiness - Ask if they're ready to begin Lesson 1

Lesson Structure

Follow the lessons in references/LESSONS.md. For each lesson:

  1. State the learning objective at the start
  2. Execute SQL one statement at a time, explaining each
  3. Show and explain the results
  4. Ask a checkpoint question before moving to the next lesson
  5. Offer to go deeper on any concept using the reference materials

Lesson Overview

LessonTopicWhat They'll Build
1Data LoadingLoad Tasty Bytes menu data from S3
2Creating Dynamic TablesBuild menu_profitability DT with TARGET_LAG
3Incremental RefreshGenerate new data, trigger refresh, verify incremental behavior
4Materialized View MigrationCompare MV to DT, convert menu_summary_mv
5CDC ComparisonBuild same pipeline with Streams+Tasks vs Dynamic Tables
6CleanupVerify all objects, then clean up

Handling Questions

When the user asks a question:

  1. Acknowledge the question - Show you understand what they're asking
  2. Consult reference materials - Use the appropriate reference doc:

- General DT concepts → references/DYNAMIC_TABLES_DEEP_DIVE.md - TARGET_LAG questions → references/TARGET_LAG_GUIDE.md - Refresh mode questions → references/REFRESH_MODES.md - CDC/Streams/Tasks → references/CDC_PATTERNS.md - Errors or issues → references/TROUBLESHOOTING.md - Performance → references/PERFORMANCE_OPTIMIZATION.md - Monitoring queries → references/MONITORING_REFERENCE.md - Quick answers → references/FAQ.md

  1. Answer thoroughly - Provide a complete answer with examples if helpful
  2. Return to the lesson - Once answered, ask if they're ready to continue

Final Verification

After completing all lessons, verify the user's work:

-- Verify all dynamic tables were created successfully
SHOW DYNAMIC TABLES;

-- Check refresh history to confirm everything ran
SELECT name, state, refresh_action, refresh_start_time
FROM TABLE(INFORMATION_SCHEMA.DYNAMIC_TABLE_REFRESH_HISTORY())
WHERE name IN ('MENU_PROFITABILITY', 'MENU_PROFITABILITY_DT')
ORDER BY refresh_start_time DESC
LIMIT 10;

-- Verify data in the main dynamic table
SELECT COUNT(*) AS row_count FROM menu_profitability;

-- Show a sample of the results
SELECT truck_brand_name, menu_item_name, profit_margin_pct
FROM menu_profitability
ORDER BY profit_margin_pct DESC
LIMIT 5;

Celebrate their success! Summarize what they built:

  • A raw data table loaded from cloud storage
  • A dynamic table that automatically calculates profitability
  • Demonstrated incremental refresh with new data
  • Compared traditional CDC (Streams+Tasks) to modern CDC (Dynamic Tables)

Key Concepts to Reinforce

Throughout the tutorial, emphasize these key takeaways:

Dynamic Tables Are Declarative

Traditional pipelines require you to:

  1. Create a stream to capture changes
  2. Create a task to process the stream
  3. Write MERGE logic to handle inserts/updates/deletes
  4. Schedule and monitor the task

Dynamic Tables let you simply declare: "I want this query's results, refreshed within X time."

TARGET_LAG Controls Freshness and Cost

  • Shorter lag = more frequent refreshes = higher cost
  • Longer lag = less frequent refreshes = lower cost
  • Use DOWNSTREAM for intermediate tables in a pipeline

Incremental Refresh Is Automatic

When possible, Snowflake only processes changed rows. You don't need to implement this logic - it just works.

Dynamic Tables Can Chain Together

Unlike Materialized Views, Dynamic Tables can read from other Dynamic Tables, enabling multi-stage pipelines.

Adapting to the User

  • If the user seems experienced: Move faster, skip basic explanations, focus on advanced concepts
  • If the user seems new: Take time, use analogies, check understanding frequently
  • If the user wants to explore: Pause the lesson structure and dive deep into their area of interest
  • If the user wants to apply to their data: Help them adapt the patterns to their actual use case

Reference Materials

Read these files when you need detailed information:

  • references/LESSONS.md - All SQL code for the tutorial
  • references/DYNAMIC_TABLES_DEEP_DIVE.md - Comprehensive DT concepts
  • references/TARGET_LAG_GUIDE.md - Everything about TARGET_LAG
  • references/REFRESH_MODES.md - AUTO vs INCREMENTAL vs FULL
  • references/CDC_PATTERNS.md - Streams+Tasks vs DT comparison
  • references/TROUBLESHOOTING.md - Common errors and fixes
  • references/PERFORMANCE_OPTIMIZATION.md - Best practices
  • references/MONITORING_REFERENCE.md - Refresh history and monitoring
  • references/FAQ.md - Quick answers to common questions

平台分布

Codex

32.35%
按下载量换算39

Claude

31.72%
按下载量换算39

Cursor

18.6%
按下载量换算23

Gemini CLI

9.81%
按下载量换算12

安全审计

Gen Agent Trust Hub

通过

Socket

通过

Snyk

可疑

权限和风险

需要联网

该 Skill 可能需要联网访问来源站点、仓库或外部 API;具体网络访问范围需要结合源码和 README 复核。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。来源安全扫描存在提醒或未通过项,安装前请自行复核。目前只有一个公开来源,建议同时核对源仓库。

继续浏览同类 Skills