跳转到主要内容
要快速轻松地开始使用 ClickHouse,最简单的方法是在 ClickHouse Cloud 中创建一个新的 服务。在本快速入门指南中,我们将通过三个简单步骤帮你完成设置。
1

创建 ClickHouse 服务

要在 ClickHouse Cloud 中创建免费的 ClickHouse 服务,只需按以下步骤注册:
  • 注册页面创建账户
  • 你可以选择使用电子邮件注册,或通过 Google SSO、Microsoft SSO、AWS Marketplace、Google Cloud 或 Microsoft Azure 注册
  • 如果你使用电子邮件和密码注册,请记得在 24 小时内通过邮件中的链接验证电子邮件地址
  • 使用刚创建的用户名和密码登录

登录后,ClickHouse Cloud 会启动引导式设置向导,引导你创建新的 ClickHouse 服务。选择部署服务所需的区域,并为新服务命名:
默认情况下,新组织会使用 Scale 层级,并创建 3 个副本,每个副本配备 4 个 VCPU 和 16 GiB RAM。Scale 层级默认启用垂直自动扩缩容。你稍后可以在“Plans”页面更改组织层级。如有需要,你可以通过指定副本扩缩容的最小和最大规格来自定义服务资源。准备就绪后,选择 Create service
恭喜!你的 ClickHouse Cloud 服务现已成功运行,引导式设置也已完成。继续阅读,了解如何开始摄取和查询数据。
2

连接到 ClickHouse

有 2 种方式连接到 ClickHouse:
  • 使用我们的 Web 版 SQL 控制台进行连接
  • 通过你的应用进行连接

使用 SQL 控制台连接

为了快速上手,ClickHouse 提供了一个 Web 版 SQL 控制台,完成 onboarding 后,你将被重定向到该控制台。创建一个查询选项卡,并输入一个简单的查询,以验证连接是否正常工作:
SHOW databases
你应该会在列表中看到 4 个数据库,以及你另外添加的所有数据库。
就是这样 - 你已经可以开始使用新的 ClickHouse 服务了!

连接你的应用

点击导航菜单中的 connect 按钮。系统会打开一个弹窗,其中会提供你的服务凭证,以及一组说明,指导你如何通过对应的接口或编程语言客户端进行连接。
如果你没有看到所需的编程语言客户端,可以查看我们的集成列表。
3

添加数据

有了数据,ClickHouse 才能发挥更大的价值!添加数据的方式有多种,大多数方式均可通过导航菜单中的数据源页面完成。
您可以通过以下方式上传数据:
  • 配置 ClickPipe,开始从 S3、Postgres、Kafka、GCS 等数据源摄取数据
  • 使用 SQL 控制台
  • 使用 ClickHouse 客户端
  • 上传文件 - 支持的格式包括 JSON、CSV 和 TSV
  • 通过文件 URL 上传数据

ClickPipes

ClickPipes 是一个托管集成平台,让您只需点击几下即可从多种数据源摄取数据。ClickPipes 专为最苛刻的工作负载而设计,其稳健且可扩展的架构可确保稳定的性能与可靠性。ClickPipes 既适用于长期流式摄取场景,也适用于一次性数据加载任务。

使用 SQL 控制台添加数据

与大多数数据库管理系统一样,ClickHouse 将表按逻辑分组到数据库中。使用 CREATE DATABASE 命令在 ClickHouse 中创建新数据库:
CREATE DATABASE IF NOT EXISTS helloworld
运行以下命令,在 helloworld 数据库中创建名为 my_first_table 的表:
CREATE TABLE helloworld.my_first_table
(
    user_id UInt32,
    message String,
    timestamp DateTime,
    metric Float32
)
ENGINE = MergeTree()
PRIMARY KEY (user_id, timestamp)
在上面的示例中,my_first_table 是一个包含四列的 MergeTree 表:
  • user_id:一个 32 位无符号整数 (UInt32)
  • message:一种 String 数据类型,相当于其他数据库系统中的 VARCHARBLOBCLOB 等类型
  • timestamp:一个 DateTime 值,表示某个时间点
  • metric:一个 32 位浮点型数值 (Float32)
表引擎表引擎决定:
  • 数据如何存储以及存储位置
  • 支持哪些查询
  • 数据是否会被复制

可选的表引擎有很多,但对于运行在单节点 ClickHouse server 上的简单表,MergeTree 通常是首选。

主键简介

在继续之前,有必要先了解 ClickHouse 中主键的工作原理 (其实现方式可能会让你感到意外!) :
  • ClickHouse 中的主键对表中的每一行来说并不唯一
ClickHouse 表的主键决定了数据写入磁盘时的排序方式。每 8,192 行或 10MB 的数据 (称为索引粒度) 会在主键索引文件中创建一条记录。这一粒度概念形成了一个稀疏索引,可轻松装入内存,而各粒度则代表 SELECT 查询处理期间所读取的最小列数据单元的条带。主键可以通过 PRIMARY KEY 参数来定义。如果在定义表时未指定 PRIMARY KEY,则键将成为 ORDER BY 子句中指定的 Tuple。如果同时指定了 PRIMARY KEYORDER BY,则主键必须是排序顺序的子集。主键同时也是排序键,即 (user_id, timestamp) 的 Tuple。因此,每个列文件中存储的数据将先按 user_id 排序,再按 timestamp 排序。如需深入了解 ClickHouse 核心概念,请参阅”核心概念”

