SHOW MATERIALIZED VIEWS
SHOW MATERIALIZED VIEWS показывает все или одно конкретное асинхронное материализованное представление.
Начиная с версии 1.5.0, название этой команды изменено с SHOW MATERIALIZED VIEW на SHOW MATERIALIZED VIEWS.
подсказка
Эта операция не требует привилегий.
Синтаксис
SHOW MATERIALIZED VIEWS
[FROM db_name]
[
WHERE NAME { = "mv_name" | LIKE "mv_name_matcher"}
]
примечание
Начиная с версии 1.5.0, команда SHOW MATERIALIZED VIEWS будет отслеживать состояние всех task_runs, если задача обновления состоит из нескольких разделов/task_runs для обновления. Только когд а все task_runs выполнены успешно, last_refresh_state вернет SUCCESS.
Параметры
| Параметр | Обязательный | Описание |
|---|---|---|
| db_name | нет | Имя базы данных, в которой находится материализованное представление. Если этот параметр не указан, по умолчанию используется текущая база данных. |
| mv_name | нет | Имя материализованного представления для отображения. |
| mv_name_matcher | нет | Шаблон, используемый для фильтрации материализованных представлений. |
Возвращаемые значения
| Возвращаемое значение | Описание |
|---|---|
| id | ID материализованного представления. |
| database_name | Имя базы данных, в которой находится материализованное представление. |
| name | Имя материализованного представления. |
| refresh_type | Тип обновления материализованного представления, включая ROLLUP, MANUAL, ASYNC и INCREMENTAL. |
| is_active | Активно ли состояние материализованного представления. Допустимые значения: true и false. |
| partition_type | Тип разделения материализованного представления, включая RANGE и UNPARTITIONED. |
| task_id | ID задачи обновления материализованного представления. |
| task_name | Имя задачи обновления материализованного представления. |
| last_refresh_start_time | Время начала последнего обновления материализованного представления. |
| last_refresh_finished_time | Время окончания последнего обновления материализованного представления. |
| last_refresh_duration | Время, затраченное на последнее обновление. Единица измерения: секунды. |
| last_refresh_state | Статус последнего обновления, включая PENDING, RUNNING, FAILED и SUCCESS. |
| last_refresh_force_refresh | Было ли последнее обновление принудительным (FORCE) обновлением. |
| last_refresh_start_partition | Начальный раздел последнего обновления в материализованном представлении. |
| last_refresh_end_partition | Конечный раздел последнего обновления в материализованном представлении. |
| last_refresh_base_refresh_partitions | Разделы базовой таблицы, которые были обновлены при последнем обновлении. |
| last_refresh_mv_refresh_partitions | Разделы материализованного представления, которые были обновлены при последнем обновлении. |
| last_refresh_error_code | Код ошибки для последнего неудачного обновления материализованного представления (если состояние материализованного представления неактивно). |
| last_refresh_error_message | Причина неудачи последнего обновления (если состояние материализованного представления неактивно). |
| rows | Количество строк данных в материализованном представлении. |
| text | Команда, используемая для создания материализованного представления. |
Примеры
Следующие примеры основаны на этом бизнес-сценарии:
-- Create Table: customer
CREATE TABLE customer ( C_CUSTKEY INTEGER NOT NULL,
C_NAME VARCHAR(25) NOT NULL,
C_ADDRESS VARCHAR(40) NOT NULL,
C_NATIONKEY INTEGER NOT NULL,
C_PHONE CHAR(15) NOT NULL,
C_ACCTBAL double NOT NULL,
C_MKTSEGMENT CHAR(10) NOT NULL,
C_COMMENT VARCHAR(117) NOT NULL,
PAD char(1) NOT NULL)
ENGINE=OLAP
DUPLICATE KEY(`c_custkey`)
COMMENT "OLAP"
DISTRIBUTED BY HASH(`c_custkey`)
PROPERTIES (
"replication_num" = "3",
"storage_format" = "DEFAULT"
);
-- Create MV: customer_mv
CREATE MATERIALIZED VIEW customer_mv
DISTRIBUTED BY HASH(c_custkey)
REFRESH MANUAL
PROPERTIES (
"replication_num" = "3"
)
AS SELECT
c_custkey, c_phone, c_acctbal, count(1) as c_count, sum(c_acctbal) as c_sum
FROM
customer
GROUP BY c_custkey, c_phone, c_acctbal;
-- Refresh the MV
REFRESH MATERIALIZED VIEW customer_mv;
Пример 1: Показать конкретное материализованное представление.
mysql> SHOW MATERIALIZED VIEWS WHERE NAME='customer_mv'\G
*************************** 1. row ***************************
id: 10142
name: customer_mv
database_name: test
refresh_type: MANUAL
is_active: true
last_refresh_start_time: 2023-02-17 10:27:33
last_refresh_finished_time: 2023-02-17 10:27:33
last_refresh_duration: 0
last_refresh_state: SUCCESS
inactive_code: 0
inactive_reason:
text: CREATE MATERIALIZED VIEW `customer_mv`
COMMENT "MATERIALIZED_VIEW"
DISTRIBUTED BY HASH(`c_custkey`)
REFRESH MANUAL
PROPERTIES (
"replication_num" = "3",
"storage_medium" = "HDD"
)
AS SELECT `customer`.`c_custkey`, `customer`.`c_phone`, `customer`.`c_acctbal`, count(1) AS `c_count`, sum(`customer`.`c_acctbal`) AS `c_sum`
FROM `test`.`customer`
GROUP BY `customer`.`c_custkey`, `customer`.`c_phone`, `customer`.`c_acctbal`;
rows: 0
1 row in set (0.11 sec)
Пример 2: Показать материализованные представления по совпадению имени.
mysql> SHOW MATERIALIZED VIEWS WHERE NAME LIKE 'customer_mv'\G
*************************** 1. row ***************************
id: 10142
name: customer_mv
database_name: test
refresh_type: MANUAL
is_active: true
last_refresh_start_time: 2023-02-17 10:27:33
last_refresh_finished_time: 2023-02-17 10:27:33
last_refresh_duration: 0
last_refresh_state: SUCCESS
inactive_code: 0
inactive_reason:
text: CREATE MATERIALIZED VIEW `customer_mv`
COMMENT "MATERIALIZED_VIEW"
DISTRIBUTED BY HASH(`c_custkey`)
REFRESH MANUAL
PROPERTIES (
"replication_num" = "3",
"storage_medium" = "HDD"
)
AS SELECT `customer`.`c_custkey`, `customer`.`c_phone`, `customer`.`c_acctbal`, count(1) AS `c_count`, sum(`customer`.`c_acctbal`) AS `c_sum`
FROM `test`.`customer`
GROUP BY `customer`.`c_custkey`, `customer`.`c_phone`, `customer`.`c_acctbal`;
rows: 0
1 row in set (0.12 sec)