Citusとは何ですか?Citus は、データとクエリをクラスター内の複数のノードに分散する、Postgres のオープンソース拡張機能です。Citus は Postgres の拡張機能(フォークではありません)であるため、Citus を使用すると Postgres も同時に使用することになります。最新の Postgres 機能、ツール、エコシステムを活用できます。 Citusは、シャーディング、分散SQLエンジン、参照テーブル、分散テーブルなどの機能を備えた分散データベースへとPostgresを変換します。並列処理、メモリ内データ量の増加、そしてより高いI/O帯域幅を組み合わせることで、CitusはマルチテナントSaaSアプリケーション、顧客向けリアルタイム分析ダッシュボード、そして時系列ワークロードのパフォーマンスを大幅に向上させます。 Citus を入手する 3 つの方法:1. オープンソース: Citus オープンソース コードをダウンロードするか、GitHub の Citus リポジトリにアクセスできます。 https://www.citusdata.com/download https://github.com/citusdata/citus 2. エンタープライズ ソフトウェア: Citus Enterprise は、Citus を手動で管理したい人向けに、24 時間 365 日のサポート付きのソフトウェア サブスクリプションとして利用できます。 3. マネージド データベース サービス: Citus は、Azure Database for PostgreSQL マネージド サービスに組み込まれたデプロイメント オプションである Hyperscale (Citus) として Azure 上で提供されます。 https://docs.microsoft.com/azure/postgresql/hyperscale Citus はどこまで拡大できるでしょうか? Citusは、ワーカーノードを追加することで水平方向に、ワーカー/コーディネーターをアップグレードすることで垂直方向にスケールします。実際に、Citusのお客様は以下のスケールを実現しており、さらに大きな成長の可能性を秘めています。 アルゴリア
ヒープ
チャートビート
ペックス
ミックスランク
Citusを使用するタイミングマルチテナントデータベースほとんどのB2Bアプリケーションでは、データモデルにテナント、顧客、またはアカウントの概念が組み込まれています。このモデルでは、データベースは複数のテナントにサービスを提供し、各テナントのデータは他のテナントのデータとは分離されています。 Citus は、このワークロードに完全なSQLカバレッジを提供し、リレーショナルデータベースを10万テナント以上に拡張できます。また、マルチテナント向けの新機能も追加されています。例えば、Citus はテナント分離をサポートし、大規模テナントのパフォーマンス保証を提供し、テナント間のデータ重複を削減する参照テーブルの概念を備えています。 これらの機能により、テナントデータを複数のマシンにまたがって拡張し、CPU、メモリ、ディスクリソースを簡単に追加できます。さらに、複数のテナント間で同じデータベーススキーマを共有することで、ハードウェアリソースを効率的に活用し、データベース管理を簡素化できます。 マルチテナント アプリケーションにおける Citus の利点:
リアルタイム分析Citusは、大規模データセットに対するリアルタイムクエリをサポートしています。これらのクエリは、急速に成長するイベントシステムや時系列データを扱うシステムでよく使用されます。ユースケースの例としては、以下のようなものがあります。
Citus のメリットは、クエリ実行を並列化し、クラスター内の稼働データベース数に応じて線形にスケーリングできることです。リアルタイムアプリケーションにおける Citus の利点には、以下のようなものがあります。
使用上の注意Citus は PostgreSQL の分散機能を拡張しますが、すべてのワークロードを直接的に置き換えるものではありません。高性能な Citus クラスターを実現するには、使用するデータモデル、ツール、SQL 機能を慎重に検討する必要があります。 ツールと SQL 機能について考える良い方法は次のとおりです。ワークロードがここで説明したユースケースと一致し、サポートされていないツールまたはクエリに遭遇した場合は、通常、適切な回避策があります。 Citusが適していない場合ワークロードによっては、堅牢な分散データベースを必要としない一方で、ワーカーノード間で大量の情報フローを必要とするものもあります。前者の場合、Citusは不要ですが、後者の場合、Citusのパフォーマンスは一般的に低くなります。以下に例を示します。
|