基于AI的商业智能:Snowflake与Amazon Quick集成 | 人工智能
基于AI的商业智能:Snowflake与Amazon Quick集成 | 人工智能
作者:Ying Wang 和 Mary Law | 2026年6月24日
一个仪表盘显示42,000个活跃电影观看次数,另一个显示38,500次。你的聊天机器人引用了完全不同的第三个数字。数据团队花费数小时核对数字,而不是回答战略性问题,对分析结果的信任也在逐渐丧失。
这是我们在许多组织中反复看到的现象。团队在核对数字上投入的精力甚至超过了实际使用数字的精力,这悄然拖慢了决策速度,并逐步削弱了对数据的信心。
根本原因通常是最后一公里缺口:业务逻辑存在于各个单独的应用程序中,而非存在于所有应用程序都能共享的数据层。
基于Snowflake语义视图的Amazon Quick Sight数据集正好弥补了这一缺口。语义视图是Snowflake的模式对象,它将业务定义(表、关系、度量和维度)直接附加到数据上。任何下游应用程序查询该语义视图时,都会继承相同的定义,从而使AI系统和BI系统能够统一解释信息。这将带来可信的答案,并显著降低AI幻觉的风险。
你可以在Cortex Analyst中使用语义视图,并在SELECT语句中查询这些视图。你也可以在私有列表中共享语义视图。作为Snowflake原生模式对象,语义视图具备对象级访问控制。你可以像对表和视图一样授予或限制使用和查询权限,从而在SQL、BI和AI终端之间实现经过授权和治理的共享使用。你可以在Snowflake文档中了解更多关于如何编写语义SQL的内容。
在这篇文章中,你将学习如何构建Snowflake语义视图与Amazon Quick之间的端到端集成。示例数据是一家媒体公司的用户评论数据。首先,将电影评论数据从Amazon Simple Storage Service(Amazon S3)加载到Snowflake中,然后用SQL定义语义视图以添加业务含义,通过Cortex Analyst使用自然语言查询进行探索,最后生成Amazon Quick数据集和仪表盘。数据集可以手动创建,也可以使用提供的自动化脚本创建。最终,你的BI团队或AI团队可以针对经过治理的数据层提出自然语言问题,并信任每个答案都反映了相同的业务逻辑。
解决方案架构

图1:端到端架构——数据从Amazon S3流入Snowflake,语义视图在此治理业务定义,支持Cortex Analyst自然语言查询和Amazon Quick Sight仪表盘。
该集成利用了Snowflake的原生能力,将结构化的电影评论数据直接从Amazon S3摄取到数据库模式中。然后,你使用SQL定义一个Snowflake语义视图,包含表关系、维度和度量,以增强AI驱动的分析。语义模型从单独的AI或BI层迁移到核心数据平台,从而使所有工具使用相同的语义概念。
解决方案演练
本演练使用一个电影评论数据集来演示集成过程。该数据集包含三个表(MOVIES、USERS和RATINGS),你将从Amazon S3加载到Snowflake中。在这些表之上,你定义一个语义视图,将原始列映射为业务友好的度量和维度。

