Amazon QuickSuite:自然语言数据分析实战指南

手把手教你用 Amazon QuickSuite 连接数据库、构建仪表板,并用自然语言查询数据。

zhuermu··15 分钟
Amazon QuickSuiteData AnalysisNL2SQLAWSBINatural Language

在数字化转型的时代,企业已经积累了海量的业务数据。传统的数据分析通常需要专业工程师编写复杂的 SQL 查询——这成为了一个瓶颈,限制了团队提取洞察的速度。Amazon QuickSuite 是 AWS 推出的 AI 驱动数字工作空间,它将 Amazon QuickSight 的 BI 能力整合到一个统一的平台中,实现数据接入、可视化和自然语言问答。

本文将完整走一遍整个流程:连接数据库(通过公网或私有 VPC)、创建数据集和仪表板、设置用于自然语言查询的主题(Topic),并将所有内容汇聚到一个协作空间(Space)中。

背景

Amazon QuickSuite 主要解决三大核心需求:

  • 统一数据接入——无论数据库、数据仓库还是 SaaS 应用位于公网还是 VPC 内部,都可以从单一控制台进行连接。
  • AI 驱动的分析——不止于静态图表。平台的 AI 智能体可以将自然语言问题转换为 SQL 查询,并在数秒内返回可视化的答案。
  • 协作空间——在团队之间共享仪表板、主题和 AI 生成的洞察,无需再通过邮件发送电子表格或截图。

本指南的目标是通过五个步骤,带你从原始数据库一路走到可用的自然语言问答系统。

核心组件

在深入实现之前,先快速了解一下几个关键的构建模块:

组件用途
数据源(Data Source)到数据库(RDS、Redshift、MySQL、PostgreSQL 等)或 SaaS 应用的连接。同时支持公网和基于 VPC 的连接方式。
数据集(Dataset)从数据源导入的一组已定义数据。可以加载到 SPICE 引擎中以实现快速查询,也可以直接对数据源进行查询。
仪表板(Dashboard)基于一个或多个数据集构建的交互式可视化。支持图表、筛选器、参数和下钻。
主题(Topic)一个经过精心整理的数据模型,将数据库列映射到易于业务理解的名称、同义词和聚合规则——从而支持自然语言查询。
空间(Space)一个协作工作空间,可在其中与团队成员共享仪表板、主题和 AI 智能体。
AI 智能体(AI Agent)自然语言问答引擎,负责理解用户问题、生成 SQL 并返回可视化答案。
SPICE 引擎超快并行内存计算引擎(Super-fast Parallel In-memory Calculation Engine)——一个内存存储,通过缓存来自数据源的数据来加速查询。

步骤一:连接你的数据库

Amazon QuickSuite 根据数据库的网络配置支持两种连接方式。

1.1 公网连接

这是较为简单的方式,适用于可通过公网访问的数据库(例如带有公有端点的 RDS 实例)。

前置条件:

  • 数据库实例已启用公有端点。
  • 数据库安全组允许来自你所在 AWS 区域的 QuickSuite IP 地址范围的入站连接。你可以在 AWS IP 地址范围文档 中查到这些 IP 范围。

