基于AI的商业智能:Snowflake与Amazon Quick集成 | 人工智能

AWS ML Blog 2026-06-25T15:20:29.613888

基于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团队可以针对经过治理的数据层提出自然语言问题,并信任每个答案都反映了相同的业务逻辑。

解决方案架构

端到端架构:数据从Amazon S3流入Snowflake,语义视图在此驱动Cortex Analyst和Amazon Quick Sight

图1:端到端架构——数据从Amazon S3流入Snowflake,语义视图在此治理业务定义,支持Cortex Analyst自然语言查询和Amazon Quick Sight仪表盘。

该集成利用了Snowflake的原生能力,将结构化的电影评论数据直接从Amazon S3摄取到数据库模式中。然后,你使用SQL定义一个Snowflake语义视图,包含表关系、维度和度量,以增强AI驱动的分析。语义模型从单独的AI或BI层迁移到核心数据平台,从而使所有工具使用相同的语义概念。

解决方案演练

本演练使用一个电影评论数据集来演示集成过程。该数据集包含三个表(MOVIESUSERSRATINGS),你将从Amazon S3加载到Snowflake中。在这些表之上,你定义一个语义视图,将原始列映射为业务友好的度量和维度。

Snowflake语义视图位于原始表之上,为AI和BI工具提供共享的度量、维度和关系定义层

图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环境中,以便你可以交互式地跟随操作。

  1. GitHub仓库 的assets文件夹中下载Notebook SF_Quick_Quickstart.ipynb
  2. 在Snowsight中,选择 加号 (+)Notebook导入,然后选择下载的Notebook文件。
  3. 接受默认设置并选择 在仓库上运行。Notebook默认为 SYSTEM$STREAMLIT_NOTEBOOK_WH(系统提供的计算资源),但你可以从下拉菜单中选择不同的仓库。本教程中,Notebook会创建一个名为 WORKSHOPWH 的新仓库。

显示Notebook导入选项的Snowsight +菜单

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

选择了 "在仓库上运行 "选项的Snowsight Notebook创建对话框

图4:显示选择 在仓库上运行 选项以及创建Notebook时计算仓库选择的示意图。

创建Notebook后,你可以从Notebook设置中选择不同的仓库。更多信息,请参阅 Notebook设置

显示仓库选择的Snowsight Notebook设置面板

运行Notebook以加载数据

Snowflake Notebooks预装了常见的Python库——numpypandasmatplotlib 等。要添加其他包,请选择Notebook右上角的 下拉菜单。

按顺序运行所有单元格。Notebook会预置 WORKSHOPWH 仓库,并将电影评论数据加载到 MOVIES 数据库中。每个单元格完成后,你会在单元格下方看到确认输出。

验证设置: 运行所有单元格后,确认在 MOVIES.PUBLIC 模式下看到三个表:MOVIESUSERSRATINGS

故障排除: 如果某个单元格执行失败,请确认你正在使用 ACCOUNTADMIN 角色。你可以在Notebook或工作表的顶部设置:

USE ROLE ACCOUNTADMIN;

显示已完成的单元格并将数据加载到MOVIES数据库中的Snowsight Notebook

图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数据集。如果跳过此步骤,数据集生成器将无法解析你的模式。

显示SF_DDL.csv输出的 "下载为CSV "选项的Snowsight单元格

图7:选择 "下载为CSV" 以保存 SF_DDL.csv——这是Quick Sight数据集生成器所必需的。

步骤3:使用Cortex Analyst探索数据

标题:利用Snowflake和Amazon Quick实现AI驱动的商业智能 | 人工智能

原文:
创建语义视图后,您可以立即开始用自然语言查询数据,无需编写SQL。此步骤可确保在连接Amazon Quick Sight之前,语义层能够正常工作。

在Snowsight中查看语义视图

  1. 在Snowsight中,从导航窗格选择AI & ML
  2. 选择您之前创建的SEMANTIC_QUICK_START_ROLE角色,以确认您拥有正确的权限。
  3. 导航到Movies数据库,然后进入Public模式,选择MOVIES_ANALYST_SV语义视图以检查其结构。

Snowsight AI and ML section showing the MOVIES_ANALYST_SV semantic view structure

图8:Snowsight的AI & ML部分中显示的MOVIES_ANALYST_SV语义视图。

添加验证查询

验证查询是带有确认正确答案的示例问题。它们为Cortex Analyst提供参考,当回答类似措辞的问题时,可提高准确性并减少查询延迟。在测试自然语言问题之前,至少添加一个验证查询。

示例:通过确认Cortex Analyst生成正确的SQL,验证“2023年所有电影的平均评分是多少?”当用户稍后提出类似措辞的问题时,Cortex Analyst会首先与您的验证查询进行匹配。

Snowsight verified queries panel for Cortex Analyst showing example questions and approved SQL

图9:在Snowsight中添加验证查询以提高Cortex Analyst的准确性。

测试自然语言查询

尝试以下示例问题,以确认语义视图能够正确响应:

Cortex Analyst panel translating a natural-language question into the resulting SQL query

图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脚本是交互式的,带有自引导功能。

Local Python package directory structure for the full Quick Sight Dataset Generator solution

选项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

AWS CloudShell Actions menu with the Upload file option highlighted

图11:通过操作菜单将Solution_Package.zip上传到AWS CloudShell。

运行数据集生成器工作流

按顺序执行以下步骤。

  1. 解压并进入目录:

    bash unzip Solution_Package.zip cd Solution_Package

  2. 上传您从Snowflake笔记本下载的SF_DDL.csv文件(语义视图上GET_DDL的输出)。

  3. 创建AWS Secret。将您的Snowflake凭据(账户标识符、用户名和密码)存储为AWS Secrets Manager的Secret。该脚本在创建Quick Sight数据源时会引用此Secret。

    bash python create_secret.py

  4. 运行交互式工作流。创建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 会自动生成相应的可视化图表。尝试以下示例问题来开始:

查看原文