当前位置:   article > 正文

docker安装clickhouse_docker clickhouse

docker clickhouse

clickhouse

ClickHouse是一种用于在线分析处理 (OLAP) 的高性能、面向列的 SQL 数据库管理系统 (DBMS)。它既可以作为开源软件也可以作为云产品提供。
官网:https://clickhouse.com/#quick-start
中文文档:https://clickhouse.com/docs/zh
在这里插入图片描述

什么是 OLAP

OLAP 场景需要对大型数据集进行实时响应,以进行复杂的分析查询,具有以下特征:
数据集可能非常庞大 - 数十亿或数万亿行。
数据组织在包含许多列的表中。
只有少数列选择回答任何特定查询结果必须以毫秒或秒为单位返回。

OLAP场景的关键属性

绝大多数是读请求。
宽表,即每个表包含着大量的列。
数据集很大,处理单个查询时查询需要高吞吐量(每台服务器每秒高达数十亿行)。
列值相当小:数字和短字符串(例如,每个 URL 60 字节)。
查询提取大量行,但只提取一小部分列。
对于简单查询,允许 50 毫秒左右的延迟。
每个查询有一个大表。除了他以外,其他的都很小。
查询结果明显小于源数据。换句话说,数据经过过滤或聚合,因此结果适合单个服务器的 RAM。
查询相对较少(通常每台服务器每秒数百个查询或更少)。
插入发生在相当大的批次(大于1000 行)中,而不是单行。
事务不是必须的。
对数据一致性要求低。

ClickHouse的特性

真正的列式数据库管理系统:在一个真正的列式数据库管理系统中,除了数据本身外不应该存在其他额外的数据。这意味着为了避免在值旁边存储它们的长度«number»,你必须支持固定长度数值类型。
数据压缩:在一些列式数据库管理系统中(例如:InfiniDB CE 和 MonetDB) 并没有使用数据压缩。但是, 若想达到比较优异的性能,数据压缩确实起到了至关重要的作用。
除了在磁盘空间和CPU消耗之间进行不同权衡的高效通用压缩编解码器之外,ClickHouse还提供针对特定类型数据的专用编解码器,这使得ClickHouse能够与更小的数据库(如时间序列数据库)竞争并超越它们。
数据的磁盘存储:ClickHouse被设计用于工作在传统磁盘上的系统,它提供每GB更低的存储成本,但如果可以使用SSD和内存,它也会合理的利用这些资源。
多核心并行处理: ClickHouse会使用服务器上一切可用的资源,从而以最自然的方式并行处理大型查询。
多服务器分布式处理: 上面提到的列式数据库管理系统中,几乎没有一个支持分布式的查询处理。 在ClickHouse中,数据可以保存在不同的shard上,每一个shard都由一组用于容错的replica组成,查询可以并行地在所有shard上进行处理。这些对用户来说是透明的
支持SQL: ClickHouse支持一种基于SQL的声明式查询语言,它在许多情况下与ANSI SQL标准相同。支持的查询GROUP BY, ORDER BY, FROM, JOIN, IN以及非相关子查询。相关(依赖性)子查询和窗口函数暂不受支持,但将来会被实现。
向量引擎: 为了高效的使用CPU,数据不仅仅按列存储,同时还按向量(列的一部分)进行处理,这样可以更加高效地使用CPU。
实时的数据更新: ClickHouse支持在表中定义主键。为了使查询能够快速在主键中进行范围查找,数据总是以增量的方式有序的存储在MergeTree中。因此,数据可以持续不断地高效的写入到表中,并且写入的过程中不会存在任何加锁的行为。
索引: 按照主键对数据进行排序,这将帮助ClickHouse在几十毫秒以内完成对数据特定值或范围的查找。
适合在线查询: 在线查询意味着在没有对数据做任何预处理的情况下以极低的延迟处理查询并将结果加载到用户的页面中。
支持近似计算: ClickHouse提供各种各样在允许牺牲数据精度的情况下对查询进行加速的方法:用于近似计算的各类聚合函数,如:distinct values, medians, quantiles;基于数据的部分样本进行近似查询。这时,仅会从磁盘检索少部分比例的数据;不使用全部的聚合条件,通过随机选择有限个数据聚合条件进行聚合。这在数据聚合条件满足某些分布条件下,在提供相当准确的聚合结果的同时降低了计算资源的使用。
自适应连接算法: ClickHouse支持自定义JOIN多个表,它更倾向于散列连接算法,如果有多个大表,则使用合并-连接算法;
支持数据复制和数据完整性: ClickHouse使用异步的多主复制技术。当数据被写入任何一个可用副本后,系统会在后台将数据分发给其他副本,以保证系统在不同副本上保持相同的数据。在大多数情况下ClickHouse能在故障后自动恢复,在一些少数的复杂情况下需要手动恢复。
角色的访问控制: ClickHouse使用SQL查询实现用户帐户管理,并允许角色的访问控制,类似于ANSI SQL标准和流行的关系数据库管理系统。
限制:没有完整的事务支持;缺少高频率,低延迟的修改或删除已存在数据的能力,仅能用于批量删除或修改数据,但这符合 GDPR;稀疏索引使得ClickHouse不适合通过其键检索单行的点查询。

