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

タスク

説明

テーブル関数。タスクの一時テーブルを生成し、現在のDorisクラスター内のジョブによって生成されたタスクの情報を表示することができます。

構文

TASKS(
"type"="<type>"
)

パラメータ

パラメータ説明
<type>タスクのタイプ:
insert: insert型タスク。
mv: マテリアライズドビュー型タスク。

戻り値

このテーブル関数は0行以上の行を返します。関数自体はNULLを返しません。対応するタスクメタデータが利用できない場合、個々のフィールドは空、NULL、または\Nになる可能性があります。

  • tasks("type"="insert") insert型のタスク戻り値

    フィールド名説明
    TaskIdタスクid
    JobIdジョブid
    JobNameジョブ名
    Labelラベル
    Statusタスクステータス
    ErrorMsgタスク失敗情報
    CreateTimeタスク作成時間
    FinishTimeタスク完了時間
    TrackingUrl追跡URL
    LoadStatistic読み込み統計
    Userユーザー
  • tasks("type"="mv") MV型のタスク戻り値

    フィールド名説明
    TaskIdリフレッシュタスクの一意のID。各マテリアライズドビューのリフレッシュは新しいタスクレコードを作成します。
    JobIdこのタスクを生成したジョブのID。jobs("type"="mv").Idに対応します。
    JobNameこのタスクを生成したジョブの名前。mv_infos("database"="...").JobNamejobs("type"="mv").Nameに対応します。
    MvIdこのタスクによってリフレッシュされるマテリアライズドビューのID。
    MvNameこのタスクによってリフレッシュされるマテリアライズドビューの名前。
    MvDatabaseIdマテリアライズドビューを含むデータベースのID。
    MvDatabaseNameマテリアライズドビューを含むデータベースの名前。
    Statusタスクステータス。可能な値: PENDINGはタスクが実行待ちであることを意味します; RUNNINGはタスクが実行中であることを意味します; SUCCESSはタスクが正常に完了したことを意味します; FAILEDはタスクが失敗したことを意味します; CANCELEDはタスクがキャンセルされたことを意味します。
    ErrorMsgStatusFAILEDまたはCANCELEDの場合のエラーメッセージ。タスクが成功した場合は空です。
    CreateTimeタスクレコードが作成された時刻。
    StartTimeタスクが実行を開始した時刻。タスクがまだ開始されていない場合は\Nになることがあります。
    FinishTimeタスクが完了した時刻。タスクがまだ保留中または実行中の場合は\Nになることがあります。
    DurationMsFinishTime - StartTimeとして計算される実行時間(ミリ秒)。タスクが完了していない場合は\Nになることがあります。
    TaskContextタスクがどのようにトリガーされ、ユーザーが何をリクエストしたかを説明するJSON文字列。一般的なフィールドにはtriggerModepartitionsisCompleteがあります。triggerModeの値はMANUALCOMMITSYSTEMです。
    RefreshModeこのタスクが決定した実際のリフレッシュ範囲。可能な値: COMPLETEはすべてのマテリアライズドビューパーティションがリフレッシュされたことを意味します; PARTIALは一部のパーティションのみがリフレッシュされたことを意味します; NOT_REFRESHはリフレッシュが必要なパーティションがなかったことを意味します。
    NeedRefreshPartitionsこのタスクでリフレッシュが必要だったマテリアライズドビューパーティションのJSON配列。空の配列はリフレッシュが必要なパーティションがなかったことを意味します。
    CompletedPartitions正常にリフレッシュされたパーティションのJSON配列。NeedRefreshPartitionsと比較して、必要なすべてのパーティションが完了したかどうかを確認します。
    Progresspercentage (completed/total)形式のリフレッシュ進捗、例:100.00% (1/1)。リフレッシュするパーティションがない場合は\Nになることがあります。
    LastQueryIdリフレッシュタスクによって実行されたSQL文のクエリID。タスクの失敗をトラブルシューティングする際にFEまたはBEログを検索するためにこのIDを使用します。リフレッシュSQLが実行されなかった場合は空になることがあります。このフィールドはDoris 3.0.0以降でサポートされています。

MVタスクenum フィールド

