Skip to main content
Edit this page

clickhouse-static-files-disk-uploader

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

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

使用法

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

コマンド

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

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

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 ディスクを使用してテーブルを作成し、異なるサーバー上のデータセットにテーブルをアタッチします。