使用 Spanner Omni 进行开发

使用受支持的 Spanner 功能通过 Spanner Omni 开发应用。虽然 Spanner Omni 与 Spanner 共享许多功能,但在客户端库、命令行界面 (CLI) 和控制台功能方面存在差异。

支持的 Spanner 开发功能包括:

主要区别

虽然大部分 Spanner 开发体验都适用,但以下方面在 Spanner Omni 中有所不同:

  • 支持的客户端库:Spanner Omni 支持 Java、Go 和 Python 客户端库。

  • 命令行界面 (CLI):Spanner Omni CLI 是一种专用工具,与 Google Cloud CLI 不同。虽然它与 --instance 具有类似的语法,但在运行命令时,您无需提供 --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 支持的不同隔离级别,以确保数据一致性。

优化

使用这些技巧可优化事务性能和吞吐量。

锁定

了解如何使用显式锁定来管理对数据的并发访问。

数据访问权限和修改

使用标准 Spanner 方法(包括客户端库、CLI 和 DML)访问和修改数据。

如需了解客户端库如何管理会话,请参阅会话。虽然底层会话概念适用于 Spanner Omni,但它仅支持多路复用会话

读取数据

使用各种方法(包括过时数据读取和定向读取)从 Spanner Omni 读取数据。

修改数据

使用 DML、变更或 CLI 修改数据。

数据类型

Spanner Omni 支持以下数据类型来表示应用的数据:

开发和测试

配置开发环境和应用行为,以确保可靠的性能和错误处理。

流式输出数据更改

Spanner 变更数据流可近乎实时地跟踪数据库更改,例如插入、更新和删除。使用 DDL 进行管理,可捕获整个数据库或特定表的详细信息,例如主键和提交时间戳。虽然 Spanner 和 Spanner Omni 的功能几乎完全相同,但 Spanner Omni 不支持 Dataflow。

如需了解详情,请参阅:

使用 Spanner 全文搜索 (FTS) 在表中搜索字词、短语或数字。FTS 会读取最新提交的数据。

FTS 的主要功能包括:

如需使用 FTS,请在要搜索的列上创建搜索索引。Spanner 会将这些列中的数据分解为单个字词。添加新数据时,它会立即更新索引。

FTS 搜索除了提供标准文本匹配功能外,还提供以下高级功能:

Spanner 和 Spanner Omni 之间的 FTS 功能是一致的。

Spanner 中的全文差异

Spanner 支持 Spanner 中的核心 FTS 功能,但存在以下差异:

后续步骤