メインコンテンツまでスキップ
に最終更新

SHOW TABLET

説明​

SHOW TABLET はタブレット情報を確認するための管理者専用コマンドで、次の二つの形式があります。

  • SHOW TABLET <tablet_id>: タブレット ID から、そのタブレットが属するデータベース、テーブル、パーティション、インデックスを調べます。
  • SHOW TABLETS FROM <table_name>: テーブル全体または指定したパーティション内の各タブレットについて、レプリカの配置、バージョン、データサイズ、コンパクションの状態を一覧表示します。

これらを組み合わせて使うこともできます。最初の形式でタブレットを特定し、次の形式で同じパーティション内のほかのレプリカを確認します。

Note

どちらの文も Internal Catalog のテーブルのみをサポートします。External Catalog はサポートしません。

構文​

-- Inspect a single tablet by its id
SHOW TABLET <tablet_id>

-- List every tablet of a table
SHOW TABLETS FROM <table_name>
[ PARTITIONS ( <partition_name> [, ... ] ) ]
[ WHERE <where_condition> ]
[ ORDER BY <column_name> [ ASC | DESC ] [, ... ] ]
[ LIMIT [ <offset>, ] <row_count> ]

パラメータ​

SHOW TABLET​

1. <tablet_id>

必須。問い合わせるタブレットの ID です。

SHOW TABLETS FROM​

1. <table_name>

必須。テーブル名です。db_name.table_name 形式も使用できます。

2. PARTITIONS ( <partition_name> [, ... ] )

任意。結果を指定したパーティションに限定します。省略すると、テーブルの全パーティションを確認します。

3. WHERE <where_condition>

任意。フィルタ条件です。次の三つのフィールドに対する等価比較のみをサポートし、AND で組み合わせることができます。

フィールド型説明
Version整数レプリカのバージョンで絞り込みます
BackendId整数レプリカをホストする BE ノードの ID で絞り込みます
State文字列レプリカの状態で絞り込みます: NORMAL、ROLLUP、CLONE、DECOMMISSION

ほかのフィールド、等価比較以外の比較、および OR を使用すると、いずれもエラーになります。

Where clause should looks like: Version = "version", or state = "NORMAL|ROLLUP|CLONE|DECOMMISSION", or BackendId = 10000 or compound predicate with operator AND

4. ORDER BY <column_name>

任意。結果の列で並べ替えます。並べ替えに使う列は、以下の「戻り値」に記載された列のいずれかである必要があります。

ORDER BY を指定すると、Doris はすべてのタブレットを収集してから並べ替えるため、結果は全体を通した順序での Top-N になります。

5. LIMIT [ <offset>, ] <row_count>

任意。返す行数を制限します。タブレットが多いテーブルでは指定を推奨します。

LIMIT と OFFSET は並べ替えの後に適用されます。ORDER BY がない場合は、必要な行数が集まった時点でスキャンを停止し、結果は (TabletId, ReplicaId) 順の先頭部分になります。

Behavior change (4.1.4)
  • 4.1.4 より前は、ORDER BY で並べ替えられるのは、スキャンで先に到達した行だけである場合がありました。そのため、結果が全体の正しい Top-N とは限りませんでした。4.1.4 以降は、すべてのタブレットを収集してから並べ替えます。
  • 4.1.4 より前は、OFFSET を単独で(正の値の LIMIT を指定せずに)使用すると無視され、OFFSET が総行数より大きい場合は結果全体が空になりました。4.1.4 以降は、OFFSET が常に適用されます。

戻り値​

SHOW TABLET​

列データ型説明
DbNameStringタブレットが属するデータベースの名前。
TableNameStringタブレットが属するテーブルの名前。
PartitionNameStringタブレットが属するパーティションの名前。
IndexNameStringタブレットが属するインデックスの名前。
DbIdIntデータベースの ID。
TableIdIntテーブルの ID。
PartitionIdIntパーティションの ID。
IndexIdIntインデックスの ID。
IsSyncBooleanタブレットがそのレプリカと同期しているかどうか。
OrderIntインデックス内でのタブレットの順序。
QueryHitsIntこのタブレットに対するクエリのヒット数。
WindowAccessCountIntスライディング統計ウィンドウ内での、このタブレットへのアクセス回数。
LastAccessTimeIntこのタブレットへの最終アクセス時刻をミリ秒単位で表したタイムスタンプ。アクセス履歴がない場合は 0。
DetailCmdStringタブレットの詳細情報を取得するためのコマンド。

SHOW TABLETS FROM​

各行は一つのレプリカに対応するため、同じ TabletId がレプリカごとに一度ずつ現れます。