ClickHouse性能

单个大查询的吞吐量: 吞吐量可以使用每秒处理的行数或每秒处理的字节数来衡量。如果数据被放置在page cache中,则一个不太复杂的查询在单个服务器上大约能够以2-10GB/s(未压缩)的速度进行处理(对于简单的查询,速度可以达到30GB/s)。如果数据没有在page cache中的话,那么速度将取决于你的磁盘系统和数据的压缩率。例如,如果一个磁盘允许以400MB/s的速度读取数据,并且数据压缩率是3,则数据的处理速度为1.2GB/s。这意味着,如果你是在提取一个10字节的列,那么它的处理速度大约是1-2亿行每秒。
处理短查询的延迟时间:如果一个查询使用主键并且没有太多行(几十万)进行处理,并且没有查询太多的列,那么在数据被page cache缓存的情况下,它的延迟应该小于50毫秒(在最佳的情况下应该小于10毫秒)。 否则,延迟取决于数据的查找次数。如果你当前使用的是HDD,在数据没有加载的情况下,查询所需要的延迟可以通过以下公式计算得知: 查找时间(10 ms) * 查询的列的数量 * 查询的数据块的数量。
处理大量短查询的吞吐量:在相同的情况下,ClickHouse可以在单个服务器上每秒处理数百个查询(在最佳的情况下最多可以处理数千个)。但是由于这不适用于分析型场景。因此我们建议每秒最多查询100次。
数据的写入性能:我们建议每次写入不少于1000行的批量写入,或每秒不超过一个写入请求。当使用tab-separated格式将一份数据写入到MergeTree表中时,写入速度大约为50到200MB/s。如果您写入的数据每行为1Kb,那么写入的速度为50,000到200,000行每秒。如果您的行更小,那么写入速度将更高。为了提高写入性能,您可以使用多个INSERT进行并行写入,这将带来线性的性能提升。

docker安装

官网:https://docs.docker.com/engine/install/centos/
参考《docker安装及https防止攻击配置
参考《docker镜像仓库加速配置

>安装步骤:
1、卸载旧版本
旧版本的 Docker 被称为docker或docker-engine。如果安装了这些,请卸载它们以及相关的依赖项。

 sudo yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-engine
如果yum报告没有安装这些软件包,那也没关系,docker的内容/var/lib/docker/,包括图像、容器、卷和网络,将被保留。Docker 引擎包现在被称为docker-ce

2、设置存储库
安装yum-utils包(提供yum-config-manager 实用程序)并设置稳定存储库
sudo yum install -y yum-utils
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
阿里云:
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
更新索引:yum makecache fast

3、安装 Docker 引擎
安装最新版本的 Docker Engine 和 containerd,或者进入下一步安装特定版本
sudo yum install docker-ce docker-ce-cli containerd.io
启动 Docker:sudo systemctl start docker

4、卸载 Docker Engine、CLI 和 Containerd 包:
 sudo yum remove docker-ce docker-ce-cli containerd.io
