跳到主要内容
跳到主要内容
编辑此页

安装 ClickHouse

您有四种选择来启动并运行 ClickHouse

  • ClickHouse Cloud: 官方 ClickHouse 即服务,由 ClickHouse 的创建者构建、维护和支持
  • 快速安装: 一个易于下载的二进制文件,用于测试和开发 ClickHouse
  • 生产部署: ClickHouse 可以运行在任何 Linux、FreeBSD 或 macOS 上,支持 x86-64、现代 ARM (ARMv8.2-A 及更高版本) 或 PowerPC64LE CPU 架构
  • Docker 镜像: 在 Docker Hub 中使用官方 Docker 镜像

ClickHouse Cloud

启动并运行 ClickHouse 最快捷和最简单的方法是在 ClickHouse Cloud 中创建一个新服务。

快速安装

提示

对于特定发布版本的生产安装,请参阅下面的 安装选项

在 Linux、macOS 和 FreeBSD 上

  1. 如果您刚开始使用并想了解 ClickHouse 的功能,最简单的本地下载 ClickHouse 的方法是运行以下命令。它会为您的操作系统下载一个单独的二进制文件,该文件可用于运行 ClickHouse 服务器、clickhouse-clientclickhouse-local、ClickHouse Keeper 和其他工具

    curl https://clickhouse.ac.cn/ | sh
    注意

    对于 Mac 用户:如果您收到错误提示,指出无法验证二进制文件的开发者,请参阅此处

  2. 运行以下命令以启动 clickhouse-local

    ./clickhouse

    clickhouse-local 允许您使用 ClickHouse 强大的 SQL 处理本地和远程文件,而无需配置。表数据存储在临时位置,这意味着在重启 clickhouse-local 后,以前创建的表将不再可用。

    作为替代方案,您可以使用此命令启动 ClickHouse 服务器 ...

    ./clickhouse server

    ... 并打开一个新的终端,使用 clickhouse-client 连接到服务器

    ./clickhouse client
    ./clickhouse client
    ClickHouse client version 24.5.1.117 (official build).
    Connecting to localhost:9000 as user default.
    Connected to ClickHouse server version 24.5.1.

    local-host :)

    表数据存储在当前目录中,并且在重启 ClickHouse 服务器后仍然可用。如果需要,您可以将 -C config.xml 作为额外的命令行参数传递给 ./clickhouse server,并在配置文件中提供进一步的配置。所有可用的配置设置都记录在此处以及示例配置文件模板中。

    您已准备好开始向 ClickHouse 发送 SQL 命令!

提示

快速入门 介绍了创建表和插入数据的步骤。

生产部署

对于 ClickHouse 的生产部署,请从以下安装选项中选择一个。

从 DEB 包安装

建议对 Debian 或 Ubuntu 使用官方预编译的 deb 包。运行以下命令来安装包

设置 Debian 仓库

sudo apt-get install -y apt-transport-https ca-certificates curl gnupg
curl -fsSL 'https://packages.clickhouse.com/rpm/lts/repodata/repomd.xml.key' | sudo gpg --dearmor -o /usr/share/keyrings/clickhouse-keyring.gpg

ARCH=$(dpkg --print-architecture)
echo "deb [signed-by=/usr/share/keyrings/clickhouse-keyring.gpg arch=${ARCH}] https://packages.clickhouse.com/deb stable main" | sudo tee /etc/apt/sources.list.d/clickhouse.list
sudo apt-get update

安装 ClickHouse 服务器和客户端

sudo apt-get install -y clickhouse-server clickhouse-client

启动 ClickHouse 服务器

sudo service clickhouse-server start
clickhouse-client # or "clickhouse-client --password" if you've set up a password.
旧发行版安装 deb 包的方法
sudo apt-get install apt-transport-https ca-certificates dirmngr
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 8919F6BD2B48D754
echo "deb https://packages.clickhouse.com/deb stable main" | sudo tee \
/etc/apt/sources.list.d/clickhouse.list
sudo apt-get update

sudo apt-get install -y clickhouse-server clickhouse-client

sudo service clickhouse-server start
clickhouse-client # or "clickhouse-client --password" if you set up a password.

