当前位置:网站首页>Clickhouse materialized view
Clickhouse materialized view
2022-07-05 03:45:00 【Younger Cheng】
One 、 Concept
clickhouse Materialized view of is a kind of persistence of query results , It has brought us the improvement of query efficiency . There is no difference between user query and table lookup , Its essence is a table , A table that is always pre calculated , The creation process uses a special engine :
notes : Use create grammar , A hidden target will be created to save the view data , Use To Table name , Save to a displayed table , No addition To Table name , The default table name is .inner. Materialized view name ,
CREATE MATERIALIZED VIEW [IF NOT EXISTS] [db.]table_name [TO[db.]name] [ENGINE = engine] [POPULATE] AS SELECT …
“ Query result set ” Has a wide range of , It can be a simple copy of some data in the basic table , It can also be multi table join The result or a subset of it 、 Or the aggregation index of the original data . therefore , The materialized view will not change with the change of the underlying table , So it is also called snapshot
Restrictions on creating materialized views :
1、 The of materialized views must be specified engine For data storage
2、 Use To[db].[table] Grammatical time , Do not use POPULATE,POPULATE All historical data will be loaded and converted , There is an unavailable time when there is a large amount of data ( It is not officially recommended to use when creating materialized views POPULATE, Because the data written in the process of creating materialized views cannot be inserted into materialized views )
3、 Query statement (select) It can contain the following sentences :DISTINCT、GROUP BY、LIMIT etc.
4、 If the definition of materialized view uses TO [db.]name Sub statement , You can uninstall the view of the target table DETACH Reload ATTACH
The difference between materialized view and ordinary view :
Normal view doesn't save data , Only query statements are saved , When querying, you still read data from the original table , You can think of a normal view as a subquery .
Materialized views are Store the query results into disk or memory according to the corresponding engine , Reorganize the data , A new table is generated
Advantages and disadvantages :
advantage : Fast query speed , Write materialized view rules in advance , It is much better than directly querying the original data ( Materialized views play a synchronous role )
shortcoming : The essence is streaming data Usage scenarios of , Adopt cumulative Technology , Historical data should be used for de duplication 、 Analysis of denuclearization . Limited use scenarios , If you add many materialized views to a table , Writing this table will consume a lot of resources , For example, the data bandwidth is full , Sudden increase in storage
# Create table
CREATE TABLE `ts_area_info` (
id UInt32 ,
createDate Date ,
userId UInt32 ,
url String,
income UInt8
) ENGINE=MergeTree()
PARTITION BY toYYYYMM(createDate)
ORDER BY (id,createDate,intHash32(userId))
SAMPLE BY intHash32(userId)
SETTINGS index_granularity = 8192
# Create materialized views
CREATE MATERIALIZED VIEW area_mv
ENGINE SummingMergeTree
PARTITION BY toYYYYMM(createDate)
ORDER BY (id,createDate,intHash32(userId))
AS
select * from ts_area_info;
Newly generated materialized view :
Key fields :
populate: Create a table to synchronize data
final: Go to the latest data
Two 、 Materialized views act as aggregate tables
Realize aggregation when synchronizing data
# Use materialized views to synchronize aggregate tables
1、 Create a schedule
drop table tb_order;
create table tb_order(
id UInt8 ,
createDate Date ,
money UInt64
)
ENGINE =MergeTree()
order by id;
2、 insert data
insert into tb_order values(1,toDate(now()),100),
(2,toDate(now()),100),
(3,toDate(now()),100),
(1,toDate(now()),100),
(2,toDate(now()),200),
(3,toDate(now()),300);
3、 Create materialized views to synchronize data
CREATE MATERIALIZED VIEW order_mv
ENGINE AggregatingMergeTree()
PARTITION BY toYYYYMM(createDate)
ORDER BY (id,createDate)
POPULATE AS
select id,createDate,sumState(money) as ms from tb_order
GROUP BY id,createDate;
4、 Query materialized view
select id,createDate,sumMerge(ms) from order_mv GROUP BY id,createDate;
5、 Reinsert to view synchronized data
insert into tb_order values(1,toDate(now()),100),(2,toDate(now()),100);
insert into tb_order values(1,toDate('2022-06-29'),100),(2,toDate('2022-06-29'),100);
6、 Query order table
select * from tb_order;
notes :
The primary key is not specified when creating the table , Will be used by default order by Use the field of as the primary key
边栏推荐
- Technology sharing swift defense programming
- Google Chrome CSS will not update unless the cache is cleared - Google Chrome CSS doesn't update unless clear cache
- 函数基础学习02
- Machine learning experiment report 1 - linear model, decision tree, neural network part
- Cette ADB MySQL prend - elle en charge SQL Server?
- NEW:Devart dotConnect ADO.NET
- Ask, does this ADB MySQL support sqlserver?
- postman和postman interceptor的安装
- [software reverse analysis tool] disassembly and decompilation tool
- ICSI213/IECE213 Data Structures
猜你喜欢
JWT漏洞复现
Multi person online anonymous chat room / private chat room source code / support the creation of multiple chat rooms at the same time
Operation flow of UE4 DMX and grandma2 onpc 3.1.2.5
Redis source code analysis: redis cluster
Timing manager based on C #
51 independent key basic experiment
【无标题】
A brief introduction to the behavior tree of unity AI
程序员的视力怎么样? | 每日趣闻
NEW:Devart dotConnect ADO.NET
随机推荐
Yyds dry goods inventory embedded matrix
[an Xun cup 2019] not file upload
C file in keil cannot be compiled
有個疑問 flink sql cdc 的話可以設置並行度麼, 並行度大於1會有順序問題吧?
Multimedia query
Google Chrome CSS will not update unless the cache is cleared - Google Chrome CSS doesn't update unless clear cache
Leetcode92. reverse linked list II
[deep learning] deep learning reference materials
Subversive cognition: what does SRE do?
Ask, does this ADB MySQL support sqlserver?
DMX parameter exploration of grandma2 onpc 3.1.2.5
Asemi rectifier bridge 2w10 parameters, 2w10 specifications, 2w10 characteristics
De debugging (set the main thread as hidden debugging to destroy the debugging Channel & debugger detection)
About authentication services (front and back, login, registration and exit, permission management)
Easy processing of ten-year futures and stock market data -- Application of tdengine in Tongxinyuan fund
Difference between MotionEvent. getRawX and MotionEvent. getX
Flex flexible layout
Operation flow of UE4 DMX and grandma2 onpc 3.1.2.5
【web审计-源码泄露】获取源码方法,利用工具
[untitled]