Spanner Omni で開発する

サポートされている Spanner 機能を使用して、Spanner Omni でアプリケーションを開発します。多くの機能は Spanner と共有されていますが、Spanner Omni にはクライアント ライブラリ、コマンドライン インターフェース(CLI)、コンソール機能に違いがあります。

サポートされている Spanner 開発機能は次のとおりです。

主な違い

Spanner の開発エクスペリエンスの多くは適用されますが、Spanner Omni では次の点が異なります。

  • サポートされているクライアント ライブラリ: Spanner Omni は、Java、Go、Python のクライアント ライブラリをサポートしています。

  • コマンドライン インターフェース(CLI): Spanner Omni CLI は、Google Cloud CLI とは異なる専用ツールです。構文は似ていますが、コマンドを実行するときに --instance フラグを指定する必要はありません。

  • コンソールの制限事項: Spanner Omni コンソールは読み取り専用であるため、デプロイやデータベースの変更には使用できません。

次の Spanner の機能とベスト プラクティスは、Spanner Omni に適用されます。

ベスト プラクティスとご活用例

以下のベスト プラクティスとユースケースに沿って、Spanner Omni 用のアプリケーションを設計して最適化します。

  • ゲーム データベースとしての Spanner: Spanner のスケーラビリティと整合性をゲーム バックエンドに使用します。

  • SQL のベスト プラクティス: パフォーマンスと効率性を高めるためにクエリを最適化します。ほとんどのコンセプトは Spanner Omni に適用されます。Spanner Omni は階層型ストレージをサポートしていないため、タイムスタンプ述語プッシュダウンなどのコンセプトが完全に適用されない場合があります。また、Spanner Omni にはクエリプランの可視化機能はありません。

言語フレームワーク

Spanner Omni を一般的な言語フレームワークと統合します。

Hibernate ORM

Hibernate オブジェクト リレーショナル マッピング(ORM)を使用して、Java オブジェクトを Spanner Omni テーブルにマッピングします。詳しくは以下をご覧ください。

GORM

Spanner Omni を、Go プログラミング言語のオブジェクト リレーショナル マッピング(ORM)ツールである GORM と統合します。Go アプリケーションで GORM のオブジェクト リレーショナル マッピング機能を使用する。詳しくは次の記事をご覧ください。

トランザクションと同時実行

Spanner Omni は、次のトランザクション管理機能をサポートしています。

分離レベル

Spanner Omni がサポートするさまざまな分離レベルを理解して、データの整合性を確保します。

最適化

これらの手法を使用して、トランザクションのパフォーマンスとスループットを最適化します。

ロック

明示的なロックを使用してデータへの同時アクセスを管理する方法について説明します。

データアクセスと変更

クライアント ライブラリ、CLI、DML などの標準の Spanner メソッドを使用して、データにアクセスして変更します。

クライアント ライブラリがセッションを管理する方法については、セッションをご覧ください。基盤となるセッションのコンセプトは Spanner Omni にも適用されますが、多重化されたセッションのみをサポートします。

データの読み取り

古い読み取りや直接読み取りなど、さまざまな方法で Spanner Omni からデータを読み取ります。

データの修正

DML、ミューテーション、または CLI を使用してデータを変更します。

データ型

Spanner Omni は、アプリケーションのデータを表すために次のデータ型をサポートしています。

開発とテスト

信頼性の高いパフォーマンスとエラー処理を確保するために、開発環境とアプリケーションの動作を構成します。

データ変更をストリーミングする

Spanner 変更ストリームは、挿入、更新、削除などのデータベースの変更をほぼリアルタイムで追跡します。DDL を使用して管理され、データベース全体または特定のテーブルの主キーや commit タイムスタンプなどの詳細をキャプチャします。Spanner と Spanner Omni の機能はほぼ同じですが、Spanner Omni では Dataflow はサポートされていません。

詳しくは、次をご覧ください。

Spanner 全文検索(FTS)を使用して、テーブル内の単語、フレーズ、数値を検索します。FTS は最新のコミット済みデータを読み取ります。

FTS の主な機能は次のとおりです。

FTS を使用するには、検索する列に検索インデックスを作成します。Spanner は、これらの列のデータを個々の単語に分解します。新しいデータが追加されると、インデックスがすぐに更新されます。

FTS 検索では、標準のテキスト マッチングを超える高度な機能が提供されます。たとえば、次のような機能があります。

FTS 機能は、Spanner と Spanner Omni で一貫しています。

Spanner の全文検索の違い

Spanner は、次の違いを除き、Spanner のコア FTS 機能をサポートしています。

次のステップ