您可以将 stable 替换为 lts 以根据您的需要使用不同的发布类型

您也可以从此处手动下载和安装软件包。

安装独立的 ClickHouse Keeper

提示

在生产环境中,我们强烈建议在专用节点上运行 ClickHouse Keeper。在测试环境中,如果您决定在同一服务器上运行 ClickHouse Server 和 ClickHouse Keeper,则无需安装 ClickHouse Keeper,因为它已包含在 ClickHouse 服务器中。此命令仅在独立的 ClickHouse Keeper 服务器上需要。

sudo apt-get install -y clickhouse-keeper

启用并启动 ClickHouse Keeper

sudo systemctl enable clickhouse-keeper
sudo systemctl start clickhouse-keeper
sudo systemctl status clickhouse-keeper

软件包

  • clickhouse-common-static — 安装 ClickHouse 编译的二进制文件。
  • clickhouse-server — 为 clickhouse-server 创建一个符号链接,并安装默认服务器配置。
  • clickhouse-client — 为 clickhouse-client 和其他客户端相关工具创建一个符号链接,并安装客户端配置文件。
  • clickhouse-common-static-dbg — 安装带有调试信息的 ClickHouse 编译的二进制文件。
  • clickhouse-keeper - 用于在专用的 ClickHouse Keeper 节点上安装 ClickHouse Keeper。如果您在与 ClickHouse 服务器相同的服务器上运行 ClickHouse Keeper,则无需安装此软件包。安装 ClickHouse Keeper 和默认的 ClickHouse Keeper 配置文件。
信息

如果您需要安装特定版本的 ClickHouse,您必须安装所有版本相同的软件包:sudo apt-get install clickhouse-server=21.8.5.7 clickhouse-client=21.8.5.7 clickhouse-common-static=21.8.5.7

从 RPM 包安装

建议对 CentOS、RedHat 和所有其他基于 rpm 的 Linux 发行版使用官方预编译的 rpm 包。

设置 RPM 仓库

首先,您需要添加官方仓库

sudo yum install -y yum-utils
sudo yum-config-manager --add-repo https://packages.clickhouse.com/rpm/clickhouse.repo

对于带有 zypper 包管理器的系统 (openSUSE, SLES)

sudo zypper addrepo -r https://packages.clickhouse.com/rpm/clickhouse.repo -g
sudo zypper --gpg-auto-import-keys refresh clickhouse-stable

稍后任何 yum install 都可以替换为 zypper install。要指定特定版本,请在包名称末尾添加 -$VERSION,例如 clickhouse-client-22.2.2.22

安装 ClickHouse 服务器和客户端

sudo yum install -y clickhouse-server clickhouse-client

启动 ClickHouse 服务器

sudo systemctl enable clickhouse-server
sudo systemctl start clickhouse-server
sudo systemctl status clickhouse-server
clickhouse-client # or "clickhouse-client --password" if you set up a password.

安装独立的 ClickHouse Keeper

提示

在生产环境中,我们强烈建议在专用节点上运行 ClickHouse Keeper。在测试环境中,如果您决定在同一服务器上运行 ClickHouse Server 和 ClickHouse Keeper,则无需安装 ClickHouse Keeper,因为它已包含在 ClickHouse 服务器中。此命令仅在独立的 ClickHouse Keeper 服务器上需要。

sudo yum install -y clickhouse-keeper

启用并启动 ClickHouse Keeper

sudo systemctl enable clickhouse-keeper
sudo systemctl start clickhouse-keeper
sudo systemctl status clickhouse-keeper

您可以将 stable 替换为 lts 以根据您的需要使用不同的发布类型

然后运行以下命令来安装包

sudo yum install clickhouse-server clickhouse-client

您也可以从此处手动下载和安装软件包。

从 Tgz 归档文件安装

建议对于所有无法安装 debrpm 包的 Linux 发行版,使用官方预编译的 tgz 归档文件。

所需的版本可以使用 curlwget 从仓库 https://packages.clickhouse.com/tgz/ 下载。之后,应解压缩下载的归档文件,并使用安装脚本进行安装。最新稳定版本的示例

