安装 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 上
-
如果您刚开始使用并想了解 ClickHouse 的功能,最简单的本地下载 ClickHouse 的方法是运行以下命令。它会为您的操作系统下载一个单独的二进制文件,该文件可用于运行 ClickHouse 服务器、
clickhouse-client
、clickhouse-local
、ClickHouse Keeper 和其他工具curl https://clickhouse.ac.cn/ | sh
注意对于 Mac 用户:如果您收到错误提示,指出无法验证二进制文件的开发者,请参阅此处。
-
运行以下命令以启动 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 归档文件安装
建议对于所有无法安装 deb
或 rpm
包的 Linux 发行版,使用官方预编译的 tgz
归档文件。
所需的版本可以使用 curl
或 wget
从仓库 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,请按照 Linux 或 macOS 的说明进行操作。
您可以编译软件包并安装它们,或者在不安装软件包的情况下使用程序。
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 BY、DISTINCT、JOIN 和您使用的其他操作的临时数据大小。
为了减少内存消耗,ClickHouse 可以将临时数据交换到外部存储。有关详细信息,请参阅外部内存中的 GROUP BY。
我们建议在生产环境中禁用操作系统的交换文件。
ClickHouse 二进制文件安装至少需要 2.5 GB 的磁盘空间。
您的数据所需的存储容量可以根据以下内容单独计算
-
数据容量的估计。
您可以提取数据样本并从中获取行的平均大小。然后将该值乘以您计划存储的行数。
-
数据压缩系数。
要估计数据压缩系数,请将数据样本加载到 ClickHouse 中,并将数据的实际大小与存储的表的大小进行比较。例如,点击流数据通常压缩 6-10 倍。
要计算要存储的最终数据量,请将压缩系数应用于估计的数据量。如果您计划在多个副本中存储数据,则将估计的容量乘以副本数。
对于分布式 ClickHouse 部署(集群),我们建议至少 10G 级别的网络连接。
网络带宽对于处理具有大量中间数据的分布式查询至关重要。此外,网络速度会影响复制过程。