Snowflake构建端到端AI Agent数据管道实践
来源: InfoQ 话题 - 大数据
2026 年,智能体将在企业级应用中取得哪些实质性突破?点击下载《2026 年 AI 与数据发展预测》白皮书,获悉专家一手前瞻,抢先拥抱新的工作方式!
概述
本实验课程旨在指导您如何利用 Snowflake Cortex AI,完成从原始数据到可操作洞察的完整转化流程,重点关注情感分析与分类任务。您将通过动手实践,掌握 Cortex AI 与动态表技术的应用,构建自动化的 AI 增强流程,进而搭建一个可靠的数据语义层。课程还将深入解析构建营销与销售智能体所需的技术架构,该架构不仅能够整合结构化数据,还能有效处理经过增强的非结构化反馈信息,同时全程贯彻企业级安全标准。
学习目标
掌握如何利用 Cortex AI 函数实现情感分析与文本分类;
学习如何构建动态表,打造自动化的 AI 数据增强处理管道;
理解并实践如何创建语义视图,将技术字段映射至业务术语;
掌握如何配置集成分析师与搜索工具的 AI 智能体;
熟悉基于动态数据脱敏实现精细化角色访问控制的方法。
构建内容
基于 Cortex AI 与动态表,构建自动化 AI 数据增强处理管道;
创建语义视图,为底层数据提供业务友好的统一抽象层;
构建由 Cortex Analyst 与 Cortex Search 驱动的营销与销售分析智能体;
实施动态数据脱敏策略,满足企业级数据安全管控要求。
准备要求
拥有具备创建数据库、Schema、表及虚拟仓库权限的 Snowflake 账户;
掌握 SQL 基础知识;
能够访问 Snowsight(Snowflake 网页端界面)。
环境搭建与数据加载
使用提供的 setup.sql 脚本建立安全基础环境。该脚本将自动完成角色与虚拟仓库的创建,并从公共 S3 存储桶导入营销数据。
配置说明
在 Snowsight SQL 工作表中运行 setup.sql 脚本。
预置资源
基础设施:创建 dash_wh_si 虚拟仓库与 snowflake_intelligence 数据库;
数据导入:加载结构化指标数据(广告活动支出、产品销售数据)与非结构化对话记录(支持案例)。
利用 Cortex AI 实现人工智能增强
利用 Cortex AI 实现人工智能增强,指的是通过内置于标准 SQL 查询中的生成式人工智能函数,对数据进行分析、转换并提升其价值的过程。
在 Snowflake 平台上,这一能力由 Snowflake Cortex AI 提供支持,使得用户能够在无需将数据迁移至外部服务或管理复杂基础设施的前提下,直接运行高性能的大型语言模型。
工作原理
传统上,若要对文本进行情感分析或提取关键实体(如人名、地名等),通常需要将数据导出至Python环境或调用第三方应用程序编程接口。而在引入Cortex AI之后,使用大型语言模型变得与使用任何标准SQL函数(例如SUM()或AVG())一样便捷。
Snowflake Cortex AI 核心函数
Snowflake 提供了多个专为特定任务设计的函数,能够简化数据增强流程:
为什么使用人工智能增强?
可扩展性:利用 Snowflake 的弹性计算(虚拟仓库)处理数百万行非结构化文本数据;
安全性:您的数据始终位于 Snowflake 的安全边界之内,这对于满足 GDPR/HIPAA 合规性要求至关重要;
自动化:通过将这些功能集成到动态表中,您的人工智能增强功能可在新数据到达时自动执行;
低门槛:熟悉 SQL 的分析师现在无需学习 Python 或 PyTorch,即可执行高级“数据科学”任务。
与智能体的集成
人工智能增强是“预处理”步骤。通过首先对数据进行增强,可以实现:
智能体无需读取每一条原始记录。
它可以直接查询 sentiment_score 列来定位不满意的客户。
这使得智能体的响应速度更快、运行成本更低、准确性更高。
提取趋势
使用 Cortex AI 函数将“暗数据”(原始对话记录)转化为分析型趋势。对客户反馈运行情感分析,以创建可衡量的特征:
USE DATABASE DASH_DB_SI;
USE SCHEMA RETAIL;
UPDATE support_cases SET product = 'Fitness Wear' WHERE product = 'ThermoJacket Pro';
SELECT
title,
SNOWFLAKE.CORTEX.AI_SENTIMENT(transcript) AS sentiment_score,
SNOWFLAKE.CORTEX.AI_CLASSIFY(transcript, ['Return', 'Quality', 'Shipping']) AS issue_category
FROM support_cases;