列データ型説明
TabletIdIntタブレット ID
ReplicaIdIntレプリカ ID
BackendIdIntレプリカをホストする BE ノードの ID
SchemaHashIntレプリカのスキーマハッシュ
VersionIntレプリカの現在の可視バージョン
LstSuccessVersionInt最後に正常にロードされたバージョン
LstFailedVersionInt最後に失敗したバージョン。失敗したバージョンがない場合は -1
LstFailedTimeStringバージョンの最終失敗時刻。失敗がない場合は \N
LocalDataSizeIntレプリカのローカルデータサイズ(バイト)。コンピュートとストレージを分離したモードでは通常 0。以下の「分離モードでのデータサイズの意味」を参照
RemoteDataSizeIntレプリカのリモートデータサイズ(バイト)
RowCountIntレプリカの行数
StateStringレプリカの状態: NORMAL、ROLLUP、CLONE、DECOMMISSION
LstConsistencyCheckTimeString最後の整合性チェックの時刻。チェックされたことがない場合は \N
CheckVersionInt最後の整合性チェックのバージョン。チェックされたことがない場合は -1
VisibleVersionCountIntレプリカの可視バージョン数
VersionCountIntレプリカの総バージョン数。コンパクションが遅れているかどうかの判断に役立ちます
QueryHitsIntこのレプリカに対するクエリのヒット数
WindowAccessCountIntスライディング統計ウィンドウ内での、このタブレットへのアクセス回数
LastAccessTimeIntこのタブレットへの最終アクセス時刻をミリ秒単位で表したタイムスタンプ。アクセス履歴がない場合は 0
PathHashIntレプリカをホストするデータディレクトリのハッシュ
PathStringレプリカをホストする BE のデータルートディレクトリ。解決できない場合は空
MetaUrlStringレプリカのメタデータを確認するための HTTP アドレス。形式は http://<be_host>:<be_http_port>/api/meta/header/<tablet_id>
CompactionStatusStringレプリカのコンパクション状態を確認するための HTTP アドレス。形式は http://<be_host>:<be_http_port>/api/compaction/show?tablet_id=<tablet_id>
CooldownReplicaIdIntクールダウンレプリカの ID。階層型ストレージが有効でない場合は -1
CooldownMetaIdStringクールダウンのメタデータ ID。階層型ストレージが有効でない場合は空
PrimaryBackendIdIntこのタブレットのプライマリ BE ノードの ID。コンピュートとストレージを分離したモードでのみ返されます

分離モードでのデータサイズの意味​

Behavior change (4.0.8)

バージョン 4.0.8 以降、コンピュートとストレージを分離したモードでのレプリカのデータサイズは、リモートの値として一貫して報告されます。レプリカの統計情報でリモートとして記録されていないデータサイズも RemoteDataSize に算入され、対応する LocalDataSize は 0 として報告されます。そのため、分離構成のクラスタでは通常、LocalDataSize が 0 となり、実際のデータサイズは RemoteDataSize に表示されます。

4.0.8 より前は、このデータサイズが LocalDataSize に算入されていたため、SHOW TABLETS、information_schema.partitions、information_schema.backend_tablets の間で、ローカルとリモートの値が一致しませんでした。この変更はサイズの報告方法のみを調整するもので、データの保存場所やデータ量は変わりません。

アクセス制御要件​

この SQL コマンドを実行するユーザーには、少なくとも次の権限が必要です。

権限対象説明
Admin_privグローバルどちらの文にもグローバルな ADMIN 権限が必要です。権限がない場合は Access denied エラーが発生します。

例​

ID で単一のタブレットを確認する​

SHOW TABLET 10145;
+--------+-----------+---------------+-----------+-------+---------+-------------+---------+--------+-------+-----------+-------------------+----------------+------------------------------------------------------------+
| DbName | TableName | PartitionName | IndexName | DbId | TableId | PartitionId | IndexId | IsSync | Order | QueryHits | WindowAccessCount | LastAccessTime | DetailCmd |
+--------+-----------+---------------+-----------+-------+---------+-------------+---------+--------+-------+-----------+-------------------+----------------+------------------------------------------------------------+
| test | sell_user | sell_user | sell_user | 10103 | 10143 | 10142 | 10144 | true | 0 | 0 | 0 | 0 | SHOW PROC '/dbs/10103/10143/partitions/10142/10144/10145'; |
+--------+-----------+---------------+-----------+-------+---------+-------------+---------+--------+-------+-----------+-------------------+----------------+------------------------------------------------------------+

SHOW PROC 文は DetailCmd 列に示されており、実行するとそのタブレットのレプリカについて、さらに詳しい情報を確認できます。

テーブル内の全タブレットを一覧表示する​

SHOW TABLETS FROM example_db.sell_user;

結果を指定したパーティションに限定する​

SHOW TABLETS FROM example_db.sell_user PARTITIONS(p202601, p202602);

レプリカの状態とホストノードで絞り込む​

SHOW TABLETS FROM example_db.sell_user WHERE State = "NORMAL" AND BackendId = 10003;

コンパクションが遅れているタブレットを探す​

バージョン数の降順に並べ替えると、コンパクションの負荷が特に高いタブレットが上位に表示されます。

SHOW TABLETS FROM example_db.sell_user ORDER BY VersionCount DESC LIMIT 10;

結果の CompactionStatus 列には HTTP アドレスが表示されます。ブラウザで開くと、そのレプリカのコンパクション状態の詳細を確認できます。

データの偏りを調べる​

データサイズの降順に並べ替えると、ほかのタブレットより明らかに大きいタブレットをすばやく見つけられます。

-- Integrated storage-compute mode
SHOW TABLETS FROM example_db.sell_user ORDER BY LocalDataSize DESC LIMIT 10;

-- Compute-storage decoupled mode (data size is reported in RemoteDataSize)
SHOW TABLETS FROM example_db.sell_user ORDER BY RemoteDataSize DESC LIMIT 10;