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

clickhouse-static-files-disk-uploader

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

データを移行するためにこのツールを使用しないでください。代わりに、BACKUPおよびRESTOREコマンドを使用してください。

使用法

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

コマンド

コマンド説明
-h, --helpヘルプ情報を表示します
--metadata-path [path]指定されたテーブルのメタデータが含まれるパス
--test-modeテストモードを有効にし、指定されたURLにテーブルメタデータでPUTリクエストを送信します
--linkファイルを出力ディレクトリにコピーする代わりにシンボリックリンクを作成します
--url [url]テストモードのためのWebサーバーの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モードが有効になっていると、テーブルメタデータディレクトリはPUTリクエストを介して指定されたURLにアップロードされます。

$ 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ディスクを使用してテーブルを作成しており、これにより異なるサーバーのデータセットにテーブルを接続できます。