以下のenumフィールドはマテリアライズドビューのリフレッシュタスクをチェックする際によく使用されます:

  • Status: タスクのライフサイクル状態。
    • PENDING: タスクは作成されましたが、まだ実行を開始していません。スケジューリングまたはリソースを待機中です。
    • RUNNING: タスクは現在実行中です。
    • SUCCESS: タスクは正常に完了しました。
    • FAILED: タスクが失敗しました。まずErrorMsgをチェックし、空でなければLastQueryIdを使用してログを検索してください。
    • CANCELED: タスクは完了前にキャンセルされました。
  • TaskContext.triggerMode: このタスクが作成された理由。
    • MANUAL: REFRESH MATERIALIZED VIEWなどの手動リフレッシュコマンドによって作成されました。
    • COMMIT: 関連するベーステーブルのデータ変更がリフレッシュをトリガーしたため作成されました。
    • SYSTEM: 内部システムアクションによって作成されました。例えば、即座にビルドするように作成されたマテリアライズドビューの初期ビルドなど。
  • TaskContext.isComplete: リフレッシュリクエストが完全なリフレッシュを要求しているかどうか。
    • true: リクエストはDorisにすべてのマテリアライズドビューパーティションをリフレッシュするよう要求しています。
    • false: リクエストは完全なリフレッシュを強制していません。Dorisはパーティションの鮮度に基づいて実際のリフレッシュ範囲を決定できます。
  • RefreshMode: パーティションをチェックした後にタスクが選択した実際のリフレッシュ範囲。
    • COMPLETE: MVに属するすべてのマテリアライズドビューパーティションがリフレッシュ対象として選択されました。
    • PARTIAL: 一部のマテリアライズドビューパーティションのみがリフレッシュ対象として選択されました。
    • NOT_REFRESH: リフレッシュが必要なパーティションはありませんでした。この場合、NeedRefreshPartitionsは通常空で、Progress\Nになることがあります。
Version

LastQueryIdはDoris 3.0.0以降でサポートされています。Doris 2.1.xでは利用できません。

マテリアライズドビューの最新のリフレッシュタスクを表示します。

select *
from tasks("type"="mv")
where MvDatabaseName = "test" and MvName = "mv1"
order by CreateTime desc
limit 1\G
*************************** 1. row ***************************
TaskId: 437156301250803
JobId: 19508
JobName: inner_mtmv_19494
MvId: 19494
MvName: mv1
MvDatabaseId: 16016
MvDatabaseName: test
Status: SUCCESS
ErrorMsg:
CreateTime: 2025-01-07 22:13:48
StartTime: 2025-01-07 22:13:48
FinishTime: 2025-01-07 22:17:45
DurationMs: 236985
TaskContext: {"triggerMode":"MANUAL","partitions":[],"isComplete":false}
RefreshMode: COMPLETE
NeedRefreshPartitions: ["p_20210101_MAXVALUE","p_20200101_20210101"]
CompletedPartitions: ["p_20210101_MAXVALUE","p_20200101_20210101"]
Progress: 100.00% (2/2)
LastQueryId: 7965b4ddce8a4480-8884e9701679c1c4

この結果において:

  • TaskIdはこのリフレッシュ実行を識別します。リフレッシュごとに異なります。
  • JobIdJobNameはMVリフレッシュジョブを識別します。ジョブはselect * from jobs("type"="mv") where Name = "inner_mtmv_19494";でクエリできます。
  • MvIdMvNameMvDatabaseId、およびMvDatabaseNameは、タスクによってリフレッシュされるマテリアライズドビューを識別します。
  • StatusSUCCESSなので、タスクは正常に完了しました。FAILEDの場合は、まずErrorMsgを確認してください。
  • CreateTimeStartTimeFinishTime、およびDurationMsは、タスクが作成された時刻、開始時刻、完了時刻、および実行時間を示します。
  • TaskContextは、このタスクが手動でトリガーされたことを示します。partitions: []は、ユーザーがリフレッシュコマンドでパーティションリストを指定しなかったことを意味します。
  • RefreshModeCOMPLETEなので、このタスクはマテリアライズドビューがリフレッシュする必要があるすべてのパーティションをリフレッシュしました。
  • NeedRefreshPartitionsはリフレッシュが必要な2つのパーティションをリストし、CompletedPartitionsは同じ2つのパーティションをリストするため、必要なすべてのパーティションが完了しました。
  • Progress100.00% (2/2)で、これも必要な2つのパーティションのうち2つが完了したことを意味します。
  • LastQueryIdはリフレッシュSQLのクエリIDです。タスクが失敗した場合や実行が遅い場合に、Dorisログを検索するために使用します。
Note

保存および表示されるタスクレコード数は、FE設定項目max_persistence_task_countによって制御されます。デフォルト値は100です。タスクレコード数がこの制限を超えると、古いタスクレコードは破棄されます。値が1未満の場合、タスクレコードは永続化されません。この設定を変更した後はFEを再起動してください。

すべてのinsertタスクのタスクを表示

select * from tasks("type"="insert");
+----------------+----------------+----------------+-------------------------------+---------+----------+---------------------+---------------------+---------------------+-------------+---------------+------+
| TaskId | JobId | JobName | Label | Status | ErrorMsg | CreateTime | StartTime | FinishTime | TrackingUrl | LoadStatistic | User |
+----------------+----------------+----------------+-------------------------------+---------+----------+---------------------+---------------------+---------------------+-------------+---------------+------+
| 79133848479750 | 78533940810334 | insert_tab_job | 78533940810334_79133848479750 | SUCCESS | | 2025-01-17 14:42:54 | 2025-01-17 14:42:54 | 2025-01-17 14:42:54 | | | root |
+----------------+----------------+----------------+-------------------------------+---------+----------+---------------------+---------------------+---------------------+-------------+---------------+------+