图2:Snowflake语义视图为原始表添加业务上下文(度量、维度和关系),为AI和BI工具创建共享的定义层。
该集成赋能BI团队使用自然语言创建交互式图表和仪表盘、构建计算字段、开发数据故事以及执行假设分析——并显著降低AI幻觉的风险。BI团队还可以将此Snowflake数据源的仪表盘纳入Amazon Quick Movies Quick Space,以支持检索增强生成(RAG)。
前提条件
开始之前,请确保你已准备好以下内容:
标题:AI驱动的商业智能:集成Snowflake与Amazon Quick Sight | 人工智能
原文:
* AWS上的Snowflake Enterprise账户。 如果没有,请注册一个Snowflake试用账户,并在AWS上选择Enterprise。
* Snowflake中的ACCOUNTADMIN角色权限。 创建语义视图和授予对象级权限需要此角色。
* AWS账户。 如果没有,请创建一个AWS账户。
* AWS区域对齐。 在两个账户中都注册AWS US West (Oregon) 或 US East (N. Virginia)。Amazon Quick Sight 在 US East (N. Virginia)、US West (Oregon)、Asia Pacific (Sydney) 和 Europe (Ireland) 可用。请参考 Amazon Quick 文档 了解最新区域可用性。
* 基本熟悉SQL和Python。 你将在Snowsight(Snowflake的Web界面)中运行SQL语句,并在AWS CloudShell中运行基于Python的脚本。
* 熟悉数据分析概念,如表、维度和度量。
时间投入: 预计60-90分钟完成本教程的端到端操作。
预估成本: 本教程使用最少的资源。AWS和Snowflake的总成本预计低于10美元。
步骤1:设置Snowflake环境并加载数据
你将使用 Snowsight(Snowflake的Web界面)导入并运行提供的Notebook。该Notebook会创建必要的计算仓库、数据库和模式,然后加载电影评论数据,因此你无需手动运行设置SQL。
导入Notebook
首先,将预先构建的教程Notebook导入到你的Snowflake环境中,以便你可以交互式地跟随操作。
- 从 GitHub仓库 的assets文件夹中下载Notebook
SF_Quick_Quickstart.ipynb。 - 在Snowsight中,选择 加号 (+)、Notebook、导入,然后选择下载的Notebook文件。
- 接受默认设置并选择 在仓库上运行。Notebook默认为
SYSTEM$STREAMLIT_NOTEBOOK_WH(系统提供的计算资源),但你可以从下拉菜单中选择不同的仓库。本教程中,Notebook会创建一个名为WORKSHOPWH的新仓库。

图3:显示如何使用加号 (+) 菜单在Snowsight中导入Notebook的示意图。

图4:显示选择 在仓库上运行 选项以及创建Notebook时计算仓库选择的示意图。
创建Notebook后,你可以从Notebook设置中选择不同的仓库。更多信息,请参阅 Notebook设置。

运行Notebook以加载数据
Snowflake Notebooks预装了常见的Python库——numpy、pandas、matplotlib 等。要添加其他包,请选择Notebook右上角的 包 下拉菜单。
按顺序运行所有单元格。Notebook会预置 WORKSHOPWH 仓库,并将电影评论数据加载到 MOVIES 数据库中。每个单元格完成后,你会在单元格下方看到确认输出。
验证设置: 运行所有单元格后,确认在 MOVIES.PUBLIC 模式下看到三个表:MOVIES、USERS 和 RATINGS。
故障排除: 如果某个单元格执行失败,请确认你正在使用 ACCOUNTADMIN 角色。你可以在Notebook或工作表的顶部设置:
USE ROLE ACCOUNTADMIN;

图5:运行所有Notebook单元格以将数据加载到 MOVIES 数据库中。
步骤2:定义语义视图并导出语义视图DDL
所有单元格成功运行后,找到 Get_SV_DDL 单元格。该单元格执行以下SQL以检索语义视图的DDL:
SELECT TO_VARCHAR(GET_DDL(
'SEMANTIC_VIEW',
'MOVIES.PUBLIC.MOVIE_ANALYTICS_SV'
));
重要提示 运行 Get_SV_DDL 单元格后,选择 下载为CSV 并将文件保存为 SF_DDL.csv。在步骤4中,你需要此文件来自动生成Amazon Quick Sight数据集。如果跳过此步骤,数据集生成器将无法解析你的模式。

图7:选择 "下载为CSV" 以保存 SF_DDL.csv——这是Quick Sight数据集生成器所必需的。
步骤3:使用Cortex Analyst探索数据
标题:利用Snowflake和Amazon Quick实现AI驱动的商业智能 | 人工智能
原文:
创建语义视图后,您可以立即开始用自然语言查询数据,无需编写SQL。此步骤可确保在连接Amazon Quick Sight之前,语义层能够正常工作。
在Snowsight中查看语义视图
- 在Snowsight中,从导航窗格选择AI & ML。
- 选择您之前创建的
SEMANTIC_QUICK_START_ROLE角色,以确认您拥有正确的权限。 - 导航到Movies数据库,然后进入Public模式,选择
MOVIES_ANALYST_SV语义视图以检查其结构。

