使用Hologres + MCP + LLM 搭建数据分析Agent

更新时间:2025-04-23 09:56:40

Hologres对接MCP协议,通过与众多支持MCP的平台联动,可以构建跨数据源、多步骤分解的数据分析Agent。同时,由于Hologres具备高性能数据分析、湖仓一体数据分析的能力,可以快速输出数据结果,并与湖仓的历史数据进行联合分析,极大简化分析人员的分析流程,提高分析效率。

背景信息

在数据分析领域,大模型(LLM)具备强大语言理解能力,NL2SQL等各类智能化工具也极大提升了数据分析人员的分析效率,但仍旧面临不少挑战:

  • LLM缺乏实时数据接入能力:LLM无法获取实时数仓数据,动态调用专业工具链,上下文记忆链路短,数据分析经过多步骤分解后逐渐出现幻觉。

  • 跨数据源分析困难:数据分布在不同系统,例如在线数据平台、本地CSV/Excel等文件,跨系统数据整合需大量准备时间,取数仍然需要大量依赖取数工程师和取数平台。

MCP(模型上下文协议)通过标准化接口架构,将 AI 模型的决策逻辑与外部资源解耦,形成 "智能大脑 + 外接四肢" 的协同模式,旨在解决大模型与外部工具、数据源的集成难题。LLM通过MCP接入各种数据分析工具或者数据仓库能力时,即可构建跨数据源、多步骤分解的数据分析Agent。

场景说明

Hologres基于MCP协议实现Hologres MCP Server,赋能LLM实时数仓分析能力。当LLM接入Hologres MCP Server时,可实现如下场景:

  • 实时数据中枢:通过 MCP 管道实现Hologres与 API / 数据库 / 物联网设备等多源数据毫秒级接入。同时,Hologres作为高性能实时数仓,在Agent的逐步分解分析时,输出结果更快。

  • 湖仓数据加速:支持Agent通过Hologres直接对MaxCompute、OSS等湖仓数据访问,无需频繁搬运数据,提升MaxCompute透明加速性能。

  • 智能数据工厂:Hologres 实时数据库自动完成数据清洗、标准化与元数据管理,提升预处理效率。

  • 对话式分析引擎:LLM 直接调用实时数据接口,支持自然语言提问生成动态可视化报告。

  • 资源隔离与降本:Hologres支持秒级扩缩容,Agent数据分析资源可以与数据生产系统隔离,降低分析成本。

功能介绍

Hologres MCP Server是对Hologres产品能力的外部实现。Hologres MCP Server 0.1.7版本提供的组件如下:

工具包

工具名称

说明

工具名称

说明

execute_select_sql

在 Hologres 服务器上执行一个 SELECT SQL 查询。

execute_dml_sql

在 Hologres 服务器上执行一个 DML(INSERT、UPDATE、DELETE)SQL 查询。

execute_ddl_sql

在 Hologres 服务器上执行一个 DDL(CREATE、ALTER、DROP)SQL 查询。

gather_table_statistics

收集表的统计信息。

get_query_plan

获取查询计划。

get_execution_plan

获取执行计划。

资源包

资源名称

说明

资源名称

说明

hologres:///schemas

获取数据库中的所有模式。

hologres:///{schema}/tables

列出模式中的所有表。

hologres:///{schema}/{table}/partitions

列出分区表的所有分区。

hologres:///{schema}/{table}/ddl

获取表的 DDL。

hologres:///{schema}/{table}/statistic

显示已收集的表统计信息。

system:///{+system_path}

system_path系统路径包含:

  • missing_stats_tables - 显示缺少统计信息的表。

  • stat_activity - 显示当前正在运行的查询的信息。

  • query_log/latest/<row_limits> - 获取最近查询日志历史,指定行数。

  • query_log/user/<user_name>/<row_limits> - 获取特定用户的查询日志历史,指定行数。

  • query_log/application/<application_name>/<row_limits> - 获取特定应用程序的查询日志历史,指定行数。

  • query_log/failed/<interval>/<row_limits> - 获取失败的查询日志历史,指定时间间隔和行数。

说明

最新版本更新说明可查看版本的Release Note

快速体验

