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 を、GORM(Go プログラミング言語の オブジェクト リレーショナル マッピング(ORM)ツール)と統合します。Go アプリケーションで GORM のオブジェクト リレーショナル マッピング機能を使用します。詳しくは以下をご覧ください。

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

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

分離レベル

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

最適化

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

ロック

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

データアクセスと変更

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

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

データの読み取り

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

データの修正

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

データ型

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

開発とテスト

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

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

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

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

Spanner 全文検索(FTS)を使用して、テーブル内の単語、フレーズ、数値を検索します。FTS は、最後に commit されたデータを読み取ります。

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

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

FTS 検索では、標準のテキスト マッチング以外にも、次のような高度な機能を利用できます。

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

Spanner の全文検索の違い

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

次のステップ