要快速轻松地开始使用 ClickHouse,最简单快捷的方式是在 ClickHouse Cloud 中创建新服务。本快速入门指南将通过三个简单步骤帮助您完成设置。
1
创建 ClickHouse 服务
要在 ClickHouse Cloud 中创建免费的 ClickHouse 服务,只需按以下步骤注册:
登录后,ClickHouse Cloud 会启动引导向导,指导您创建新的 ClickHouse 服务。选择部署服务的区域,并为新服务命名:
默认情况下,新组织会使用 Scale 层级,并创建 3 个副本,每个副本配备 4 个 vCPU 和 16 GiB RAM。Scale 层级默认启用垂直自动扩缩容。之后您可以在“套餐”页面更改组织层级。如有需要,可通过指定副本扩缩容的最小和最大规格来自定义服务资源。准备就绪后,选择
恭喜!您的 ClickHouse Cloud 服务现已启动并运行,引导流程已完成。请继续阅读,了解如何开始摄取和查询数据。
- 在注册页面创建账户
- 您可以选择使用电子邮件注册,或通过 Google SSO、Microsoft SSO、AWS Marketplace、Google Cloud 或 Microsoft Azure 注册
- 如果您使用电子邮件和密码注册,请务必在 24 小时内通过邮件中收到的链接验证电子邮件地址
- 使用刚创建的用户名和密码登录
登录后,ClickHouse Cloud 会启动引导向导,指导您创建新的 ClickHouse 服务。选择部署服务的区域,并为新服务命名:
默认情况下,新组织会使用 Scale 层级,并创建 3 个副本,每个副本配备 4 个 vCPU 和 16 GiB RAM。Scale 层级默认启用垂直自动扩缩容。之后您可以在“套餐”页面更改组织层级。如有需要,可通过指定副本扩缩容的最小和最大规格来自定义服务资源。准备就绪后,选择
Create service。恭喜!您的 ClickHouse Cloud 服务现已启动并运行,引导流程已完成。请继续阅读,了解如何开始摄取和查询数据。
2
连接 ClickHouse
3
添加数据
有了数据,ClickHouse 才能发挥威力!添加数据的方式有很多,其中大部分都可以在“数据源”页面中找到,该页面可通过导航菜单进入。
您可以通过以下方法上传数据:
运行以下命令,在 在上面的示例中,
即使是简单的示例,我们也一次插入多行:下面验证是否生效:
如果看到笑脸提示符,就说明你可以开始执行查询了!
请注意,返回的响应采用了清晰美观的表格格式:
在上述查询中,输出以制表符分隔的形式返回:
您可以通过以下方法上传数据:
- 设置 ClickPipe,开始从 S3、Postgres、Kafka、GCS 等数据源摄取数据
- 使用 SQL 控制台
- 使用 ClickHouse 客户端
- 上传文件 - 支持 JSON、CSV 和 TSV 格式
- 通过文件 URL 上传数据
ClickPipes
ClickPipes 是一个托管式集成平台,只需点击几下即可从各种数据源摄取数据。ClickPipes 专为要求最为苛刻的工作负载而设计,其稳健且可扩展的架构可确保稳定的性能与可靠性。ClickPipes 既可满足长期的流式数据需求,也可用于一次性的数据加载任务。使用 SQL 控制台添加数据
与大多数数据库管理系统一样,ClickHouse 在逻辑上将表组织到数据库中。使用CREATE DATABASE 命令即可在 ClickHouse 中创建新数据库:helloworld 数据库中创建一个名为 my_first_table 的表:my_first_table 是一个包含四列的 MergeTree 表:user_id:32 位无符号整数 (UInt32)message:String 数据类型,可替代其他数据库系统中的VARCHAR、BLOB、CLOB等类型timestamp:DateTime 值,表示某一时刻metric:32 位浮点数 (Float32)
主键简介
在继续之前,务必先了解主键在 ClickHouse 中的工作原理 (主键的实现方式可能会出乎你的意料!) :- ClickHouse 中的主键对于表中的每一行而言并不唯一
SELECT 查询执行期间所处理的最小一段列数据。主键可通过 PRIMARY KEY 参数定义。如果建表时未指定 PRIMARY KEY,
则主键即为 ORDER BY 子句中指定的元组。如果同时指定了 PRIMARY KEY 和 ORDER BY,则主键必须是排序顺序的子集。主键同时也是排序键,即元组 (user_id, timestamp)。因此,每个列文件中存储的数据会先按 user_id 排序,再按 timestamp 排序。如需深入了解 ClickHouse 的核心概念,请参阅 “核心概念”。向表中插入数据
在 ClickHouse 中,你可以使用熟悉的INSERT INTO TABLE 命令,但务必了解:每次向 MergeTree 表插入数据,都会在存储中创建一个分片。即使是简单的示例,我们也一次插入多行:
请注意,
timestamp 列通过各种 Date 和 DateTime 函数填充。ClickHouse 提供数百种实用函数,可在 Functions 部分查看。使用 ClickHouse 命令行客户端添加数据
你也可以使用名为 clickhouse client 的命令行工具连接到你的 ClickHouse Cloud 服务。点击左侧菜单中的Connect,即可查看相关连接信息。在弹出的对话框中,从下拉列表选择 Native:- 安装 ClickHouse。
- 运行以下命令,并将其中的主机名、用户名和密码替换为您的相应信息:
- 运行以下查询进行试用:
- 添加
FORMAT子句,以指定 ClickHouse 支持的众多输出格式之一:
- 要退出
clickhouse client,请输入 exit 命令:
上传文件
刚上手数据库时,一个常见的任务是把已有文件中的数据插入进来。我们在线提供了一份可供插入的 样本数据,它代表点击流数据 —— 其中包含用户 ID、被访问的 URL 以及 事件的时间戳。假设有一个名为data.csv 的 CSV 文件,其内容如下:data.csv
- 使用以下命令将数据插入
my_first_table:
- 请注意,从 SQL 控制台查询时,表中现在会显示新行:
后续步骤
- 教程将指导您向表中插入 200 万行数据,并编写一些分析查询
- 我们提供了示例数据集列表,其中包含插入这些数据集的说明
- 观看我们时长 12 分钟的 ClickHouse 入门视频
- 如果您的数据来自外部源,请查看我们的集成指南集合,了解如何连接消息队列、数据库、管道等
- 如果您使用 UI/BI 可视化工具,请查看将 UI 连接到 ClickHouse 的用户指南
- 关于主键的用户指南涵盖了您需要了解的主键相关知识及其定义方法