主机上的映像、容器、卷或自定义配置文件不会自动删除。删除所有镜像、容器和卷:
 sudo rm -rf /var/lib/docker
 sudo rm -rf /var/lib/containerd
您必须手动删除任何已编辑的配置文件。

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34

clikehouse安装部署

安装包下载:https://packages.clickhouse.com/

系统要求

ClickHouse可以在任何具有x86_64,AArch64或PowerPC64LE CPU架构的Linux,FreeBSD或Mac OS X上运行。
官方预构建的二进制文件通常针对x86_64进行编译,并利用SSE 4.2指令集,因此,除非另有说明,支持它的CPU使用将成为额外的系统需求。下面是检查当前CPU是否支持SSE 4.2的命令:
$ grep -q sse4_2 /proc/cpuinfo && echo “SSE 4.2 supported” || echo “SSE 4.2 not supported”
要在不支持SSE 4.2或AArch64,PowerPC64LE架构的处理器上运行ClickHouse,您应该通过适当的配置调整从源代码构建ClickHouse。

DEB安装包

议使用Debian或Ubuntu的官方预编译deb软件包。运行以下命令来安装包:
参考: https://clickhouse.com/docs/zh/getting-started/install

sudo apt-get install -y 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've set up a password.
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

如果您想使用最新的版本,请用testing替代stable(我们只推荐您用于测试环境)。
你也可以从这里手动下载安装包:下载
在这里插入图片描述

安装包列表:
clickhouse-common-static — ClickHouse编译的二进制文件。
clickhouse-server — 创建clickhouse-server软连接,并安装默认配置服务
clickhouse-client — 创建clickhouse-client客户端工具软连接,并安装客户端配置文件。
clickhouse-common-static-dbg — 带有调试信息的ClickHouse二进制文件。

RMP安装包

推荐使用CentOS、RedHat和所有其他基于rpm的Linux发行版的官方预编译rpm包。
首先,您需要添加官方存储库:
参考: https://clickhouse.com/docs/zh/getting-started/install

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

sudo /etc/init.d/clickhouse-server start
clickhouse-client # or "clickhouse-client --password" if you set up a password.
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

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

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

sudo /etc/init.d/clickhouse-server start
clickhouse-client # or "clickhouse-client --password" if you set up a password.
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

该项目使用最新的版本,请使用testing替代版本(stable我们只推荐您用于测试的环境)。prestable
然后运行命令安装:

sudo yum install clickhouse-server clickhouse-client
  • 1

你也可以从这里手动下载安装包:下载
https://packages.clickhouse.com/rpm/stable/

Tgz安装包

如果您的操作系统不支持安装deb或rpm包,建议使用官方预编译的tgz软件包。

所需的版本可以通过curl或wget从存储库https://packages.clickhouse.com/tgz/下载。
在这里插入图片描述

下载后解压缩下载资源文件并使用安装脚本进行安装。以下是一个最新稳定版本的安装示例:
参考: https://clickhouse.com/docs/zh/getting-started/install

