概要
S3BackedMergeTree を使用して、MergeTree engine のストレージとして S3 を利用する機能をサポートしています。このテーブルエンジンにより、MergeTree engine の insert とクエリ性能を維持しながら、S3 のスケーラビリティとコスト面での利点を活用できます。
ストレージとコンピュートを分離したアーキテクチャの実装と運用は、標準的な ClickHouse デプロイメントに比べて複雑になる点に注意してください。このガイドで説明するように、セルフマネージドの ClickHouse でもストレージとコンピュートの分離は可能ですが、設定不要でこのアーキテクチャで ClickHouse を利用できる SharedMergeTree テーブルエンジン を備えた ClickHouse Cloud の利用を推奨します。
このガイドは、ClickHouse バージョン 22.8 以降を使用していることを前提としています。
1. ClickHouse のディスクとして S3 を使用する
ディスクの作成
config.d ディレクトリに新しいファイルを作成します。
BUCKET、ACCESS_KEY_ID、SECRET_ACCESS_KEY を、データの保存先となる AWS バケット の詳細に置き換えます。
region を指定したり、カスタム HTTP header を送信したりできます。関連する設定の一覧はこちらを参照してください。
また、access_key_id と secret_access_key は以下のものに置き換えることもできます。これにより、環境変数と Amazon EC2 メタデータから認証情報の取得が試行されます。
clickhouse ユーザーおよびグループに変更する必要があります:
2. S3 をバックエンドとするテーブルを作成する
S3BackedMergeTree を指定する必要がなかった点に注意してください。ClickHouse は、テーブルがストレージに S3 を使用していることを検出すると、内部的にエンジンの種類を自動的に変換します。
テーブルが正しいポリシーで作成されていることを確認します。
3. 耐障害性のためのレプリケーションの実装 (任意)
ReplicatedMergeTree テーブルエンジンを使用することで実現できます。詳細については、次のガイドを参照してください。