SYSTEM ステートメント
SYSTEM RELOAD EMBEDDED DICTIONARIES
すべての 内部Dictionary を再読み込みします。
デフォルトでは、内部Dictionaryは無効化されています。
内部Dictionaryの更新結果に関係なく、常に Ok. を返します。
SYSTEM RELOAD DICTIONARIES
以前に正常にロードされたすべてのディクショナリを再ロードします。
デフォルトでは、ディクショナリは遅延ロードされます(dictionaries_lazy_load を参照)。そのため、起動時に自動的にロードされるのではなく、dictGet 関数または SELECT を使って ENGINE = Dictionary のテーブルにアクセスしたときに初めて初期化されます。SYSTEM RELOAD DICTIONARIES クエリは、このようなディクショナリ(LOADED、system.dictionaries の status 列を参照)を再ロードします。
ディクショナリの更新結果に関わらず、常に Ok. を返します。
構文
SYSTEM RELOAD DICTIONARY
Dictionary の状態(LOADED / NOT_LOADED / FAILED)に関係なく、dictionary_name という Dictionary を完全に再読み込みします。
Dictionary の更新結果に関わらず、常に Ok. を返します。
Dictionary の状態は、system.dictionaries テーブルに対してクエリを実行することで確認できます。
SYSTEM RELOAD MODELS
このステートメントおよび SYSTEM RELOAD MODEL は、CatBoost モデルを clickhouse-library-bridge からアンロードするだけです。関数 catboostEvaluate()
は、モデルがまだロードされていない場合、最初のアクセス時にロードします。
すべての CatBoost モデルをアンロードします。
構文
SYSTEM RELOAD MODEL
model_path にある CatBoost モデルをアンロードします。
構文
SYSTEM RELOAD FUNCTIONS
登録済みの実行可能なユーザー定義関数を、設定ファイルからすべて、またはいずれか 1 つだけ再読み込みします。
構文
SYSTEM RELOAD ASYNCHRONOUS METRICS
すべての非同期メトリクスを再計算します。非同期メトリクスは、asynchronous_metrics_update_period_s 設定に基づいて定期的に更新されるため、通常はこのステートメントを使用して手動で更新する必要はありません。
SYSTEM DROP DNS CACHE
ClickHouse の内部 DNS キャッシュをクリアします。インフラストラクチャを変更する場合(別の ClickHouse サーバーやディクショナリで使用されるサーバーの IP アドレスを変更する場合など)、古い ClickHouse バージョンではこのコマンドを使用する必要が生じることがあります。
より便利な(自動的な)キャッシュ管理については、disable_internal_dns_cache、dns_cache_max_entries、dns_cache_update_period パラメータを参照してください。
SYSTEM DROP MARK CACHE
マークキャッシュをクリアします。
SYSTEM DROP ICEBERG METADATA CACHE
Icebergメタデータキャッシュをクリアします。
SYSTEM DROP TEXT INDEX POSTINGS CACHE
テキスト索引ヘッダーキャッシュ、Dictionaryキャッシュおよびポスティングキャッシュをクリアします。
これらのキャッシュを個別に削除したい場合は、次のコマンドを実行できます。
SYSTEM DROP TEXT INDEX HEADER CACHE,SYSTEM DROP TEXT INDEX DICTIONARY CACHE, またはSYSTEM DROP TEXT INDEX POSTINGS CACHE
SYSTEM DROP REPLICA
ReplicatedMergeTreeテーブルの停止したレプリカは、次の構文で削除できます。
これらのクエリは、ZooKeeper内の ReplicatedMergeTree レプリカパスを削除します。これは、レプリカがダウンしており、もはやそのテーブルが存在しないために DROP TABLE では ZooKeeper からメタデータを削除できない場合に有用です。非アクティブまたは古いレプリカのみを削除し、ローカルレプリカを削除することはできません。その場合は DROP TABLE を使用してください。DROP REPLICA はテーブルを一切削除せず、ディスク上のデータやメタデータも削除しません。
1つ目は、database.table テーブルの 'replica_name' レプリカのメタデータを削除します。
2つ目は、データベース内のすべてのレプリケートテーブルに対して同じ操作を行います。
3つ目は、ローカルサーバー上のすべてのレプリケートテーブルに対して同じ操作を行います。
4つ目は、テーブルの他のすべてのレプリカが削除されたあとに、ダウンしたレプリカのメタデータを削除する場合に有用です。テーブルパスを明示的に指定する必要があります。このパスは、テーブル作成時に ReplicatedMergeTree エンジンの第1引数として渡されたパスと同一でなければなりません。
SYSTEM DROP DATABASE REPLICA
無効になった Replicated データベースのレプリカは、次の構文で削除できます。
SYSTEM DROP REPLICA に似ていますが、DROP DATABASE を実行できるデータベースが存在しない場合に使用され、ZooKeeper から Replicated データベースのレプリカパスを削除します。なお、これは ReplicatedMergeTree のレプリカは削除しないため、必要に応じて SYSTEM DROP REPLICA も実行する必要があります。分片名とレプリカ名は、データベース作成時に Replicated エンジンの引数で指定した名前です。また、これらの名前は system.clusters の database_shard_name および database_replica_name カラムから取得することもできます。FROM SHARD 句が省略されている場合、replica_name には shard_name|replica_name 形式の完全なレプリカ名を指定する必要があります。
SYSTEM DROP UNCOMPRESSED CACHE
非圧縮データキャッシュをクリアします。
非圧縮データキャッシュは、クエリ/USER/プロファイルレベルの設定 use_uncompressed_cache によって有効化/無効化を切り替えられます。
キャッシュのサイズは、サーバーレベルの設定 uncompressed_cache_size を使用して構成できます。
SYSTEM DROP COMPILED EXPRESSION CACHE
コンパイル済み式キャッシュをクリアします。
コンパイル済み式キャッシュは、クエリ/ユーザー/プロファイルレベルの設定 compile_expressions によって有効化/無効化されます。
SYSTEM DROP QUERY CONDITION CACHE
クエリ条件キャッシュを消去します。
クエリ条件キャッシュをクリアします。
SYSTEM DROP QUERY CACHE
query cache をクリアします。 タグを指定した場合は、指定されたタグを持つクエリキャッシュエントリのみが削除されます。
SYSTEM DROP FORMAT SCHEMA CACHE
format_schema_path から読み込まれたスキーマのキャッシュをクリアします。
サポートされている対象:
- Protobuf: メモリ上のインポート済み Protobuf メッセージ定義を削除します。
- Files:
format_schema_sourceがqueryに設定されている場合に生成され、ローカルのformat_schema_pathに保存されているスキーマファイルのキャッシュを削除します。 注: 対象を指定しない場合、両方のキャッシュがクリアされます。
SYSTEM FLUSH LOGS
バッファリングされているログメッセージを system.query_log などの system テーブルにフラッシュします。ほとんどの system テーブルはデフォルトのフラッシュ間隔が 7.5 秒に設定されているため、主にデバッグ時に有用です。
message queue が空であっても、この操作により system テーブルが作成されます。
すべてをフラッシュしたくない場合は、名前または対象テーブルを指定して、特定のログを 1 つまたは複数だけフラッシュできます。
SYSTEM RELOAD CONFIG
ClickHouse の構成を再読み込みします。構成が ZooKeeper に保存されている場合に使用します。SYSTEM RELOAD CONFIG は ZooKeeper に保存されている USER 構成を再読み込まない点に注意してください。users.xml に保存されている USER 構成のみを再読み込みします。すべての USER 構成を再読み込むには SYSTEM RELOAD USERS を使用してください。
SYSTEM RELOAD USERS
users.xml、ローカルディスクのアクセスストレージ、ZooKeeper 上のレプリケートされたアクセスストレージを含む、すべてのアクセスストレージを再読み込みします。
SYSTEM SHUTDOWN
通常のシャットダウン手順と同様に ClickHouse を停止します(service clickhouse-server stop / kill {$pid_clickhouse-server} と同様)
SYSTEM KILL
ClickHouseプロセスを強制終了します(kill -9 {$ pid_clickhouse-server} のように動作します)。
SYSTEM INSTRUMENT
ClickHouse を ENABLE_XRAY=1 を指定してビルドした場合に利用可能な LLVM の XRay 機能を用いて、インストルメンテーションポイントを管理します。
これにより、ソースコードを変更することなく、かつ最小限のオーバーヘッドで、本番環境におけるデバッグとプロファイリングを行うことができます。
インストルメンテーションポイントが追加されていない場合、性能への影響はごくわずかです。これは、200 命令を超える長さの関数のプロローグとエピローグに対して、近傍のアドレスへの余分なジャンプが 1 回追加されるだけだからです。
SYSTEM INSTRUMENT ADD
新しいインストルメンテーションポイントを追加します。インストルメント対象となった関数は、system.instrumentation システムテーブルで確認できます。同じ関数に対して複数のハンドラーを追加でき、インストルメンテーションが追加された順に実行されます。
インストルメント対象の関数は、system.symbols システムテーブルから収集できます。
関数に追加できるハンドラーの種類は 3 つあります。
構文
ここで、FUNCTION は QueryMetricLog::startQuery のような関数、または関数名の一部(サブストリング)を表し、handler には次のいずれかを指定します
LOG
関数のENTRYまたはEXITのタイミングで、引数で指定されたテキストとスタックトレースを出力します。
SLEEP
ENTRY または EXIT のタイミングで、指定した固定の秒数だけスリープします。
または、最小値と最大値をスペース区切りで指定することで、一様分布に従うランダムな秒数を指定できます:
PROFILE
関数の ENTRY から EXIT までに要した時間を測定します。
プロファイリングの結果は system.trace_log に保存され、
Chrome Event Trace Format に変換できます。
SYSTEM INSTRUMENT REMOVE
次のいずれかの方法で単一の計測ポイントを削除します:
ALL パラメータを使用してすべてを削除します:
サブクエリから取得した ID の集合:
または、指定した function_name に一致するすべての計測ポイントを対象とする場合:
インストルメンテーションポイントに関する情報は、system.instrumentation システムテーブルから取得できます。
分散テーブルの管理
ClickHouse は分散テーブルを管理できます。ユーザーがこれらのテーブルにデータを挿入すると、ClickHouse はまずクラスタノードに送信するデータのキューを作成し、その後非同期に送信します。キュー処理は、STOP DISTRIBUTED SENDS、FLUSH DISTRIBUTED、START DISTRIBUTED SENDS クエリで管理できます。distributed_foreground_insert 設定を使用すると、分散テーブルにデータを同期的に挿入することもできます。
SYSTEM STOP DISTRIBUTED SENDS
分散テーブルへのデータ挿入時に、バックグラウンドでのデータ配信を無効化します。
prefer_localhost_replicaが有効な場合(デフォルト)、ローカル分片へのデータは挿入されます。
SYSTEM FLUSH DISTRIBUTED
ClickHouse にクラスタノードへデータを同期的に送信させます。いずれかのノードが利用できない場合、ClickHouse は例外をスローし、クエリの実行を停止します。すべてのノードがオンラインに戻れば成功するため、それまでクエリを再実行し続けることができます。
一部の設定は SETTINGS 句で上書きすることもできます。これは、一時的な制限(max_concurrent_queries_for_all_users や max_memory_usage など)を回避したい場合に役立ちます。
各保留中のブロックは、最初の INSERT クエリの設定でディスク上に保存されます。そのため、場合によっては設定を上書きしたいこともあります。
SYSTEM START DISTRIBUTED SENDS
分散テーブルへのデータ挿入時に、バックグラウンドでのデータ配信を有効にします。
SYSTEM STOP LISTEN
ソケットを閉じ、指定されたプロトコルおよびポートでサーバーへの既存の接続を正常に終了させます。
ただし、対応するプロトコルの設定が clickhouse-server の設定で指定されていない場合、このコマンドは何の効果もありません。
CUSTOM 'protocol'修飾子が指定されている場合、サーバー設定の protocols セクションで定義されている、その名前のカスタムプロトコルが停止されます。QUERIES ALL [EXCEPT .. [,..]]修飾子が指定されている場合、EXCEPT句で指定されたものを除き、すべてのプロトコルが停止されます。QUERIES DEFAULT [EXCEPT .. [,..]]修飾子が指定されている場合、EXCEPT句で指定されたものを除き、すべてのデフォルトプロトコルが停止されます。QUERIES CUSTOM [EXCEPT .. [,..]]修飾子が指定されている場合、EXCEPT句で指定されたものを除き、すべてのカスタムプロトコルが停止されます。
SYSTEM START LISTEN
指定されたプロトコルで新しい接続を確立できるようにします。
ただし、指定されたポートおよびプロトコル上のサーバーが SYSTEM STOP LISTEN コマンドを使用して停止されていない場合、このコマンドを実行しても効果はありません。
MergeTree テーブルの管理
ClickHouse は、MergeTree テーブルのバックグラウンドプロセスを管理できます。
SYSTEM STOP MERGES
MergeTree ファミリーのテーブルに対するバックグラウンドマージ処理を停止するためのコマンドです。
テーブルに対して DETACH/ATTACH を実行すると、すべての MergeTreeテーブルのマージが停止されている場合でも、そのテーブルのバックグラウンドでのマージ処理が開始されます。
SYSTEM START MERGES
MergeTree ファミリーのテーブルに対してバックグラウンドでのマージ処理を開始できます。
SYSTEM STOP TTL MERGES
MergeTree ファミリーのテーブルに対して、TTL expression に基づいてバックグラウンドで古いデータを削除する処理を停止します。
テーブルが存在しない場合や、テーブルが MergeTree エンジンを使用していない場合でも Ok. を返します。データベースが存在しない場合はエラーを返します。
SYSTEM START TTL MERGES
MergeTree ファミリーのテーブルに対して、TTL expression に従い、古いデータのバックグラウンド削除を開始します。
テーブルが存在しない場合でも Ok. を返します。データベースが存在しない場合はエラーを返します。
SYSTEM STOP MOVES
MergeTree ファミリーのテーブルに対して、TO VOLUME または TO DISK 句を伴う TTL テーブル式 に基づくバックグラウンドでのデータ移動を停止します。
テーブルが存在しない場合でも Ok. を返します。データベースが存在しない場合にはエラーを返します。
SYSTEM START MOVES
MergeTree ファミリーのテーブルに対して、TO VOLUME および TO DISK 句を含む TTL テーブル式 に従ってバックグラウンドでデータ移動を開始します。
テーブルが存在しない場合でも Ok. を返し、データベースが存在しない場合にはエラーを返します。
SYSTEM SYSTEM UNFREEZE
指定した名前の凍結されたバックアップを、すべてのディスクから削除します。個々のパーツの凍結解除については ALTER TABLE table_name UNFREEZE WITH NAME を参照してください。
SYSTEM WAIT LOADING PARTS
テーブル内の非同期で読み込み中のすべてのデータパーツ(古いバージョンのデータパーツ)が読み込み完了するまで待機します。
ReplicatedMergeTree テーブルの管理
ClickHouse は、ReplicatedMergeTree テーブルにおけるバックグラウンドで行われるレプリケーション関連の処理を管理できます。
SYSTEM STOP FETCHES
ReplicatedMergeTree ファミリーのテーブルにおいて、挿入されたパーツのバックグラウンドフェッチを停止します。
テーブルエンジンの種類や、テーブルやデータベースの存在有無にかかわらず、常に Ok. を返します。
SYSTEM START FETCHES
ReplicatedMergeTree ファミリーのテーブルに対して、挿入されたパーツのバックグラウンドフェッチを開始する機能を提供します。
テーブルエンジンの種類に関係なく、またテーブルやデータベースが存在しない場合でも、常に Ok. を返します。
SYSTEM STOP REPLICATED SENDS
ReplicatedMergeTree ファミリーのテーブルに対して、新しく挿入されたパーツをクラスタ内の他のレプリカへバックグラウンド送信する処理を停止できるようにします。
SYSTEM START REPLICATED SENDS
ReplicatedMergeTree ファミリーに属するテーブルに対して、新しく挿入されたパーツをクラスタ内の他のレプリカへバックグラウンドで送信する処理を開始できるようにします。
SYSTEM STOP REPLICATION QUEUES
ReplicatedMergeTree ファミリーに属するテーブルについて、Zookeeper に保存されているレプリケーションキューからのバックグラウンドのフェッチタスクを停止できるようにします。停止対象となるバックグラウンドタスクの種類は、マージ、フェッチ、ミューテーション、ON CLUSTER 句付きの DDL 文です。
SYSTEM START REPLICATION QUEUES
ReplicatedMergeTree ファミリーに属するテーブルについて、ZooKeeper に保存されているレプリケーションキューからバックグラウンドのフェッチタスクを開始できるようにします。可能なバックグラウンドタスクの種類は、マージ、フェッチ、ミューテーション、ON CLUSTER 句付きの DDL 文です。
SYSTEM STOP PULLING REPLICATION LOG
ReplicatedMergeTree テーブルで、レプリケーションログからレプリケーションキューへの新規エントリの取り込みを停止します。
SYSTEM START PULLING REPLICATION LOG
SYSTEM STOP PULLING REPLICATION LOG を取り消します。
SYSTEM SYNC REPLICA
ReplicatedMergeTree テーブルがクラスタ内の他のレプリカと同期されるまで待機しますが、receive_timeout 秒を上限とします。
このステートメントを実行すると、[db.]replicated_merge_tree_family_table_name は共通のレプリケーションログからコマンドを自身のレプリケーションキューに取り込み、その後クエリはレプリカが取得したすべてのコマンドを処理し終えるまで待機します。以下の修飾子がサポートされています:
IF EXISTS(25.6 以降で利用可能)を付けると、テーブルが存在しない場合でもクエリはエラーをスローしません。これは、新しいレプリカをクラスターに追加する際に有用です。この場合、レプリカはすでにクラスター構成の一部になっていても、テーブルの作成と同期の処理中であることがあります。STRICT修飾子が指定された場合、クエリはレプリケーションキューが空になるまで待機します。レプリケーションキューに新しいエントリが継続的に追加される場合、このSTRICTクエリが完了しない可能性があります。LIGHTWEIGHT修飾子が指定された場合、クエリはGET_PART、ATTACH_PART、DROP_RANGE、REPLACE_RANGE、DROP_PARTエントリが処理されるまでのみ待機します。 さらに、LIGHTWEIGHT 修飾子はオプションの FROM 'srcReplicas' 句をサポートしており、'srcReplicas' はソースレプリカ名のカンマ区切りリストです。この拡張により、指定されたソースレプリカから発生したレプリケーションタスクのみに対象を絞った同期が可能になります。PULL修飾子が指定された場合、クエリは ZooKeeper から新しいレプリケーションキューエントリを取得しますが、何かが処理されるのを待機することはありません。
SYNC DATABASE REPLICA
指定したレプリケーテッドデータベースが、そのデータベースの DDL キューからのすべてのスキーマ変更を反映し終えるまで待機します。
構文
SYSTEM RESTART REPLICA
ReplicatedMergeTree テーブルに対して ZooKeeper セッションの状態を再初期化できるようにし、現在の状態を信頼できる情報源である ZooKeeper 上の状態と比較し、必要に応じて ZooKeeper のキューにタスクを追加します。
ZooKeeper のデータに基づくレプリケーションキューの初期化は、ATTACH TABLE ステートメントの場合と同じ方法で行われます。短時間のあいだ、そのテーブルはあらゆる操作に対して利用できなくなります。
SYSTEM RESTORE REPLICA
データ自体は存在している「可能性がある」が、ZooKeeper のメタデータが失われたレプリカを復元します。
読み取り専用の ReplicatedMergeTree テーブルに対してのみ動作します。
以下のような状況の後にクエリを実行できます:
- ZooKeeper のルート
/が失われた場合。 - レプリカのパス
/replicasが失われた場合。 - 個々のレプリカのパス
/replicas/replica_name/が失われた場合。
レプリカはローカルで見つかったパーツをアタッチし、それらに関する情報を ZooKeeper に送信します。 メタデータ消失前にレプリカ上に存在していたパーツは、古くなっていない限り他のレプリカから再取得されません(つまり、レプリカの復元がネットワーク経由ですべてのデータを再ダウンロードすることを意味するわけではありません)。
すべての状態のパーツが detached/ フォルダに移動されます。データ消失前にアクティブだった(コミット済みの)パーツはアタッチされます。
SYSTEM RESTORE DATABASE REPLICA
データは存在している可能性があるが、Zookeeperのメタデータが失われた場合にレプリカを復元します。
構文
例
構文
別の構文:
例
複数のサーバーでテーブルを作成します。ZooKeeper 内のレプリカのメタデータが失われると、そのテーブルはメタデータがない状態のため読み取り専用としてアタッチされます。最後のクエリはすべてのレプリカで実行する必要があります。
別の方法:
SYSTEM RESTART REPLICAS
すべての ReplicatedMergeTree テーブルについて ZooKeeper セッションの状態を再初期化する機能です。現在の状態を唯一の正とみなす ZooKeeper 上の状態と比較し、必要に応じて ZooKeeper のキューにタスクを追加します。
SYSTEM DROP FILESYSTEM CACHE
このコマンドにより、ファイルシステムキャッシュを削除できます。
SYSTEM SYNC FILE CACHE
これは非常に負荷が高く、誤用される可能性があります。
sync システムコールを実行します。
SYSTEM LOAD PRIMARY KEY
指定したテーブル、またはすべてのテーブルの PRIMARY KEY をロードします。
SYSTEM UNLOAD PRIMARY KEY
指定したテーブル、またはすべてのテーブルの主キーをアンロードします。
リフレッシャブルmaterialized view の管理
リフレッシャブルmaterialized view によって実行されるバックグラウンドタスクを制御するためのコマンド群です。
使用中は system.view_refreshes を監視してください。
SYSTEM REFRESH VIEW
指定した VIEW のスケジュール外リフレッシュを即時に実行します。
SYSTEM WAIT VIEW
現在実行中のリフレッシュが完了するまで待機します。リフレッシュが失敗した場合は例外をスローします。リフレッシュが実行されていない場合は直ちに完了し、前回のリフレッシュが失敗している場合は例外をスローします。
SYSTEM STOP [REPLICATED] VIEW, STOP VIEWS
指定したVIEW、またはすべての更新可能なVIEWの定期的な更新を無効化します。更新処理が進行中の場合は、その処理も中断します。
VIEWがReplicatedまたはSharedデータベース内にある場合、STOP VIEWは現在のレプリカにのみ影響し、STOP REPLICATED VIEWはすべてのレプリカに影響します。
停止状態はサーバーの再起動をまたいで保持されることはありません。再起動後は、VIEWのリフレッシュは設定済みのスケジュールに従って再開されます。
ReplicatedまたはSharedデータベースでは、SYSTEM STOP VIEWは現在のレプリカにのみ影響します。すべてのレプリカでの更新を停止するには、SYSTEM STOP REPLICATED VIEWを使用してください。
SYSTEM START [REPLICATED] VIEW, START VIEWS
指定したビュー、またはすべてのリフレッシュ可能なビューに対して、定期的なリフレッシュを有効化します。即時のリフレッシュは行われません。
ビューが Replicated または Shared データベース内にある場合、START VIEW は STOP VIEW の効果を打ち消し、START REPLICATED VIEW は STOP REPLICATED VIEW の効果を打ち消します。
SYSTEM CANCEL VIEW
指定されたビューについて現在のレプリカ上でリフレッシュが実行中の場合、それを中断してキャンセルします。実行中でない場合は何もしません。
SYSTEM WAIT VIEW
実行中のリフレッシュが完了するまで待機します。リフレッシュが実行されていない場合は、即座に戻ります。直前のリフレッシュ試行が失敗している場合は、エラーを返します。
新しいリフレッシャブルmaterialized view を(EMPTY キーワードなしで)作成した直後に、初回リフレッシュの完了を待つ目的で使用できます。
ビューが Replicated または Shared データベース内にあり、別のレプリカでリフレッシュが実行中の場合、そのリフレッシュが完了するまで待機します。