Exploring storage and computing separation for ClickHouse - JuiceFS Blog
ClickHouse 存算分離改造:小紅書自研云原生數(shù)據(jù)倉庫實踐
唯品會翻牌ClickHouse后,實現(xiàn)百億級數(shù)據(jù)自助分析_語言 & 開發(fā)_dbaplus社群_InfoQ精選文章
在思考如何實現(xiàn)存算分離,感覺可以像JuiceFS利用多盤存儲隔離資源。
多盤配置
<path>/var/lib/clickhouse/</path>
<storage_configuration>
? ? <disks>
? ? ? <disk_name_1>
? ? ? ? ? ? <path>/mnt/A123456/data/</path>
? ? ? ? </disk_name_1>
? ? </disks>
? ? <policies>
? ? ? ? <policy_name_1>
? ? ? ? ? ? ? ? <volumes>
? ? ? ? ? ? ? ? ? ? ? ? <volume_name_0>
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?<disk>disk_name_1</disk>
? ? ? ? ? ? ? ? ? ? ? ? </volume_name_0>
? ? ? ? ? ? ? ? </volumes>
? ? ? ? </policy_name_1>
? </policies>
</storage_configuration>
但是還有個位置,zk的多副本配置了怎么弄,還有就是如何讀data。
查看存儲策略
select policy_name,volume_name,disks from system.storage_policies
┌─policy_name───┬─volume_name───┬─disks───────────┐
│ default │ default │ ['default'] │
│ policy_name_1 │ volume_name_0 │ ['disk_name_1'] │
└───────────────┴───────────────┴─────────────────┘
生成mergeTree表寫數(shù)據(jù)
CREATE TABLE myFirstReplacingMT
(
`key` Int64,
`someCol` String,
`eventTime` DateTime
)
ENGINE = ReplacingMergeTree
ORDER BY key SETTINGS storage_policy = 'policy_name_1';
INSERT INTO myFirstReplacingMT Values (1, 'first', '2020-01-01 01:01:01');
INSERT INTO myFirstReplacingMT Values (1, 'second', '2020-01-01 00:00:00');
查看位置
SELECT
name,
data_paths,
metadata_path,
storage_policy
FROM system.tables
WHERE name LIKE 'myFir%'
從文件導(dǎo)入
換一個簡單的表?test_batch?
CREATE TABLE test_batch (a Int64,b Int64)
ENGINE = ReplacingMergeTree() ORDER BY a
由clickhouse-local生成數(shù)據(jù)
sudo echo -e "1,2\n2,3" | clickhouse-local --input-format "CSV" ?-S "a Int64,b Int64" -N "tmp_table" -q "CREATE TABLE test_batch (a Int64,b Int64) ENGINE = ReplacingMergeTree() ORDER BY a;INSERT INTO TABLE test_batch SELECT a,b FROM tmp_table;" --logger.console --path /tmp/test/testlocal/
ls testlocal/data/_local/test_batch/all_1_1_0/
checksums.txt columns.txt count.txt data.bin data.cmrk3 default_compression_codec.txt metadata_version.txt primary.cidx serialization.json
?拷貝到server上,查看一下存儲位置
SELECT
name,
data_paths,
metadata_path,
storage_policy
FROM system.tables
WHERE name LIKE 'test_batch%'
?拷貝到data_paths下detached文件夾
?sudo cp -r?./testlocal/data/_local/test_batch/all_1_1_0/ /mnt/xxx/data/store/xxx/detached/
然后在service上:
?ALTER TABLE test_batch ATTACH PART 'all_1_1_0';
導(dǎo)入進去了,看看分區(qū)(我這里已經(jīng)重復(fù)操作了3次,也就是導(dǎo)入了3次)
SELECT
partition,
name,
active
FROM system.parts
WHERE table = 'test_batch'
Query id: 111
┌─partition─┬─name──────┬─active─┐
│ tuple() │ all_1_1_0 │ 1 │
│ tuple() │ all_2_2_0 │ 1 │
│ tuple() │ all_3_3_0 │ 1 │
└───────────┴───────────┴────────┘
Reference
真是秀,ClickHouse批量導(dǎo)入還可以這樣玩?-騰訊云開發(fā)者社區(qū)-騰訊云 (tencent.com)?文章來源:http://www.zghlxwxcb.cn/news/detail-730836.html
ClickHouse多盤存儲配置-騰訊云開發(fā)者社區(qū)-騰訊云 (tencent.com)文章來源地址http://www.zghlxwxcb.cn/news/detail-730836.html
到了這里,關(guān)于Clickhouse存算分離的思考的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!