LATEST_VERSION=$(curl -s https://packages.clickhouse.com/tgz/stable/ | \
    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
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"
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32

对于生产环境,建议使用最新的stable版本。你可以在GitHub页面 https://github.com/ClickHouse/ClickHouse/tags 找到它,它以后缀-stable标志。

Docker安装包

要Docker 中运行ClickHouse,请遵循Docker Hub上的指南。它是官方的deb安装包。
其他环境安装程序
对于非Linux操作系统和Arch64 CPU架构,ClickHouse的master最新版本的提交进行编译(它会延迟几个小时)。

苹果系统-curl -O ‘https://builds.clickhouse.com/master/macos/clickhouse’ && chmod a+x ./clickhouse
FreeBSD —curl -O ‘https://builds.clickhouse.com/master/freebsd/clickhouse’ && chmod a+x ./clickhouse
AArch64 —curl -O ‘https://builds.clickhouse.com/master/aarch64/clickhouse’ && chmod a+x ./clickhouse
下载后,可以使用clickhouse client连接服务,或者使用clickhouse local模式处理数据,不过您需要额外在GitHub下载服务器和用户配置文件。

不建议在演示的框架构建版本中,由于没有经过充分的测试,您可以自行承担此举带来的风险。它们只是ClickHouse功能的一部分。

1、下载安装包

docker pull yandex/clickhouse-server
在这里插入图片描述

2、 创建挂载目录
mkdir -p /home/data/clickhouse/data
mkdir -p /home/data/clickhouse/conf
mkdir -p /home/data/clickhouse/log
chmod -R 777 /home/data/clickhouse/
  • 1
  • 2
  • 3
  • 4

在这里插入图片描述

3、 创建临时容器
docker run --rm -d --name=clickhouse \
--ulimit nofile=262144:262144 \
-p 8123:8123 -p 9009:9009 -p 9090:9000 \
yandex/clickhouse-server

  • 1
  • 2
  • 3
  • 4
  • 5

在这里插入图片描述

4、复制临时容器内config.xml配置文件到宿主机
docker cp clickhouse:/etc/clickhouse-server/config.xml /home/data/clickhouse/conf/config.xml
docker cp clickhouse:/etc/clickhouse-server/users.xml /home/data/clickhouse/conf/users.xml
  • 1
  • 2

在这里插入图片描述

5、停止并删除临时容器
docker rm -f a1e13c1933ec
docker ps
  • 1
  • 2

在这里插入图片描述

6、修改宿主机users.xml配置文件中default账号密码

1、修改default账号密码为明文

vi /home/data/clickhouse/conf/users.xml
<!-- Users and ACL. -->
    <users>
        <!-- If user name was not specified, 'default' user is used. -->
        <default>
            <!-- Password could be specified in plaintext or in SHA256 (in hex format).

                 If you want to specify password in plaintext (not recommended), place it in 'password' element.
                 Example: <password>qwerty</password>.
                 Password could be empty.

                 If you want to specify SHA256, place it in 'password_sha256_hex' element.
                 Example: <password_sha256_hex>65e84be33532fb784c48129675f9eff3a682b27168c0ea744b2cf58ee02337c5</password_sha256_hex>
                 Restrictions of SHA256: impossibility to connect to ClickHouse using MySQL JS client (as of July 2019).

                 If you want to specify double SHA1, place it in 'password_double_sha1_hex' element.
                 Example: <password_double_sha1_hex>e395796d6546b1b65db9d665cd43f0e858dd4303</password_double_sha1_hex>

                 How to generate decent password:
                 Execute: PASSWORD=$(base64 < /dev/urandom | head -c8); echo "$PASSWORD"; echo -n "$PASSWORD" | sha256sum | tr -d '-'
                 In first line will be password and in second - corresponding SHA256.

                 How to generate double SHA1:
                 Execute: PASSWORD=$(base64 < /dev/urandom | head -c8); echo "$PASSWORD"; echo -n "$PASSWORD" | sha1sum | tr -d '-' | xxd -r -p | sha1sum | tr -d '-'
                 In first line will be password and in second - corresponding double SHA1.
            这里改为明文密码
            -->
            
            **<password>123456</password>**

            <networks>
                <ip>::/0</ip>
            </networks>

            <!-- Settings profile for user. -->
            <profile>default</profile>

            <!-- Quota for user. -->
            <quota>default</quota>

            <!-- User can create other users and grant rights to them. -->
            <!-- <access_management>1</access_management> -->
        </default>
    </users>

密码修改完成后,启动clickhouse容器,登录测试验证。
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
8、创建并启动容器
docker run -dit --name=clickhouse \
-p 8123:8123 -p 9009:9009 -p 9090:9000 \
--ulimit nofile=262144:262144 \
-v /home/data/clickhouse/data:/var/lib/clickhouse:rw \
-v /home/data/clickhouse/conf/config.xml:/etc/clickhouse-server/config.xml \
-v /home/data/clickhouse/conf/users.xml:/etc/clickhouse-server/users.xml \
-v /home/data/clickhouse/log:/var/log/clickhouse-server:rw \
yandex/clickhouse-server

配置详细说明:
-dit: 表示后台交互运行
--name=clickhouse: 指定启动容器名称
-p 8123:8123 -p 9009:9009 -p 9090:9000: 指定启动容器对外映射端口,格式为宿主机端口:容器端口。
-v /home/data/clickhouse/data:/var/lib/clickhouse:rw: 将启动容器的数据、配置文件、日志挂在到宿主机目录,方便后续修改文件及查看日志。例如修改配置,直接修改宿主机中文件会自动更新容器配置文件。
yandex/clickhouse-server: 容器镜像名


查看进程:docker ps
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18

在这里插入图片描述
以上可以看到clickhouse数据库已经启动,通过客户端及命令行连接测试。

clickhoust 默认http端口是8123,tcp端口是9000,同步端口9009
web可视化界面:http://ip:8123/play ,ip为你当前机器的ip地址,该界面是clickhouse自带命令行,可以通过输入账号密码执行sql命令。
在这里插入图片描述

注意:
1、不能将该地址的ClickHouse服务器暴露给公共互联网,这种肉鸡方式,直接被攻击瘫痪,如果要对外使用,建议增加https证书方式认证。

客户端连接

命令行客户端

ClickHouse提供了一个原生命令行客户端clickhouse-client客户端支持命令行支持的更多信息详见Configuring。
安装部署后,系统默认会安装clickhouse-client(同时它属于clickhouse-client安装包中)。

不同的客户端和服务器版本彼此兼容,但是一些特性可能在旧客户机中不可用。我们建议使用与服务器应用相同版本的客户端。当你尝试使用旧版本的客户端时,服务器上的clickhouse-client会显示如下信息:
ClickHouse client version is older than ClickHouse server. It may lack support for new features.

步骤:
1.查看clickhouse进程:docker ps
2.进入容器内部: docker exec -it e1d6ef1133b9 /bin/bash
3.查询clickhouse-client 命令所在目录:ls /bin/
3.执行命令查看版本: ./bin/clickhouse-client

[root@node103 ~]# 
[root@node103 ~]# docker ps 
CONTAINER ID   IMAGE                      COMMAND                  CREATED              STATUS              PORTS                                                                                                                             NAMES
f1b489108eea   yandex/clickhouse-server   "/entrypoint.sh"         About a minute ago   Up About a minute   0.0.0.0:8123->8123/tcp, :::8123->8123/tcp, 0.0.0.0:9009->9009/tcp, :::9009->9009/tcp, 0.0.0.0:9090->9000/tcp, :::9090->9000/tcp   clickhouse
67d14ac84759   mysql:5.7                  "docker-entrypoint.s…"   18 months ago        Up 35 hours         0.0.0.0:3306->3306/tcp, :::3306->3306/tcp, 33060/tcp                                                                              mysql
[root@node103 ~]# 
[root@node103 ~]# 
[root@node103 ~]# docker exec -it f1b489108eea /bin/bash
root@f1b489108eea:/# 
root@f1b489108eea:/# /bin/clickhouse-client --password
ClickHouse client version 21.12.3.32 (official build).
Password for user (default): 输入users.xml配置文件中明文密码
Connecting to localhost:9000 as user default.
Connected to ClickHouse server version 21.12.3 revision 54452.

f1b489108eea :) 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22