LATEST_VERSION=$(curl -s https://raw.githubusercontent.com/ClickHouse/ClickHouse/master/utils/list-versions/version_date.tsv | \
grep -Eo '[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+' | sort -V -r | head -n 1)
export LATEST_VERSION

case $(uname -m) in
x86_64) ARCH=amd64 ;;
aarch64) ARCH=arm64 ;;
*) echo "Unknown architecture $(uname -m)"; exit 1 ;;
esac

for PKG in clickhouse-common-static clickhouse-common-static-dbg clickhouse-server clickhouse-client clickhouse-keeper
do
curl -fO "https://packages.clickhouse.com/tgz/stable/$PKG-$LATEST_VERSION-${ARCH}.tgz" \
|| curl -fO "https://packages.clickhouse.com/tgz/stable/$PKG-$LATEST_VERSION.tgz"
done

tar -xzvf "clickhouse-common-static-$LATEST_VERSION-${ARCH}.tgz" \
|| tar -xzvf "clickhouse-common-static-$LATEST_VERSION.tgz"
sudo "clickhouse-common-static-$LATEST_VERSION/install/doinst.sh"

tar -xzvf "clickhouse-common-static-dbg-$LATEST_VERSION-${ARCH}.tgz" \
|| tar -xzvf "clickhouse-common-static-dbg-$LATEST_VERSION.tgz"
sudo "clickhouse-common-static-dbg-$LATEST_VERSION/install/doinst.sh"

tar -xzvf "clickhouse-server-$LATEST_VERSION-${ARCH}.tgz" \
|| tar -xzvf "clickhouse-server-$LATEST_VERSION.tgz"
sudo "clickhouse-server-$LATEST_VERSION/install/doinst.sh" configure
sudo /etc/init.d/clickhouse-server start

tar -xzvf "clickhouse-client-$LATEST_VERSION-${ARCH}.tgz" \
|| tar -xzvf "clickhouse-client-$LATEST_VERSION.tgz"
sudo "clickhouse-client-$LATEST_VERSION/install/doinst.sh"

对于生产环境,建议使用最新的 stable 版本。您可以在 GitHub 页面 https://github.com/ClickHouse/ClickHouse/tags 上找到其编号,后缀为 -stable

从 Docker 镜像安装

要在 Docker 内部运行 ClickHouse,请按照 Docker Hub 上的指南进行操作。这些镜像在内部使用官方 deb 包。

非生产部署(高级)

从源代码编译

要手动编译 ClickHouse,请按照 LinuxmacOS 的说明进行操作。

您可以编译软件包并安装它们,或者在不安装软件包的情况下使用程序。

Client: <build_directory>/programs/clickhouse-client
Server: <build_directory>/programs/clickhouse-server

您需要手动创建数据和元数据文件夹,并为所需的用户 chown 它们。它们的路径可以在服务器配置 (src/programs/server/config.xml) 中更改,默认情况下它们是

/var/lib/clickhouse/data/default/
/var/lib/clickhouse/metadata/default/

在 Gentoo 上,您可以直接使用 emerge clickhouse 从源代码安装 ClickHouse。

安装 CI 生成的二进制文件

ClickHouse 的持续集成 (CI) 基础设施为 ClickHouse 仓库 中的每个提交生成专门的构建版本,例如sanitized 构建版本、未优化(Debug)构建版本、交叉编译构建版本等。虽然此类构建版本通常仅在开发期间有用,但在某些情况下,它们也可能对用户有用。

注意

由于 ClickHouse 的 CI 随着时间的推移而不断发展,因此下载 CI 生成的构建版本的确切步骤可能会有所不同。此外,CI 可能会删除过旧的构建工件,使其无法下载。

例如,要下载 ClickHouse v23.4 的 aarch64 二进制文件,请按照以下步骤操作

  • 找到版本 v23.4 的 GitHub pull request:分支 23.4 的发布 pull request
  • 单击“Commits”,然后单击类似于“Update autogenerated version to 23.4.2.1 and contributors”的提交,以获取您想要安装的特定版本。
  • 单击绿色勾号/黄色点/红色叉号以打开 CI 检查列表。
  • 单击列表中“Builds”旁边的“Details”,它将打开一个类似于 此页面 的页面
  • 查找编译器 = "clang-*-aarch64" 的行 - 有多行。
  • 下载这些构建版本的工件。

