Docker安装ClickHouse并初始化数据测试

 更新时间:2021年06月25日 17:46:35   作者:萧萧兮24  
clickhouse作为现在流行的数据分析数据库,非常热门,docker如何安装ClickHouse,很多朋友并不是很明白,今天小编抽空给大家分享一篇教程关于Docker安装ClickHouse并初始化数据测试的问题,一起看看吧

clickhouse简介

ClickHouse是一个面向列存储的数据库管理系统,可以使用SQL查询实时生成分析数据报告,主要用于OLAP(在线分析处理查询)场景。关于clickhouse原理以及基础知识在以后学习中慢慢总结。

1、Docker安装ClickHouse

docker run -d --name some-clickhouse-server \
-p 8123:8123 -p 9009:9009 -p 9091:9000 \
--ulimit nofile=262144:262144 \
-v /home/clickhouse:/var/lib/clickhouse \
yandex/clickhouse-server

2、下载SSBM工具

1、git clone https://github.com/vadimtk/ssb-dbgen.git
2、cd ssb-dbgen
3、make

3、生成数据

./dbgen -s 100 -T c
./dbgen -s 100 -T p
./dbgen -s 100 -T s
./dbgen -s 100 -T l
./dbgen -s 100 -T d

查看下数据

在这里插入图片描述

4、建表

CREATE TABLE default.customer
(
        C_CUSTKEY       UInt32,
        C_NAME          String,
        C_ADDRESS       String,
        C_CITY          LowCardinality(String),
        C_NATION        LowCardinality(String),
        C_REGION        LowCardinality(String),
        C_PHONE         String,
        C_MKTSEGMENT    LowCardinality(String)
)
ENGINE = MergeTree ORDER BY (C_CUSTKEY);
CREATE TABLE default.lineorder
(
    LO_ORDERKEY             UInt32,
    LO_LINENUMBER           UInt8,
    LO_CUSTKEY              UInt32,
    LO_PARTKEY              UInt32,
    LO_SUPPKEY              UInt32,
    LO_ORDERDATE            Date,
    LO_ORDERPRIORITY        LowCardinality(String),
    LO_SHIPPRIORITY         UInt8,
    LO_QUANTITY             UInt8,
    LO_EXTENDEDPRICE        UInt32,
    LO_ORDTOTALPRICE        UInt32,
    LO_DISCOUNT             UInt8,
    LO_REVENUE              UInt32,
    LO_SUPPLYCOST           UInt32,
    LO_TAX                  UInt8,
    LO_COMMITDATE           Date,
    LO_SHIPMODE             LowCardinality(String)
)
ENGINE = MergeTree PARTITION BY toYear(LO_ORDERDATE) ORDER BY (LO_ORDERDATE, LO_ORDERKEY);
CREATE TABLE default.part
(
        P_PARTKEY       UInt32,
        P_NAME          String,
        P_MFGR          LowCardinality(String),
        P_CATEGORY      LowCardinality(String),
        P_BRAND         LowCardinality(String),
        P_COLOR         LowCardinality(String),
        P_TYPE          LowCardinality(String),
        P_SIZE          UInt8,
        P_CONTAINER     LowCardinality(String)
)
ENGINE = MergeTree ORDER BY P_PARTKEY;
CREATE TABLE default.supplier
(
        S_SUPPKEY       UInt32,
        S_NAME          String,
        S_ADDRESS       String,
        S_CITY          LowCardinality(String),
        S_NATION        LowCardinality(String),
        S_REGION        LowCardinality(String),
        S_PHONE         String
)
ENGINE = MergeTree ORDER BY S_SUPPKEY;

5、导入数据

准备工作:
先把ssb-dbgen(lineorder.tbl,customer.tbl,part.tbl,supplier.tbl)考到clickhouse-server容器里面

clickhouse-client --query "INSERT INTO customer FORMAT CSV" < customer.tbl
clickhouse-client --query "INSERT INTO part FORMAT CSV" < part.tbl
clickhouse-client --query "INSERT INTO supplier FORMAT CSV" < supplier.tbl
clickhouse-client --query "INSERT INTO lineorder FORMAT CSV" < lineorder.tbl

注意:如果此处报错,检查clickhouse的配置(端口是否占用,是否设置用户和密码)

6、测试

