记录ClickHouse部署并开通AI远程对接

 转载说明:如果您喜欢这篇文章并打算转载它,请私信作者取得授权。感谢您喜爱本文,请文明转载,谢谢。


前言

ClickHouse是一款高性能的列式存储 SQL 数据库管理系统(DBMS),用于联机分析处理(OLAP)。它既可以作为开源软件,也可以作为云服务提供。

它支持一种基于 SQL 的声明式查询语言,在很多方面与 ANSI SQL 标准保持一致。支持的查询子句包括 GROUP BY、ORDER BY、FROM 中的子查询、JOIN 子句、IN 运算符、窗口函数 以及标量子查询。

之前在试验过的开源可观测工具SigNoz中,就用了ClickHouse。

ClickHouse部署

#!/bin/bash
docker run -d \
  -e CLICKHOUSE_DB=sredata \
  -e CLICKHOUSE_USER=sre \
  -e CLICKHOUSE_PASSWORD=123456 \
  -v /root/clickhouse/ck_logs:/var/log/clickhouse-server \
  -v /root/clickhouse/ck_data/clickhouse:/var/lib/clickhouse \
  -p 8123:8123 \
  -p 9000:9000 \
  --name clickhouse-server \
  --ulimit nofile=262144:262144 \
  --privileged=true \
  clickhouse/clickhouse-server:latest

启动之后进入容器查看用户名、密码、库是否创建成功:

验证成功后,一个clickhouse服务就部署完了,接下来部署MCP服务,为AI对接开通窗口。

MCP服务部署

MCP服务部署可以参考官方文档https://github.com/ClickHouse/mcp-clickhouse,它提供了clickhouse对接AI的功能,支持3个协议:"stdio""http""sse"。默认是"stdio"协议,如果需要替换为"http"或者"sse"协议,需要设置环境变量CLICKHOUSE_MCP_SERVER_TRANSPORT。

使用docker启动mcp服务,并指定对接AI的协议为sse:

#!/bin/bash
docker run -d \
  -e CLICKHOUSE_HOST=10.0.0.101 \
  -e CLICKHOUSE_PORT=8123 \
  -e CLICKHOUSE_SECURE=false \
  -e CLICKHOUSE_USER=sre \
  -e CLICKHOUSE_PASSWORD=123456 \
  -e CLICKHOUSE_DATABASE=sredata \
  -e CLICKHOUSE_MCP_SERVER_TRANSPORT=sse \
  -e CLICKHOUSE_MCP_BIND_HOST=0.0.0.0 \
  -e CLICKHOUSE_MCP_BIND_PORT=8000 \
  -e CLICKHOUSE_MCP_QUERY_TIMEOUT=30 \
  -e MALLOC_CONF=background_thread:false \
  -e JEMALLOC_MAX_BACKGROUND_THREADS=0 \
  -p 8000:8000 \
  --name mcp-clickhouse \
  --ulimit nofile=262144:262144 \
  --privileged=true \
  mcp/clickhouse:latest

启动后,可以查看日志显示协议:

测试访问url:

出现这个结果,就是正常的了。

MCP服务就算是部署好了,可以在AI平台通过MCP远程对接clickhouse数据库了,可以做数据查询等工作。

遇到的问题

1. 启动clickhouse报错时区问题,容器无法启动

这个时区问题centos7上有遇到,但在龙蜥系统上没有出现过这个问题,容器启动后报错如下:

解决办法:需要在启动脚本里面加上--privileged=true,使用特权模式启动即可。

2. MCP的启动报错:

图片

解决办法:同问题1一样,在龙蜥系统上没有遇到,但是在centos7系统遇到了,需要在启动容器的时候加上--privileged=true使用特权模式启动。

3. MCP服务访问路径问题

官方文档https://github.com/ClickHouse/mcp-clickhouse上写了http协议下,MCP的看路径是/mcp,这里稍微比较容易被误导:

图片

如果使用的是sse协议,部署好mcp之后,如果没注意查看mcp的日志,就可能会在这里卡住,因为sse协议下,mcp这个路径是不通的:

图片

访问的正确URL是/sse(如前截图)

欢迎关注SRE成长记一起探讨学习!↓↓↓

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值