82 lines
2.4 KiB
MySQL
82 lines
2.4 KiB
MySQL
|
刷新配置
|
|||
|
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;
|