メインコンテンツまでスキップ
バージョン: 26.x

MV_INFOS

説明

非同期マテリアライズドビュー用の一時テーブルを生成するテーブル関数で、特定のデータベースで作成された非同期マテリアライズドビューに関する情報を表示できます。

構文

MV_INFOS("database"="<database>")

パラメータ

パラメータ説明
<database>必須。String型。非同期マテリアライズドビューのメタデータをクエリしたいデータベース名。

戻り値

このテーブル関数は非同期マテリアライズドビューを説明する0行以上の行を返します。この関数自体はNULLを返しません。対応するメタデータが利用できない場合、個々のフィールドは空またはNULLになることがあります。

フィールド説明
IdBIGINTマテリアライズドビューID
NameTEXTマテリアライズドビュー名
JobNameTEXTマテリアライズドビューに対応するリフレッシュジョブの名前。jobs("type"="mv")およびtasks("type"="mv")のクエリに使用できます。
StateTEXTマテリアライズドビューのメタデータ状態。可能な値:INITNORMALSCHEMA_CHANGE
SchemaChangeDetailTEXTStateSCHEMA_CHANGEになる理由。マテリアライズドビューがスキーマ変更状態でない場合は空。
RefreshStateTEXT最新のリフレッシュの状態。可能な値:INITSUCCESSFAIL
RefreshInfoTEXTマテリアライズドビューに定義されたリフレッシュ戦略。ビルドモード、リフレッシュメソッド、トリガーモードを含みます。
QuerySqlTEXTマテリアライズドビューに定義されたSQLクエリ
EnvInfoTEXTマテリアライズドビューが作成されたときの環境情報
MvPropertiesTEXTマテリアライズドビューのプロパティ
MvPartitionInfoTEXTマテリアライズドビューのパーティション情報
SyncWithBaseTablesBOOLEANマテリアライズドビューのデータがベーステーブルと同期されているかどうか。同期されていないパーティションを確認するには、SHOW PARTITIONSを使用してください。

RefreshInfoBUILD <BuildMode> REFRESH <RefreshMethod> ON <RefreshTrigger> [schedule]として表示されます。各部分の意味は以下のenum節で説明されます。

MVのinfoのenumフィールド

以下のenumフィールドは、マテリアライズドビューの定義と健全性をチェックする際によく使用されます:

  • State:マテリアライズドビューのメタデータ状態。
    • INIT:マテリアライズドビューは作成されましたが、まだ通常の使用可能なメタデータ状態に達していません。
    • NORMAL:マテリアライズドビューのメタデータは正常です。これはほとんどの場合に期待される状態です。
    • SCHEMA_CHANGE:ベーステーブルまたは関連オブジェクトのスキーマ変更がこのマテリアライズドビューに影響しました。理由についてはSchemaChangeDetailを確認してください。マテリアライズドビューは通常直接クエリできますが、正常にリフレッシュされるまでは透過的なリライトに利用できない場合があります。
  • RefreshState:最新のリフレッシュの結果状態。
    • INIT:まだリフレッシュ結果が記録されていません。
    • SUCCESS:最新のリフレッシュが正常に完了しました。
    • FAIL:最新のリフレッシュが失敗しました。JobNameを使用してtasks("type"="mv")をクエリし、失敗したタスクのErrorMsgを確認してください。
  • RefreshInfo.BuildMode:Dorisがマテリアライズドビューデータをビルドするタイミング。
    • IMMEDIATE:作成後すぐにマテリアライズドビューをビルドします。
    • DEFERRED:作成時にはビルドしません。マテリアライズドビューが新しいデータを持つ前に、後でリフレッシュが必要です。
  • RefreshInfo.RefreshMethod:Dorisがリフレッシュするデータを選択する方法。
    • COMPLETE:常にマテリアライズドビューを完全にリフレッシュします。
    • AUTO:Dorisがすべてのパーティションをリフレッシュするか、変更されたパーティションのみをリフレッシュするかを決定します。
  • RefreshInfo.RefreshTrigger:リフレッシュタスクをトリガーするもの。
    • MANUAL:リフレッシュは手動でトリガーされます。
    • COMMIT:リフレッシュは関連ベーステーブルのデータ変更によってトリガーされます。
    • SCHEDULE:リフレッシュはスケジュールによってトリガーされます。スケジュールの詳細はRefreshInfoON SCHEDULEの後に表示されます。
  • MvPartitionInfo.partitionType:マテリアライズドビューのパーティション方法。
    • FOLLOW_BASE_TABLE:マテリアライズドビューのパーティションはベーステーブルのパーティションカラムに従います。
    • SELF_MANAGE:マテリアライズドビューは独自のパーティションを管理します。
    • EXPR:マテリアライズドビューのパーティションは式によって定義されます。
  • SyncWithBaseTables:マテリアライズドビューのデータがベーステーブルと同期されているかどうか。
    • 1またはtrue:同期されています。
    • 0またはfalse:完全には同期されていません。パーティション化されたマテリアライズドビューの場合、SHOW PARTITIONS FROM <mv_name>を使用してパーティションレベルの同期を確認してください。

