当前位置:网站首页>ClickHouse学习(八)物化视图
ClickHouse学习(八)物化视图
2022-07-29 05:09:00 【阳光里哭泣的狗】
什么是物化视图
在数据库中视图指的是通过一张或者多张表查询出来的逻辑表,就类似网页版的拳皇一样按UIO就会放招而不是用上下上下BABA那样按,视图就是UIO记录了招式的过程但是并不记录数据.
而clickhouse的物化视图则是把查询的结果和相应的引擎存入到磁盘或内存中,类似形成了一张新的表,但是表中会对自己数据进行重新组织.
使用物化视图好处
可以避免对基础表的频繁查询并复用结果,从而显著提升查询的性能
基本语法
CREATE [MATERIALIZED] VIEW [IF NOT EXISTS] [db.]table_name [TO[db.]name] [ENGINE = engine] [POPULATE] AS SELECT …
- 若使用POPULATE则会将历史记录数据全部导入进视图中,最好别用,想要将历史记录导入则使用insert插入数据就行
创建物化视图
创建源表
CREATE TABLE hits_test
(
EventDate Date,
CounterID UInt32,
UserID UInt64,
URL String,
Income UInt8
)
ENGINE = MergeTree()
PARTITION BY toYYYYMM(EventDate)
ORDER BY (CounterID, EventDate, intHash32(UserID))
SAMPLE BY intHash32(UserID)
SETTINGS index_granularity = 8192;
向表中插入数据
INSERT INTO hits_test
SELECT
EventDate,
CounterID,
UserID,
URL,
Income
FROM hits_v1
limit 10000;
创建物化视图
CREATE MATERIALIZED VIEW hits_mv
ENGINE=SummingMergeTree
PARTITION BY toYYYYMM(EventDate) ORDER BY (EventDate, intHash32(UserID))
AS SELECT
UserID,
EventDate,
count(URL) as ClickCount,
sum(Income) AS IncomeSum
FROM hits_test
WHERE EventDate >= '2014-03-20'
GROUP BY UserID,EventDate;
框起来的为物化视图自己的数据规则
向物化视图中增加数据
INSERT INTO hits_test
SELECT
EventDate,
CounterID,
UserID,
URL,
Income
FROM hits_v1
WHERE EventDate >= '2014-03-23'
limit 10;

导入历史数据
最好别用POPULATE导入历史数据
将hits_test表中的数据导入物化视图中
INSERT INTO hits_mv
SELECT
UserID,
EventDate,
count(URL) as ClickCount,
sum(Income) AS IncomeSum
FROM hits_test
WHERE EventDate = '2014-03-20'
GROUP BY UserID,EventDate;

边栏推荐
- 【C语言系列】— 字符串+部分转义字符详解+注释小技巧
- 【C语言系列】—三种方法模拟实现strlen库函数的方法
- 抽象类与接口
- [event preview] cloud development, efficient and intelligent - the second Alibaba cloud ECS cloudbuild developer competition is about to start
- VIM editor use
- 数组学习之入门简单题 两数之和
- 数据库操作 Day 6
- Live broadcast Preview: integration of JD cloud Devops and jfrog product library
- ANSI C type qualifier
- Helm chart for Kubernetes
猜你喜欢

Complete ecological map of R & D Efficiency & selection of Devops tools

Alibaba cloud architect Liang Xu: MES on cloud box helps customers quickly build digital factories

51万奖池邀你参战!第二届阿里云ECS CloudBuild开发者大赛来袭

Best practices of JD cloud Distributed Link Tracking in financial scenarios

Yangyonglin, vice president of Rushi Technology: when traditional industries encounter "digital space"

抢先预约 | 阿里云无影云应用线上发布会预约开启

The road to success in R & D efficiency of 1000 person Internet companies

预约中,2022京东云产业融合新品发布会线上开启

Helm chart for Kubernetes

全局components组件注册
随机推荐
京东云金秋上云特惠进行中!扫码参与活动
Thousands of databases, physical machines all over the country, JD logistics full volume cloud live record | interview with excellent technical team
Detailed explanation of exit interrupt
无重复字符的最长字串
哈夫曼树以及哈夫曼编码在文件压缩上的应用
Camunda 1、Camunda工作流-介绍
【C语言系列】— 字符串+部分转义字符详解+注释小技巧
200 多家 ISV 入驻!阿里云计算巢发布一周年
Storage category
Xiaolu Inn - Trailer
Pointer
Preemptive appointment | Alibaba cloud shadowless cloud application online conference appointment opens
js深拷贝-笔记
C语言 一级指针
微信小程序视频上传组件直接上传至阿里云OSS
直播预告:京东云DevOps与JFrog制品库的融合
Alibaba cloud Zhang Xintao: heterogeneous computing provides surging power for the digital economy
C language file operation
Day 1
【赛事预告】云上开发,高效智能——第二届阿里云ECS CloudBuild开发者大赛即将启动