82 lines
2.4 KiB
SQL
82 lines
2.4 KiB
SQL
刷新配置
|
||
build_mode 刷新时机
|
||
物化视图创建完成是否立即刷新。
|
||
|
||
IMMEDIATE:立即刷新,默认方式。
|
||
DEFERRED:延迟刷新。
|
||
refresh_method 刷新方式
|
||
COMPLETE:刷新所有分区。
|
||
AUTO:尽量增量刷新,只刷新自上次物化刷新后数据变化的分区,如果不能感知数据变化的分区,只能退化成全量刷新,刷新所有分区。
|
||
refresh_trigger 触发方式
|
||
ON MANUAL 手动触发
|
||
|
||
用户通过 SQL 语句触发物化视图的刷新,策略如下
|
||
|
||
--检测基表的分区数据自上次刷新后是否有变化,刷新数据变化的分区
|
||
REFRESH MATERIALIZED VIEW mvName AUTO;
|
||
--不校验基表的分区数据自上次刷新后是否有变化,直接刷新物化视图的所有分区。
|
||
REFRESH MATERIALIZED VIEW mvName COMPLETE;
|
||
--只刷新指定的分区。
|
||
REFRESH MATERIALIZED VIEW mvName partitions(partitionName1,partitionName2);
|
||
--ON SCHEDULE 定时触发
|
||
-- 定时全量
|
||
CREATE MATERIALIZED VIEW mv_6
|
||
REFRESH COMPLETE ON SCHEDULE EVERY 10 hour
|
||
AS
|
||
SELECT * FROM lineitem;
|
||
-- 定时增量
|
||
CREATE MATERIALIZED VIEW mv_8
|
||
REFRESH AUTO ON COMMIT
|
||
PARTITION by(l_shipdate)
|
||
AS
|
||
SELECT * FROM lineitem;
|
||
--ON COMMIT 自动触发 (Apache Doris 2.1.4 版本起支持此功能)
|
||
CREATE MATERIALIZED VIEW mv_8
|
||
REFRESH AUTO ON COMMIT
|
||
PARTITION by(l_shipdate)
|
||
AS
|
||
SELECT * FROM lineitem;
|
||
-- BUILD IMMEDIATE 创建完立即刷新
|
||
CREATE MATERIALIZED VIEW mv_1_0
|
||
BUILD IMMEDIATE
|
||
REFRESH AUTO
|
||
ON MANUAL
|
||
DISTRIBUTED BY RANDOM BUCKETS 2
|
||
AS
|
||
SELECT
|
||
l_linestatus,
|
||
to_date(o_orderdate) as date_alias,
|
||
o_shippriority
|
||
FROM
|
||
orders
|
||
LEFT JOIN lineitem ON l_orderkey = o_orderkey;
|
||
-- 延迟刷新 BUILD DEFERRED
|
||
CREATE MATERIALIZED VIEW mv_1_1
|
||
BUILD DEFERRED
|
||
REFRESH COMPLETE
|
||
ON SCHEDULE EVERY 1 DAY STARTS '2024-12-01 20:30:00'
|
||
PROPERTIES ('replication_num' = '1')
|
||
AS
|
||
SELECT
|
||
l_linestatus,
|
||
to_date(o_orderdate) as date_alias,
|
||
o_shippriority
|
||
FROM
|
||
orders
|
||
LEFT JOIN lineitem ON l_orderkey = o_orderkey;
|
||
|
||
-------
|
||
CREATE MATERIALIZED VIEW mv_yinzhou
|
||
BUILD IMMEDIATE -- 创建后立即全量刷新
|
||
REFRESH AUTO -- 优先增量刷新(仅刷新变化分区)
|
||
ON SCHEDULE EVERY 1 DAY -- 每日执行一次
|
||
STARTS '2025-06-27 03:15:00' -- 首次刷新时间(次日凌晨3:15)
|
||
DISTRIBUTED BY HASH(l_linestatus) BUCKETS AUTO -- 自动分桶
|
||
AS
|
||
SELECT
|
||
l_linestatus,
|
||
to_date(o_orderdate) as date_alias,
|
||
o_shippriority
|
||
FROM
|
||
orders
|
||
LEFT JOIN lineitem ON l_orderkey = o_orderkey; |