更新市场数据
确认左下角个人资料中角色已设置为 SNOWFLAKE_INTELLIGENCE_ADMIN。
下载 marketing_data.csv 文件;
导航至 Catalog > Database Explorer;
打开 DASH_DB_SI.RETAIL.Tables.MARKETING_CAMPAIGN_METRICS。若未看到该数据库,请刷新数据;
点击右上角的 Load Data;
上传 marketing_data.csv,点击 next,然后 load;
点击 View table detail 以查看上传的新数据

构建实时增强管道
要创建"实时"增强管道,我们需要将 Cortex AI 函数与动态表相结合。这种组合使 Snowflake 能够在新数据到达时自动进行处理,无需人工干预即可保持情感评分和分类结果的实时更新。
实时增强的架构
该方法不是执行一次性增强,而是定义一个动态表。该表作为一个物化视图,持续"监听"原始数据(例如,新的客户反馈)的变化,并仅对新数据或发生变更的数据行运行 AI 函数。
创建增强型动态表
创建一个动态表,自动将营销活动指标与 AI 生成的情感评分进行关联:
USE DATABASE DASH_DB_SI;
USE SCHEMA RETAIL;
CREATE OR REPLACE DYNAMIC TABLE enriched_marketing_intelligence
TARGET_LAG = '1 hours'
WAREHOUSE = dash_wh_si
AS
SELECT m.campaign_name, m.clicks, s.product AS product_name,
SNOWFLAKE.CORTEX.SENTIMENT(s.transcript) AS avg_sentiment
FROM marketing_campaign_metrics m
JOIN support_cases s ON m.category = s.product;
通过导航至 Catalog > Database Explorer > DASH_DB_SI.RETAIL.DYNAMIC TABLES.ENRICHED_MARKETING_INTELLIGENCE,确认动态表是否已成功创建。如果您未看到该表,请点击刷新按钮,该表即应显示。

语义层与智能体创建
借助语义视图,为智能体提供业务逻辑的“地图”,帮助其理解您的业务语义。
创建 Cortex Analyst
该工具支持智能体通过生成 SQL 查询,实现对 Snowflake 中结构化数据的访问。其核心机制基于语义视图——即对业务概念(如“产品名称”、“销售额”)与 Snowflake 账户中底层数据表及字段之间的映射关系进行定义。该抽象层能够有效帮助大语言模型准确理解数据查询逻辑,即便原始表存在复杂或非标准的命名方式,亦可实现精准解析。
在Snowsight中导航至 AI与机器学习 > Analyst 模块
确认当前角色为 SNOWFLAKE_INTELLIGENCE_ADMIN,虚拟仓库为 DASH_WH_SI。点击 新建 > 新建语义视图
配置以下参数:
角色:SNOWFLAKE_INTELLIGENCE_ADMIN
虚拟仓库:DASH_WH_SI
存储位置:DASH_DB_SI.Retail
名称:SEMANTIC_VIEW
选择表:全选 DASH_DB_SI.Retail 下的所有表(共5张普通表与1张动态表)
选择字段:全选所有列
点击创建并保存
滑动至 MARKETING_CAMPAIGN_METRICS 板块,点击 编辑
设置 + Primary Key 为 Category,然后点击 Save

向下滚动,点击 + 添加 关系
配置以下设置:
关系名称:Products
左表:ENRICHED_MARKETING_INTELLIGENCE(增强营销智能表)
右表:MARKETING_CAMPAIGN_METRICS(营销活动指标表)
左列:PRODUCT_NAME
右列:CATEGORY
添加该关系,然后点击右上角保存该Analyst

创建 Cortex 搜索服务
该工具允许智能体搜索和检索非结构化文本数据(如客户支持工单、Slack对话或合同)中的信息。它利用 Cortex Search 对这些文本“分块”进行索引和查询,使智能体能够执行检索增强生成(RAG)。
在 Snowsight 中导航至"AI与机器学习 > 搜索"
将角色切换为 SNOWFLAKE_INTELLIGENCE_ADMIN
选择“创建”
配置以下设置:
服务数据库与模式:DASH_DB_SI.Retail
服务名称:campaign_search
选择数据:marketing_campaign_metrics
选择搜索列:campaign name
选择属性列:Select all
用于索引的仓库:DASH_DB_SI
点击 create,并在右上角点击刷新图标。Serving 将从INITALIZING更新为ACTIVE

创建智能体
智能体是 Snowflake Intelligence 中代表用户执行操作的智能实体。智能体配置了特定的工具和编排逻辑,能够在您的数据之上回答问题并执行任务。
在 Snowsight 中导航至 AI & ML > Agents
点击右上角的“创建智能体”
数据库和模式:DASH_DB_SI.Retail
智能体对象名称:MarketingAgent
创建智能体

