跳至主要内容
跳至主要内容

ClickHouse Cloud 快速入门

使用 ClickHouse Cloud 创建新服务是开始使用 ClickHouse 的最快、最简单的方法。 在本快速入门指南中,我们将通过三个简单的步骤来完成设置。

创建 ClickHouse 服务

要在 ClickHouse Cloud 中创建免费的 ClickHouse 服务,您只需完成以下步骤注册即可

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

登录后,ClickHouse Cloud 将启动入职向导,引导您创建新的 ClickHouse 服务。 选择您希望部署服务的区域,并为您的新服务命名


默认情况下,新的组织将置于 Scale 级别,并将创建 3 个 副本ClickHouse 数据库中存储的数据的副本。 您可以拥有相同数据的任意数量的副本以实现冗余和可靠性。 副本与 ReplicatedMergeTree 表引擎结合使用,使 ClickHouse 能够跨不同的服务器同步数据的多个副本。,每个副本具有 4 个 VCPU 和 16 GiB RAM。 Scale 级别默认启用 垂直自动缩放。 您可以在“计划”页面上稍后更改您的组织级别。

如果需要,通过指定副本缩放范围的最小值和最大值来自定义服务资源。准备就绪后,选择 创建服务


恭喜! 您的 ClickHouse Cloud 服务已启动并正在运行,入职已完成。 继续阅读以了解如何开始导入和查询您的数据。

连接到 ClickHouse

有两种方法可以连接到 ClickHouse

  • 使用我们的基于 Web 的 SQL 控制台
  • 使用您的应用程序连接

使用 SQL 控制台连接

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

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

SHOW databases

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


就是这样 - 您已准备好开始使用您的新 ClickHouse 服务!

使用您的应用程序连接

从导航菜单中按“连接”按钮。 将打开一个模式窗口,提供您服务的凭据,并提供有关如何使用您的接口或语言客户端连接的说明。


如果您看不到您的语言客户端,您可能需要查看我们的 集成 列表。

添加数据

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 服务器上的简单表,MergeTree 可能是您的选择。

主键简介

在您进一步操作之前,了解 ClickHouse 中主键的工作方式非常重要(主键的实现方式可能出乎您的意料!)。

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

ClickHouse 表的 主键在 ClickHouse 中,主键决定了数据写入磁盘的顺序,并用于构建加速查询过滤的稀疏索引。 与传统数据库不同,ClickHouse 中的主键不强制唯一性 - 多个行可以具有相同的主键值。 决定了数据在写入磁盘时如何排序。 每 8,192 行或 10MB 的数据(称为 索引粒度)在 主键在 ClickHouse 中,主键决定了数据写入磁盘的顺序,并用于构建加速查询过滤的稀疏索引。 与传统数据库不同,ClickHouse 中的主键不强制唯一性 - 多个行可以具有相同的主键值。 索引文件中创建一个条目。 此粒度概念创建了一个 稀疏索引一种索引类型,当主索引包含一组行的条目而不是单个行时。 与查询匹配的行的组对应的条目称为标记。 由于此原因,主索引足够小,可以加载到内存中。,它可以轻松地适应内存,并且粒度代表了在 SELECT 查询期间处理的最小数量的列数据的条带。

主键在 ClickHouse 中,主键决定了数据写入磁盘的顺序,并用于构建加速查询过滤的稀疏索引。 与传统数据库不同,ClickHouse 中的主键不强制唯一性 - 多个行可以具有相同的主键值。 可以使用 PRIMARY KEY 参数定义。 如果您定义了一个没有指定 PRIMARY KEY 的表,则键将成为 ORDER BY 子句中指定的元组。 如果您同时指定 PRIMARY KEYORDER BY,则 主键在 ClickHouse 中,主键决定了数据写入磁盘的顺序,并用于构建加速查询过滤的稀疏索引。 与传统数据库不同,ClickHouse 中的主键不强制唯一性 - 多个行可以具有相同的主键值。 必须是排序顺序的子集。

主键在 ClickHouse 中,主键决定了数据写入磁盘的顺序,并用于构建加速查询过滤的稀疏索引。 与传统数据库不同,ClickHouse 中的主键不强制唯一性 - 多个行可以具有相同的主键值。 也是 排序键在 ClickHouse 中,排序键定义了磁盘上行的物理顺序。 如果您没有指定主键,ClickHouse 将使用排序键作为主键。 如果您同时指定了主键和排序键,则主键必须是排序键的前缀。,这是一个 (user_id, timestamp) 元组。 因此,存储在每个列文件中的数据将首先按 user_id,然后按 timestamp 排序。

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

将数据插入到您的表中

您可以使用熟悉的 INSERT INTO TABLE 命令与 ClickHouse 一起使用,但了解每次插入到 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 列使用各种 日期日期时间 函数填充。 ClickHouse 有数百个有用的函数,您可以 函数 部分 查看。

让我们验证一下是否生效

SELECT * FROM helloworld.my_first_table

使用 ClickHouse 客户端添加数据

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


  1. 安装 ClickHouse

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

./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 文件中拥有以下文本

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 过滤器”

接下来是什么?

    © . This site is unofficial and not affiliated with ClickHouse, Inc.