データベースtestのマテリアライズドビューを表示します。

select *
from mv_infos("database"="test")
where Name = "mv1"\G
*************************** 1. row ***************************
Id: 19494
Name: mv1
JobName: inner_mtmv_19494
State: NORMAL
SchemaChangeDetail:
RefreshState: SUCCESS
RefreshInfo: BUILD DEFERRED REFRESH AUTO ON MANUAL
QuerySql: SELECT `internal`.`test`.`user`.`k2`, `internal`.`test`.`user`.`k3` FROM `internal`.`test`.`user`
EnvInfo: EnvInfo{ctlId='0', dbId='16813'}
MvProperties: {partition_sync_limit=100, partition_sync_time_unit=YEAR}
MvPartitionInfo: MTMVPartitionInfo{partitionType=FOLLOW_BASE_TABLE, relatedTable=user, relatedCol='k2', partitionCol='k2'}
SyncWithBaseTables: 1

この結果では:

  • IdName はマテリアライズドビューを識別します。
  • JobName は、このマテリアライズドビューのリフレッシュジョブ名です。ジョブやリフレッシュタスクをクエリするために使用します(例:select * from jobs("type"="mv") where Name = "inner_mtmv_19494";)。
  • StateNORMAL で、マテリアライズドビューのメタデータが正常であることを意味します。INIT はマテリアライズドビューが作成または初期化されたばかりであることを意味します。SCHEMA_CHANGE はベーステーブルのスキーマ変更がこのマテリアライズドビューに影響したことを意味し、この状態では SchemaChangeDetail を確認してください。
  • SchemaChangeDetailStateSCHEMA_CHANGE ではないため空です。
  • RefreshStateSUCCESS で、最新のリフレッシュが成功したことを意味します。INIT は成功したリフレッシュ状態がまだ記録されていないことを意味します。FAIL は最新のリフレッシュが失敗したことを意味し、JobName を使用して tasks("type"="mv") をクエリし、失敗したタスクとその ErrorMsg を見つけてください。
  • RefreshInfoBUILD DEFERRED REFRESH AUTO ON MANUAL です。BUILD DEFERRED はマテリアライズドビューが作成時に即座に構築されなかったことを意味します。REFRESH AUTO はDorisがすべてのパーティションをリフレッシュするか、変更されたパーティションのみをリフレッシュするかを決定することを意味します。ON MANUAL はリフレッシュがスケジュールではなく手動でトリガーされることを意味します。
  • QuerySql はマテリアライズドビューのクエリ定義です。
  • EnvInfo はマテリアライズドビューが作成された時の環境情報を記録します。
  • MvProperties はマテリアライズドビューのプロパティを表示します。この例では、パーティション同期が partition_sync_limit=100partition_sync_time_unit=YEAR によって制限されています。
  • MvPartitionInfo はマテリアライズドビューがどのようにパーティション化されているかを表示します。FOLLOW_BASE_TABLE はマテリアライズドビューがベーステーブルのパーティションカラムに従うことを意味します。SELF_MANAGE はマテリアライズドビューが独自のパーティションを管理することを意味します。EXPR はマテリアライズドビューが式ベースのパーティション定義を使用することを意味します。
  • SyncWithBaseTables1 で、マテリアライズドビューのデータがそのベーステーブルと同期されていることを意味します。0 は完全に同期されていないことを意味します。パーティション化されたマテリアライズドビューの場合、SHOW PARTITIONS FROM <mv_name> を使用してパーティションレベルの同期を確認してください。

このマテリアライズドビューの最新のリフレッシュタスクを表示するには:

select TaskId, JobName, MvName, Status, ErrorMsg, CreateTime, FinishTime
from tasks("type"="mv")
where JobName = "inner_mtmv_19494"
order by CreateTime desc
limit 1;
+-----------------+------------------+--------+---------+----------+---------------------+---------------------+
| TaskId | JobName | MvName | Status | ErrorMsg | CreateTime | FinishTime |
+-----------------+------------------+--------+---------+----------+---------------------+---------------------+
| 437156301250803 | inner_mtmv_19494 | mv1 | SUCCESS | | 2025-01-07 22:13:48 | 2025-01-07 22:17:45 |
+-----------------+------------------+--------+---------+----------+---------------------+---------------------+