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

ATTACH Statement

テーブルまたは辞書を添付します。たとえば、データベースを別のサーバーに移動するときです。

構文

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

以前に切り離されたテーブル(DETACH クエリ)であれば、その構造が知られているため、構造を定義せずにショートハンドを使用できます。

既存のテーブルを添付

構文

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

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

新しいテーブルを作成し、データを添付

テーブルデータへの指定パスで

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

構文

クエリ:

結果:

指定されたテーブルUUIDで

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

構文

MergeTreeテーブルをReplicatedMergeTreeとして添付

非レプリケートのMergeTreeテーブルをReplicatedMergeTreeとして添付します。ReplicatedMergeTreeテーブルは、default_replica_pathdefault_replica_name 設定の値を使って作成されます。また、レプリケートされたテーブルを通常のMergeTreeとして添付することも可能です。

このクエリでは、ZooKeeper内のテーブルデータには影響しません。つまり、添付後に SYSTEM RESTORE REPLICA を使用してZooKeeperにメタデータを追加するか、SYSTEM DROP REPLICA ... FROM ZKPATH ... でクリアする必要があります。

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

構文

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

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

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

結果:

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

既存の辞書を添付

以前に切り離された辞書を添付します。

構文

既存のデータベースを添付

以前に切り離されたデータベースを添付します。

構文