编号 查询语句SQL 耗时(ms)
Q1 SELECT SUM(l.LO_EXTENDEDPRICE * l.LO_DISCOUNT) AS revenue FROM lineorder_flat WHERE toYear(l.LO_ORDERDATE) = 1993 AND l.LO_DISCOUNT BETWEEN 1 AND 3 AND l.LO_QUANTITY < 25; 36
Q2 SELECT SUM(l.LO_EXTENDEDPRICE * l.LO_DISCOUNT) AS revenue FROM lineorder_flat WHERE toYYYYMM(l.LO_ORDERDATE) = 199401 AND l.LO_DISCOUNT BETWEEN 4 AND 6 AND l.LO_QUANTITYBETWEEN 26 AND 35; 12
Q3 SELECT SUM(l.LO_EXTENDEDPRICE * l.LO_DISCOUNT) AS revenue FROM lineorder_flat WHERE toISOWeek(l.LO_ORDERDATE) = 6 AND toYear(l.LO_ORDERDATE) = 1994 AND l.LO_DISCOUNT BETWEEN 5 AND 7 AND l.LO_QUANTITY BETWEEN 26 AND 35; 12
Q4 SELECT SUM(l.LO_REVENUE), toYear(l.LO_ORDERDATE) AS year, p.P_BRAND FROM lineorder_flat WHERE p.P_CATEGORY = ‘MFGR#12' AND s.S_REGION = ‘AMERICA' GROUP BY year, p.P_BRAND ORDER BY year, p.P_BRAND; 16
Q5 SELECT SUM(l.LO_REVENUE), toYear(l.LO_ORDERDATE) AS year, p.P_BRAND FROM lineorder_flat WHERE p.P_BRAND BETWEEN ‘MFGR#2221' AND ‘MFGR#2228' AND s.S_REGION = ‘ASIA' GROUP BY year, p.P_BRAND ORDER BY year, p.P_BRAND; 21
Q6 SELECT toYear(l.LO_ORDERDATE) AS year, s.S_CITY, p.P_BRAND, SUM(l.LO_REVENUE -l.LO_SUPPLYCOST) AS profit FROM lineorder_flat WHERE s.S_NATION = ‘UNITED STATES' AND (year = 1997 OR year = 1998) AND p.P_CATEGORY = ‘MFGR#14' GROUP BY year, s.S_CITY, p.P_BRAND ORDER BY year, s.S_CITY, p.P_BRAND; 19

官网参考:
https://clickhouse.tech/docs/zh/getting-started/example-datasets/star-schema/#star-schema-benchmark

以上就是Docker创建ClickHouse 并初始化数据测试的详细内容,更多关于Docker的资料请关注脚本之家其它相关文章!

相关文章

  • docker 搭建 vulhub 靶场环境的详细过程

    docker 搭建 vulhub 靶场环境的详细过程

    Vulhub是一个基于docker和docker-compose的漏洞环境集合,进入对应目录并执行一条语句即可启动一个全新的漏洞环境,让漏洞复现变得更加简单,让安全研究者更加专注于漏洞原理本身,这篇文章给大家介绍docker 搭建 vulhub 靶场环境的过程,感兴趣的朋友一起看看吧
    2022-08-08
  • Docker中安装宝塔的详细教程

    Docker中安装宝塔的详细教程

    这篇文章主要介绍了Docker中安装宝塔的详细教程,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-03-03
  • 解决calico-apiserver认证失败问题

    解决calico-apiserver认证失败问题

    文章解决Calico APIServer状态异常和命名空间删除报错问题,指出需在三台Master节点修改kube-apiserver的--requestheader-allowed-names参数,允许aggregator CN,此参数控制聚合层代理连接的客户端证书CN白名单
    2025-09-09
  • 使用OpenSSL生成Kubernetes证书的介绍

    使用OpenSSL生成Kubernetes证书的介绍

    今天小编就为大家分享一篇关于使用OpenSSL生成Kubernetes证书的介绍,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-01-01
  • Linux中docker的使用方法讲解

    Linux中docker的使用方法讲解

    本文给大家详细介绍了linux中docker的使用,非常不错,具有参考借鉴价值,需要的朋友参考下吧
    2017-12-12
  • CentOS7部署19版docker(简单,可跟做)

    CentOS7部署19版docker(简单,可跟做)

    这篇文章主要介绍了CentOS7部署19版docker,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-01-01
  • Dify Docker私有化部署遇到的问题及解决

    Dify Docker私有化部署遇到的问题及解决

    Dify 1.01 在 Docker Desktop 4.38.0 上部署时,db 无法启动,权限问题导致,解决方法是修改 `docker-compose.yaml` 文件,为 `db` 配置正确的权限,并创建一个名为 `postgres-data101` 的 Volume 区
    2026-01-01
  • Docker中部署MySQL 5.7并远程连接Navicat的完整指南

    Docker中部署MySQL 5.7并远程连接Navicat的完整指南

    MySQL是最流行的关系型数据库之一,而Docker提供了轻量级、可移植的容器化解决方案,本文将详细介绍如何在CentOS 7上使用Docker部署 MySQL 5.7,并通过Windows上的Navicat进行远程连接,需要的朋友可以参考下
    2025-07-07
  • docker swarm集群搭建过程对比k8s区别解析

    docker swarm集群搭建过程对比k8s区别解析

    Docker Swarm和Kubernetes是两种流行的容器编排工具,它们在服务部署、高可用性、滚动更新、资源管理和存储编排方面有所不同,本文给大家介绍docker swarm集群搭建过程对比k8s区别解析,感兴趣的朋友一起看看吧
    2025-11-11
  • 在docker中构建Vue项目方式

    在docker中构建Vue项目方式

    本文介绍了如何将前端项目构建为Docker镜像,并在容器中配置Nginx进行部署,通过编写Dockerfile,将前端构建和Nginx配置结合在一起,实现了一键部署
    2025-10-10

最新评论