当前位置:网站首页>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;

边栏推荐
- 浅谈Servlet
- Preemptive appointment | Alibaba cloud shadowless cloud application online conference appointment opens
- QT learning: qdropevent drag event
- 哈夫曼树以及哈夫曼编码在文件压缩上的应用
- 京东云金秋上云特惠进行中!扫码参与活动
- 第一周总结
- 直播预告:京东云DevOps与JFrog制品库的融合
- JD cloud and Forrester consulting released a hybrid cloud report that cloud Nativity has become a new engine driving industrial development
- Container security open source detection tool - veinmind (mirror backdoor, malicious samples, sensitive information, weak password, etc.)
- 省市区三级联动(简单又完美)
猜你喜欢

QML type: mousearea

阿里云张新涛:异构计算为数字经济提供澎湃动力

【C语言系列】— 打印100~200之间的素数

阿里云联合鼎捷软件发布云上数字工厂解决方案,实现云MES系统本地化部署

365 day challenge leetcode 1000 questions - day 042 array sequence number conversion + relative ranking discretization processing

【C语言系列】—深度解剖数据在内存中的存储(一) 暑假开篇

vim编辑器使用

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

Come on! See how Clickhouse, which has risen 16 places a year, can be implemented in jd.com

Alibaba cloud architect Liang Xu: MES on cloud box helps customers quickly build digital factories
随机推荐
整数溢出和打印
C language file operation
Yangyonglin, vice president of Rushi Technology: when traditional industries encounter "digital space"
哈夫曼树以及哈夫曼编码在文件压缩上的应用
【C语言系列】—文件操作详解(上)
文件结尾
Alibaba cloud architect details nine trends in the game industry
Day 5
递归的基本原理
Integer overflow and printing
阿里云张新涛:异构计算为数字经济提供澎湃动力
C语言文件操作
Bubble sort c language
D3d Shader Instruction
B - 识别浮点常量问题
C language one-dimensional array
·来一篇编程之路的自我介绍吧·
数据库操作 Day 6
End of document
GPIO的输入输出详解