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

clickhouse-static-files-disk-uploader

指定された ClickHouse テーブルのメタデータを含むデータディレクトリを出力します。このメタデータは、web ディスクによってバックアップされた読み取り専用データセットを含む ClickHouse テーブルを異なるサーバーに作成するために使用できます。

このツールをデータの移行に使用しないでください。代わりに、BACKUPRESTORE コマンド を使用してください。

使用法

$ clickhouse static-files-disk-uploader [args]

コマンド

コマンド説明
-h, --helpヘルプ情報を表示します
--metadata-path [path]指定されたテーブルのメタデータを含むパス
--test-modeテストモードを有効にし、指定された URL にテーブルメタデータで PUT リクエストを送信します
--linkファイルを出力ディレクトリにコピーする代わりにシンボリックリンクを作成します
--url [url]テストモードのためのウェブサーバーの URL
--output-dir [dir]非テストモードでファイルを出力するディレクトリ

指定されたテーブルのメタデータのパスを取得する

clickhouse-static-files-disk-uploader を使用する際は、希望するテーブルのメタデータパスを取得する必要があります。

  1. ターゲットテーブルとデータベースを指定して次のクエリを実行します:

SELECT data_paths
  FROM system.tables
  WHERE name = 'mytable' AND database = 'default';
  1. これにより、指定されたテーブルのデータディレクトリへのパスが返されるはずです:

┌─data_paths────────────────────────────────────────────┐
│ ['./store/bcc/bccc1cfd-d43d-43cf-a5b6-1cda8178f1ee/'] │
└───────────────────────────────────────────────────────┘

テーブルメタデータディレクトリをローカルファイルシステムに出力する

ターゲット出力ディレクトリ output と指定されたメタデータパスを使用して、次のコマンドを実行します:

$ clickhouse static-files-disk-uploader --output-dir output --metadata-path ./store/bcc/bccc1cfd-d43d-43cf-a5b6-1cda8178f1ee/

成功した場合、次のメッセージが表示され、output ディレクトリには指定されたテーブルのメタデータが含まれているはずです:

Data path: "/Users/john/store/bcc/bccc1cfd-d43d-43cf-a5b6-1cda8178f1ee", destination path: "output"

テーブルメタデータディレクトリを外部 URL に出力する

このステップは、データディレクトリをローカルファイルシステムに出力するのと似ていますが、--test-mode フラグが追加されます。出力ディレクトリを指定する代わりに、--url フラグを使用してターゲット URL を指定する必要があります。

test モードが有効な場合、テーブルメタデータディレクトリは指定された URL に PUT リクエストを介してアップロードされます。

$ clickhouse static-files-disk-uploader --test-mode --url http://nginx:80/test1 --metadata-path ./store/bcc/bccc1cfd-d43d-43cf-a5b6-1cda8178f1ee/

テーブルメタデータディレクトリを使用して ClickHouse テーブルを作成する

テーブルメタデータディレクトリを取得すると、それを使用して別のサーバーに ClickHouse テーブルを作成できます。

デモを示すこの GitHub リポジトリをご覧ください。この例では、web ディスクを使用してテーブルを作成し、異なるサーバー上のデータセットにテーブルを接続できるようにします。