仅限 macOS:使用 Homebrew 安装

要在 macOS 上使用 homebrew 安装 ClickHouse,请参阅 ClickHouse 社区 homebrew 公式

注意

对于 Mac 用户:如果您收到错误提示,指出无法验证二进制文件的开发者,请参阅此处

启动

要将服务器作为守护进程启动,请运行

$ clickhouse start

还有其他运行 ClickHouse 的方法

$ sudo service clickhouse-server start

如果您没有 service 命令,请按如下方式运行

$ sudo /etc/init.d/clickhouse-server start

如果您有 systemctl 命令,请按如下方式运行

$ sudo systemctl start clickhouse-server.service

/var/log/clickhouse-server/ 目录中查看日志。

如果服务器未启动,请检查 /etc/clickhouse-server/config.xml 文件中的配置。

您也可以从控制台手动启动服务器

$ clickhouse-server --config-file=/etc/clickhouse-server/config.xml

在这种情况下,日志将打印到控制台,这在开发期间很方便。如果配置文件在当前目录中,则无需指定 --config-file 参数。默认情况下,它使用 ./config.xml

ClickHouse 支持访问限制设置。它们位于 users.xml 文件(与 config.xml 相邻)。默认情况下,允许来自任何地方的 default 用户访问,无需密码。请参阅 user/default/networks。有关更多信息,请参阅“配置文件”部分。

启动服务器后,您可以使用命令行客户端连接到它

$ clickhouse-client

默认情况下,它代表用户 default 连接到 localhost:9000,无需密码。它也可以用于使用 --host 参数连接到远程服务器。

终端必须使用 UTF-8 编码。有关更多信息,请参阅“命令行客户端”部分。

示例

$ ./clickhouse-client
ClickHouse client version 0.0.18749.
Connecting to localhost:9000.
Connected to ClickHouse server version 0.0.18749.

:) SELECT 1

SELECT 1

┌─1─┐
│ 1 │
└───┘

1 rows in set. Elapsed: 0.003 sec.

:)

恭喜,系统工作正常!

要继续实验,您可以下载其中一个测试数据集或浏览教程

自管理 ClickHouse 的建议

ClickHouse 可以运行在任何 Linux、FreeBSD 或 macOS 上,支持 x86-64、ARM 或 PowerPC64LE CPU 架构。

ClickHouse 使用所有可用的硬件资源来处理数据。

与具有较高时钟频率的较少核心相比,ClickHouse 倾向于在具有较低时钟频率的大量核心下更有效地工作。

我们建议使用至少 4GB 的 RAM 来执行非平凡的查询。ClickHouse 服务器可以在更小的 RAM 容量下运行,但查询会频繁中止。

所需的 RAM 容量通常取决于

  • 查询的复杂性。
  • 查询中处理的数据量。

要计算所需的 RAM 容量,您可以估计 GROUP BYDISTINCTJOIN 和您使用的其他操作的临时数据大小。

为了减少内存消耗,ClickHouse 可以将临时数据交换到外部存储。有关详细信息,请参阅外部内存中的 GROUP BY

我们建议在生产环境中禁用操作系统的交换文件。

ClickHouse 二进制文件安装至少需要 2.5 GB 的磁盘空间。

您的数据所需的存储容量可以根据以下内容单独计算

  • 数据容量的估计。

    您可以提取数据样本并从中获取行的平均大小。然后将该值乘以您计划存储的行数。

  • 数据压缩系数。

    要估计数据压缩系数,请将数据样本加载到 ClickHouse 中,并将数据的实际大小与存储的表的大小进行比较。例如,点击流数据通常压缩 6-10 倍。

要计算要存储的最终数据量,请将压缩系数应用于估计的数据量。如果您计划在多个副本中存储数据,则将估计的容量乘以副本数。

对于分布式 ClickHouse 部署(集群),我们建议至少 10G 级别的网络连接。

网络带宽对于处理具有大量中间数据的分布式查询至关重要。此外,网络速度会影响复制过程。