当您完成Hologres + MCP + LLMAgent搭建之后,您可快速体验数据分析Agent。本案例以ClineAgent对话窗口,以通义千问LLM,演示通过Agent进行实时数据分析。

image

您只需输入预设问题并执行:帮我从Hologres中读取数据,分析下在hologres_dataset_tpch_10g这个schema下数据,分析下 1995年相较于1994年在 BRAZIL 销售情况的变化,如何提升销售额。并使用中文回答。答案中可以使用一些图表去解释一些信息,图表使用html写。

Agent 拆解数据分析步骤并通过Hologres运行:

  1. 调用 execute_select_sql 工具,查询 schema 信息,获取所有表。

  2. 调用 execute_select_sql 工具,查询 orders 表结构,确认和销售额相关。

  3. 调用 execute_select_sql 工具,查询 nation 表结构,获取国家字段。

  4. 调用 execute_select_sql 工具,查询 customer 表结构,挖掘国家和销售额字段关系。

  5. 调用 execute_select_sql 工具,构造联表查询语句,获取目标的销售数据。

  6. 调用 execute_select_sql 工具,将销售额求和,获得最终结果。

  7. LLM 根据SQL结果,生成最终结果和图表。

    image

说明
  • 运行过程中系统会提示您确认并获取一些相关信息。您可以单击Approve同意该操作,或者单击Reject拒绝该操作。

  • 每次运行关键步骤拆解过程可能稍有不同,不同LLM解析也会不同,具体以实际情况为主。

搭建Agent

本案例以Cline例为您演示如何使用Hologres + MCP + LLM 搭建数据分析Agent。

准备工作

  • 准备Hologres实例购买Hologres创建数据库。您可按需准备测试数据,也可直接使用您的业务数据。

  • 准备Python相关环境:安装Python 3.10及以上版本;安装uv 0.6.7及以上版本。

    如何安装Pythonuv?

    说明

    本例以macOS系统为例,其他系统操作类似。

    # 若Python版本不够高,请先运行brew update
    # brew update
    brew install python
    
    # 验证python安装
    # python3 --version
    
    # 安装uv包管理
    pip3 install uv
    
    # 验证uv安装
    # uv --version
  • 准备MCP客户端:完成安装VS Code客户端并安装Cline扩展程序。您也可选择其他支持MCP客户端,例如Claude DesktopCursorCherry Studio等。

    如何在VS Code客户端安装Cline插件?

    1. VS Code单击左侧导航栏的image图标,进入程序扩展页。

    2. 在程序扩展页的搜索框中输入Cline

    3. 找到下方出现的扩展程序Cline。

    4. 单击Cline程序右下方的安装,等待程序安装完成即可。

    image

步骤一:配置LLMAPI Key

安装完Cline扩展程序后,请按照以下步骤配置API Key信息。这里将以使用OpenAI Compatible模式连接阿里云百炼API为例进行配置说明。

说明
  • 其它模式连接模型,请根据界面实际参数进行相关配置。

  1. 单击VS Code客户端左侧导航栏的image图标,进入Agent对话窗口。

  2. 单击Cline页中的Use your own API key,根据下表参数说明进行相关配置。

    参数

    说明

    参数

    说明

    API Provider

    指定您要使用的API服务提供商,选择OpenAI Compatible。这表示您将使用与OpenAI API兼容的接口来连接阿里云百炼API。

    Base URL

    API服务的基础URL,用于指定API请求的根地址。

    例如阿里云百炼API提供的与OpenAI兼容的API端点地址:https://dashscope.aliyuncs.com/compatible-mode/v1

    API Key

    用于身份验证的密钥,请在阿里云百炼控制台获取。

    Model ID

    指定您要具体选择的模型,推荐选择qwen-max-latestqwq-plus-latest

  3. 单击下方的Let's go!按钮,完成API Key的配置。

步骤二:下载Server源码

支持通过下载源码至本地或者直接通过PIP方式安装Python包的方式,安装Hologres MCP Server。

说明

本例以macOS系统为例,其他系统操作类似。

PIP包模式
本地文件模式
  1. 安装hologres-mcp-serverPython包。

    pip3 install hologres-mcp-server
  1. 安装GIt。如果您已完成安装,请跳过该步骤。

    brew install git
  2. Github中下载源码。

    git clone https://github.com/aliyun/alibabacloud-hologres-mcp-server.git

