Docker安裝ClickHouse并初始化數(shù)據(jù)測(cè)試
clickhouse簡(jiǎn)介
ClickHouse是一個(gè)面向列存儲(chǔ)的數(shù)據(jù)庫(kù)管理系統(tǒng),可以使用SQL查詢實(shí)時(shí)生成分析數(shù)據(jù)報(bào)告,主要用于OLAP(在線分析處理查詢)場(chǎng)景。關(guān)于clickhouse原理以及基礎(chǔ)知識(shí)在以后學(xué)習(xí)中慢慢總結(jié)。
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、生成數(shù)據(jù)
./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
查看下數(shù)據(jù)
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、導(dǎo)入數(shù)據(jù)
準(zhǔn)備工作:
先把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
注意:如果此處報(bào)錯(cuò),檢查clickhouse的配置(端口是否占用,是否設(shè)置用戶和密碼)
6、測(cè)試
編號(hào) | 查詢語(yǔ)句SQL | 耗時(shí)(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 |
官網(wǎng)參考:
https://clickhouse.tech/docs/zh/getting-started/example-datasets/star-schema/#star-schema-benchmark
以上就是Docker創(chuàng)建ClickHouse 并初始化數(shù)據(jù)測(cè)試的詳細(xì)內(nèi)容,更多關(guān)于Docker的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
安裝Docker Desktop報(bào)錯(cuò)WSL 2 installation is incomplete的問(wèn)題(解決報(bào)錯(cuò))
這篇文章主要介紹了安裝Docker Desktop報(bào)錯(cuò)WSL 2 installation is incomplete的問(wèn)題,解決方法很簡(jiǎn)單只需我們自己手動(dòng)更新一下,我們根據(jù)提示去微軟官網(wǎng)下載最新版的wsl2安裝后即可正常打開,需要的朋友可以參考下2021-06-06CentOS7構(gòu)建docker-ce的過(guò)程詳解
使用CentOS 7.9系列的Linux操作系統(tǒng),從CentOS系統(tǒng)基礎(chǔ)配置開始,0到1快速構(gòu)建docker應(yīng)用,本文給大家分享CentOS7構(gòu)建docker-ce的過(guò)程,感興趣的朋友跟隨小編一起看看吧2024-05-05docker在win10家庭版下構(gòu)建laravel開發(fā)環(huán)境的教程詳解
這篇文章主要介紹了docker在win10家庭版下構(gòu)建laravel開發(fā)環(huán)境,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-06-06Docker容器搭建Kafka集群的詳細(xì)過(guò)程
這篇文章主要介紹了Docker容器?Kafka集群的搭建,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-03-03淺談docker運(yùn)行nginx為什么要使用daemon off
這篇文章主要介紹了淺談docker運(yùn)行nginx為什么要使用daemon off,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2019-01-01Windows10安裝WSL2 Ubuntu20.04并設(shè)置docker環(huán)境的方法
這篇文章主要介紹了Windows10安裝WSL2 Ubuntu20.04并設(shè)置docker環(huán)境的方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-05-05