メインコンテンツへスキップ
メインコンテンツへスキップ

clickhouse-static-files-disk-uploader

指定した ClickHouse テーブルのメタデータを含むデータディレクトリを出力します。このメタデータを使用して、web ディスクをバックエンドとする読み取り専用データセットに基づいた ClickHouse テーブルを別のサーバー上に作成できます。

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

使い方

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

コマンド

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

データパス:「/Users/john/store/bcc/bccc1cfd-d43d-43cf-a5b6-1cda8178f1ee」、出力先パス:「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 ディスクを使用してテーブルを作成し、別のサーバー上のデータセットにテーブルをアタッチしています。