{ “title”: “SHOW PROC”, “description”: “Procシステムは、Dorisのユニークな機能です。Linuxを使用したことがある学生は、この概念をよりよく理解できるでしょう。Linuxシステムでは、”, “language”: “ja” }

デスクリプション

Procシステムは、Dorisのユニークな機能です。Linuxを使用したことのある学生は、この概念をよく理解できるでしょう。Linuxシステムでは、procは仮想ファイルシステムで、通常/procディレクトリにマウントされています。ユーザーは、このファイルシステムを通じてシステムの内部データ構造を表示できます。例えば、/proc/pidを通じて指定されたpidプロセスの詳細を表示できます。

Linuxのprocシステムと同様に、Dorisのprocシステムも、ユーザーが指定した「ディレクトリパス(proc path)」に従って異なるシステム情報を表示するために、ディレクトリのような構造に整理されています。

procシステムは主にシステム管理者向けに設計されており、システム内部の実行状態を簡単に表示できます。tableのtabletステータス、クラスターバランスステータス、各種ジョブのステータスなど、非常に有用な機能です。

DorisでProcシステムを表示する方法は2つあります。

  1. Dorisが提供するWEB UIインターフェースで表示する方法。アドレス:http://FE_IP:FE_HTTP_PORTにアクセス
  2. もう一つはコマンドによる方法

DorisのPROCでサポートされているすべてのコマンドはSHOW PROC "/";で確認できます。

MySQLクライアントを通じてDorisに接続した後、SHOW PROC文を実行して、指定されたprocディレクトリの情報を表示できます。procディレクトリは「/」で始まる絶対パスです。

show proc文の結果は2次元tableで表示されます。通常、結果tableの最初の列は、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)

illustrate:

  1. auth: ユーザー名と対応する権限情報
  2. backends: クラスター内のBEのノードリストを表示、SHOW BACKENDSと同等
  3. bdbje: bdbjeデータベースリストを表示するには、fe.confファイルを変更してenable_bdbje_debug_mode=trueを追加し、sh start_fe.sh --daemonを通してFEを起動してdebugモードに入る必要があります。debugモードに入ると、http serverMySQLServerのみが起動され、BDBJEインスタンスが開かれますが、メタデータの読み込みとその後の起動プロセスには入りません。
  4. binlog: binlog関連情報を表示、binlogレコード数、binlogサイズ(バイト)、binlog時間範囲などの情報を含む。
  5. brokers: クラスターbrokerノード情報を表示、SHOW BROKERと同等
  6. catalogs: 現在作成されているデータカタログを表示、SHOW CATALOGSと同等
  7. cluster_balance: クラスターのバランスを確認するには、Data Copy Managementを参照してください
  8. cluster_health: SHOW PROC ‘/cluster_health/tablet_health’;文を実行してクラスター全体のレプリカステータスを表示。
  9. colocation_group: このコマンドでクラスター内の既存のGroup情報を表示できます。詳細については、Colocation Joinの章を参照してください
  10. current_backend_instances: 現在ジョブを実行しているbeノードのリストを表示
  11. current_queries: 実行中のクエリのリスト、現在実行されているSQL文を表示。
  12. current_query_stmts: 現在実行中のクエリを返す。
  13. dbs: 主にDorisクラスター内の各データベースとTableのメタデータ情報を表示するために使用されます。この情報には、Table構造、パーティション、マテリアライズドビュー、データシャードとレプリカなどが含まれます。このディレクトリとそのサブディレクトリを通して、クラスター内のTableメタデータを明確に表示し、データスキュー、レプリカ障害などの問題を特定できます。
  14. diagnose: クラスター内の一般的な管理・制御の問題を報告・診断します。レプリカのバランスと移行、トランザクション例外などが含まれます。
  15. frontends: クラスター内のすべてのFEノード情報を表示、IPアドレス、役割、ステータス、マスターかどうかなどを含む。SHOW FRONTENDSと同等
  16. jobs: すべての種類のジョブの統計を表示。特定のdbIdが指定された場合、そのデータベースの統計データを返します。dbIdが-1の場合、すべてのデータベースの合計統計データを返します
  17. load_error_hub: Dorisはロードジョブによって生成されるエラー情報をエラーハブに集約保存することをサポートしています。その後、SHOW LOAD WARNINGS;文を通してエラーメッセージを直接表示できます。ここではエラーハブの設定情報が表示されます。
  18. monitor: FE JVMのリソース使用状況を表示
  19. resources: システムリソースを表示、一般アカウントはUSAGE_PRIV権限を持つリソースのみ表示できます。rootとadminアカウントのみがすべてのリソースを表示できます。SHOW RESOURCESと同等
  20. routine_loads: すべてのroutine loadジョブ情報を表示、ジョブ名、ステータスなどを含む。
  21. statistics: 主にDorisクラスター内のデータベース、Table、パーティション、シャード、レプリカの数を集計・表示するために使用されます。また、異常なコピーの数も表示されます。この情報は、クラスターのメタ情報のサイズを全体的に制御するのに役立ちます。全体的な視点からクラスターのシャーディング状況を表示し、クラスターシャーディングの健全性を迅速にチェックできます。これにより、問題のあるデータシャードをさらに特定できます。
  22. stream_loads: 実行中のstream loadタスクを返す。
  23. tasks: 様々なジョブのタスク総数と失敗数を表示。
  24. transactions: 指定されたトランザクションidのトランザクション詳細を表示するために使用、SHOW TRANSACTIONと同等
  25. trash: この文はバックエンドのガベージデータが占有する領域を表示するために使用されます。SHOW TRASHと同等

