掘金 人工智能 06月12日
基于 Agentic AI + Amazon Redshift MCP Server 实现 Agentic Data Analysis
index_new5.html
../../../zaker_core/zaker_tpl_static/wap/tpl_guoji1.html

 

本文探讨了Agentic AI与Amazon Redshift MCP Server的结合,如何在数据分析领域实现Agentic Data Analysis。通过Model Context Protocol (MCP) 解决大模型与外部工具的集成问题,提升数据分析效率和智能水平。文章通过实践案例验证了其在单表分析和点击流数据分析中的应用,并展望了该技术在未来数据分析领域的巨大潜力。

🚀 Agentic AI是一种能够自主推理、规划并执行多步骤任务的软件系统,而Agentic Data Analysis是其在数据分析领域的应用,旨在实现数据分析的自动化和智能化。

💡 Model Context Protocol (MCP) 是一种开放协议,为Agentic AI提供标准化的接口,使其能够连接到各种数据源和工具。MCP 解决了大模型与外部资源集成的难题,如同Agentic AI领域的“USB-C”接口。

🛠️ 通过结合Amazon Redshift MCP Server,Agentic AI能够访问和操作Redshift中的数据,简化数据访问和分析流程。文章通过实践验证了Agentic AI结合Redshift MCP Server在单表数据分析和点击流数据分析中的应用。

📈 实验结果表明,Agentic AI结合Redshift MCP Server在数据分析方面表现出色,能够自主完成数据建模和分析任务。这得益于强大的基础模型、Agentic应用提供的工具以及MCP协议带来的标准化集成。

1. 前言

一般而言,Agentic AI 是指能够进行推理和规划,自主决定做什么、何时做来解决复杂的多步骤问题的软件系统。而 Agentic Data Analysis 则是 Agentic AI 在数据分析和数据见解生成方面的应用。Model Context Protocol(MCP)通过提供一个标准化的协议,将 AI 模型的决策逻辑和外部资源解藕,解决大模型与外部工具、数据源的集成难题。在数据分析领域,MCP 与 Agentic AI 的结合正成为一种趋势,潜力巨大,两者的结合使得 Agentic AI 能够无缝地访问和操作各种数据源,如 Amazon Redshift,显著提升数据分析的效率和智能水平。同时,Agentic AI 借助高性能的大型语言模型(LLM),如 Amazon Bedrock 的 Claude 3.7 Sonnet,处理复杂的分析任务,并提供更加准确的洞察。这种结合不仅简化了数据访问和分析流程,还为构建更自治、更智能的数据分析系统奠定了基础。本文将探讨和验证 Agentic AI 与 Amazon Redshift MCP Server 的结合如何实现 Agentic Data Analysis,并展望这一技术在未来数据分析领域的潜力和发展方向。

📢限时插播:无需管理基础设施,利用亚马逊技术与生态,快速集成与部署生成式AI模型能力。

✨ 精心设计,旨在引导您深入探索Amazon Bedrock的模型选择与调用、模型自动化评估以及安全围栏(Guardrail)等重要功能。

⏩快快点击进入《多模一站通 —— Amazon Bedrock 上的基础模型初体验》实验构建无限, 探索启程!

2. 原理

Agentic AI 具有自主性、推理和规划、面向目标的行为、多步骤和决策解决复杂问题以及集成和使用工具和数据等特性。其基本工作流程如下图所示:

    Agentic AI 接收用户输入的需求后,利用 LLM 进行分析和规划,生成具体的需要执行的任务。根据任务要求,选择可用的工具。一般而言,Agentic AI 自身都会内置一些基础的工具集,用以完成基本的任务。如 Code Agentic AI 一般会自带创建文件、读取文件、修改文件等工具集。确定使用哪个工具来完成任务后,Agentic AI 将执行工具调用。此过程一般会引入人工参与,由人来确定是否执行该工具,或者是否需要 Agentic AI 对工具的参数进行微调。执行工具调用后,Agentic AI 一方面将工具执行结果反馈给用户,一方面对工具执行结果进行分析,确定是否已经完成整个需求,还是需要根据执行结果来进一步进行分析、评估和规划,直到实现整个需求。