在这里插入图片描述
可以看到版本如下:
ClickHouse client version 21.12.3.32 (official build).
连接地址为: localhost:9000,登录账号为default
Connecting to localhost:9000 as user default.

idea datasource客户端

以下使用idea自带插件datasource连接测试。
右侧菜单栏datasource>data source>clickhouse
在这里插入图片描述
填写登录ip、账号、密码,点击download下载clickhouse驱动包。

点击test connection连接测试,提示成功表示连接正常,错误需要根据具体问题分析原因。
在这里插入图片描述

点击apply保存,点击展开查看数据库及表信息。
在这里插入图片描述

测试通过命令行执行,点击sql图标打开命令行,输入命令,点击绿色小箭头执行sql,可以看到下方执行结果。
在这里插入图片描述
以上通过命令行连接clickhouse,远程链接两种方式验证都正常,表示clickhouse安装成功。

修改密码

1、明文密码,修改default账号密码为明文

vi /home/data/clickhouse/conf/users.xml
<!-- Users and ACL. -->
    <users>
        <!-- If user name was not specified, 'default' user is used. -->
        <default>
            <!-- Password could be specified in plaintext or in SHA256 (in hex format).

                 If you want to specify password in plaintext (not recommended), place it in 'password' element.
                 Example: <password>qwerty</password>.
                 Password could be empty.

                 If you want to specify SHA256, place it in 'password_sha256_hex' element.
                 Example: <password_sha256_hex>65e84be33532fb784c48129675f9eff3a682b27168c0ea744b2cf58ee02337c5</password_sha256_hex>
                 Restrictions of SHA256: impossibility to connect to ClickHouse using MySQL JS client (as of July 2019).

                 If you want to specify double SHA1, place it in 'password_double_sha1_hex' element.
                 Example: <password_double_sha1_hex>e395796d6546b1b65db9d665cd43f0e858dd4303</password_double_sha1_hex>

                 How to generate decent password:
                 Execute: PASSWORD=$(base64 < /dev/urandom | head -c8); echo "$PASSWORD"; echo -n "$PASSWORD" | sha256sum | tr -d '-'
                 In first line will be password and in second - corresponding SHA256.

                 How to generate double SHA1:
                 Execute: PASSWORD=$(base64 < /dev/urandom | head -c8); echo "$PASSWORD"; echo -n "$PASSWORD" | sha1sum | tr -d '-' | xxd -r -p | sha1sum | tr -d '-'
                 In first line will be password and in second - corresponding double SHA1.
            这里改为明文密码
            -->
            
            **<password>123456</password>**

            <networks>
                <ip>::/0</ip>
            </networks>

            <!-- Settings profile for user. -->
            <profile>default</profile>

            <!-- Quota for user. -->
            <quota>default</quota>

            <!-- User can create other users and grant rights to them. -->
            <!-- <access_management>1</access_management> -->
        </default>
    </users>

