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 控制台,您将在完成入职后被重定向到该控制台。
创建一个查询选项卡并输入一个简单的查询以验证您的连接是否正常工作
您应该在列表中看到 4 个数据库,以及您可能添加的任何其他数据库。
就是这样 - 您已准备好开始使用您的新 ClickHouse 服务!
使用您的应用程序连接
从导航菜单中按“连接”按钮。 将打开一个模式窗口,提供您服务的凭据,并提供有关如何使用您的接口或语言客户端连接的说明。
如果您看不到您的语言客户端,您可能需要查看我们的 集成 列表。
添加数据
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 表中的主键对于表中的每一行来说 不是唯一的
ClickHouse 表的 主键在 ClickHouse 中,主键决定了数据写入磁盘的顺序,并用于构建加速查询过滤的稀疏索引。 与传统数据库不同,ClickHouse 中的主键不强制唯一性 - 多个行可以具有相同的主键值。 决定了数据在写入磁盘时如何排序。 每 8,192 行或 10MB 的数据(称为 索引粒度)在 主键在 ClickHouse 中,主键决定了数据写入磁盘的顺序,并用于构建加速查询过滤的稀疏索引。 与传统数据库不同,ClickHouse 中的主键不强制唯一性 - 多个行可以具有相同的主键值。 索引文件中创建一个条目。 此粒度概念创建了一个 稀疏索引一种索引类型,当主索引包含一组行的条目而不是单个行时。 与查询匹配的行的组对应的条目称为标记。 由于此原因,主索引足够小,可以加载到内存中。,它可以轻松地适应内存,并且粒度代表了在 SELECT 查询期间处理的最小数量的列数据的条带。
主键在 ClickHouse 中,主键决定了数据写入磁盘的顺序,并用于构建加速查询过滤的稀疏索引。 与传统数据库不同,ClickHouse 中的主键不强制唯一性 - 多个行可以具有相同的主键值。 可以使用 PRIMARY KEY 参数定义。 如果您定义了一个没有指定 PRIMARY KEY 的表,则键将成为 ORDER BY 子句中指定的元组。 如果您同时指定 PRIMARY KEY 和 ORDER BY,则 主键在 ClickHouse 中,主键决定了数据写入磁盘的顺序,并用于构建加速查询过滤的稀疏索引。 与传统数据库不同,ClickHouse 中的主键不强制唯一性 - 多个行可以具有相同的主键值。 必须是排序顺序的子集。
主键在 ClickHouse 中,主键决定了数据写入磁盘的顺序,并用于构建加速查询过滤的稀疏索引。 与传统数据库不同,ClickHouse 中的主键不强制唯一性 - 多个行可以具有相同的主键值。 也是 排序键在 ClickHouse 中,排序键定义了磁盘上行的物理顺序。 如果您没有指定主键,ClickHouse 将使用排序键作为主键。 如果您同时指定了主键和排序键,则主键必须是排序键的前缀。,这是一个 (user_id, timestamp) 元组。 因此,存储在每个列文件中的数据将首先按 user_id,然后按 timestamp 排序。
要深入了解 ClickHouse 的核心概念,请参阅 “核心概念”。
将数据插入到您的表中
您可以使用熟悉的 INSERT INTO TABLE 命令与 ClickHouse 一起使用,但了解每次插入到 MergeTree 表中都会导致存储中创建一个 部分 非常重要。
每次批量插入大量行 - 数千甚至数百万行。 不要担心 - ClickHouse 可以轻松处理这种数量级 - 它将 为您省钱,通过向您的服务发送更少的写入请求。
即使对于一个简单的示例,让我们一次插入多行
让我们验证一下是否生效
使用 ClickHouse 客户端添加数据
您也可以使用名为 clickhouse client 的命令行工具连接到您的 ClickHouse Cloud 服务。点击左侧菜单的 Connect 以访问这些详细信息。在对话框中,从下拉菜单中选择 Native
-
安装 ClickHouse。
-
运行命令,替换您的主机名、用户名和密码
如果您看到笑脸提示符,您就可以运行查询了!
- 尝试运行以下查询
请注意,响应会以漂亮的表格形式返回
在上面的查询中,输出将以制表符分隔
- 要退出
clickhouse client,请输入 exit 命令
上传文件
在使用数据库时,一个常见的任务是插入您已经存在于文件中的一些数据。我们在线提供一些示例数据,您可以插入这些数据,这些数据代表点击流数据 - 它包括一个用户 ID、一个访问的 URL 以及事件的时间戳。
假设我们在名为 data.csv 的 CSV 文件中拥有以下文本
- 以下命令将数据插入到
my_first_table中
- 请注意,如果您从 SQL 控制台查询,新行现在将出现在表中
在继续之前,我们建议设置 IP 访问列表过滤。有关更多详细信息,请参阅 “设置 IP 过滤器”。
接下来是什么?
- 《教程》将让您将 200 万行插入到表中,并编写一些分析查询
- 我们有一个 示例数据集列表,其中包含有关如何插入它们的说明
- 查看我们的 25 分钟视频 Getting Started with ClickHouse
- 如果您的数据来自外部源,请查看我们的 集成指南集合,以连接到消息队列、数据库、管道等
- 如果您正在使用 UI/BI 可视化工具,请查看 将 UI 连接到 ClickHouse 的用户指南
- 有关 主键的用户指南包含您需要了解的关于主键以及如何定义它们的一切