由于现实世界的复杂性,Agentic AI 不可能自带所有的工具,因此需要一种可插拔的方式接入外部的工具来扩充 Agent 的工具集。MCP 正是在这种需求背景下产生的。它提供标准化的接口,为 Agent 应用和外部的数据源和工具提供无缝的集成能力。MCP 作为 Agentic AI 领域的“USB-C” 接口,正在重构智能系统与数字世界的连接方式,为 Agentic AI 的发展奠定基础。MCP 的出现,使得各种不同的 Agentic AI 可以以统一的方式接入各种不同的工具,扩充 Agent 的能力范围,将底层模型的决策、规划逻辑与外部资源解藕,形成“智能大脑 + 技能集”的协同模式。

有了 MCP 这样的协议后, 我们可以在 Agentic AI 中外接各种数据分析产品的 MCP Server,通过这些 MCP Server 提供的工具、资源,让 Agentic AI 自主进行数据分析、数据 Pipeline 和应用的开发。

什么是 MCP

MCP 是一个开放协议,其标准化了 AI 模型连接到各种不同数据源和工具的方式。MCP 的核心架构如下图所示:

MCP 采用 Client-Server 架构模式

组成

传输

Amazon Redshift MCP Server

MCP 提供了不同编程语言(Python/TypeScript/Java/Kotlin/C#)的协议参考实现,借助 MCP Python SDK,笔者开发了一个 Amazon Redshift MCP Server,该 MCP Server 提供以下 Features:

Resources

Tools

Cline 是一个自主的代码 Agentic AI,下面我们使用 Cline 结合开发的 Amazon Redshift MCP Server 来探索基于 Agentic AI 和 Amazon Redshift 进行的自主数据分析。

3. 实践

前提

安装 Redshift MCP Server

# clone redshift-mcp-server repogit clone https://github.com/Moonlight-CL/redshift-mcp-servercd redshift-mcp-server# sync the project's dependenciesuv sync

在 Cline 的 MCP Server “Install” 标签页,点击 “Configure MCP Servers”,添加 Redshift MCP Server。

{  "mcpServers": {    "redshift-mcp-server": {      "timeout": 60,      "command": "uv",      "args": [        "--directory",        "/path/of/redshift-mcp-server/src/redshift_mcp_server",        "run",        "server.py"      ],      "env": {        "RS_HOST": "your.redshift.cluster.host",        "RS_DATABASE": "default_is_dev",        "RS_SCHEMA": "default_is_public",        "RS_USER": "your_redshift_user",        "RS_PASSWORD": "your_redshift_password"      },      "transportType": "stdio"  }}

在 Cline 中配置好开发的 Redshift MCP Server 之后,在 Cline 的已安装 MCP Tab 页可以看到该 MCP Server 提供的 Tools 和 Resources。

配置 Cline 使用 Amazon Bedrock Claude 3.7 Sonnet 模型

如下图所示,选择 ‘Amazon Bedrock’ 作为 API Provider,并勾选 ‘Use cross-region inference’ 和 ‘Use prompt caching’。使用 ‘cross-region inference’ 可最大化资源和模型的可用性,提升用户体验,而使用 ‘prompt caching’ 这个优化特性可以降低推理响应延迟以及模型输入 Token 的费用。最后在 ‘Model’ 选项中,选择 ‘anthropic.claude-3-7-sonnet-20250219-v1:0’。

验证一:Agentic AI + Redshift MCP Server 进行单表数据分析

通过 Redshift MCP Server 提供的对表结构的获取能力以及执行 SQL 能力,结合 Agentic AI 对需求的理解以及任务执行能力,在不提供任何表结构信息的前提下,验证二者结合来对单表进行数据分析的能力。

分析需求:Redshift 的 public schema 中有一张 ‘my_sales’ 表,列出 2008 年 5 月份的 Top5 销售员,并用漂亮的 Html 页面展示 Top 5 的销售数据。

There is a redshift table named ‘my_sales’ in public schema of dev database, please list top 5 sellers in May 2008 by analyzing the table’s schema, and then show the top 5 sellers data in a beautiful html page

将需求输入 Cline 后,Cline 进行需求理解并进行任务规,如下两图所示,Cline 完整地理解了用户需求,并希望访问 redshift-mcp-server MCP serverrs:///public/my_sales/ddl 资源。同意进行访问后,Cline 将与 MCP Server 进行交互,进行 MCP Resource 的获取,调用成功后,Redshift MCP Server 返回该表的 DDL 语句。

在接收到 MCP Server 的响应后,Cline 对 ‘my_sales’ 表结构进行分析,认为 ‘saletime’ 这个字段将会被用来进行过滤以获得 2008 年 5 月的数据,并需要发起样例数据查询以检验表中是否有数据并理解日期格式。

通过 MCP Server 执行样例 SQL 的查询:

在获取到样例数据后,Cline 确认了’saletime’ 字段的数据格式,并根据需求以及获得的表结构信息,生成了获取 2008 年 5 月 Top 5 Seller 的销售数据 SQL。

SELECT sellerid, SUM(pricepaid) as total_sales, COUNT(*) as num_transactions FROM public.my_sales WHERE saletime >= '2008-05-01' AND saletime < '2008-06-01' GROUP BY sellerid ORDER BY total_sales DESC LIMIT 5

获得 Top 5 的销售数据后,Cline 又基于获取到的 Top 5 销售员 ID 获取到各自在 2008 年 5 月份的具体销售数据,并基于这些销售数据生成了一个非常漂亮而完备的 HTML 展示页面,既有柱状图,也有每个销售员的明细销售数据,非常的详尽。 Cline 任务记录及生成结果见此

验证二:Agentic AI + Redshift MCP Server 实现点击流数据分析

本实验通过点击流数据分析的场景,验证 Cline 结合 Redshift MCP Server 进行多步骤任务实现基于 Redshift 的全流程数据分析的能力。原始点击流数据存储在 Amazon MSK 中,通过给出点击流数据的 Schema 以及相关的信息,期望 Cline 结合 Redshift MCP Server 可以实现点击流数据流式摄取到 Redshift,并对原始数据按事件类型进行抽取,形成不同的事件表,基于这些事件表来进行具体的指标分析,实现端到端的数据分析。

场景与需求:

我想使用Amazon  Redshift来构建的点击流数据分析平台. ## 点击流数据存储 点击流数据已经存储在Amazon MSK 中.其中: brokers: broker_urls topic: event_topic ## 点击流数据格式 点击流数据格式为JSON, 具体格式如下: user_id: bigint, 用户唯一IDaccount_id: varchar(32), 账户ID distinct_id: varchar(32), 访客ID event_name: varchar(20), 事件名称, 目前有这几种: login, logout, charge, participate_activity, start_fight event_time: varchar(14), 日期格式为: yyyyMMddHHmmss, UTC+0 时间 properties: super, 每种事件有不同的属性json 对象, 其中: ### login, logout 事件properties 属性有app_version: varchar(20), app的版本号 os: varchar(64), 操作系统版本,  os/version 格式返回 device_model: varchar(64), 设备型号 ip:varchar(64), IPV4信息 ### charge 事件properties 属性有: order_no: varchar(64), 充值订单号 charge_value: integer, 充值金额, 以分为单位 ### participate_activity 事件 properties 属性有: activity_id: varchar(64), referee: varchar(64), 活动推荐人 ### start_fight 事件properties 属性有: game_id: varchar(64), 游戏对战ID ## 需求 1. 请充分利用Amazon Redshift 的数据分析能力, 将存储在Amazon MSK中的流式点击流数据通过Redshift 的Streaming Ingestion 特性 存储在Amazon Redshift 表中, 请根据点击流数据格式, 按Redshift 的最佳实践, 建立相应的表结构. 创建Streaming Ingestion 时, authentication 为none, iam_role 为default2. 点击流数据存储到Redshift 表后, 需要按照不同的事件类型, 将具体类型的事件数据单独存储到不同的表中, 以便后续分析 3. 数据分析:以天为单位, 统计每天的登录用户数, 充值用户数, 活动参与用户数, 游戏对战用户数, 当日充值金额 4. 所有的数据表建在dev 数据库中的 public schema 中.

在需求理解和任务规划方面,Cline 结合 Amazon Bedrock Claude 3.7 Sonnet LLM 很好地捕捉到了各个需求点,给出了针对该需求非常完整的任务规划,如下图所示:

    生成用于在 Redshift 中创建表的 SQL scripts设置 Redshift 的 MSK Streaming Ingestion创建数据转换的 SQL scripts,将不同的事件数据移动到对应的表中创建 SQL scripts 以进行分析查询

在任务的具体执行方面,Cline + Amazon Bedrock Claude 3.7 Sonnet LLM 可以非常好地给出整体的任务执行框架,但在一些细节方面,还需要人工参与并进行校正,如在创建 Streaming Ingestion 的 External Schema 时,会遗漏必要的 AUTHENTITION 和 URI Clause,同时在创建 Streaming Ingestion 的 Materialized View 时,没有遵循最佳实践,会在摄取时把每个字段都通过 Redshift 的 JSON 函数提取出来,这些点需要人工进行参与矫正。当给出修改意见后,Claude 3.7 Sonnet 能根据反馈给出正确的修改措施。

在完成整个数据分析任务的过程中,Redshift MCP Server 提供的 Tools 和 Resources 能力为 Cline 和 Claude 模型提供了很好的支撑,如通过 execute_sql Tool 进行建表语句、Streaming Ingestion Externa Schema 和 Materialized View 的创建,同时在 SQL 执行过程中,如果给 SQL 语法有错误,通过返回的异常信息,Cline 和 Claude 都能很好的进行矫正。

最终,针对存放在 Amazon MSK 中的点击流数据,Cline + Redshift MCP Server 这一组合给出了非常完整的分析解决方案和实现,实现了对点击流数据在 Redshift 中端到端数据的建模与分析,创建的分析指标与需求完美匹配。在 Redshift 中建立的资源以及最终的数据分析结果如下图所示,详细的 Cline 任务记录及生成结果在此。

建立的表和视图:

4. 总结与展望

综上,Cline 结合笔者开发的 Amazon Redshift MCP Server,在单表数据分析,以及对存储在 Amazon MSK 中的点击流数据进行端到端的多步骤数据建模和分析场景表现非常出色,在给出具体的分析需求后,这一组合可以自主完成数据建模和分析任务,基本可以实现 Agentic Data Analysis。达到这样的效果得益于三个方面的因素:

*前述特定亚马逊云科技生成式人工智能相关的服务仅在亚马逊云科技海外区域可用,亚马逊云科技中国仅为帮助您了解行业前沿技术和发展海外业务选择推介该服务。

参考文档

本篇作者

本期最新实验《多模一站通 —— Amazon Bedrock 上的基础模型初体验

✨ 精心设计,旨在引导您深入探索Amazon Bedrock的模型选择与调用、模型自动化评估以及安全围栏(Guardrail)等重要功能。无需管理基础设施,利用亚马逊技术与生态,快速集成与部署生成式AI模型能力。

⏩️[点击进入实验] 即刻开启 AI 开发之旅

构建无限, 探索启程!

Fish AI Reader

Fish AI Reader

AI辅助创作,多种专业模板,深度分析,高质量内容生成。从观点提取到深度思考,FishAI为您提供全方位的创作支持。新版本引入自定义参数,让您的创作更加个性化和精准。

FishAI

FishAI

鱼阅,AI 时代的下一个智能信息助手,助你摆脱信息焦虑

联系邮箱 441953276@qq.com

相关标签

Agentic AI Redshift MCP 数据分析
相关文章