密码修改完成后,启动clickhoust容器,登录测试验证。
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46

2、SHA256加密


例如对密码123456进行SHA256加密
[root@node103 ~]#  echo -n 123456 | openssl dgst -sha256
(stdin)= 8d969eef6ecad3c29a3a629280e686cf0c3f5d5a86aff3ca12020c923adc6c92
[root@node103 ~]# 

1、修改users.xml配置密码
[root@node103 ~]# vim /home/data/clickhouse/conf/users.xml 
<!-- Users and ACL. -->
    <users>
        <!-- If user name was not specified, 'default' user is used. -->
        <default>
            <!-- Password could be specified in plaintext or in SHA256 (in hex format).

                 If you want to specify password in plaintext (not recommended), place it in 'password' element.
                 Example: <password>qwerty</password>.
                 Password could be empty.

                 If you want to specify SHA256, place it in 'password_sha256_hex' element.
                 Example: <password_sha256_hex>65e84be33532fb784c48129675f9eff3a682b27168c0ea744b2cf58ee02337c5</password_sha256_hex>
                 Restrictions of SHA256: impossibility to connect to ClickHouse using MySQL JS client (as of July 2019).

                 If you want to specify double SHA1, place it in 'password_double_sha1_hex' element.
                 Example: <password_double_sha1_hex>e395796d6546b1b65db9d665cd43f0e858dd4303</password_double_sha1_hex>

                 How to generate decent password:
                 Execute: PASSWORD=$(base64 < /dev/urandom | head -c8); echo "$PASSWORD"; echo -n "$PASSWORD" | sha256sum | tr -d '-'
                 In first line will be password and in second - corresponding SHA256.

                 How to generate double SHA1:
                 Execute: PASSWORD=$(base64 < /dev/urandom | head -c8); echo "$PASSWORD"; echo -n "$PASSWORD" | sha1sum | tr -d '-' | xxd -r -p | sha1sum | tr -d '-'
                 In first line will be password and in second - corresponding double SHA1.
            -->
           
			 <!-- 
            <password>123456</password>
            -->
			<password_sha256_hex>8d969eef6ecad3c29a3a629280e686cf0c3f5d5a86aff3ca12020c923adc6c92</password_sha256_hex>

            <networks>
                <ip>::/0</ip>
            </networks>

            <!-- Settings profile for user. -->
            <profile>default</profile>

            <!-- Quota for user. -->
            <quota>default</quota>

            <!-- User can create other users and grant rights to them. -->
            <!-- <access_management>1</access_management> -->
        </default>
    </users>