詳細説明

  1. /binlog

BinlogはDorisの重要な機能で、データ変更を記録し、クラスター間データ同期(CCR)などのシナリオで使用できます。このコマンドを通して、管理者はBinlogのステータスを監視し、正常な動作を確保し、ストレージ容量を合理的に計画できます。

フィールド名データ型説明
NameStringデータベース名またはTable名
タイプStringデータオブジェクトの種類、値は“db”(データベース)または“table”(Table)
IdNumberデータベースIDまたはTableID
DroppedBooleanデータベースまたはTableが削除されているかどうか。“true”値はオブジェクトがDorisから削除されたが、そのBinlogレコードがまだ保持されていることを示す;“false”値はオブジェクトがシステム内にまだ存在することを示す。データベースまたはTableが削除されても、システムはTTLが期限切れになるか手動でクリーンアップされるまで一定期間Binlogレコードを保持する
BinlogLengthNumberこのデータベースまたはTableのバイナリログエントリの総数
BinlogSizeNumberバイナリログの総サイズ(バイト)
FirstBinlogCommittedTimeNumber最初のバイナリログコミットのタイムスタンプ(Unixタイムスタンプ、ミリ秒)
ReadableFirstBinlogCommittedTimeString最初のバイナリログのコミット時刻(可読形式)
LastBinlogCommittedTimeNumber最後のバイナリログコミットのタイムスタンプ(Unixタイムスタンプ、ミリ秒)
ReadableLastBinlogCommittedTimeString最後のバイナリログのコミット時刻(可読形式)
BinlogTtlSecondsNumberバイナリログの有効期間(秒)、この時間を超えるログはクリーンアップされる可能性がある
BinlogMaxBytesNumberバイナリログの最大サイズ(バイト)、このサイズを超えるとクリーンアップがトリガーされる可能性がある
BinlogMaxHistoryNumsNumber保持するバイナリログ履歴レコードの最大数、この数を超えるとクリーンアップがトリガーされる可能性がある

注意事項:

  • バイナリログが有効化されているデータベースとTableのみが、このコマンドの出力に表示されます
  • データベースレベルのバイナリログが有効化されている場合、データベースのバイナリログ情報が表示されます;そうでない場合、そのデータベース内でバイナリログが有効化されている個別のTableの情報が表示されます

  1. 例えば、“/dbs”はすべてのデータベースを表示し、“/dbs/10002”はid 10002のデータベース下のすべてのTableを表示します

    mysql> show proc "/dbs/10002";
    +---------+----------------------+----------+---------------------+--------------+--------+------+--------------------------+--------------+
    | TableId | TableName            | IndexNum | PartitionColumnName | PartitionNum | State  | タイプ | 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)
    
  2. クラスター内のすべてのデータベースTable数に関する情報を表示します。

    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)
    
  3. 以下のコマンドでクラスター内の既存の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に含まれるTableのidリスト。
    • BucketsNum: バケット数。
    • ReplicationNum: レプリカ数。
    • DistCols: 分散カラム、つまりバケットカラムの型。
    • IsStable: Groupが安定しているかどうか(安定性の定義についてはColocation replica balance and repairセクションを参照)。
  1. 以下のコマンドを使用して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のリスト。
  1. 様々なジョブのタスクの総数と失敗数を表示します。

    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)
    
  2. クラスター全体のレプリカステータスを表示します。

    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';
  1. クラスタ管理の問題の報告と診断

    	MySQL > show proc "/diagnose";
    	+-----------------+----------+------------+
    	| Item            | ErrorNum | WarningNum |
    	+-----------------+----------+------------+
    	| cluster_balance | 2        | 0          |
    	| Total           | 2        | 0          |
    	+-----------------+----------+------------+
    
    	2 rows in set
    

View replicaバランス移行の問題

```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
```

Keywords

SHOW, PROC

Best Practice