步骤三:配置MCP Server

进入VS CodeCline拓展程序,配置MCP Server。

  1. 单击Cline页右上角的image图标,进入MCP ServerMarketplace页签。

  2. 单击切换至Installed页签。

  3. 单击Configure MCP Servers,配置Hologres MCP Server。

    说明

    若您需使用DataWorks OpenAPI能力,可同时接入DataWorks MCP Server

    PIP包模式
    本地文件模式
    {
      "mcpServers": {
        "hologres-mcp-server": {
          "command": "uv",
          "args": [
            "run",
            "--with",
            "hologres-mcp-server",
            "hologres-mcp-server"
          ],
          "env": {
            "HOLOGRES_HOST": "host",
            "HOLOGRES_PORT": "port",
            "HOLOGRES_USER": "access_id",
            "HOLOGRES_PASSWORD": "access_key",
            "HOLOGRES_DATABASE": "database"
          }
        }
      }
    }

    参数

    说明

    command

    此处填写uv,表示hologres-mcp-server提供的指令方式。

    args

    此处表示hologres-mcp-server的指令参数。

    env

    HOLOGRES_HOST

    Hologres实例公网域名,请在Hologres控制台进入实例详情 > 网络信息处获取网络域名。

    说明

    您需单击开启Hologres实例的公网访问。

    HOLOGRES_PORT

    HOLOGRES_USER

    阿里云账号的Access IDAccess Key,您可在RAM控制台获取。

    HOLOGRES_PASSWORD

    HOLOGRES_DATABASE

    Hologres需要连接的数据库名称

    {
      "mcpServers": {
        "hologres-mcp-server": {
          "command": "uv",
          "args": [
            "--directory",
            "/path/to/alibabacloud-hologres-mcp-server",
            "run",
            "hologres-mcp-server"
          ],
          "env": {
            "HOLOGRES_HOST": "host",
            "HOLOGRES_PORT": "port",
            "HOLOGRES_USER": "access_id",
            "HOLOGRES_PASSWORD": "access_key",
            "HOLOGRES_DATABASE": "database"
          }
        }
      }
    }

    参数

    说明

    command

    此处填写uv,表示hologres-mcp-server提供的指令方式。

    args

    此处表示hologres-mcp-server的指令参数,将"/path/to/alibabacloud-hologres-mcp-server"替换成您本地hologres-mcp-server所在的绝对路径即可。

    env

    HOLOGRES_HOST

    Hologres实例公网域名,请在Hologres控制台进入实例详情 > 网络信息处获取网络域名。

    说明

    您需单击开启Hologres实例的公网访问。

    HOLOGRES_PORT

    HOLOGRES_USER

    阿里云账号的Access IDAccess Key,您可在RAM控制台获取。

    HOLOGRES_PASSWORD

    HOLOGRES_DATABASE

    Hologres需要连接的数据库名称

  4. 编辑完配置信息后,请按Ctrl+S保存并加载您所配置的MCP Server信息。看到如下加载成功的Tools可确认alibabacloud-hologres-mcp-server已安装成功。

    image

步骤四:使用Agent

此时Cline已经配置完毕,您已获得基于Hologres + MCP + LLM的数据分析Agent。

  1. 单击Cline页右上角的image图标,进入Cline的对话页面。

  2. Cline页下方对话栏输入任务指令,点击发送即可。

    示意指令:帮我从Hologres中读取数据,分析下在hologres_dataset_tpch_10g这个schema下数据,分析下 1995年相较于1994年在 BRAZIL 销售情况的变化,如何提升销售额。并使用中文回答。答案中可以使用一些图表去解释一些信息,图表使用html写。

相关文档

若您需使用DataWorks MCP Server,请参见DataWorks Agent。更多阿里云MCP Server开源MCP Server,您可按需接入。

  • 本页导读
  • 背景信息
  • 场景说明
  • 功能介绍
  • 工具包
  • 资源包
  • 快速体验
  • 搭建Agent
  • 准备工作
  • 步骤一:配置LLM的API Key
  • 步骤二:下载Server源码
  • 步骤三:配置MCP Server
  • 步骤四:使用Agent
  • 相关文档