clickhouse單機安裝和效能測試(ssb資料集)
目錄
1、單機安裝
2、clickhouse修改資料目錄
3、clickhouse效能測試
4、檢視資料庫和表的容量大小
1、單機安裝
官網安裝教程:https://clickhouse.com/docs/zh/getting-started/install
這裡使用官方預編譯的tgz軟體包進行安裝。在 https://packages.clickhouse.com/tgz/stable/ 下載最新的安裝包。
然後按照 common-static, common-static-dbg, server, client的順序解壓,執行對應解壓的doinst.sh即可。
tar -xzvf clickhouse-common-static-21.1.9.41.tgz clickhouse-common-static-21.1.9.41/install/doinst.sh tar -xzvf clickhouse-common-static-dbg-21.1.9.41.tgz clickhouse-common-static-dbg-21.1.9.41/install/doinst.sh tar -xzvf clickhouse-server-21.1.9.41.tgz clickhouse-server-21.1.9.41/install/doinst.sh tar -xzvf clickhouse-client-21.1.9.41.tgz clickhouse-client-21.1.9.41/install/doinst.sh
使用 clickhouse --help 檢視指令。clickhouse start/stop/restart 啟動或停止服務,clickhouse-client 使用客戶端連線。
預設,配置檔案位於 /etc/clickhouse-server、/etc/clickhouse-client, 表資料位於 /var/lib/clickhouse/data、/var/lib/clickhouse/store、/var/lib/clickhouse/metadata,執行日誌位於 /var/log/clickhouse-server
開啟允許遠端連線:修改/etc/clickhouse-server/config.xml,開啟 <listen_host>::</listen_host> 的註釋。開啟遠端連線後,可以通過 http://$clickhouse_server_ip:8123 進行HTTP訪問。
本地開啟cmd,通過mysql 客戶端連線
mysql -udefault -P9004 -h192.168.xxx.xxx -p
2、clickhouse修改資料目錄
clickhouse預設資料目錄在 /var/lib/clickhouse, 一般分割槽空間有限,需要修改。只要停止資料庫之後移走該目錄再軟連接回原地址,即可不修改config.xml實現對資料目錄的修改。
#先停庫 sudo clickhouse stop sudo mkdir -p /sdb1/clickhousedata01 #許可權一定要修改否則沒許可權就啟動不了 sudo chown -R clickhouse:clickhouse /sdb1/clickhousedata01 sudo mv /var/lib/clickhouse /sdb1/clickhousedata01 #建立軟連線 sudo ln -s /sdb1/clickhousedata01clickhouse /var/lib/clickhouse sudo chown -R clickhouse:clickhouse /var/lib/clickhouse sudo ls -l /var/lib/clickhouse #啟動 sudo clickhouse start
3、clickhouse效能測試
使用ssb資料集進行測試:https://clickhouse.com/docs/zh/getting-started/example-datasets/star-schema
ClickHouse效能測試:https://developer.aliyun.com/article/940057
匯入資料時,官網上預設是匯入default庫,如果是匯入自己建立的資料庫,比如
clickhouse-client --query "INSERT INTO oydb1.customer FORMAT CSV" < customer.tbl
4、檢視資料庫和表的容量大小
檢視資料庫容量、行數、壓縮率
SELECT sum(rows) AS `總行數`, formatReadableSize(sum(data_uncompressed_bytes)) AS `原始大小`, formatReadableSize(sum(data_compressed_bytes)) AS `壓縮大小`, round((sum(data_compressed_bytes) / sum(data_uncompressed_bytes)) * 100, 0) AS `壓縮率` FROM system.parts ┌────總行數─┬─原始大小──┬─壓縮大小─┬─壓縮率─┐ │ 326819026 │ 77.15 GiB │ 5.75 GiB │ 7 │ └───────────┴───────────┴──────────┴────────┘ 1 rows in set. Elapsed: 0.047 sec. Processed 1.04 thousand rows, 520.93 KB (21.95 thousand rows/s., 11.02 MB/s.)
檢視資料表容量、行數、壓縮率
--在此查詢一張臨時表的資訊 SELECT table AS `表名`, sum(rows) AS `總行數`, formatReadableSize(sum(data_uncompressed_bytes)) AS `原始大小`, formatReadableSize(sum(data_compressed_bytes)) AS `壓縮大小`, round((sum(data_compressed_bytes) / sum(data_uncompressed_bytes)) * 100, 0) AS `壓縮率` FROM system.parts WHERE table IN ('temp_1') GROUP BY table ┌─表名───┬──總行數─┬─原始大小───┬─壓縮大小──┬─壓縮率─┐ │ temp_1 │ 3127523 │ 838.21 MiB │ 60.04 MiB │ 7 │ └────────┴─────────┴────────────┴───────────┴────────┘ 1 rows in set. Elapsed: 0.008 sec.
檢視資料表分割槽資訊
--檢視測試表在19年12月的分割槽資訊 SELECT partition AS `分割槽`, sum(rows) AS `總行數`, formatReadableSize(sum(data_uncompressed_bytes)) AS `原始大小`, formatReadableSize(sum(data_compressed_bytes)) AS `壓縮大小`, round((sum(data_compressed_bytes) / sum(data_uncompressed_bytes)) * 100, 0) AS `壓縮率` FROM system.parts WHERE (database IN ('default')) AND (table IN ('temp_1')) AND (partition LIKE '2019-12-%') GROUP BY partition ORDER BY partition ASC ┌─分割槽───────┬─總行數─┬─原始大小──┬─壓縮大小───┬─壓縮率─┐ │ 2019-12-01 │ 24 │ 6.17 KiB │ 2.51 KiB │ 41 │ │ 2019-12-02 │ 9215 │ 2.45 MiB │ 209.74 KiB │ 8 │ │ 2019-12-03 │ 17265 │ 4.46 MiB │ 453.78 KiB │ 10 │ │ 2019-12-04 │ 27741 │ 7.34 MiB │ 677.25 KiB │ 9 │ │ 2019-12-05 │ 31500 │ 8.98 MiB │ 469.30 KiB │ 5 │ │ 2019-12-06 │ 157 │ 37.50 KiB │ 4.95 KiB │ 13 │ │ 2019-12-07 │ 110 │ 32.75 KiB │ 3.86 KiB │ 12 │ └────────────┴────────┴───────────┴────────────┴────────┘ 7 rows in set. Elapsed: 0.005 sec.
檢視資料表字段的資訊
SELECT column AS `欄位名`, any(type) AS `型別`, formatReadableSize(sum(column_data_uncompressed_bytes)) AS `原始大小`, formatReadableSize(sum(column_data_compressed_bytes)) AS `壓縮大小`, sum(rows) AS `行數` FROM system.parts_columns WHERE (database = 'default') AND (table = 'temp_1') GROUP BY column ORDER BY column ASC ┌─欄位名───────────┬─型別─────┬─原始大小───┬─壓縮大小───┬────行數─┐ │ a │ String │ 23.83 MiB │ 134.13 KiB │ 3127523 │ │ b │ String │ 19.02 MiB │ 127.72 KiB │ 3127523 │ │ c │ String │ 5.97 MiB │ 49.09 KiB │ 3127523 │ │ d │ String │ 3.95 MiB │ 532.86 KiB │ 3127523 │ │ e │ String │ 5.17 MiB │ 49.47 KiB │ 3127523 │ │ totalDate │ DateTime │ 11.93 MiB │ 1.26 MiB │ 3127523 │ └──────────────────┴──────────┴────────────┴────────────┴─────────┘