quick-start
概述
快速设置 ClickHouse。下载适合您操作系统的二进制文件,学习如何运行 ClickHouse 服务器,创建表,插入数据,并使用 ClickHouse 客户端查询您的表。
先决条件
您需要curl或其他命令行 HTTP 客户端来获取 ClickHouse 二进制文件。
下载二进制文件
ClickHouse 在 Linux、FreeBSD 和 macOS 上原生运行,并通过 WSL 在 Windows 上运行。下载 ClickHouse 到本地的最简单方法是运行以下 curl
命令。它会确定您的操作系统是否受支持,然后下载相应的 ClickHouse 二进制文件。
我们建议从新的空子目录运行下面的命令,因为某些配置文件将在运行 ClickHouse 服务器时首次创建在二进制文件所在的目录中。
您应该会看到:
在此阶段,您可以忽略提示运行 install
命令。
对于 Mac 用户:如果您收到二进制文件的开发者无法验证的错误,请参阅 "Fix the Developer Verification Error in MacOS"。
启动服务器
运行以下命令来启动 ClickHouse 服务器:
您应该会看到终端充满日志。这是预期的。在 ClickHouse 中,默认日志级别 设置为 trace
而不是 warning
。
启动客户端
使用 clickhouse-client
连接到您的 ClickHouse 服务。打开一个新终端,切换到保存 clickhouse
二进制文件的目录,并运行以下命令:
当其连接到在 localhost 上运行的服务时,您应该会看到一个微笑的表情:
创建表
使用 CREATE TABLE
定义新表。在 ClickHouse 中,典型的 SQL DDL 命令同样适用,唯一的补充是 ClickHouse 中的表需要一个 ENGINE
子句。使用 MergeTree
利用 ClickHouse 的性能优势:
插入数据
您可以在 ClickHouse 中使用熟悉的 INSERT INTO TABLE
命令,但重要的是要理解,每次插入 MergeTree
表时,ClickHouse 会在存储中创建一个我们称之为 part 的部分。这些部分稍后会在后台由 ClickHouse 合并。
在 ClickHouse 中,我们尽量批量插入大量行(一次数以万计或甚至数百万计),以减少后台合并所需的 parts 数量。
在本指南中,我们暂时不担心这个问题。运行以下命令,将几行数据插入到您的表中:
查询您的新表
您可以像使用任何 SQL 数据库一样编写 SELECT
查询:
注意响应以漂亮的表格格式返回:
插入您自己的数据
下一步是将您自己的数据导入 ClickHouse。我们有许多 表函数 和 集成 用于摄取数据。我们在下面的选项卡中提供了一些示例,或者您可以查看我们的 集成 页面,了解与 ClickHouse 集成的技术的详细列表。
- S3
- GCS
- Web
- Local
- PostgreSQL
- MySQL
- ODBC/JDBC
- 消息队列
- 数据湖
- 其他
使用 s3
表函数 从 S3 读取文件。它是一个表函数 - 意味着结果是一个可以:
- 作为
SELECT
查询的源(允许您在 S3 中运行临时查询并保留数据),或... - 将结果表插入到
MergeTree
表中(当您准备将数据移入 ClickHouse 时)
临时查询看起来像:
将数据移入 ClickHouse 表的示例如下,其中 nyc_taxi
是一个 MergeTree
表:
查看我们关于 AWS S3 文档页面的 集合,以获取更多使用 S3 与 ClickHouse 的详细信息和示例。
使用 file
表引擎读取本地文件。为了简单起见,将文件复制到 user_files
目录中(该目录位于您下载 ClickHouse 二进制文件的目录中)。
请注意,ClickHouse 通过分析一大批行来推断列的名称和数据类型。如果 ClickHouse 无法从文件名确定存储类型,您可以将其作为第二个参数指定:
查看 file
表函数 文档页面以获取更多详细信息。
消息队列可以使用相应的表引擎将数据流式传输到 ClickHouse,包括:
- Kafka:使用
Kafka
表引擎 集成 Kafka - Amazon MSK:与 Amazon Managed Streaming for Apache Kafka (MSK) 集成
- RabbitMQ:使用
RabbitMQ
表引擎 集成 RabbitMQ
ClickHouse 有表函数可以从以下来源读取数据:
- Hadoop:使用
hdfs
表函数 集成 Apache Hadoop - Hudi:使用
hudi
表函数 从 S3 中现有的 Apache Hudi 表读取数据 - Iceberg:使用
iceberg
表函数 从 S3 中现有的 Apache Iceberg 表读取数据 - DeltaLake:使用
deltaLake
表函数 从 S3 中现有的 Delta Lake 表读取数据
查看我们的 ClickHouse 集成清单,以查找如何将现有框架和数据源连接到 ClickHouse。
下一步
- 查看我们的 核心概念 部分,了解 ClickHouse 如何在后台工作的基本原理。
- 查看 高级教程,深入了解 ClickHouse 的关键概念和功能。
- 通过参加我们在 ClickHouse Academy 提供的免费按需培训课程来继续学习。
- 我们有一个 示例数据集 列表,提供如何插入它们的说明。
- 如果您的数据来自外部来源,请查看我们的 集成指南集合 以连接到消息队列、数据库、管道等。
- 如果您使用 UI/BI 可视化工具,请查看 连接 UI 到 ClickHouse 的用户指南。
- 主键的用户指南 [/guides/best-practices/sparse-primary-indexes.md] 提供有关主键及其定义所需的所有信息。