メインコンテンツまでスキップ
メインコンテンツまでスキップ

ATTACH ステートメント

データベースを別のサーバーに移動する際などに、テーブルまたは辞書をアタッチします。

構文

このクエリはディスク上にデータを作成せず、データがすでに適切な場所にあることを前提とします。そして、指定されたテーブル、辞書、またはデータベースに関する情報をサーバーに追加します。ATTACH クエリを実行した後、サーバーはテーブル、辞書、またはデータベースの存在を認識します。

テーブルが以前にデタッチされていた場合(DETACH クエリ)、その構造が知られているので、構造を定義することなく省略形を使用できます。

既存のテーブルをアタッチ

構文

このクエリはサーバー起動時に使用されます。サーバーはテーブルメタデータを ATTACH クエリを含むファイルとして保存し、起動時に単に実行されます(サーバー上で明示的に作成される一部のシステムテーブルは例外です)。

テーブルが永久にデタッチされていた場合、サーバー起動時には再接続されないため、ATTACH クエリを明示的に使用する必要があります。

新しいテーブルを作成し、データをアタッチ

テーブルデータへの指定されたパスを使用する場合

このクエリは、提供された構造で新しいテーブルを作成し、user_files 内の指定されたディレクトリからテーブルデータをアタッチします。

構文

クエリ:

結果:

指定されたテーブル UUID を使用する場合

このクエリは、提供された構造で新しいテーブルを作成し、指定された UUID のテーブルからデータをアタッチします。 これは Atomic データベースエンジンによってサポートされています。

構文

MergeTree テーブルを ReplicatedMergeTree としてアタッチ

非レプリケートの MergeTree テーブルを ReplicatedMergeTree としてアタッチすることを許可します。ReplicatedMergeTree テーブルは default_replica_path および default_replica_name 設定の値を使用して作成されます。レプリケートされたテーブルを通常の MergeTree としてアタッチすることも可能です。

このクエリでは、ZooKeeper 内のテーブルのデータには影響しません。これは、アタッチ後に SYSTEM RESTORE REPLICA を使って ZooKeeper にメタデータを追加したり、SYSTEM DROP REPLICA ... FROM ZKPATH ... でクリアする必要があることを意味します。

既存の ReplicatedMergeTree テーブルにレプリカを追加しようとしている場合、変換された MergeTree テーブル内のすべてのローカルデータがデタッチされることに注意してください。

構文

テーブルをレプリケートに変換

テーブルをレプリケートしないように変換

テーブルの ZooKeeper パスとレプリカ名を取得:

結果:

レプリケートしないテーブルとしてアタッチし、ZooKeeper からレプリカのデータを削除:

既存の辞書をアタッチ

以前にデタッチされた辞書をアタッチします。

構文

既存のデータベースをアタッチ

以前にデタッチされたデータベースをアタッチします。

構文