Docker 部署 ClickHouse 教程

devtools/2025/2/5 16:01:28/

Docker 部署 ClickHouse 教程

背景
ClickHouse 是一个开源的列式数据库管理系统(DBMS),主要用于在线分析处理(OLAP)。它专为大数据的实时分析设计,支持高速的查询性能和高吞吐量。ClickHouse 以其高效的数据压缩技术和高性能的查询处理能力,广泛应用于大数据分析、日志处理、监控数据存储等场景。

ClickHouse 的主要特点:

  • 列式存储:
    ClickHouse 使用列式存储数据,优化了读取性能,尤其适合分析型查询。
    这种存储方式使得读取特定列的数据更加高效,特别是在执行大数据量的聚合、筛选等操作时。
  • 高性能:
    ClickHouse 可以处理数百 TB 甚至 PB 级别的数据,并且支持低延迟的查询处理。
    它通过多核并行计算和数据压缩技术,大幅提升了查询性能。
  • 分布式架构:
    ClickHouse 支持分布式部署,能够横向扩展,适应大规模的数据处理需求。
    可以通过集群进行负载均衡和数据分布,实现高可用性。
  • SQL 支持:
    ClickHouse 支持 SQL 语法,因此用户可以像使用传统的关系型数据库一样使用 SQL 进行查询。
    其 SQL 语法扩展了许多适用于 OLAP 查询的功能,比如窗口函数、分组聚合等。
  • 数据压缩:
    ClickHouse 提供多种数据压缩算法,大大降低了存储成本。
    它可以有效地将数据压缩到更小的体积,从而减少磁盘空间的使用。
  • 实时数据处理:
    ClickHouse 支持高吞吐量的数据导入,可以处理实时数据流。
    它能够快速处理日志、监控指标等数据,适用于需要实时分析的场景。

另外根据 https://db-engines.com/en/rankinghttps://db-engines.com/en/ranking 数据库排名网站

在这里插入图片描述


文章目录

  • Docker 部署 ClickHouse 教程
    • 1. 拉取 ClickHouse 镜像
    • 2.运行 ClickHouse 容器
    • 3. 验证容器是否启动成功
    • 4. 连接到 ClickHouse 实例
    • 5. 停止和删除容器
  • 设置密码
    • 7.总结


要使用 Docker 安装 ClickHouse,以下是一个简单的步骤指南:

1. 拉取 ClickHouse 镜像

首先,你需要从 Docker Hub 拉取官方的 ClickHouse 镜像。你可以使用以下命令:

docker pull yandex/clickhouse-server

在这里插入图片描述

2.运行 ClickHouse 容器

一旦镜像被拉取下来,你可以使用以下命令启动一个新的 ClickHouse 容器:

docker run -d --name clickhouse-server \-p 8123:8123 \-p 9000:9000 \-p 9009:9009 \-v /path/to/your/data:/var/lib/clickhouse \yandex/clickhouse-server

这里的参数说明:

  • -d:以后台模式运行容器。
  • –name clickhouse-server:给容器指定一个名称(可以自定义)。
  • -p:将容器内的端口映射到主机的端口。
    • 8123:HTTP接口端口。
    • 9000:TCP接口端口。
    • 9009:用于复制的端口。
  • -v /path/to/your/data:/var/lib/clickhouse:挂载一个本地目录用于存储 ClickHouse 数据(根据你的需求修改路径)。
  • yandex/clickhouse-server:指定使用的镜像。

在这里插入图片描述

3. 验证容器是否启动成功

你可以通过以下命令检查容器的状态

docker ps

在这里插入图片描述
如果容器运行正常,你将看到类似 clickhouse-server 容器的条目。

4. 连接到 ClickHouse 实例

你可以通过以下命令连接到 ClickHouse 实例:
在这里插入图片描述
在这里插入图片描述

你将进入到 ClickHouse 客户端,可以执行 SQL 查询等操作。

在这里插入图片描述

5. 停止和删除容器

如果需要停止并删除容器,可以使用以下命令:
停止容器:

