mcpField
C
clickhousectl-local-dev

clickhousectl-local-dev

github.com/clickhouse数据与数据库5624.5k 次安装1 周前更新
代码仓库

关于 clickhousectl-local-dev

通过 `clickhousectl` 引导开发者搭建本地 ClickHouse 环境,涵盖安装、启动服务、创建表结构和查询验证。适用于应用开发、原型制作及本地实验。

主要功能

  1. 01安装并选择 ClickHouse 版本
  2. 02初始化项目目录结构
  3. 03启动和查看本地服务器
  4. 04编写并应用表结构 SQL
  5. 05可选写入种子数据并验证查询

适用场景

  1. 01为分析型应用准备本地数据库
  2. 02在本机安装并运行 ClickHouse
  3. 03创建表并查询本地开发数据

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/clickhouse/agent-skills --skill clickhousectl-local-dev

安装后在 Claude Code 中输入/clickhousectl-local-dev确认已加载。

附带文件metadata.json

详细介绍

本地 ClickHouse 开发环境设置

本技能将介绍如何使用 clickhousectl 搭建完整的本地 ClickHouse 开发环境。请按顺序执行以下步骤。

适用场景

当用户想要:

  • 构建需要分析型数据库或 ClickHouse 的应用
  • 设置本地 ClickHouse 实例用于开发
  • 在计算机上安装 ClickHouse
  • 创建表并开始在本地查询 ClickHouse
  • 使用 ClickHouse 进行原型设计或实验

第 1 步:安装 clickhousectl

检查是否已安装 clickhousectl:

which clickhousectl

如果未找到,请安装:

curl -fsSL https://clickhouse.com/cli | sh

这会将 clickhousectl 安装到 ~/.local/bin/clickhousectl,并创建 chctl 别名。

如果安装后仍找不到命令: 用户可能需要将 ~/.local/bin 添加到 PATH,或打开新的终端会话。建议执行:

export PATH="$HOME/.local/bin:$PATH"

安装完成后,可以使用 clickhousectl skills 安装最新的 ClickHouse Agent Skills。


第 2 步:安装 ClickHouse 并设置默认版本

安装最新版本的 ClickHouse,并将其设为系统默认版本:

clickhousectl local use latest

这会安装 ClickHouse,将其设为 clickhousectl local 命令使用的默认版本,并将 ~/.local/bin/clickhouse 符号链接到该二进制文件,从而将 clickhouse 添加到 PATH 中(也就是说,你可以直接调用 clickhouse,例如在需要时执行 clickhouse client)。

需要时,也可以使用 stable、26.4、26.4.2.10 等其他版本指定符。


第 3 步:初始化项目

在用户的项目根目录中执行:

clickhousectl local init

这会创建标准的文件夹结构:

clickhouse/
  tables/                 # CREATE TABLE statements
  materialized_views/     # Materialized view definitions
  queries/                # Saved queries
  seed/                   # Seed data / INSERT statements

注意: 此步骤为可选项。如果用户已有自己的 SQL 文件夹结构,请跳过此步骤,并调整后续步骤以使用相应路径。


第 4 步:启动本地服务

clickhousectl local server start --name <name>

这会在后台启动 ClickHouse 服务。

查看运行中的服务及其公开端口:

clickhousectl local server list

第 5 步:创建架构

根据用户的应用需求,编写 CREATE TABLE SQL 文件。

将每个表定义分别写入 clickhouse/tables/ 中的一个文件:

# Example: clickhouse/tables/events.sql
CREATE TABLE IF NOT EXISTS events (
    timestamp DateTime,
    user_id UInt32,
    event_type LowCardinality(String),
    properties String
)
ENGINE = MergeTree()
ORDER BY (event_type, timestamp)

设计架构时,如果有 clickhouse-best-practices 技能可用,请参考其中关于 ORDER BY 列选择、数据类型和分区的指导。

将架构应用到正在运行的服务:

clickhousectl local client --name <name> --queries-file clickhouse/tables/events.sql

第 6 步:填充数据(可选)

如果用户需要用于开发的示例数据,请将 INSERT 语句写入 clickhouse/seed/:

# Example: clickhouse/seed/events.sql
INSERT INTO events (timestamp, user_id, event_type, properties) VALUES
    ('2024-01-01 00:00:00', 1, 'page_view', '{"page": "/home"}'),
    ('2024-01-01 00:01:00', 2, 'click', '{"button": "signup"}');

应用种子数据:

clickhousectl local client --name <name> --queries-file clickhouse/seed/events.sql

第 7 步:验证设置

确认表已创建:

clickhousectl local client --name <name> --query "SHOW TABLES"

运行测试查询:

clickhousectl local client --name <name> --query "SELECT count() FROM events"

如果用户想使用托管的 ClickHouse 服务,请使用 clickhousectl-cloud-deploy 技能帮助用户部署到 ClickHouse Cloud。

评论

支持 Markdown