Clickhouse 外部表本地表副本表和分布式表
Posted 羲凡丞相
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Clickhouse 外部表本地表副本表和分布式表相关的知识,希望对你有一定的参考价值。
@羲凡——只为了更好的活着
Clickhouse 外部表、本地表、副本表和分布式表
四个表简介
外部表:ck中只有元数据,数据在hdfs等外部存储介质中
本地表:ck的单机表,在某台机器上创建,就只能在这个机器上使用
副本表:数据在ck集群上,每个分片有多个副本
分布式表:相当于传统数据库的视图,对大批量的数据不推荐直接插分布式表
前期准备
a.安装 两分片两副本的Clickhouse集群
b.样例数据
1,羲凡,29,1992-02-27,nj
5,张三,27,1994-02-27,sh
3,李四,29,1992-02-19,nj
7,王二,20,1992-02-19,bj
4,赵五,1,2020-01-20,nj
现在开始
clickhouse-client -u default --password 123456 --port 9000 -h yc-nsg-h21 --multiquery
0.创建数据库
CREATE database IF NOT EXISTS test_db on CLUSTER test_ck_cluster ;
1.hdfs外部表(数据类型CSV必须大写)
CREATE TABLE test_db.hdfs_staff_replica
(
`id` UInt8,
`name` String,
`age` Int8,
`birthday` Date,
`city` FixedString(2)
)
ENGINE = HDFS('hdfs://ip:port/tmp/hdfs_staff_replica.csv', 'CSV');
2、本地表
CREATE TABLE test_db.staff_local
(
`id` UInt8,
`name` String,
`age` Int8,
`birthday` Date,
`city` FixedString(2),
PRIMARY KEY (`id`)
)
ENGINE = MergeTree
ORDER BY (id, name, age);
# 加载本地文件到本地表中
clickhouse-client -u default --password 123456 --port 9000 -h yc-nsg-h22 --query="insert into test_db.staff_local FORMAT CSV" < ./staff_local.csv
3、副本表
CREATE TABLE test_db.staff_replica ON CLUSTER test_ck_cluster
(
`id` UInt8,
`name` String,
`age` Int8,
`birthday` Date,
`city` FixedString(2),
PRIMARY KEY (`id`)
)
ENGINE=ReplicatedMergeTree('/clickhouse/tables/layer-shard/database/table', 'replica')
ORDER BY (id, name, age) ;
# 将本地表中数据插入副本表中
INSERT INTO test_db.staff_replica SELECT * FROM test_db.staff_local ;
4、分布式表
CREATE TABLE test_db.staff_all ON CLUSTER test_ck_cluster
AS test_db.staff_replica
ENGINE = Distributed(test_ck_cluster, test_db, staff_replica, rand());
# 清除副本表中的数据
truncate table test_db.staff_replica ON CLUSTER test_ck_cluster;
# 重新将本地表中的数据插入分布式表中(这样插入,数据会均匀的分布在集群上)
insert into test_db.staff_all select * from test_db.staff_local ;
# 因为有两个分片所以分两块显示
select * from staff_all;
|
|
|
====================================================================
@羲凡——只为了更好的活着
若对博客中有任何问题,欢迎留言交流
以上是关于Clickhouse 外部表本地表副本表和分布式表的主要内容,如果未能解决你的问题,请参考以下文章
ClickHouse-尚硅谷(15. 高级-常见问题排查)学习笔记
ClickHouse-尚硅谷(15. 高级-常见问题排查)学习笔记