Spanner Omni の概要

Spanner Omni は、Google の分散データベース技術をオンプレミス データセンター、パブリック クラウド、ノートパソコンにデプロイできる Spanner のダウンロード版です。Paxos ベースのレプリケーション、自動シャーディング、ソフトウェア定義の TrueTime API を使用して、水平スケーラビリティ、高可用性、ACID 準拠、強力な外部整合性など、Spanner のコア機能を提供します。

Spanner Omni は、リレーショナル、グラフ、ベクトル、Key-Value のデータモデルを、全文検索と運用分析の機能と統合します。Spanner と同様に、Spanner Omni は GoogleSQLPostgreSQL、および Spanner Graph 言語をサポートしています。 さまざまな環境で、環境をまたがる復元性、アプリケーションの移植性、一貫した開発スタックを実現できます。 Spanner Omni は、次のデプロイ オプションをサポートしています。

  • 仮想マシン
  • Linux コンテナ
  • Kubernetes クラスタ

Spanner Omni プレビュー版の制限事項

Spanner Omni のプレビュー版には、Spanner のコア機能が含まれていますが、次のような重要な例外があります。

  • エンタープライズ セキュリティ機能と TLS 暗号化はサポートされていません。

  • Spanner Omni は、デプロイの作成から 90 日後にデータの書き込みを停止します。

  • バックアップ復元 はサポートされていません。

すべての機能を備えたエディションへの早期アクセスについては、 Google にお問い合わせください

主な機能

Spanner Omni には次の機能があります。

  • デプロイの柔軟性: Spanner Omni は Linux または macOS で実行できます。Spanner Omni は、パブリック クラウド環境(Google Kubernetes Engine(GKE)や Cloud Storage など) Google Cloud 、Amazon Elastic Kubernetes Service(Amazon EKS)や Amazon Elastic Compute Cloud(Amazon EC2)、オンプレミス、ノートパソコンをサポートしています。

  • 高いスケーラビリティ: Spanner Omni は、データを自動的にシャーディングし、シャードのバランスを取ることで、読み取りと書き込みの伸縮自在なスケーリングを実現できます。

  • 高可用性: Spanner Omni には複数の デプロイ トポロジがあります。Spanner Omni は、ゾーンまたはクラスタの障害発生時に高可用性を提供するために、マルチゾーン デプロイとマルチクラスタ デプロイを提供します。

  • 強力な外部整合性: Spanner Omni は、任意の環境に デプロイできるソフトウェア ベースの TrueTime を使用して、グローバルな トランザクション整合性を提供します。

  • 相互運用可能なマルチモデル: Spanner Omni は、複数の データモデル(リレーショナル、Key-Value、グラフ、ベクトル)と機能 (全文検索、分析処理)をサポートし、さまざまなデータモデル間でモデルをまたがるクエリ と ACID 準拠のトランザクションを提供します。

  • 使い慣れたインターフェース: 対話型クエリ用の SQL シェルを含む Spanner CLI を使用してデータとやり取りします。Spanner Omni は、GoogleSQL、PostgreSQL 言語、GQL をサポートしており、既存のアプリケーションを移行できます。

デプロイ トポロジ

Spanner Omni は、リージョン、ゾーン、サーバーの階層を使用してデプロイ構成を定義します。Spanner Omni には、次のデプロイ構成があります。

  • 単一サーバー - Spanner Omni は単一のマシンで実行されます。 このトポロジは、単一のマシンで実行されるため、ローカル開発に適しています。このトポロジをアップグレードすると、ダウンタイムが発生します。

  • 単一ゾーン(またはゾーン) - すべての Spanner Omni サーバーが 1 つのゾーンに属しています。このデプロイ構成では、3 台以上のサーバーを使用してください。最適なアップタイムを実現するため、このトポロジでは可用性の目標が低くなります。これは、単一ゾーンの障害が原因で停止が発生する可能性があるためです。

  • マルチゾーン(またはリージョン) - Spanner Omni は、複数のゾーンに サーバーを分散します。すべてのゾーンが 1 つの場所にあります。マルチゾーン デプロイの場合は、3 つ以上のゾーンを使用してください。各ゾーンに少なくとも 1 台のサーバーが必要です。各ゾーンで 3 台のサーバーを使用することをおすすめします。このデプロイ構成は、単一ゾーン デプロイよりも可用性が高くなります。

  • マルチクラスタ(またはマルチリージョン) - Spanner Omni サーバーは、複数のクラスタにまたがる複数のゾーンに存在します。高可用性を実現するには、2 つ以上のクラスタにまたがる 3 つのゾーンを使用し、各ゾーンに 3 台以上のサーバーを構成します。

システム要件

パフォーマンスを最適化するには、サーバー デプロイの最小推奨要件として次のものを使用します。

環境 OS またはプラットフォーム 推奨ハードウェア
オンプレミス Linux(RHEL 9、Ubuntu 22) vCPU あたり 4 GB の RAM、20 GB 以上のディスク容量
クラウド(Google Cloud および AWS) VM または Kubernetes Pod 4 vCPU、VM または Kubernetes Pod あたり 16 GB の RAM
デベロッパー(ノートパソコン、デスクトップ) macOS(M1、M2、M3) 4 GB の RAM、10 GB のディスク容量

ストレージには、ext4 ファイル システムを備えた専用のソリッド ステート ドライブ(SSD)ストレージをおすすめします。

接続と開発

Spanner Omni に接続してアプリケーションを開発するには、次のツールを検討してください。

  • クライアント ライブラリ: Spanner Omni エンドポイントを指定することで、既存の Spanner クライアント ライブラリ(Java と Go)を使用できます。たとえば、Java では setExperimentalHost("http://localhost:15000") を設定します。

  • PGAdapter: このプロキシを使用すると、既存の PostgreSQL アプリケーションは 標準の PostgreSQL ワイヤ プロトコルを使用して Spanner Omni PostgreSQL 言語データベースに接続できます。

  • 診断: 専用の spanner admin diagnostics create コマンド は、トラブルシューティング用のログ、トレース、スレッド スタックを収集します。