SHOW PROC
説明
Procシステムは、Dorisのユニークな機能です。Linuxを使用したことがある学生は、この概念をよりよく理解できるでしょう。Linuxシステムでは、procは仮想ファイルシステムで、通常/procディレクトリにマウントされます。ユーザーは、このファイルシステムを通じてシステムの内部データ構造を表示できます。たとえば、/proc/pidを通じて指定されたpidプロセスの詳細を表示できます。
Linuxのprocシステムと同様に、Dorisのprocシステムも、ユーザーが指定した「ディレクトリパス(proc path)」に応じて異なるシステム情報を表示するために、ディレクトリのような構造に整理されています。
procシステムは主にシステム管理者向けに設計されており、システム内部の実行状態を簡単に表示できるようになっています。テーブルのtabletステータス、クラスターバランスステータス、さまざまなジョブのステータスなどです。これは非常に有用な機能です。
Dorisでprocシステムを表示する方法は2つあります。
- Dorisが提供するWEB UIインターフェースを通じて表示する。アドレス:
http://FE_IP:FE_HTTP_PORTにアクセスします - もう1つの方法はコマンドによるものです
Doris PROCがサポートするすべてのコマンドは、SHOW PROC "/";を通じて確認できます。
MySQLクライアントを通じてDorisに接続した後、SHOW PROC文を実行して、指定されたprocディレクトリの情報を表示できます。procディレクトリは、「/」で始まる絶対パスです。
show proc文の結果は、二次元テーブルで表示されます。通常、結果テーブルの最初の列は、procの次のサブディレクトリです。
mysql> show proc "/";
+---------------------------+
| name |
+---------------------------+
| auth |
| backends |
| bdbje |
| brokers |
| catalogs |
| cluster_balance |
| cluster_health |
| colocation_group |
| current_backend_instances |
| current_queries |
| current_query_stmts |
| dbs |
| diagnose |
| frontends |
| jobs |
| load_error_hub |
| monitor |
| resources |
| routine_loads |
| statistic |
| stream_loads |
| tasks |
| transactions |
| trash |
+---------------------------+
23 rows in set (0.00 sec)
説明:
- auth: ユーザー名と対応する権限情報
- backends: クラスタ内のBEのノードリストを表示、SHOW BACKENDSと同等
- bdbje: bdbjeデータベースリストを表示するには、
fe.confファイルを変更してenable_bdbje_debug_mode=trueを追加し、sh start_fe.sh --daemonでFEを起動してdebugモードに入る必要があります。debugモードに入ると、http serverとMySQLServerのみが起動し、BDBJEインスタンスが開かれますが、メタデータの読み込みや後続の起動プロセスには入りません。 - binlog: binlog関連情報を表示、binlogレコード数、binlogサイズ(バイト)、binlog時間範囲などの情報を含みます。
- brokers : クラスタbrokerノード情報を表示、SHOW BROKERと同等
- catalogs : 現在作成されているデータcatalogを表示、SHOW CATALOGSと同等
- cluster_balance : クラスタのバランスを確認するには、Data Copy Managementを参照してください
- cluster_health:
SHOW PROC '/cluster_health/tablet_health';文を実行してクラスタ全体のレプリカステータスを表示します。 - colocation_group : このコマンドでクラスタ内の既存のGroup情報を表示できます。詳細はColocation Joinの章を参照してください
- current_backend_instances : 現在ジョブを実行しているbeノードのリストを表示
- current_queries : 実行中のクエリのリスト、現在実行中のSQL文を表示します。
- current_query_stmts: 現在実行中のクエリを返します。
- dbs: 主にDorisクラスタ内の各データベースとテーブルのメタデータ情報を表示するために使用されます。この情報には、テーブル構造、パーティション、マテリアライズドビュー、データシャードとレプリカなどが含まれます。このディレクトリとそのサブディレクトリを通じて、クラスタ内のテーブルメタデータを明確に表示し、データスキュー、レプリカ障害などの問題を特定できます。
- diagnose: クラスタ内の一般的な管理制御問題を報告・診断します。レプリカバランスと移行、トランザクション例外などが含まれます。
- frontends: クラスタ内のすべてのFEノード情報を表示します。IPアドレス、役割、ステータス、マスターかどうかなどが含まれ、SHOW FRONTENDSと同等です
- jobs: すべての種類のジョブの統計を表示します。特定の
dbIdが指定された場合、そのデータベースの統計データを返します。dbIdが-1の場合、すべてのデータベースの総統計データを返します - load_error_hub: Dorisはloadジョブで生成されたエラー情報をエラーハブに集中保存することをサポートしています。その後、
SHOW LOAD WARNINGS;文を通じて直接エラーメッセージを表示できます。ここに表示されるのはエラーハブの設定情報です。 - monitor : FE JVMのリソース使用状況を表示
- resources : システムリソースを表示します。一般アカウントはUSAGE_PRIV権限を持つリソースのみ表示できます。rootとadminアカウントのみがすべてのリソースを表示できます。SHOW RESOURCESと同等
- routine_loads: すべてのroutine loadジョブ情報を表示します。ジョブ名、ステータスなどが含まれます。
- statistics: 主にDorisクラスタ内のデータベース、テーブル、パーティション、シャード、レプリカの数を要約・表示するために使用されます。および不健全なコピーの数。この情報は、クラスタのメタ情報のサイズを全体的に制御するのに役立ちます。全体的な観点からクラスタシャーディング状況を表示し、クラスタシャーディングの健全性を迅速にチェックできます。これにより、問題のあるデータシャードをさらに特定します。
- stream_loads: 実行中のstream loadタスクを返します。
- tasks : 各種ジョブのタスク総数と失敗数を表示します。
- transactions : 指定されたトランザクションidのトランザクション詳細を表示するために使用されます。SHOW TRANSACTIONと同等
- trash: この文はbackendのガベージデータが占める容量を表示するために使用されます。SHOW TRASHと同等
詳細説明
- /binlog
BinlogはDorisの重要な機能で、データ変更を記録するために使用され、クラスタ間データ同期(CCR)などのシナリオで使用できます。このコマンドを通じて、管理者はBinlogのステータスを監視し、正常動作を確保し、ストレージ領域を合理的に計画できます。
| フィールド名 | データ型 | 説明 |
|---|---|---|
| Name | String | データベースまたはテーブル名。 |
| Type | String | データオブジェクトのタイプ、値は"db"(データベース)または"table"(テーブル) |
| Id | Number | データベースIDまたはテーブルID |
| Dropped | Boolean | データベースまたはテーブルが削除されているかどうか。値が"true"の場合、オブジェクトがDorisから削除されているが、そのBinlogレコードはまだ保持されていることを示します;値が"false"の場合、オブジェクトがまだシステムに存在することを示します。データベースやテーブルが削除されても、システムはTTLが期限切れになるか手動でクリーンアップされるまで、一定期間Binlogレコードを保持します |
| BinlogLength | Number | このデータベースまたはテーブルのバイナリログエントリの総数 |
| BinlogSize | Number | バイナリログの総サイズ(バイト) |
| FirstBinlogCommittedTime | Number | 最初のバイナリログコミットのタイムスタンプ(Unixタイムスタンプ、ミリ秒) |
| ReadableFirstBinlogCommittedTime | String | 最初のバイナリログのコミット時間(読み取り可能な形式) |
| LastBinlogCommittedTime | Number | 最後のバイナリログコミットのタイムスタンプ(Unixタイムスタンプ、ミリ秒) |
| ReadableLastBinlogCommittedTime | String | 最後のバイナリログのコミット時間(読み取り可能な形式) |
| BinlogTtlSeconds | Number | バイナリログの生存時間(秒)、この時間を超えるログはクリーンアップされる可能性があります |
| BinlogMaxBytes | Number | バイナリログの最大サイズ(バイト)、このサイズを超えるとクリーンアップがトリガーされる可能性があります |
| BinlogMaxHistoryNums | Number | 保持するバイナリログ履歴レコードの最大数、この数を超えるとクリーンアップがトリガーされる可能性があります |
注意事項:
- バイナリロギングが有効になっているデータベースとテーブルのみがこのコマンドの出力に表示されます
- データベースレベルのバイナリロギングが有効になっている場合、データベースのバイナリログ情報が表示されます;そうでない場合、そのデータベース内でバイナリロギングが有効になっている個別テーブルの情報が表示されます
例
-
例えば、"/dbs"はすべてのデータベースを表示し、"/dbs/10002"はid 10002のデータベース下のすべてのテーブルを表示します
mysql> show proc "/dbs/10002";
+---------+----------------------+----------+---------------------+--------------+--------+------+--------------------------+--------------+
| TableId | TableName | IndexNum | PartitionColumnName | PartitionNum | State | Type | LastConsistencyCheckTime | ReplicaCount |
+---------+----------------------+----------+---------------------+--------------+--------+------+--------------------------+--------------+
| 10065 | dwd_product_live | 1 | dt | 9 | NORMAL | OLAP | NULL | 18 |
| 10109 | ODS_MR_BILL_COSTS_DO | 1 | NULL | 1 | NORMAL | OLAP | NULL | 1 |
| 10119 | test | 1 | NULL | 1 | NORMAL | OLAP | NULL | 1 |
| 10124 | test_parquet_import | 1 | NULL | 1 | NORMAL | OLAP | NULL | 1 |
+---------+----------------------+----------+---------------------+--------------+--------+------+--------------------------+--------------+
4 rows in set (0.00 sec) -
クラスター内のすべてのデータベーステーブル数に関する情報を表示します。
mysql> show proc '/statistic';
+-------+----------------------+----------+--------------+----------+-----------+------------+
| DbId | DbName | TableNum | PartitionNum | IndexNum | TabletNum | ReplicaNum |
+-------+----------------------+----------+--------------+----------+-----------+------------+
| 10002 | default_cluster:test | 4 | 12 | 12 | 21 | 21 |
| Total | 1 | 4 | 12 | 12 | 21 | 21 |
+-------+----------------------+----------+--------------+----------+-----------+------------+
2 rows in set (0.00 sec) -
以下のコマンドでクラスタ内の既存のGroup情報を確認できます。
SHOW PROC '/colocation_group';
+-------------+--------------+--------------+------------+----------------+----------+----------+
| GroupId | GroupName | TableIds | BucketsNum | ReplicationNum | DistCols | IsStable |
+-------------+--------------+--------------+------------+----------------+----------+----------+
| 10005.10008 | 10005_group1 | 10007, 10040 | 10 | 3 | int(11) | true |
+-------------+--------------+--------------+------------+----------------+----------+----------+
- GroupId: グループのクラスタ全体で一意な識別子。前半はdb id、後半はgroup idです。
- GroupName: Groupの完全名。
- TabletIds: このGroupに含まれるTablesのidリスト。
- BucketsNum: バケット数。
- ReplicationNum: レプリカ数。
- DistCols: 分散カラム、つまりバケットカラムタイプ。
- IsStable: Groupが安定しているかどうか(安定性の定義については、
Colocation replica balance and repairセクションを参照)。
-
Groupのデータ分散をさらに表示するには、以下のコマンドを使用します:
SHOW PROC '/colocation_group/10005.10008';
+-------------+---------------------+
| BucketIndex | BackendIds |
+-------------+---------------------+
| 0 | 10004, 10002, 10001 |
| 1 | 10003, 10002, 10004 |
| 2 | 10002, 10004, 10001 |
| 3 | 10003, 10002, 10004 |
| 4 | 10002, 10004, 10003 |
| 5 | 10003, 10002, 10001 |
| 6 | 10003, 10004, 10001 |
| 7 | 10003, 10004, 10002 |
+-------------+---------------------+
- BucketIndex: バケットシーケンスのインデックス。
- BackendIds: バケット内のデータシャードが配置されているBEノードIDのリスト。
-
各種ジョブの総タスク数と失敗数を表示します。
mysql> show proc '/tasks';
+-------------------------+-----------+----------+
| TaskType | FailedNum | TotalNum |
+-------------------------+-----------+----------+
| CREATE | 0 | 0 |
| DROP | 0 | 0 |
| PUSH | 0 | 0 |
| CLONE | 0 | 0 |
| STORAGE_MEDIUM_MIGRATE | 0 | 0 |
| ROLLUP | 0 | 0 |
| SCHEMA_CHANGE | 0 | 0 |
| CANCEL_DELETE | 0 | 0 |
| MAKE_SNAPSHOT | 0 | 0 |
| RELEASE_SNAPSHOT | 0 | 0 |
| CHECK_CONSISTENCY | 0 | 0 |
| UPLOAD | 0 | 0 |
| DOWNLOAD | 0 | 0 |
| CLEAR_REMOTE_FILE | 0 | 0 |
| MOVE | 0 | 0 |
| REALTIME_PUSH | 0 | 0 |
| PUBLISH_VERSION | 0 | 0 |
| CLEAR_ALTER_TASK | 0 | 0 |
| CLEAR_TRANSACTION_TASK | 0 | 0 |
| RECOVER_TABLET | 0 | 0 |
| STREAM_LOAD | 0 | 0 |
| UPDATE_TABLET_META_INFO | 0 | 0 |
| ALTER | 0 | 0 |
| INSTALL_PLUGIN | 0 | 0 |
| UNINSTALL_PLUGIN | 0 | 0 |
| Total | 0 | 0 |
+-------------------------+-----------+----------+
26 rows in set (0.01 sec) -
クラスター全体のレプリカステータスを表示します。
mysql> show proc '/cluster_health/tablet_health';
+----------+---------------------------+-----------+------------+-------------------+----------------------+----------------------+--------------+----------------------------+-------------------------+-------------------+---------------------+----------------------+----------------------+------------------+-----------------------------+-----------------+-------------+------------+
| DbId | DbName | TabletNum | HealthyNum | ReplicaMissingNum | VersionIncompleteNum | ReplicaRelocatingNum | RedundantNum | ReplicaMissingInClusterNum | ReplicaMissingForTagNum | ForceRedundantNum | ColocateMismatchNum | ColocateRedundantNum | NeedFurtherRepairNum | UnrecoverableNum | ReplicaCompactionTooSlowNum | InconsistentNum | OversizeNum | CloningNum |
+----------+---------------------------+-----------+------------+-------------------+----------------------+----------------------+--------------+----------------------------+-------------------------+-------------------+---------------------+----------------------+----------------------+------------------+-----------------------------+-----------------+-------------+------------+
| 25852112 | default_cluster:bowen | 1920 | 1920 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
| 25342914 | default_cluster:bw | 128 | 128 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
| 2575532 | default_cluster:cps | 1440 | 1440 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 16 | 0 |
| 26150325 | default_cluster:db | 38374 | 38374 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 453 | 0 |
+----------+---------------------------+-----------+------------+-------------------+----------------------+----------------------+--------------+----------------------------+-------------------------+-------------------+---------------------+----------------------+----------------------+------------------+-----------------------------+-----------------+-------------+------------+
4 rows in set (0.01 sec)
DbId が 25852112 などのデータベース下でレプリカのステータスを表示します。
mysql> show proc '/cluster_health/tablet_health/25852112';
-
クラスター管理の問題を報告し診断する
MySQL > show proc "/diagnose";
+-----------------+----------+------------+
| Item | ErrorNum | WarningNum |
+-----------------+----------+------------+
| cluster_balance | 2 | 0 |
| Total | 2 | 0 |
+-----------------+----------+------------+
2 rows in set
レプリカバランス移行の問題を表示
```sql
MySQL > show proc "/diagnose/cluster_balance";
+-----------------------+--------+-------------------------------------------------------------------------------------------------------------+---------------------------------------------------------------------+------------+
| Item | Status | Content | Detail Cmd | Suggestion |
+-----------------------+--------+-------------------------------------------------------------------------------------------------------------+---------------------------------------------------------------------+------------+
| Tablet Health | ERROR | healthy tablet num 691 < total tablet num 1014 | show proc "/cluster_health/tablet_health"; | <null> |
| BeLoad Balance | ERROR | backend load not balance for tag {"location" : "default"}, low load backends [], high load backends [10009] | show proc "/cluster_balance/cluster_load_stat/location_default/HDD" | <null> |
| Disk Balance | OK | <null> | <null> | <null> |
| Colocate Group Stable | OK | <null> | <null> | <null> |
| History Tablet Sched | OK | <null> | <null> | <null> |
+-----------------------+--------+-------------------------------------------------------------------------------------------------------------+---------------------------------------------------------------------+------------+
5 rows in set
```
キーワード
SHOW, PROC