图8:Snowsight的AI & ML部分中显示的MOVIES_ANALYST_SV语义视图。
添加验证查询
验证查询是带有确认正确答案的示例问题。它们为Cortex Analyst提供参考,当回答类似措辞的问题时,可提高准确性并减少查询延迟。在测试自然语言问题之前,至少添加一个验证查询。
示例:通过确认Cortex Analyst生成正确的SQL,验证“2023年所有电影的平均评分是多少?”当用户稍后提出类似措辞的问题时,Cortex Analyst会首先与您的验证查询进行匹配。

图9:在Snowsight中添加验证查询以提高Cortex Analyst的准确性。
测试自然语言查询
尝试以下示例问题,以确认语义视图能够正确响应:
- 显示按电影标题分组的总评分值。
- 列出有史以来最受欢迎的10部电影。

图10:Cortex Analyst使用您的语义视图定义将自然语言问题转换为SQL查询。
要直接使用SQL查询语义视图,请参阅Snowflake文档中的语义视图查询示例。
步骤4:创建Amazon Quick Sight数据集
现在您的数据已在Snowflake中完成语义定义,将其连接到Amazon Quick Sight以创建交互式仪表板。提供的Quick Sight数据集生成器脚本可将从Snowflake DDL到可查询的Quick Sight数据集的整个流程自动化。
选项1:本地运行Python包
从GitHub仓库下载完整解决方案。按照README.md中的指导,连接到Snowflake,获取语义视图定义,将定义转换为Quick数据集模式,并创建Quick数据集。这些Python脚本是交互式的,带有自引导功能。

选项2:在AWS CloudShell中运行bash脚本
作为本地运行Python脚本的替代方案,您可以直接在AWS CloudShell中运行提供的bash和Python脚本,以安全存储凭据,并交互式地创建完整配置的Quick Sight数据集(含SPICE数据导入)——全部通过命令行完成。
上传解决方案包
从GitHub仓库下载Solution_Package.zip。然后打开AWS管理控制台,启动AWS CloudShell。使用CloudShell中的Actions → Upload file选项上传Solution_Package.zip。

图11:通过操作菜单将Solution_Package.zip上传到AWS CloudShell。
运行数据集生成器工作流
按顺序执行以下步骤。
-
解压并进入目录:
bash unzip Solution_Package.zip cd Solution_Package -
上传您从Snowflake笔记本下载的
SF_DDL.csv文件(语义视图上GET_DDL的输出)。 -
创建AWS Secret。将您的Snowflake凭据(账户标识符、用户名和密码)存储为AWS Secrets Manager的Secret。该脚本在创建Quick Sight数据源时会引用此Secret。
bash python create_secret.py -
运行交互式工作流。创建Secret后,运行单个交互式脚本:
bash python run_workflow.py
交互式工作流脚本将引导你完成选择或创建 Snowflake 数据源、配置新的或现有的数据集、解析你的 SF_DDL.csv 以生成 Quick Sight 模式、通过 SPICE 摄取创建或更新数据集,以及监控摄取进度直至完成。可选地,你可以在 Quick Sight 控制台中验证摄取状态,并将数据集与其他 Quick Sight 用户共享。
第 5 步:在 Amazon Quick Sight 中构建仪表板
摄取完成后,打开 Amazon Quick Sight 控制台,导航至 数据集。选择 movie-analytics-dataset 以确认数据加载正确,然后选择 创建分析 开始构建。
通过自然语言提问进行探索
询问与你在 Cortex Analyst 中测试过的相同的自然语言问题。Quick Sight 会自动生成相应的可视化图表。尝试以下示例问题来开始:
- “显示评分最高的电影”——生成一个按平均评分排序电影条形图。
- “哪些是评论最多的前十部电影?”——显示按评论数量排序的排名列表。
- “评分在不同类型中如何分布?”——生成按类型细分的结果。
- “显示评分随时间的变化趋势”——创建一个评分活动的折线图。
- “哪些用户提交了最多的评分?”——识别出最活跃的评论者。