Spanner Omni は、Spanner のダウンロード可能なバージョンです。これを使用すると、オンプレミスのデータセンター、パブリック クラウド、ノートパソコンに Google の分散データベース テクノロジーをデプロイできます。Paxos ベースのレプリケーション、自動シャーディング、ソフトウェア定義の TrueTime API を使用して、水平方向の拡張性、高可用性、ACID 準拠、強力な外部整合性など、Spanner のコア機能を実現します。
Spanner Omni は、リレーショナル、グラフ、ベクトル、Key-Value のデータモデルを全文検索機能と運用分析機能に統合します。Spanner と同様に、Spanner Omni は GoogleSQL、PostgreSQL、Spanner Graph Languageをサポートしています。環境間の復元性、アプリケーションのポータビリティ、さまざまな環境での一貫した開発スタックを実現できます。Spanner Omni は、次のデプロイ オプションをサポートしています。
- 仮想マシン
- Linux コンテナ
- Kubernetes クラスタ
Spanner Omni のプレビュー バージョンには、エンタープライズ セキュリティとデータ保護機能を除く、Spanner のコア機能が含まれています。すべての機能を利用できるエディションの早期アクセスについては、Google にお問い合わせください。
主な機能
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 サーバーが 1 つのゾーンに属します。このデプロイ構成には、少なくとも 3 台のサーバーを使用します。このトポロジでは、単一ゾーンの障害が停止を引き起こす可能性があるため、可用性の目標が低くなります。
マルチゾーン(またはリージョン) - Spanner Omni は、複数のゾーンにサーバーを分散します。すべてのゾーンが単一の場所にあります。マルチゾーン デプロイの場合は、少なくとも 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コマンドが、トラブルシューティング用のログ、トレース、スレッド スタックを収集します。