操作步骤:

  1. 登录 Amazon QuickSuite 控制台。
  2. 进入 Datasets(数据集),点击 New dataset(新建数据集)
  3. 选择你的数据源类型(例如 MySQL、PostgreSQL、MariaDB、Amazon Redshift)。
  4. 输入连接参数:
    • Host:数据库的公有端点(例如 mydb.abc123.us-east-1.rds.amazonaws.com
    • Port:数据库端口(例如 MySQL 为 3306,PostgreSQL 为 5432
    • Database name:要连接的具体数据库
    • Username and password:对目标表拥有读取权限的凭证
  5. 点击 Validate connection(验证连接) 以测试连通性。
  6. 验证通过后,点击 Create data source(创建数据源) 保存。

1.2 VPC 私有连接

对于位于 VPC 内、没有公有端点的数据库,你需要配置 VPC 连接,以便 QuickSuite 能够通过私有网络路径访问该数据库。

何时使用这种方式:

  • 数据库位于没有公有 IP 的私有子网中。
  • 你所在组织的安全策略禁止使用公有数据库端点。
  • 你需要在私有网络路径上实现传输加密。

前置条件:

  • Amazon QuickSuite 企业版(Standard Edition 标准版不提供 VPC 连接功能)。
  • 在 QuickSuite 中拥有系统管理员权限。
  • 一个 VPC,其中至少有一个子网与数据库处于同一可用区,并配有允许来自 QuickSuite 流量的安全组。

操作步骤:

  1. 在 QuickSuite 控制台中,进入 Manage QuickSuite(管理 QuickSuite) 并选择 VPC connections(VPC 连接)
  2. 点击 Add VPC connection(添加 VPC 连接),并提供:
    • VPC ID:数据库所在的 VPC
    • Subnet ID:与数据库实例处于同一可用区的子网
    • Security group ID:允许向数据库端口出站流量的安全组
  3. 保存该 VPC 连接。QuickSuite 会在指定子网中创建一个弹性网络接口(ENI)。
  4. 更新数据库的安全组,允许来自 QuickSuite ENI 安全组的、面向数据库端口的入站流量。
  5. 现在创建一个新的数据源(如步骤 1.1 所示),但选择你刚刚配置的 VPC 连接,而不是使用公有端点。
  6. 验证并保存连接。

跨区域场景: 如果你的数据库与 QuickSuite 部署所在的 AWS 区域不同,可以在 QuickSuite 中配置 VPC 连接之前,先使用 VPC Peering(VPC 对等连接)或 AWS Transit Gateway 在两个 VPC 之间建立网络连通性。

步骤二:创建数据集

数据源连接完成后,下一步是定义一个数据集,供 QuickSuite 用于仪表板和主题。

  1. 在 QuickSuite 控制台中,进入 Datasets(数据集),点击 New dataset(新建数据集)
  2. 选择你在步骤一中创建的数据源。
  3. 选择你的数据选取方式:
    • Select tables(选择表):从可视化浏览器中挑选一个或多个表。如果定义了外键,QuickSuite 会自动检测表之间的关系。
    • Custom SQL(自定义 SQL):编写一条 SQL 查询,精确定义要包含哪些数据。这对于希望在数据集层面定义的联接、筛选或计算列非常有用。
  4. 选择导入模式(import mode)
    • SPICE:将数据导入内存中的 SPICE 引擎。查询很快,因为它们针对缓存而非源数据库运行。最适合无需实时刷新的数据集。
    • Direct query(直接查询):直接对源数据库运行查询。数据始终保持最新,但查询性能取决于数据库的容量。
  5. 在**数据准备(data preparation)**界面中,你可以:
    • 将字段重命名为易于业务理解的名称
    • 更改数据类型(例如将字符串列转换为日期)
    • 添加计算字段(例如 profit = revenue - cost
    • 应用筛选器以排除无关的行
    • 定义层级结构(例如 年 > 季度 > 月)
  6. 如果使用 SPICE,请配置一个刷新计划(refresh schedule)(例如每天 UTC 时间凌晨 2:00),使缓存数据保持相对最新。
  7. 点击 Save & publish(保存并发布),使该数据集可用于仪表板和主题。

步骤三:构建仪表板

仪表板将原始数据转化为交互式可视化,让业务用户无需编写 SQL 即可自行探索。

3.1 创建分析

  1. 进入 Analyses(分析),点击 New analysis(新建分析)
  2. 选择你在步骤二中创建的数据集。
  3. QuickSuite 会打开分析编辑器——一个用于构建可视化的拖放式画布。

3.2 添加可视化

QuickSuite 支持多种图表类型:

  • 条形图用于类别对比(例如按产品类别划分的收入)
  • 折线图用于时间序列趋势(例如月活跃用户数)
  • 饼图/环形图用于比例拆分
  • 透视表用于多维度聚合
  • KPI 组件用于突出单一指标(例如本季度总收入)
  • 地理空间地图用于基于位置的数据

添加可视化的步骤:

  1. 点击 Add(添加) > Add visual(添加可视化)
  2. 选择一种图表类型。
  3. 将字段从字段列表拖到图表的配置区(例如将 product_category 拖到 X 轴,将 revenue 拖到值区)。
  4. QuickSuite 会自动应用默认聚合(数值字段使用 SUM,维度使用 COUNT)。你可以点击配置区中的字段并选择其他聚合方式来更改它。

3.3 添加筛选器与交互能力

  • 筛选器(Filters):添加工作表级或可视化级的筛选器,让用户可以缩小数据范围(例如按日期范围或地区筛选)。
  • 参数(Parameters):定义用户可设置的参数(例如目标收入阈值),并在计算字段或条件格式中引用它们。
  • 动作(Actions):配置下钻动作和跨可视化筛选,使得点击某个图表中的一个条形时可以筛选另一个图表中的数据。

3.4 发布仪表板

分析完成后:

  1. 点击 Share(共享) > Publish dashboard(发布仪表板)
  2. 为仪表板指定名称和描述。
  3. 选择哪些用户或用户组可以访问。
  4. 已发布的仪表板现在是一个只读、交互式的视图,相关干系人可以从 QuickSuite 控制台访问它。

步骤四:创建用于自然语言问答的主题

主题(Topic)是 Amazon QuickSuite 的 AI 能力真正落地的地方。主题是叠加在数据集之上的一个整理层,用于教会 AI 智能体如何理解自然语言问题。

4.1 主题定义了什么

一个配置良好的主题包含:

  • 易于业务理解的字段名:与其显示 prod_cat_id,主题会将其映射为「产品类别」,这样用户就可以用自然语言询问「产品类别」。
  • 同义词:同一概念的多个名称。例如,“revenue”、“sales”、“income” 和 “earnings” 都可能映射到同一个字段。这能显著提升识别准确率。
  • 字段关系与层级结构:各字段之间如何关联(例如一个产品属于某个类别,一个城市属于某个地区)。
  • 常见问题模式:用户可能提出的示例问题,帮助 AI 智能体理解意图。
  • 默认聚合与计算:某个字段在问题中被提及时,默认应当求和、求平均还是计数。

4.2 创建主题

  1. 在 QuickSuite 控制台中,进入 Topics(主题)
  2. 点击 Create Topic(创建主题)
  3. 为主题指定名称和描述(例如「销售分析」——「就产品销量、收入和客户趋势进行提问」)。
  4. 选择要包含的数据集。QuickSuite 会自动分析数据结构并建议字段配置。
  5. 针对每个字段,进行检查和配置:
    • Display name(显示名称):一个人类可读的名称(例如将 order_dt 改为「订单日期」)。
    • Description(描述):对字段含义的简要说明(例如「客户下单的日期」)。这有助于 AI 智能体区分相似字段。
    • Synonyms(同义词):添加替代名称。对于名为「Revenue」的字段,你可以添加 “sales”、“total sales”、“income”、“earnings”。
    • Aggregation(聚合):设置默认聚合方式(SUM、AVG、COUNT、MIN、MAX)。收入类字段通常默认使用 SUM;评分类字段默认使用 AVG。
    • Data type semantic(数据类型语义):将字段标记为维度、度量或日期字段,以便 AI 智能体知道如何对其进行分组和聚合。
  6. 如果你的主题跨越多个表,请配置字段关系(field relationships)。例如,将 orders.customer_id 关联到 customers.id,使智能体能够回答跨越两个表的问题。
  7. 添加示例问题(sample questions),帮助训练 AI 智能体:
    • “What was total revenue last quarter?”(上个季度的总收入是多少?)
    • “Show me the top 10 products by sales”(按销量列出前 10 个产品)
    • “How does revenue compare across regions this year vs. last year?”(今年与去年相比,各地区的收入对比如何?)
  8. 点击 Save(保存) 以发布该主题。

4.3 测试与优化

创建主题后,用自然语言问题对它进行测试:

  1. 打开主题,使用内置的问答界面。
  2. 用自然语言输入问题,例如 “What are the top 5 selling products this month?”(本月销量前 5 的产品是哪些?)。
  3. 检查生成的 SQL 和结果。如果 AI 误解了某个问题,请返回并:
    • 为相关字段添加更多同义词
    • 完善字段描述
    • 将被误解的问题作为示例问题添加进去,并附上正确的解读
  4. 反复迭代,直到主题能够可靠地回答用户可能提出的问题。

步骤五:在空间中汇聚一切

空间(Space)是一个协作工作空间,你可以在其中将仪表板、主题和 AI 智能体组装成为团队服务的统一体验。

  1. 进入 Spaces(空间),点击 Create Space(创建空间)
  2. 为空间指定名称(例如「销售分析中心」)和描述。
  3. 向空间添加内容:
    • Dashboards(仪表板):添加你在步骤三中创建的仪表板。
    • Topics(主题):添加你在步骤四中创建的主题。这样便可在空间内直接启用自然语言问答栏。
    • AI Agent(AI 智能体):为该空间启用 AI 智能体,让团队成员可以提问并即时获得答案。
  4. 配置访问权限(access permissions)
    • 添加个人用户或用户组。
    • 设置角色(Viewer 查看者、Contributor 贡献者、Admin 管理员),以控制谁可以查看、编辑或管理该空间。
  5. 保存并将空间 URL 分享给你的团队。

现在,团队成员可以打开空间、浏览仪表板获取可视化洞察,并在问答栏中输入自然语言问题以获得即时的、AI 生成的答案——全程无需编写任何一行 SQL。

总结

本指南所涵盖的端到端工作流程包含五个步骤:

  1. 连接(Connect)——建立数据源连接(公网或 VPC 私有)。
  2. 建模(Model)——创建带有易于业务理解的字段名、计算字段和刷新计划的数据集。
  3. 可视化(Visualize)——构建带有图表、筛选器和跨可视化动作的交互式仪表板。
  4. 整理(Curate)——创建带有同义词、描述和示例问题的主题,以实现准确的自然语言问答。
  5. 协作(Collaborate)——将所有内容组装到一个空间中,让团队成员可以探索仪表板并用自然语言提问。

打造良好自然语言问答体验的关键,在于在步骤四上投入时间——你的主题配置的同义词、描述和示例问题越完善,AI 智能体解读和回答用户查询就越准确。先从一个小而定义清晰的数据集入手,让主题稳定可靠地运作起来,然后再逐步扩展。

参考资料

  1. Amazon Quick Suite — AWS
  2. Amazon Athena User Guide — AWS Documentation