跳到主要内容
跳到主要内容

ClickHouse 云快速入门

获取并运行 ClickHouse 的最快、最简单的方法是在 ClickHouse Cloud 中创建一个新服务。

1. 创建 ClickHouse 服务

要在 ClickHouse Cloud 中创建免费 ClickHouse 服务,您只需通过以下步骤注册:

  • 注册页面 创建一个帐户
  • 您可以选择使用电子邮件或通过 Google SSO、Microsoft SSO、AWS Marketplace、Google Cloud 或 Microsoft Azure 注册
  • 如果您使用电子邮件和密码注册,请记住在收到的电子邮件中的链接内的 24 小时内验证您的电子邮件地址
  • 使用刚创建的用户名和密码登录
选择计划

登录后,ClickHouse Cloud 启动入职向导,指导您创建新的 ClickHouse 服务。您将首先被要求 选择一个计划:

选择计划

提示

我们建议对大多数工作负载选择 Scale 级别。 有关层的更多详细信息,请参见 这里

选择计划时,您需要选择要部署首个服务的目标区域。 可用的具体选项将取决于所选级别。 在以下步骤中,我们假设用户选择了推荐的 Scale 级别。

选择要部署服务的区域,并为您的新服务命名:

新 ClickHouse 服务

默认情况下,Scale 级别将创建 3 个副本,每个副本具有 4 个 VCPUs 和 16 GiB RAM。默认情况下,将在 Scale 级别启用 垂直自动缩放

用户可以根据需要自定义服务资源,指定副本之间缩放的最小和最大大小。准备就绪后,选择 创建服务

缩放限制

恭喜!您的 ClickHouse Cloud 服务已启动并运行,入职流程完成。继续阅读以获取有关如何开始摄取和查询您的数据的详细信息。

2. 连接到 ClickHouse

连接到 ClickHouse 有两种方法:

  • 通过我们的基于网络的 SQL 控制台连接
  • 与您的应用程序连接

使用 SQL 控制台连接

为了快速入门,ClickHouse 提供了一个基于 Web 的 SQL 控制台,您将在完成入职后被重定向到此控制台。

SQL 控制台

创建一个查询标签并输入简单的查询以验证您的连接是否正常工作:


您应该在列表中看到 4 个数据库,以及您可能已添加的任何数据库。

SQL 控制台

就这样 - 您已准备好开始使用您的新 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 数据类型,替代其他数据库系统中的 VARCHARBLOBCLOB 等类型
  • timestamp: DateTime 值,表示某一时刻
  • metric: 32 位浮点数(Float32
表引擎

表引擎决定:

  • 数据如何存储以及存储位置
  • 支持哪些查询
  • 数据是否被复制

有许多表引擎可供选择,但对于单节点 ClickHouse 服务器上的简单表来说,MergeTree 是您可能的选择。

对主键的简要介绍

在继续之前,了解 ClickHouse 中主键的工作原理是很重要的(主键的实现可能看起来出乎意料!):

  • ClickHouse 中的主键对表中的每一行 不是唯一的

ClickHouse 表的主键决定了数据写入磁盘时的排序方式。每 8,192 行或 10MB 数据(称为 索引粒度)会在主键索引文件中创建一个条目。这个粒度概念创建了一个 稀疏索引,可以轻松地适应内存,粒度表示在 SELECT 查询期间处理的最小列数据块。

主键可以使用 PRIMARY KEY 参数定义。如果您定义一个未指定 PRIMARY KEY 的表,则键成为 ORDER BY 子句中指定的元组。如果您同时指定了 PRIMARY KEYORDER BY,则主键必须是排序顺序的子集。

主键也是排序键,即 (user_id, timestamp) 的元组。因此,存储在每个列文件中的数据将按 user_id 然后按 timestamp 进行排序。

要深入了解 ClickHouse 的核心概念,请参见 “核心概念”

将数据插入您的表

您可以使用熟悉的 INSERT INTO TABLE 命令,但重要的是要了解,每次插入到 MergeTree 表中都会在存储中创建一个 部分

ClickHouse 最佳实践

每批插入大量行 - 幾万行甚至數百万行一次。别担心 - ClickHouse 轻松处理这种体积,并且通过发送更少的写请求到您的服务来 节省您的资金


即使是一个简单的示例,让我们插入多于一行的数据:

备注

请注意,timestamp 列是使用各种 DateDateTime 函数填充的。ClickHouse 具有数百个有用的函数,您可以在 函数部分 中查看它们。

让我们验证它是否成功:

使用 ClickHouse 客户端添加数据

您还可以使用名为 clickhouse 客户端 的命令行工具连接到您的 ClickHouse Cloud 服务。单击左侧菜单中的 连接 以访问这些详细信息。在对话框中从下拉菜单中选择 Native

clickhouse 客户端连接详细信息

  1. 安装 ClickHouse

  2. 运行命令,替换您的主机名、用户名和密码:

如果您看到笑脸提示符,则说明您已准备好运行查询!

  1. 通过运行以下查询来尝试一下:

请注意,响应以良好的表格格式返回:

  1. 添加 FORMAT 子句以指定 ClickHouse 支持的多种输出格式之一:

在上面的查询中,输出返回为制表符分隔:

  1. 要退出 clickhouse client,输入 exit 命令:

上传文件

入门数据库时的常见任务是插入一些您已经在文件中的数据。我们在线提供一些示例数据,您可以插入这些数据,这些数据代表点击流数据 - 包括用户 ID、访问的 URL 和事件的时间戳。

假设我们在名为 data.csv 的 CSV 文件中有以下文本:

  1. 以下命令将数据插入到 my_first_table 中:

  1. 请注意,如果从 SQL 控制台查询,现在新行会出现在表中:

来自 CSV 文件的新行

接下来怎么办?