向表中插入数据

您可以在 ClickHouse 中使用熟悉的 INSERT INTO TABLE 命令,但需要了解的是,每次向 MergeTree 表插入数据时,都会在存储中创建一个分片
ClickHouse 最佳实践每个批次应插入大量行——一次可插入数万行,甚至数百万 行。别担心——ClickHouse 可以轻松处理这种规模的数据——而且由于向你的服务发送的写入请求更少,它还能帮你节省成本

即便是简单的示例,我们也一次性插入多行数据:
INSERT INTO helloworld.my_first_table (user_id, message, timestamp, metric) VALUES
    (101, 'Hello, ClickHouse!',                                 now(),       -1.0    ),
    (102, 'Insert a lot of rows per batch',                     yesterday(), 1.41421 ),
    (102, 'Sort your data based on your commonly-used queries', today(),     2.718   ),
    (101, 'Granules are the smallest chunks of data read',      now() + 5,   3.14159 )
请注意,timestamp 列是通过各种 DateDateTime 函数来填充的。ClickHouse 提供了数百个实用函数,你可以在 Functions 部分 中查看。
验证操作是否成功:
SELECT * FROM helloworld.my_first_table

使用 ClickHouse 命令行客户端添加数据

您也可以使用名为 clickhouse client 的命令行工具连接到您的 ClickHouse Cloud 服务。点击左侧菜单中的 Connect 查看相关详情。在弹出的对话框中,从下拉菜单选择 Native
  1. 安装 ClickHouse
  2. 运行以下命令,将其中的 hostname、用户名和密码替换为你自己的值:
./clickhouse client --host HOSTNAME.REGION.CSP.clickhouse.cloud \
--secure --port 9440 \
--user default \
--password <password>
如果出现笑脸提示,说明您已可以运行查询了!
:)
  1. 运行以下查询来试试:

SELECT *
FROM helloworld.my_first_table
ORDER BY timestamp
注意,响应以整洁的表格形式返回:
┌─user_id─┬─message────────────────────────────────────────────┬───────────timestamp─┬──metric─┐
│     102 │ Insert a lot of rows per batch                     │ 2022-03-21 00:00:00 │ 1.41421 │
│     102 │ Sort your data based on your commonly-used queries │ 2022-03-22 00:00:00 │   2.718 │
│     101 │ Hello, ClickHouse!                                 │ 2022-03-22 14:04:09 │      -1 │
│     101 │ Granules are the smallest chunks of data read      │ 2022-03-22 14:04:14 │ 3.14159 │
└─────────┴────────────────────────────────────────────────────┴─────────────────────┴─────────┘

4 rows in set. Elapsed: 0.008 sec.
  1. 添加 FORMAT 子句,以指定 ClickHouse 支持的众多输出格式之一

SELECT *
FROM helloworld.my_first_table
ORDER BY timestamp
FORMAT TabSeparated
在上述查询中,输出以制表符分隔的格式返回:
Query id: 3604df1c-acfd-4117-9c56-f86c69721121

102 Insert a lot of rows per batch      2022-03-21 00:00:00     1.41421
102 Sort your data based on your commonly-used queries  2022-03-22 00:00:00     2.718
101 Hello, ClickHouse!  2022-03-22 14:04:09     -1
101 Granules are the smallest chunks of data read       2022-03-22 14:04:14     3.14159

4 rows in set. Elapsed: 0.005 sec.
  1. 要退出 clickhouse client,请输入 exit 命令:

exit

上传文件

初次使用数据库时,一个常见的操作是将本地文件中的数据导入数据库。我们在线提供了一些样本数据供您导入,这些数据代表点击流数据,包含用户 ID、访问的 URL 以及事件的时间戳。假设我们有一个名为 data.csv 的 CSV 文件,其内容如下:
data.csv
102,This is data in a file,2022-02-22 10:43:28,123.45
101,It is comma-separated,2022-02-23 00:00:00,456.78
103,Use FORMAT to specify the format,2022-02-21 10:43:30,678.90
  1. 以下命令将数据插入 my_first_table

./clickhouse client --host HOSTNAME.REGION.CSP.clickhouse.cloud \
--secure --port 9440 \
--user default \
--password <password> \
--query='INSERT INTO helloworld.my_first_table FORMAT CSV' < data.csv
  1. 注意:如果在 SQL 控制台中查询,现在可以看到表中已出现新的行:


IP 访问列表过滤在继续之前,建议先设置 IP 访问列表过滤。 更多详情,请参阅”设置 IP 过滤器”

接下来做什么?

  • 教程将引导你向表中插入 200 万行数据,并编写一些分析查询
  • 我们提供了一系列示例数据集,并附有如何插入这些数据集的说明
  • 查看我们时长 25 分钟的ClickHouse 快速入门视频
  • 如果你的数据来自外部来源,请查看我们的集成指南,了解如何连接消息队列、数据库、管道等
  • 如果你正在使用 UI/BI 可视化工具,请查看将 UI 连接到 ClickHouse 的用户指南
  • 主键用户指南涵盖了有关主键及其定义方式的全部内容
最后修改于 2026年6月10日