非同期マテリアライズドビューのトラブルシューティング
このトピックでは、非同期マテリアライズドビューを調査し、作業中に遭遇した問題を解決する方法について説明します。
注意
以下に示す機能の一部は、StarRocks v3.1以降でのみサポートされています。
非同期マテリアライズドビューの調査
作業中の非同期マテリアライズドビューの全体像を把握 するために、まずその動作状態、リフレッシュ履歴、リソース消費を確認できます。
非同期マテリアライズドビューの動作状態を確認
非同期マテリアライズドビューの動作状態を確認するには、SHOW MATERIALIZED VIEWSを使用します。返される情報の中で、次のフィールドに注目できます。
is_active
: マテリアライズドビューの状態がアクティブかどうか。アクティブなマテリアライズドビューのみがクエリアクセラレーションと書き換えに使用できます。last_refresh_state
: 最後のリフレッシュの状態。PENDING、RUNNING、FAILED、SUCCESSがあります。last_refresh_error_message
: 最後のリフレッシュが失敗した理由(マテリアライズドビューの状態がアクティブでない場合)。rows
: マテリアライズドビュー内のデータ行数。この値は、実際の行数と異なる場合があります。更新が遅延することがあるためです。
他の返されるフィールドの詳細については、SHOW MATERIALIZED VIEWS - Returnsを参照してください。
例:
MySQL > SHOW MATERIALIZED VIEWS LIKE 'mv_pred_2'\G
***************************[ 1. row ]***************************
id | 112517
database_name | ssb_1g
name | mv_pred_2
refresh_type | ASYNC
is_active | true
inactive_reason | <null>
partition_type | UNPARTITIONED
task_id | 457930
task_name | mv-112517
last_refresh_start_time | 2023-08-04 16:46:50
last_refresh_finished_time | 2023-08-04 16:46:54
last_refresh_duration | 3.996
last_refresh_state | SUCCESS
last_refresh_force_refresh | false
last_refresh_start_partition |
last_refresh_end_partition |
last_refresh_base_refresh_partitions | {}
last_refresh_mv_refresh_partitions |
last_refresh_error_code | 0
last_refresh_error_message |
rows | 0
text | CREATE MATERIALIZED VIEW `mv_pred_2` (`lo_quantity`, `lo_revenue`, `sum`)
DISTRIBUTED BY HASH(`lo_quantity`, `lo_revenue`) BUCKETS 2
REFRESH ASYNC
PROPERTIES (
"replication_num" = "3",
"storage_medium" = "HDD"
)
AS SELECT `lineorder`.`lo_quantity`, `lineorder`.`lo_revenue`, sum(`lineorder`.`lo_tax`) AS `sum`
FROM `ssb_1g`.`lineorder`
WHERE `lineorder`.`lo_linenumber` = 1
GROUP BY 1, 2;
1 row in set
Time: 0.003s