- StarRocks
- 产品简介
- 快速开始
- 表设计
- 导入数据
- 导出数据
- 查询数据源
- 查询加速
- 管理手册
- 部署集群
- 运维集群
- 数据恢复
- 管理用户权限及认证
- 性能调优
- 参考手册
- SQL参考
- 用户账户管理
- 集群管理
- ADD SQLBLACKLIST
- ADMIN CANCEL REPAIR TABLE
- ADMIN CHECK TABLET
- ADMIN REPAIR TABLE
- ADMIN SET CONFIG
- ADMIN SET REPLICA STATUS
- ADMIN SHOW CONFIG
- ADMIN SHOW REPLICA DISTRIBUTION
- ADMIN SHOW REPLICA STATUS
- ALTER RESOURCE GROUP
- ALTER SYSTEM
- CANCEL DECOMMISSION
- CREATE RESOURCE GROUP
- CREATE FILE
- DELETE SQLBLACKLIST
- DROP FILE
- DROP RESOURCE GROUP
- EXPLAIN
- INSTALL PLUGIN
- KILL
- SET
- SHOW BACKENDS
- SHOW BROKER
- SHOW COMPUTE NODES
- SHOW FILE
- SHOW FRONTENDS
- SHOW FULL COLUMNS
- SHOW INDEX
- SHOW PLUGINS
- SHOW PROC
- SHOW PROCESSLIST
- SHOW RESOURCE GROUP
- SHOW SQLBLACKLIST
- SHOW TABLE STATUS
- SHOW VARIABLES
- UNINSTALL PLUGIN
- DDL
- ALTER DATABASE
- ALTER MATERIALIZED VIEW
- ALTER TABLE
- ALTER VIEW
- ALTER RESOURCE
- ANALYZE TABLE
- BACKUP
- CANCEL ALTER TABLE
- CANCEL BACKUP
- CANCEL RESTORE
- CREATE ANALYZE
- CREATE DATABASE
- CREATE EXTERNAL CATALOG
- CREATE INDEX
- CREATE MATERIALIZED VIEW
- CREATE REPOSITORY
- CREATE RESOURCE
- CREATE TABLE AS SELECT
- CREATE TABLE LIKE
- CREATE TABLE
- CREATE VIEW
- CREATE FUNCTION
- DROP ANALYZE
- DROP STATS
- DROP CATALOG
- DROP DATABASE
- DROP INDEX
- DROP MATERIALIZED VIEW
- DROP REPOSITORY
- DROP RESOURCE
- DROP TABLE
- DROP VIEW
- DROP FUNCTION
- HLL
- KILL ANALYZE
- RECOVER
- REFRESH EXTERNAL TABLE
- RESTORE
- SHOW ANALYZE JOB
- SHOW ANALYZE STATUS
- SHOW META
- SHOW RESOURCES
- SHOW FUNCTION
- TRUNCATE TABLE
- USE
- DML
- ALTER LOAD
- ALTER ROUTINE LOAD
- BROKER LOAD
- CANCEL LOAD
- CANCEL REFRESH MATERIALIZED VIEW
- CANCEL EXPORT
- CREATE ROUTINE LOAD
- DELETE
- EXPORT
- GROUP BY
- INSERT
- PAUSE ROUTINE LOAD
- REFRESH MATERIALIZED VIEW
- RESUME ROUTINE LOAD
- SELECT
- SHOW ALTER TABLE
- SHOW ALTER MATERIALIZED VIEW
- SHOW BACKUP
- SHOW CATALOGS
- SHOW CREATE MATERIALIZED VIEW
- SHOW CREATE TABLE
- SHOW CREATE VIEW
- SHOW DATA
- SHOW DATABASES
- SHOW DELETE
- SHOW DYNAMIC PARTITION TABLES
- SHOW EXPORT
- SHOW LOAD
- SHOW MATERIALIZED VIEW
- SHOW PARTITIONS
- SHOW PROPERTY
- SHOW REPOSITORIES
- SHOW RESTORE
- SHOW ROUTINE LOAD
- SHOW ROUTINE LOAD TASK
- SHOW SNAPSHOT
- SHOW TABLES
- SHOW TABLET
- SHOW TRANSACTION
- SPARK LOAD
- STOP ROUTINE LOAD
- STREAM LOAD
- 辅助命令
- 数据类型
- 关键字
- 函数参考
- Java UDF
- 窗口函数
- Lambda 表达式
- 日期函数
- add_months
- adddate
- convert_tz
- current_date
- current_time
- current_timestamp
- date
- date_add
- date_format
- date_slice
- date_sub, subdate
- date_trunc
- datediff
- day
- dayname
- dayofmonth
- dayofweek
- dayofyear
- days_add
- days_diff
- days_sub
- from_days
- from_unixtime
- hour
- hours_add
- hours_diff
- hours_sub
- microseconds_add
- microseconds_sub
- minute
- minutes_add
- minutes_diff
- minutes_sub
- month
- monthname
- months_add
- months_diff
- months_sub
- now
- quarter
- second
- seconds_add
- seconds_diff
- seconds_sub
- str_to_date
- str2date
- time_slice
- time_to_sec
- timediff
- timestamp
- timestampadd
- timestampdiff
- to_days
- to_date
- unix_timestamp
- utc_timestamp
- week
- weekofyear
- weeks_add
- weeks_diff
- weeks_sub
- year
- years_add
- years_diff
- years_sub
- 加密函数
- 地理位置函数
- 字符串函数
- JSON 函数
- Map 函数
- 模糊/正则匹配函数
- 工具函数
- 聚合函数
- Bitmap 函数
- bitmap_and
- bitmap_andnot
- bitmap_contains
- bitmap_count
- bitmap_empty
- bitmap_from_string
- bitmap_hash
- bitmap_has_any
- bitmap_intersect
- bitmap_max
- bitmap_min
- bitmap_or
- bitmap_remove
- bitmap_to_array
- bitmap_to_base64
- base64_to_bitmap
- bitmap_to_string
- bitmap_union
- bitmap_union_count
- bitmap_union_int
- bitmap_xor
- intersect_count
- sub_bitmap
- to_bitmap
- Array 函数
- array_agg
- array_append
- array_avg
- array_concat
- array_contains
- array_contains_all
- array_cum_sum
- array_difference
- array_distinct
- array_filter
- array_intersect
- array_join
- array_length
- array_map
- array_max
- array_min
- arrays_overlap
- array_position
- array_remove
- array_slice
- array_sort
- array_sortby
- array_sum
- array_to_bitmap
- reverse
- unnest
- Bit 函数
- cast函数
- hash函数
- 条件函数
- 百分位函数
- 标量函数
- 数学函数
- 系统变量
- 用户自定义变量
- 错误码
- 系统限制
- SQL参考
- 常见问题解答
- 性能测试
- 开发指南
- 外部系统集成
异步物化视图
本文介绍如何理解、创建、使用和管理 StarRocks 中的异步物化视图。StarRocks 自 2.4 版本起支持异步物化视图。
相较于同步物化视图,异步物化视图支持多表关联以及更加丰富的聚合算子。异步物化视图可以通过手动调用或定时任务的方式刷新,并且支持刷新部分分区,可以大幅降低刷新成本。除此之外,异步物化视图支持多种查询改写场景,实现自动、透明查询加速。
有关同步物化视图(Rollup)的场景和使用,参见同步物化视图(Rollup)。
背景介绍
数据仓库环境中的应用程序经常基于多个大表执行复杂查询,通常涉及多表之间数十亿行数据的关联和聚合。处理此类查询通常会大量消耗系统资源和时间,造成极高的查询成本。
您可以通过 StarRocks 中的异步物化视图解决以上问题。异步物化视图是一种特殊的物理表,其中存储了基于基表特定查询语句的预计算结果。当您对基表执行复杂查询时,StarRocks 可以直接复用预计算结果,避免重复计算,进而提高查询性能。查询的频率越高或查询语句越复杂,性能增益就会越很明显。
您还可以通过异步物化视图对数据仓库进行建模,从而向上层应用提供统一的数据口径,屏蔽底层实现,保护基表明细数据安全。
理解 StarRocks 物化视图
StarRocks 2.4 之前的版本提供了一种同步更新的同步物化视图(Rollup),可以提供更好的数据新鲜度和更低的刷新成本。但是同步物化视图在场景上有诸多限制,只可基于单一基表创建,且仅支持有限的聚合算子。2.4 版本之后支持异步物化视图,可以基于多个基表创建,且支持更丰富的聚合算子。
下表从支持的特性角度比较了 StarRocks 2.5、2.4 中的异步物化视图以及同步物化视图(Rollup):
单表聚合 | 多表关联 | 查询改写 | 刷新策略 | 基表 | |
---|---|---|---|---|---|
StarRocks 2.5 异步物化视图 | 是 | 是 | 是 |
| 支持多表构建。基表可以来自:
|
StarRocks 2.4 异步物化视图 | 是 | 是 | 否 |
| 支持基于 Default Catalog 的多表构建 |
同步物化视图(Rollup) | 仅部分聚合算子 | 否 | 是 | 导入同步刷新 | 仅支持基于 Default Catalog 的单表构建 |
相关概念
基表(Base Table)
物化视图的驱动表。
对于 StarRocks 的异步物化视图,基表可以是 Default catalog 中的内部表、外部数据目录中的表(自 2.5 版本起支持),甚至是已有的异步物化视图(自 2.5 版本起支持)。StarRocks 支持在所有 StarRocks 表类型 上创建异步物化视图。
刷新(Refresh)
创建异步物化视图后,其中的数据仅反映创建时刻基表的状态。当基表中的数据发生变化时,需要通过刷新异步物化视图更新数据变化。
目前 StarRocks 支持两种异步刷新策略:ASYNC(任务定时触发刷新)和 MANUAL(用户手动触发刷新)。
查询改写(Query Rewrite)
查询改写是指在对已构建了物化视图的基表进行查询时,系统自动判断是否可以复用物化视图中的预计算结果处理查询。如果可以复用,系统会直接从相关的物化视图读取预计算结果,以避免重复计算消耗系统资源和时间。
自 2.5 版本起,StarRocks 支持基于在 Default Catalog 或 External Catalog(如 Hive catalog、Hudi catalog 或 Iceberg catalog)上创建的 SPJG 类型异步物化视图的自动、透明查询改写。
使用场景
如果您的数据仓库环境中有以下需求,我们建议您创建异步物化视图:
加速重复聚合查询
假设您的数仓环境中存在大量包含相同聚合函数子查询的查询,占用了大量计算资源,您可以根据该子查询建立异步物化视图,计算并保存该子查询的所有结果。建立成功后,系统将自动改写查询语句,直接查询异步物化视图中的中间结果,从而降低负载,加速查询。
周期性多表关联查询
假设您需要定期将数据仓库中多张表关联,生成一张新的宽表,您可以为这些表建立异步物化视图,并设定定期刷新规则,从而避免手动调度关联任务。异步物化视图建立成功后,查询将直接基于异步物化视图返回结果,从而避免关联操作带来的延迟。
数仓分层
假设您的基表中包含大量原始数据,查询需要进行复杂的 ETL 操作,您可以通过对数据建立多层异步物化视图实现数仓分层。如此可以将复杂查询分解为多层简单查询,既可以减少重复计算,又能够帮助维护人员快速定位问题。除此之外,数仓分层还可以将原始数据与统计数据解耦,从而保护敏感性原始数据。
创建异步物化视图
StarRocks 支持在内、外部数据目录中的一个或多个基表上创建异步物化视图。基表支持所有 StarRocks 表类型。您还可以在已有异步物化视图上创建新的异步物化视图。
准备工作
开启异步物化视图
使用异步物化视图前,您需要使用以下命令设置 FE 配置项 enable_experimental_mv
为 true
:
ADMIN SET FRONTEND CONFIG ("enable_experimental_mv"="true");
创建基表
以下示例基于两张基表:
- 表
goods
包含产品 IDitem_id1
、产品名称item_name
和产品价格price
。 - 表
order_list
包含订单 IDorder_id
、客户 IDclient_id
和产品 IDitem_id2
。
其中 item_id1
与 item_id2
等价。
建表并导入如下数据:
CREATE TABLE goods(
item_id1 INT,
item_name STRING,
price FLOAT
) DISTRIBUTED BY HASH(item_id1);
INSERT INTO goods
VALUES
(1001,"apple",6.5),
(1002,"pear",8.0),
(1003,"potato",2.2);
CREATE TABLE order_list(
order_id INT,
client_id INT,
item_id2 INT,
order_date DATE
) DISTRIBUTED BY HASH(order_id);
INSERT INTO order_list
VALUES
(10001,101,1001,"2022-03-13"),
(10001,101,1002,"2022-03-13"),
(10002,103,1002,"2022-03-13"),
(10002,103,1003,"2022-03-14"),
(10003,102,1003,"2022-03-14"),
(10003,102,1001,"2022-03-14");
该示例业务场景需要频繁分析订单总额,则查询需要将两张表关联并调用 sum() 函数,根据订单 ID 和总额生成一张新表。除此之外,该业务场景需要每天定时刷新订单总额表。
其查询语句如下:
SELECT
order_id,
sum(goods.price) as total
FROM order_list INNER JOIN goods ON goods.item_id1 = order_list.item_id2
GROUP BY order_id;
基于查询语句创建异步物化视图
您可以通过 CREATE MATERIALIZED VIEW 语句为特定查询语句创建物化视图。
以下示例根据上述查询语句,基于表 goods
和表 order_list
创建一个“以订单 ID 为分组,对订单中所有商品价格求和”的异步物化视图,并设定其刷新方式为异步,以相隔一天的频率自动刷新。
CREATE MATERIALIZED VIEW order_mv
DISTRIBUTED BY HASH(`order_id`) BUCKETS 12
REFRESH ASYNC START('2022-09-01 10:00:00') EVERY (interval 1 day)
AS SELECT
order_list.order_id,
sum(goods.price) as total
FROM order_list INNER JOIN goods ON goods.item_id1 = order_list.item_id2
GROUP BY order_id;
说明
- 创建异步物化视图时必须指定分桶策略。
- 您可以为异步物化视图设置与其基表不同的分区和分桶策略。
- 异步物化视图支持分区上卷。例如,基表基于天做分区方式,您可以设置异步物化视图按月做分区。
- 异步物化视图的分区列和分桶列必须在查询语句中。
- 创建物化视图的查询语句不支持非确定性函数,其中包括 rand()、random()、uuid() 和 sleep()。
异步物化视图刷新机制
目前,StarRocks 支持两种 ON DEMAND 刷新策略,即异步定时刷新和手动刷新。
StarRocks 2.5 版本中,异步物化视图新增支持多种刷新机制:
- 新增刷新最大分区数。当一张异步物化视图拥有较多分区时,单次刷新将耗费较多资源。您可以通过设置该刷新机制来指定单次刷新的最大分区数量,从而将刷新任务进行拆分,保证数据量多的物化视图能够分批、稳定的完成刷新。
- 您可以为异步物化视图的分区指定 time to live(TTL),从而减少异步物化视图占用的存储空间。
- 您可以指定刷新范围,只刷新最新的几个分区,减少刷新开销。
详细信息,请参阅 CREATE MATERIALIZED VIEW - 参数 中的 PROPERTIES 部分。您还可以使用 ALTER MATERIALIZED VIEW 修改现有异步物化视图的刷新机制。
嵌套物化视图
StarRocks 2.5 版本支持嵌套异步物化视图,即基于异步物化视图构建新的异步物化视图。每个异步物化视图的刷新方式仅影响当前物化视图。当前 StarRocks 不对嵌套层数进行限制。生产环境中建议嵌套层数不超过三层。
外部数据目录物化视图
StarRocks 2.5 版本支持基于 Hive catalog、Hudi catalog 以及 Iceberg catalog 构建异步物化视图。外部数据目录物化视图的创建方式与普通异步物化视图相同,但有以下使用限制:
- 物化视图中的数据不保证与外部数据目录的数据强一致。
- 目前暂不支持基于资源(Resource)构建物化视图。
- StarRocks 目前无法感知外部数据目录基表数据是否发生变动,所以每次刷新会默认刷新所有分区。您可以通过 REFRESH MATERIALIZED VIEW 命令手动刷新指定分区。
手动刷新异步物化视图
您可以通过 REFRESH MATERIALIZED VIEW 命令手动刷新特定异步物化视图。StarRocks 2.5 版本中,异步物化视图支持手动刷新部分分区。
REFRESH MATERIALIZED VIEW order_mv;
您可以通过 CANCEL REFRESH MATERIALIZED VIEW 取消异步或手动刷新异步物化视图的刷新任务。
查询异步物化视图
异步物化视图本质上是一个物理表,其中存储了根据特定查询语句预先计算的完整结果集。第一次刷新物化视图后,您即可直接查询物化视图。
MySQL > SELECT * FROM order_mv;
+----------+--------------------+
| order_id | total |
+----------+--------------------+
| 10001 | 14.5 |
| 10002 | 10.200000047683716 |
| 10003 | 8.700000047683716 |
+----------+--------------------+
3 rows in set (0.01 sec)
说明
您可以直接查询异步物化视图,但由于异步刷新机制,其结果可能与您从基表上查询的结果不一致。
使用异步物化视图改写查询
StarRocks 2.5 版本支持 SPJG 类型的异步物化视图查询的自动透明改写。SPJG 类型的物化视图是指在物化视图 Plan 中只包含 Scan、Filter、Project 以及 Aggregate 类型的算子。其查询改写包括单表改写,Join 改写,聚合改写,Union 改写和嵌套物化视图的改写。
目前,StarRocks 支持基于 Default catalog、Hive catalog、Hudi catalog 和 Iceberg catalog 的异步物化视图的查询改写。当查询 Default catalog 数据时,StarRocks 通过排除数据与基表不一致的物化视图,来保证改写之后的查询与原始查询结果的强一致性。当物化视图数据过期时,不会作为候选物化视图。在查询外部目录数据时,由于 StarRocks 无法感知外部目录分区中的数据变化,因此不保证结果的强一致性。
启用异步物化视图查询改写
- 启用基于 Default catalog 的异步物化视图查询改写
StarRocks 默认开启异步物化视图查询改写。您可以通过 Session 变量 enable_materialized_view_rewrite
开启或关闭该功能。
SET GLOBAL enable_materialized_view_rewrite = { true | false };
- [实验功能] 启用基于 External Catalog 的异步物化视图查询改写
因为不保证结果的强一致性,所以 StarRocks 默认禁用基于外部数据目录的异步物化视图查询改写。您可以通过在创建物化视图时添加 PROPERTY "force_external_table_query_rewrite" = "true"
启用该功能。
示例:
CREATE MATERIALIZED VIEW ex_mv_par_tbl
PARTITION BY emp_date
DISTRIBUTED BY hash(empid)
PROPERTIES (
"force_external_table_query_rewrite" = "true"
)
AS
select empid, deptno, emp_date
from `hive_catalog`.`emp_db`.`emps_par_tbl`
where empid < 5;
设置物化视图查询改写
您可以通过以下 Session 变量设置异步物化视图查询改写。
变量 | 默认值 | 描述 |
---|---|---|
enable_materialized_view_union_rewrite | true | 是否开启物化视图 Union 改写。 |
enable_rule_based_materialized_view_rewrite | true | 是否开启基于规则的物化视图查询改写功能,主要用于处理单表查询改写。 |
nested_mv_rewrite_max_level | 3 | 可用于查询改写的嵌套物化视图的最大层数。类型:INT。取值范围:[1, +∞)。取值为 1 表示只可使用基于基表创建的物化视图用于查询改写。 |
验证查询改写是否生效
您可以使用 EXPLAIN 语句查看对应 Query Plan。如果其中 OlapScanNode
项目下的 TABLE
为对应异步物化视图名称,则表示该查询已基于异步物化视图改写。
mysql> EXPLAIN SELECT
order_id, sum(goods.price) AS total
FROM order_list INNER JOIN goods
ON goods.item_id1 = order_list.item_id2
GROUP BY order_id;
+------------------------------------+
| Explain String |
+------------------------------------+
| PLAN FRAGMENT 0 |
| OUTPUT EXPRS:1: order_id | 8: sum |
| PARTITION: RANDOM |
| |
| RESULT SINK |
| |
| 1:Project |
| | <slot 1> : 9: order_id |
| | <slot 8> : 10: total |
| | |
| 0:OlapScanNode |
| TABLE: order_mv |
| PREAGGREGATION: ON |
| partitions=1/1 |
| rollup: order_mv |
| tabletRatio=0/12 |
| tabletList= |
| cardinality=3 |
| avgRowSize=4.0 |
| numNodes=0 |
+------------------------------------+
20 rows in set (0.01 sec)
管理异步物化视图
修改异步物化视图
您可以通过 ALTER MATERIALIZED VIEW 命令修改异步物化视图属性。
修改异步物化视图名称为
order_total
。ALTER MATERIALIZED VIEW order_mv RENAME order_total;
修改异步物化视图刷新方式为每隔两日刷新。
ALTER MATERIALIZED VIEW order_mv REFRESH ASYNC EVERY(INTERVAL 2 DAY);
查看异步物化视图
您可以使用 SHOW MATERIALIZED VIEW 或查询 Information Schema 中的系统元数据表来查看数据库中的异步物化视图。
查看当前数据仓库内所有异步物化视图。
SHOW MATERIALIZED VIEW;
查看特定异步物化视图。
SHOW MATERIALIZED VIEW WHERE NAME = "order_mv";
通过名称匹配查看异步物化视图。
SHOW MATERIALIZED VIEW WHERE NAME LIKE "order%";
通过 Information Schema 中的系统元数据表查看所有异步物化视图。
SELECT * FROM information_schema.materialized_views;
查看异步物化视图创建语句
您可以通过 SHOW CREATE MATERIALIZED VIEW 命令查看异步物化视图创建语句。
SHOW CREATE MATERIALIZED VIEW order_mv;
查看异步物化视图的执行状态
您可以通过查询 StarRocks 的 Information Schema 中的 tasks
和 task_runs
元数据表来查看异步物化视图的执行(构建或刷新)状态。
以下示例查看最新创建的异步物化视图的执行状态:
查看
tasks
表中最新任务的TASK_NAME
。mysql> select * from information_schema.tasks order by CREATE_TIME desc limit 1\G; *************************** 1. row *************************** TASK_NAME: mv-59299 CREATE_TIME: 2022-12-12 17:33:51 SCHEDULE: MANUAL DATABASE: ssb_1 DEFINITION: insert overwrite hive_mv_lineorder_flat_1 SELECT `hive_ci`.`dla_scan`.`lineorder_flat_1000_1000_orc`.`lo_orderkey`, `hive_ci`.`dla_scan`.`lineorder_flat_1000_1000_orc`.`lo_linenumber`, `hive_ci`.`dla_scan`.`lineorder_flat_1000_1000_orc`.`lo_custkey`, `hive_ci`.`dla_scan`.`lineorder_flat_1000_1000_orc`.`lo_partkey`, `hive_ci`.`dla_scan`.`lineorder_flat_1000_1000_orc`.`lo_orderpriority`, `hive_ci`.`dla_scan`.`lineorder_flat_1000_1000_orc`.`lo_ordtotalprice`, `hive_ci`.`dla_scan`.`lineorder_flat_1000_1000_orc`.`lo_revenue`, `hive_ci`.`dla_scan`.`lineorder_flat_1000_1000_orc`.`p_mfgr`, `hive_ci`.`dla_scan`.`lineorder_flat_1000_1000_orc`.`s_nation`, `hive_ci`.`dla_scan`.`lineorder_flat_1000_1000_orc`.`c_city`, `hive_ci`.`dla_scan`.`lineorder_flat_1000_1000_orc`.`c_nation`, `hive_ci`.`dla_scan`.`lineorder_flat_1000_1000_orc`.`lo_orderdate` FROM `hive_ci`.`dla_scan`.`lineorder_flat_1000_1000_orc` WHERE `hive_ci`.`dla_scan`.`lineorder_flat_1000_1000_orc`.`lo_orderdate` = '1997-01-01' EXPIRE_TIME: NULL 1 row in set (0.02 sec)
基于查询到的
TASK_NAME
在表task_runs
中查看执行状态。mysql> select * from information_schema.task_runs where task_name='mv-59299' order by CREATE_TIME \G; *************************** 1. row *************************** QUERY_ID: d9cef11f-7a00-11ed-bd90-00163e14767f TASK_NAME: mv-59299 CREATE_TIME: 2022-12-12 17:39:19 FINISH_TIME: 2022-12-12 17:39:22 STATE: SUCCESS DATABASE: ssb_1 DEFINITION: insert overwrite hive_mv_lineorder_flat_1 SELECT `hive_ci`.`dla_scan`.`lineorder_flat_1000_1000_orc`.`lo_orderkey`, `hive_ci`.`dla_scan`.`lineorder_flat_1000_1000_orc`.`lo_linenumber`, `hive_ci`.`dla_scan`.`lineorder_flat_1000_1000_orc`.`lo_custkey`, `hive_ci`.`dla_scan`.`lineorder_flat_1000_1000_orc`.`lo_partkey`, `hive_ci`.`dla_scan`.`lineorder_flat_1000_1000_orc`.`lo_orderpriority`, `hive_ci`.`dla_scan`.`lineorder_flat_1000_1000_orc`.`lo_ordtotalprice`, `hive_ci`.`dla_scan`.`lineorder_flat_1000_1000_orc`.`lo_revenue`, `hive_ci`.`dla_scan`.`lineorder_flat_1000_1000_orc`.`p_mfgr`, `hive_ci`.`dla_scan`.`lineorder_flat_1000_1000_orc`.`s_nation`, `hive_ci`.`dla_scan`.`lineorder_flat_1000_1000_orc`.`c_city`, `hive_ci`.`dla_scan`.`lineorder_flat_1000_1000_orc`.`c_nation`, `hive_ci`.`dla_scan`.`lineorder_flat_1000_1000_orc`.`lo_orderdate` FROM `hive_ci`.`dla_scan`.`lineorder_flat_1000_1000_orc` WHERE `hive_ci`.`dla_scan`.`lineorder_flat_1000_1000_orc`.`lo_orderdate` = '1997-01-01' EXPIRE_TIME: 2022-12-15 17:39:19 ERROR_CODE: 0 ERROR_MESSAGE: NULL PROGRESS: 100% 2 rows in set (0.02 sec)
删除异步物化视图
您可以通过 DROP MATERIALIZED VIEW 命令删除已创建的异步物化视图。
DROP MATERIALIZED VIEW order_mv;