利志分享
fast_forward
view_headline
开发工具箱
go教程
clickhouse教程
kafka教程
python教程
shell教程
原创杂文
打赏
开发工具箱
go教程
clickhouse教程
kafka教程
python教程
shell教程
原创杂文
打赏
clickhouse入门
clickhouse概述
clickhouse安装和部署
clickhouse数据类型
clickhouse表引擎学习
clickhouse表引擎学习2
clickhouse的sql语法功能1-创建库,创建表等
clickhouse的sql语法2之select功能
clickhouse的sql语法3之alter和show功能
clickhouse的sql语法4之system的了解-查看当前实时连接数
clickhouse的sql语法5之账号授权功能
浅析Clickhouse的向量化执行
clickhouse时间日期函数详解-toDate,toDateTime,formatDateTime
clickhouse常用字符串函数-empty,length,lower,upper,substring,splitByString
clickhouse常用数组函数-arrayJoin,arraySort,arrayReverseSort,arrayReduce,arrayDistinct
clickhouse常用hash函数和类型转换函数,随机函数
clickhouse实战
clickhouse实现漏斗功能
clickhouse实现留存数和留存率计算
你想要的-提高统计clickhouse的查询效率,clickhouse物化视图的应用
剖析-clickhouse的复制表引擎重复数据无法写入问题
clickhouse分布式查询报错剖析-Double-distributed IN/JOIN subqueries is denied (distributed_product_mode = 'deny'
有料-clickhouse单机的增删查询实现方案和clickhouse分布式部署的增删查改实现方案
clickhouse的go客户端实现插入分布式clickhouse集群方式
分布式物化视图在clickhouse如何实现?
助你成为数据分析达人-带你透彻的了解clickhouse实现同比环比分析
如何在clickhouse中实现连续的时间,比如连续的天
第二篇:如何在clickhouse中实现连续的时间,比如连续的天
clickhouse中toDate和toDateTime不能处理1970年之前时间问题
分享clickhouse分布式集群CPU突然暴涨接近100%的问题查证和分析
clickhouse一个特殊的Inf类型数据引发的数据问题
clickhouse的MergeTree系列引擎ReplacingMergeTree和SummingMergeTree的深入理解
sql中多表组合笛卡尔积引发数据动态变化的问题
clickhouse之删除数据或更新数据无效的解决思路-mutations相关
clickhouse(20.3.10.75版本) Sql报错总结
clickhouse网络架构问题引发的:All connection tries failed,Attempt to read after eof,While executing Remote报错
clickhouse深入
深入了解clickhouse的索引查询过程
详解clickhouse的MergeTree引擎存储结构
Clickhouse如何分析sql查询计划完整指南
详解clickhouse分区目录的合并过程
目录
clickhouse入门
clickhouse概述
clickhouse安装和部署
clickhouse数据类型
clickhouse表引擎学习
clickhouse表引擎学习2
clickhouse的sql语法功能1-创建库,创建表等
clickhouse的sql语法2之select功能
clickhouse的sql语法3之alter和show功能
clickhouse的sql语法4之system的了解-查看当前实时连接数
clickhouse的sql语法5之账号授权功能
浅析Clickhouse的向量化执行
clickhouse时间日期函数详解-toDate,toDateTime,formatDateTime
clickhouse常用字符串函数-empty,length,lower,upper,substring,splitByString
clickhouse常用数组函数-arrayJoin,arraySort,arrayReverseSort,arrayReduce,arrayDistinct
clickhouse常用hash函数和类型转换函数,随机函数
clickhouse实战
clickhouse实现漏斗功能
clickhouse实现留存数和留存率计算
你想要的-提高统计clickhouse的查询效率,clickhouse物化视图的应用
剖析-clickhouse的复制表引擎重复数据无法写入问题
clickhouse分布式查询报错剖析-Double-distributed IN/JOIN subqueries is denied (distributed_product_mode = 'deny'
有料-clickhouse单机的增删查询实现方案和clickhouse分布式部署的增删查改实现方案
clickhouse的go客户端实现插入分布式clickhouse集群方式
分布式物化视图在clickhouse如何实现?
助你成为数据分析达人-带你透彻的了解clickhouse实现同比环比分析
如何在clickhouse中实现连续的时间,比如连续的天
第二篇:如何在clickhouse中实现连续的时间,比如连续的天
clickhouse中toDate和toDateTime不能处理1970年之前时间问题
分享clickhouse分布式集群CPU突然暴涨接近100%的问题查证和分析
clickhouse一个特殊的Inf类型数据引发的数据问题
clickhouse的MergeTree系列引擎ReplacingMergeTree和SummingMergeTree的深入理解
sql中多表组合笛卡尔积引发数据动态变化的问题
clickhouse之删除数据或更新数据无效的解决思路-mutations相关
clickhouse(20.3.10.75版本) Sql报错总结
clickhouse网络架构问题引发的:All connection tries failed,Attempt to read after eof,While executing Remote报错
clickhouse深入
深入了解clickhouse的索引查询过程
详解clickhouse的MergeTree引擎存储结构
Clickhouse如何分析sql查询计划完整指南
详解clickhouse分区目录的合并过程
分布式物化视图在clickhouse如何实现?
阅读:547
分享次数:0
物化视图在数据层面做指标大宽表有着举足轻重的作用,分布式物化视图是对物化视图存储的数据进行分布式读取。 之前我们有一个介绍过物化视图的文章,详情请点击:[clickhouse物化视图的应用](https://zengzhihai.com/study/wiki/type/Y2xpY2tob3VzZQ==/id/60d73af4469aeadd159f2093 "clickhouse物化视图的应用"),这里我们已经介绍过物化视图是什么,如何使用。 下面我们这里来介绍一下分布式物化视图的使用。我们这里使用的是分布式clickhouse集群。版本是:20.3.10.75,下面我们就来详解分布式物化视图在clickhouse的使用。 1:首先我们还是来建立三个表。 use my_test CREATE TABLE user on cluster ch_cluster ( user_id UInt16,phone String,name String,create_time DateTime ) ENGINE = MergeTree() PARTITION BY toYYYYMM(create_time) ORDER BY (user_id) SETTINGS index_granularity = 8192; CREATE TABLE bind on cluster ch_cluster ( user_id UInt16,phone String,create_time DateTime ) ENGINE = MergeTree() PARTITION BY toYYYYMM(create_time) ORDER BY (user_id) SETTINGS index_granularity = 8192; CREATE TABLE user_info on cluster ch_cluster ( user_id UInt16,sig String,node String,create_time DateTime ) ENGINE = MergeTree() PARTITION BY toYYYYMM(create_time) ORDER BY (user_id) SETTINGS index_granularity = 8192; 2:分别在不同的节点插入数据,我这里有两个节点,我们每个节点插入如下数据。 节点1如下: insert into user values(1,'18475484454','张三',now()),(2,'18465484454','李四',now()),(3,'','王五',now()),(4,'','小狗',now()) insert into bind values(1,'18475484454',now()),(3,'18475484457',now()) insert into user_info values(1,'我的地盘我做主','我的签名',now()),(3,'我的地盘我做主2','我的签名2',now()) 节点2如下: insert into user values(8,'18475484454','张三4',now()),(5,'18465484454','李四5',now()),(6,'','王五6',now()),(7,'','小狗7',now()) insert into bind values(7,'18475484454',now()),(5,'18475484457',now()) insert into user_info values(4,'我的地盘我做主','我的签名4',now()),(6,'我的地盘我做主6','我的签名6',now()) 3:插入完数据之后,我们去每个节点查询,因为我们需要读所有的数据,则我们需要建一下分布式表来读数据。下面是建分布式表的语句。 CREATE TABLE my_test.user_all on cluster ch_cluster(user_id UInt16,phone String,name String,create_time DateTime) ENGINE = Distributed('ch_cluster', 'my_test', 'user', rand()); CREATE TABLE my_test.bind_all on cluster ch_cluster(user_id UInt16,phone String,create_time DateTime) ENGINE = Distributed('ch_cluster', 'my_test', 'bind', rand()); CREATE TABLE my_test.user_info_all on cluster ch_cluster(user_id UInt16,sig String,node String,create_time DateTime) ENGINE = Distributed('ch_cluster', 'my_test', 'user_info', rand()); 建立好上面的分布式表之后就能读集群所有节点的数据了。我这里贴一下user表的所有数据。  4:上面是基础的数据表,这里我们开始建物化视图表。下面的sql是把用户表,用户信息表,绑定表进行组合成大宽表,下面的脚本我们是在每个节点上存了一份快照,实际业务中我们是写数据到一个节点,不会一份数据存多份。我这里做例子就这么使用。 CREATE MATERIALIZED VIEW my_test.big_user_view on cluster ch_cluster ENGINE = MergeTree() PARTITION BY toYYYYMM(a.create_time) ORDER BY (a.user_id) POPULATE AS select a.user_id,a.name,a.create_time,b.phone,c.sig,c.node from my_test.user_all a global left join my_test.bind_all as b on a.user_id=b.user_id global left join my_test.user_info_all c on a.user_id=c.user_id; 5:上面的物化视图表我们建立好了,下面我们在物化视图表上建分布式表。 CREATE TABLE my_test.big_user_view_all on cluster ch_cluster as my_test.big_user_view ENGINE = Distributed('ch_cluster', 'my_test', 'big_user_view', rand()); 好了,到这里我们已经可以通过物化视图分布式表读每个节点的物化视图了,业务中我们基于物化视图来做大宽表,读取物化视图分布式表是非常常见的。我之前记得之前有一篇"clickhouse物化视图在微信中应用"也是比较类似。 **总结: 1:物化视图和普通表都可以建立分布式表。 2:物化视图分布式表常用于业务的大宽表使用。**
感觉本站内容不错,读后有收获?
attach_money
我要小额打赏,鼓励作者写出更好的教程
扫码关注公众号:talk_lizhi