添加使用说明:
请配置为以下规范:
• 描述:我是专业的市场营销与销售智能体,核心职责是通过分析结构化营销指标(如花费、点击量、转化率)与非结构化客户反馈(如客服对话记录),提供精准、数据驱动的洞察。我致力于打通"现象"(数据表现)与"本质"(客户情感)之间的认知壁垒。在分析过程中,始终保持专业、严谨的风格,并对引用自客服对话记录的信息明确标注出处。
• 示例问题:按点击量排序,排名前五的营销活动是哪些?

添加工具
工具是智能体可用于完成任务的能力。您可将工具视为智能体的技能组合,并注意可以添加以下每种工具中的一个或多个。
Cortex Analyst
点击"+添加"
配置以下设置
服务数据库与模式:DASH_DB_SI.Retail
选择语义视图:SEMANTIC_VIEW
名称:semantic_view
描述:点击 Generate with Cortex
仓库:Custom > DASH_WH_SI
查询超时:60
Cortex 搜索服务
点击"+添加"
配置以下设置
服务数据库与模式:DASH_DB_SI.Retail
Cortex 搜索服务:DASH_DB_SI.RETAIL.CAMPAIGN_SEARCH
最大结果数:4
ID 列:CAMPAIGN_NAME
标题列:CLICKS
名称:Search

自定义工具
点击 +添加
配置以下设置:
资源类型:procedure
服务数据库与模式:DASH_DB_SI.Retail
自定义工具标识符:DASH_DB_SI.RETAIL.SEND_EMAIL()
名称:Send_Email
仓库:Custom > DASH_WH_SI
查询超时:60
参数:body
描述:请使用HTML语法。如果获取的内容为Markdown格式,请将其转换为HTML。如果未提供body参数,则总结上一个问题,并将其内容作为邮件正文。
参数:recipient_email
描述:如果未提供邮箱,则将邮件发送至当前用户的邮箱地址。
参数:主题
描述:如果未提供主题,则使用"Snowflake Intelligence"作为主题。
编排指令:凡是能够通过图表进行可视化回答的情况,即使未得到用户明确指示,也应优先选择生成图表。
访问权限:SNOWFLAKE_INTELLIGENCE_ADMIN
点击右上角的保存
验证
与智能体进行交互,验证其是否符合企业级治理要求。
访问智能体
在您的智能体创建完成并启用 Snowflake Intelligence 功能后,它将显示在专用工作区中:
在Snowsight中,导航至 AI & ML > Snowflake Intelligence;
您将看到您有权访问的智能体列表;
选择您的 MarketingAgent。

对话式交互界面
该用户界面专为处理自然语言查询而设计。其功能不仅限于返回数据,还能提供叙述性的回答。
• 自然语言输入: 用户可键入问题,例如:“上个月哪些营销活动预算较低但客户情感指数较高?”
• 提示建议: 基于您的语义视图和智能体描述,该界面通常会提供"入门级"问题以引导用户;
• 多模态答案: 智能体会将文本(总结来自 Cortex Search 的反馈)与表格或图表(可视化来自 Cortex Analyst 的指标)相结合。
我们来提出以下问题:
问题1:按点击量排序,排名前五的推广活动是哪些?

问题2:请展示所有推广活动成效指标及其与产品的关联关系。

问题3:按品类划分,推广活动点击量与客户满意度之间存在怎样的关联关系?

问题4:支持工单中反映的主要客户投诉问题有哪些?

