system.replicas
ローカルサーバー上に存在するレプリケートテーブルの情報とステータスを含みます。
このテーブルは監視用途に使用できます。テーブルには、すべての Replicated* テーブルごとに 1 行が格納されます。
例:
カラム:
database(String) - データベース名table(String) - テーブル名engine(String) - テーブルエンジン名is_leader(UInt8) - レプリカがリーダーかどうか。 複数のレプリカが同時にリーダーになることがあります。merge_tree設定のreplicated_can_become_leaderを使用して、レプリカがリーダーになることを防止できます。リーダーはバックグラウンドマージのスケジューリングを担当します。 リーダーかどうかに関わらず、利用可能で ZK にセッションを持つ任意のレプリカに対して書き込みを実行できることに注意してください。can_become_leader(UInt8) - レプリカがリーダーになれるかどうか。is_readonly(UInt8) - レプリカが読み取り専用モードかどうか。 このモードは、設定に ClickHouse Keeper のセクションが存在しない場合、ClickHouse Keeper でセッションを再初期化する際に不明なエラーが発生した場合、または ClickHouse Keeper でセッションを再初期化している間に有効になります。is_session_expired(UInt8) - ClickHouse Keeper とのセッションが期限切れになっているかどうか。基本的にはis_readonlyと同じです。future_parts(UInt32) - INSERT または、まだ実行されていないマージの結果として出現するデータパーツの数。parts_to_check(UInt32) - 検証キュー内のデータパーツの数。パーツが破損している疑いがある場合、そのパーツは検証キューに入れられます。zookeeper_path(String) - ClickHouse Keeper 内のテーブルデータへのパス。replica_name(String) - ClickHouse Keeper 内でのレプリカ名。同じテーブルの異なるレプリカは異なる名前を持ちます。replica_path(String) - ClickHouse Keeper 内のレプリカデータへのパス。'zookeeper_path/replicas/replica_path' を連結したものと同じです。columns_version(Int32) - テーブル構造のバージョン番号。何回 ALTER が実行されたかを示します。レプリカ間でバージョンが異なる場合、一部のレプリカがまだすべての ALTER を実行していないことを意味します。queue_size(UInt32) - 実行待ちの操作キューのサイズ。操作にはデータブロックの挿入、マージ、およびその他の特定のアクションが含まれます。通常はfuture_partsと一致します。inserts_in_queue(UInt32) - 実行が必要なデータブロックの挿入数。挿入は通常かなり速くレプリケートされます。この数が大きい場合は、何か問題が発生していることを意味します。merges_in_queue(UInt32) - 実行待ちのマージ数。マージには時間がかかることがあるため、この値が長時間ゼロより大きい場合があります。part_mutations_in_queue(UInt32) - 実行待ちのミューテーションの数。queue_oldest_time(DateTime) -queue_sizeが 0 より大きい場合、キューに追加された最も古い操作の時刻を示します。inserts_oldest_time(DateTime) -queue_oldest_timeを参照してくださいmerges_oldest_time(DateTime) -queue_oldest_timeを参照してくださいpart_mutations_oldest_time(DateTime) -queue_oldest_timeを参照してください
次の 4 列は、ZK にアクティブなセッションがある場合にのみゼロ以外の値になります。
log_max_index(UInt64) - 全体的なアクティビティログにおける最大エントリ番号。log_pointer(UInt64) - レプリカがその実行キューへコピーした全体的なアクティビティログ中の最大エントリ番号に 1 を加えた値。log_pointerがlog_max_indexよりかなり小さい場合は、何か問題があります。last_queue_update(DateTime) - キューが最後に更新された時刻。absolute_delay(UInt64) - 現在のレプリカの遅延時間(秒単位)。total_replicas(UInt8) - このテーブルの既知のレプリカの総数。active_replicas(UInt8) - このテーブルのうち、ClickHouse Keeper にセッションを持つレプリカの数(つまり、稼働中のレプリカの数)。lost_part_count(UInt64) - テーブル作成以降、すべてのレプリカで合計してテーブル内で失われたデータパーツの数。この値は ClickHouse Keeper に永続化され、増加するだけです。last_queue_update_exception(String) - キューに壊れたエントリが含まれている場合の最後の例外メッセージ。特に、ClickHouse がバージョン間で下位互換性を破り、新しいバージョンによって書き込まれたログエントリを古いバージョンがパースできない場合に重要です。zookeeper_exception(String) - ClickHouse Keeper から情報を取得するときにエラーが発生した場合の、最後の例外メッセージ。replica_is_active(Map(String, UInt8)) — レプリカ名と、そのレプリカがアクティブかどうかの対応を表すマップ。
すべてのカラムを取得すると、各行ごとに複数回 ClickHouse Keeper から読み取る必要があるため、テーブルの動作がやや遅くなる場合があります。 最後の 4 つのカラム(log_max_index、log_pointer、total_replicas、active_replicas)を取得しなければ、テーブルは高速に動作します。
例えば、次のようにしてすべてが正しく動作していることを確認できます。
このクエリで何も返されない場合は、問題ないことを意味します。