2、重启服务
[root@node103 ~]# 
[root@node103 ~]# docker ps -a
CONTAINER ID   IMAGE                      COMMAND                  CREATED          STATUS          PORTS                                                                                                                             NAMES
f1b489108eea   yandex/clickhouse-server   "/entrypoint.sh"         24 minutes ago   Up 31 seconds   0.0.0.0:8123->8123/tcp, :::8123->8123/tcp, 0.0.0.0:9009->9009/tcp, :::9009->9009/tcp, 0.0.0.0:9090->9000/tcp, :::9090->9000/tcp   clickhouse
67d14ac84759   mysql:5.7                  "docker-entrypoint.s…"   18 months ago    Up 36 hours     0.0.0.0:3306->3306/tcp, :::3306->3306/tcp, 33060/tcp                                                                              mysql
[root@node103 ~]#docker restart f1b489108eea
[root@node103 ~]# 

3、查看进程
[root@node103 ~]# 
[root@node103 ~]# docker ps
CONTAINER ID   IMAGE                      COMMAND                  CREATED          STATUS          PORTS                                                                                                                             NAMES
f1b489108eea   yandex/clickhouse-server   "/entrypoint.sh"         24 minutes ago   Up 31 seconds   0.0.0.0:8123->8123/tcp, :::8123->8123/tcp, 0.0.0.0:9009->9009/tcp, :::9009->9009/tcp, 0.0.0.0:9090->9000/tcp, :::9090->9000/tcp   clickhouse
67d14ac84759   mysql:5.7                  "docker-entrypoint.s…"   18 months ago    Up 36 hours     0.0.0.0:3306->3306/tcp, :::3306->3306/tcp, 33060/tcp                                                                              mysql
[root@node103 ~]#

4、进入clickhouse容器
[root@node103 ~]#
[root@node103 ~]# docker exec -it f1b489108eea /bin/bash
root@f1b489108eea:/#

5、连接clickhouse,输入未加密密码 
root@f1b489108eea:/#
root@f1b489108eea:/# ./bin/clickhouse-client --password
ClickHouse client version 21.12.3.32 (official build).
Password for user (default): 输入未加密密码
Connecting to localhost:9000 as user default.
Connected to ClickHouse server version 21.12.3 revision 54452.
6、查看数据库
f1b489108eea :) show databases;

SHOW DATABASES

Query id: d72ed485-1e8e-4ced-9369-1a76683ac5a9

┌─name───────────────┐
│ INFORMATION_SCHEMA │
│ default            │
│ information_schema │
│ system             │
└────────────────────┘

4 rows in set. Elapsed: 0.130 sec. 

f1b489108eea :) 

以上表示修改使用加密后的密码成功。

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78
  • 79
  • 80
  • 81
  • 82
  • 83
  • 84
  • 85
  • 86
  • 87
  • 88
  • 89
  • 90
  • 91
  • 92
  • 93
  • 94
  • 95
  • 96
  • 97
  • 98
  • 99
  • 100
  • 101
  • 102
  • 103
  • 104

ClickHouse SQL 语句

参考:https://clickhouse.com/docs/zh/sql-reference/statements
ClickHouse支持以下形式的查询:
SELECT
INSERT INTO
CREATE
ALTER
其他类型的查询

ClickHouse访问权限控制

https://clickhouse.com/docs/zh/operations/access-rights

接口

https://clickhouse.com/docs/zh/interfaces
在这里插入图片描述

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小舞很执着/article/detail/983881
推荐阅读
相关标签
  

闽ICP备14008679号