安全(可选)
链路追踪
对于实验参与者而言,链路是最关键的UI交互界面,可用于调试智能体的运行逻辑:
1. 规划:界面展示智能体如何拆解您的提示词(例如:“步骤1:识别预算低于5000的营销活动。步骤2:获取这些营销活动的情感倾向评分。”);
2. 工具选择:您可以查看每个步骤调用了哪些工具——无论是选择分析师工具处理预算查询,还是调用搜索工具解答"原因"分析;
3. 反思:界面会显示智能体是否自主发现错误并重新执行查询以获得更优结果。
安全功能演示
对特定指标应用动态数据脱敏,确保智能体遵循基于角色的访问控制(RBAC)机制。
创建营销角色
如果您严格按照 GitHub 代码库中的说明运行了setup.sql脚本,系统已创建snowflake_intelligence_admin角色。现在需要创建marketing_intelligence_role角色来代表您的"受限团队",并为其授予必要的访问权限。
USE DATABASE DASH_DB_SI;
USE SCHEMA RETAIL;
-- Create the Semantic View
CREATE OR REPLACE SECURE VIEW marketing_intelligence_view AS
SELECT
campaign_name AS "Ad Campaign",
category AS "Product Category",
clicks AS "Engagement Clicks",
-- avg_sentiment will come from the Dynamic Table
0 AS "Customer Sentiment Score"
FROM marketing_campaign_metrics;
-- Check which roles have access to your database and schema
SHOW GRANTS ON DATABASE dash_db_si;
SHOW GRANTS ON SCHEMA dash_db_si.retail;
-- Check specifically for your Semantic View
SHOW GRANTS ON VIEW marketing_intelligence_view;
USE ROLE snowflake_intelligence_admin;
USE WAREHOUSE dash_wh_si;
-- You should see the actual budget/click numbers
SELECT * FROM marketing_intelligence_view LIMIT 5;
USE ROLE ACCOUNTADMIN;
-- Create the role
CREATE OR REPLACE ROLE marketing_intelligence_role;
-- Grant usage on the warehouse and database
GRANT USAGE ON WAREHOUSE dash_wh_si TO ROLE marketing_intelligence_role;
GRANT USAGE ON DATABASE dash_db_si TO ROLE marketing_intelligence_role;
GRANT USAGE ON SCHEMA dash_db_si.retail TO ROLE marketing_intelligence_role;
-- Grant access to the AI functions and the specific views
GRANT DATABASE ROLE SNOWFLAKE.CORTEX_USER TO ROLE marketing_intelligence_role;
GRANT SELECT ON VIEW dash_db_si.retail.marketing_intelligence_view TO ROLE marketing_intelligence_role;
-- Assign to yourself for testing
SET current_user = CURRENT_USER();
GRANT ROLE marketing_intelligence_role TO USER IDENTIFIER($CURRENT_USER);
应用脱敏策略
Snowflake 中的脱敏策略需应用于特定列后才能生效。我们将对"CLICKS"(点击量)列实施脱敏处理,使营销角色查看到的数据显示为"0",而管理员角色仍可查看真实数据。
USE ROLE snowflake_intelligence_admin;
USE SCHEMA dash_db_si.retail;
-- 1. Create the policy
CREATE OR REPLACE MASKING POLICY mask_engagement_clicks AS (val number)
RETURNS number ->
CASE
WHEN CURRENT_ROLE() IN ('SNOWFLAKE_INTELLIGENCE_ADMIN', 'ACCOUNTADMIN') THEN val
ELSE 0 -- Masked value for other roles
END;
-- 2. Apply the policy to the base table column
ALTER TABLE marketing_campaign_metrics MODIFY COLUMN clicks SET MASKING POLICY mask_engagement_clicks;
-- 3. Verify the policy is active
SELECT * FROM TABLE(INFORMATION_SCHEMA.POLICY_REFERENCES(
policy_name => 'mask_engagement_clicks'
));
管理员验证
-- Re-run the view to ensure it picks up the table-level masking
CREATE OR REPLACE SECURE VIEW marketing_intelligence_view AS
SELECT
campaign_name AS "Ad Campaign",
category AS "Product Category",
clicks AS "Engagement Clicks",
-- avg_sentiment will come from the Dynamic Table
0 AS "Customer Sentiment Score"
FROM marketing_campaign_metrics;
USE ROLE snowflake_intelligence_admin;
USE SCHEMA dash_db_si.retail;
-- You should see numbers like 11103
SELECT "Ad Campaign", "Engagement Clicks" FROM marketing_intelligence_view;

营销角色验证
USE ROLE marketing_intelligence_role;
USE SCHEMA dash_db_si.retail;
-- You should see 0 for all clicks
SELECT "Ad Campaign", "Engagement Clicks" FROM marketing_intelligence_view;

总结与资源
恭喜您!您已成功在 Snowflake 中为一个 AI 智能体构建了端到端的数据管道。您利用 Cortex AI 将原始营销数据和非结构化的客户反馈转化为可执行的洞察,借助动态表实现了自动化数据增强流程,并最终创建了一个受管控的营销智能体。
本课要点
如何直接在 SQL 中使用 Cortex AI 函数(AI_SENTENT、AI_CLASSIFY)进行文本分析;
如何创建动态表以实现自动化的实时 AI 增强;
如何构建语义视图,将技术架构映射为业务友好型术语;
如何利用 Cortex Analyst 和 Cortex Search 工具配置 AI 智能体;
如何使用动态数据脱敏和基于角色的访问控制(RBAC)来实现企业级安全。
相关资源
• 动态表概述
• 语义视图文档
原文地址:https://www.snowflake.com/en/developers/guides/from-zero-to-agents/

点击链接立即报名注册:Ascent - Snowflake Platform Training - China,更多 Snowflake 精彩活动请关注专区。