Spanner Omni の概要

Spanner Omni は、Spanner のデプロイ可能なバージョンです。これにより、オンプレミスのデータセンター、 Google Cloud、Amazon Web Services(AWS)などのパブリック クラウド、ノートパソコンで Google の分散データベース テクノロジーを実行できます。Paxos ベースのレプリケーション、自動シャーディング、ソフトウェア定義の TrueTime API を使用して、水平方向のスケーラビリティ、高可用性、ACID 準拠、強整合性などの Spanner のコア機能を提供します。

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

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

主な機能

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

  • 柔軟なデプロイ: Linux または macOS で Spanner Omni を実行します。Spanner Omni は、 Google Cloud (Google Kubernetes Engine(GKE)や Cloud Storage など)や 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 では、4 個以下の vCPU を使用する単一サーバー構成でデプロイされている場合、バックアップと復元機能を制限なく使用できます。このトポロジにアップグレードすると、ダウンタイムが発生します。

  • シングルゾーン(またはゾーン) - すべての 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 VM または Kubernetes Pod あたり 4 個の vCPU、16 GB の RAM
デベロッパー(ノートパソコン、デスクトップ) macOS(M1、M2、M3) 4 GB の RAM、10 GB のディスク容量

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

接続と開発

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

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

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

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