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

共有カタログと共有データベースエンジン

ClickHouse Cloud(およびファーストパーティパートナークラウドサービス)でのみ利用可能です

Shared Catalog はクラウドネイティブなコンポーネントであり、ClickHouse Cloud 内でステートレスエンジンを使用するデータベースおよびテーブルのメタデータと DDL 操作をレプリカ間で複製する役割を担います。これにより、これらのオブジェクトに対して一貫性があり集中管理された状態管理が可能になり、動的または一部がオフラインの環境でもメタデータの整合性を確保できます。

Shared Catalog はテーブル本体を複製するわけではなく、DDL クエリとメタデータを複製することで、すべてのレプリカがデータベースおよびテーブル定義を一貫した状態で参照できるようにします。

次のデータベースエンジンに対するレプリケーションをサポートします。

  • Shared
  • PostgreSQL
  • MySQL
  • DataLakeCatalog

アーキテクチャとメタデータストレージ

Shared Catalog 内のすべてのメタデータおよび DDL クエリ履歴は、ZooKeeper に集中管理されます。ローカルディスク上には一切永続化されません。このアーキテクチャにより、次の点が保証されます。

  • すべてのレプリカ間で一貫した状態
  • コンピュートノードをステートレスに保てること
  • 高速かつ信頼性の高いレプリカのブートストラップ

共有データベースエンジン

共有データベースエンジン は Shared Catalog と連携して、SharedMergeTree のような ステートレスなテーブルエンジン を使用するテーブルを持つデータベースを管理します。これらのテーブルエンジンは永続状態をディスクに書き込まず、動的なコンピュート環境と互換性があります。

共有データベースエンジンは Replicated データベースエンジンの動作を基盤として拡張・改善し、さらなる保証と運用上の利点を提供します。

主な利点

  • CREATE TABLE ... AS SELECT のアトミック実行
    テーブル作成とデータ挿入はアトミックに実行されます。すなわち、操作全体が完了するか、テーブルは作成されないかのどちらかになります。

  • データベース間での RENAME TABLE
    テーブルをデータベース間でアトミックに移動できます:

    RENAME TABLE db1.table TO db2.table;
    
  • UNDROP TABLE による自動テーブル復旧
    削除されたテーブルはデフォルトで 8 時間保持され、その間は復元できます:

    UNDROP TABLE my_table;
    

    保持期間はサーバー設定で構成可能です。

  • コンピュート間の分離の向上
    DROP クエリを処理するためにすべてのレプリカがオンラインである必要がある Replicated データベースエンジンとは異なり、Shared Catalog はメタデータの削除を集中管理で実行します。これにより、一部のレプリカがオフラインでも操作を成功させることができます。

  • 自動メタデータレプリケーション
    Shared Catalog は、データベース定義が起動時にすべてのサーバーへ自動的にレプリケートされることを保証します。運用者は新しいインスタンス上でメタデータを手動で設定したり同期したりする必要がありません。

  • 集中管理されたバージョン付きメタデータ状態
    Shared Catalog は ZooKeeper に唯一の信頼できる情報源を保持します。レプリカが起動すると、最新状態を取得し、その差分を適用して整合性を確保します。クエリ実行中は、正しさを保証するために、システムが他のレプリカが少なくとも必要なメタデータバージョンに到達するまで待機することができます。

ClickHouse Cloud での利用方法

エンドユーザー側では、Shared Catalog と Shared データベースエンジンを利用するために特別な設定は必要ありません。データベースの作成方法はこれまでと同じです。

CREATE DATABASE my_database;

ClickHouse Cloud では、データベースに Shared データベースエンジンが自動的に割り当てられます。そのようなデータベース内で stateless エンジンを使用して作成されたテーブルはすべて、自動的に Shared Catalog のレプリケーションおよびコーディネーション機能を利用できます。

まとめ

Shared Catalog と Shared データベースエンジンは次の機能を提供します:

  • ステートレスエンジン向けの、信頼性が高い自動メタデータレプリケーション
  • ローカルにメタデータを永続化しないステートレスなコンピュート
  • 複雑な DDL 向けのアトミックな操作
  • 弾力的・一時的、あるいは一部がオフラインとなるようなコンピュート環境へのサポート向上
  • ClickHouse Cloud ユーザーにとってのシームレスな利用体験

これらの機能により、Shared Catalog は ClickHouse Cloud におけるスケーラブルでクラウドネイティブなメタデータ管理の基盤として機能します。