Spanner Omni は、Google の分散データベース技術をオンプレミス データセンター、パブリック クラウド、ノートパソコンにデプロイできる Spanner のダウンロード版です。Paxos ベースのレプリケーション、自動シャーディング、ソフトウェア定義の TrueTime API を使用して、水平スケーラビリティ、高可用性、ACID 準拠、強力な外部整合性など、Spanner のコア機能を提供します。
Spanner Omni は、リレーショナル、グラフ、ベクトル、Key-Value のデータモデルを、全文検索と運用分析の機能と統合します。Spanner と同様に、Spanner Omni は GoogleSQL、 PostgreSQL、および 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コマンド は、トラブルシューティング用のログ、トレース、スレッド スタックを収集します。