docker stop clickhouse-server

删除容器:

docker rm clickhouse-server

设置密码

由于Docker 部署 ClickHouse 默认用户名是 default ,是没有密码的
需要设置密码就需要设置 点 /etc/clickhouse-server/users.xml 的文件 。

在这里插入图片描述

如果发现 vi 命令不能就需要安装 vi软件

在这里插入图片描述

具体分2步

apt-get update
apt-get install vim

在这里插入图片描述
最后编辑密码

vi users.xml

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

创建一个数据库

CREATE DATABASE IF NOT EXISTS class;

查看 版本

select version();

在这里插入图片描述

7.总结

通过以上步骤,你可以轻松地使用 Docker 安装并运行 ClickHouse。根据自己的需求,进一步配置数据存储路径、端口映射和其他设置。


http://www.ppmy.cn/devtools/156313.html

相关文章

寒假(五)

请使用read 和 write 实现链表保存到文件&#xff0c;以及从文件加载数据到链表中的功能 link.h #ifndef __link__ #define __link__#include <stdio.h> #include <string.h> #include <unistd.h> #include <stdlib.h> #include <sys/types.h>…

kubernetes 高可用集群搭建

在生产环境中部署 Kubernetes 集群时&#xff0c;确保其高可用性&#xff08;High Availability, HA&#xff09;是至关重要的。高可用性不仅意味着减少服务中断时间&#xff0c;还能提高系统的稳定性和可靠性。本文将详细介绍如何搭建一个高可用的 Kubernetes 集群&#xff0c…

计算机基础知识(第二篇)

计算机基础知识&#xff08;第二篇&#xff09; 嵌入式技术 嵌入式技术 特点&#xff1a;专用性、实时性、低成本、可靠性、体积小 应用&#xff1a;汽车电子、家用电器、通信设备、安防监控、工业自动化、医疗设备 体系结构&#xff1a; 冯诺依曼结构&#xff1a;传统计…

【Python深入浅出】解锁Python3模块:从入门到实战的进阶指南

目录 一、Python3 模块初相识二、模块的类型大揭秘2.1 内置标准模块2.2 第三方开源模块2.3 自定义模块 三、模块导入全攻略3.1 import 语句基础3.2 from...import 语句详解3.3 import as 和 from...import as 的妙用3.4 导入路径与搜索机制 四、常用标准模块深度剖析4.1 os 模块…

2.4学习总结

今天写了两道题。 p1449&#xff1a;后缀表达式。通过栈来储存数字&#xff0c;遇到运算符号则对栈顶的两个数进行运算 #include <stdio.h> #include <stdlib.h>int main() {int top0,i1,a0;int z[55];char s[55];while(1){scanf("%c",&s[i]);if(s…

刷题记录 动态规划-7: 63. 不同路径 II

题目&#xff1a;63. 不同路径 II 难度&#xff1a;中等 给定一个 m x n 的整数数组 grid。一个机器人初始位于 左上角&#xff08;即 grid[0][0]&#xff09;。机器人尝试移动到 右下角&#xff08;即 grid[m - 1][n - 1]&#xff09;。机器人每次只能向下或者向右移动一步。…

012-51单片机CLD1602显示万年历+闹钟+农历+整点报时

1. 硬件设计 硬件是我自己设计的一个通用的51单片机开发平台&#xff0c;可以根据需要自行焊接模块&#xff0c;这是用立创EDA画的一个双层PCB板&#xff0c;所以模块都是插针式&#xff0c;不是表贴的。电路原理图在文末的链接里&#xff0c;PCB图暂时不选择开源。 B站上传的…

统计满足条件的4位数(信息学奥赛一本通-1077)

【题目描述】 给定若干个四位数&#xff0c;求出其中满足以下条件的数的个数&#xff1a;个位数上的数字减去千位数上的数字&#xff0c;再减去百位数上的数字&#xff0c;再减去十位数上的数字的结果大于零。 【输入】 输入为两行&#xff0c;第一行为四位数的个数n&#xff0…