Spanner Omni 是 Spanner 的可下载版本,可让您在本地数据中心、公有云和笔记本电脑上部署 Google 的分布式数据库技术。它通过使用基于 Paxos 的复制、自动分片和软件定义的 TrueTime API,提供核心 Spanner 功能,包括横向可伸缩性能力、高可用性、ACID 合规性和强大的外部一致性。
Spanner Omni 集成了关系型、图表、向量和键值对数据模型,并提供全文搜索和运营分析功能。与 Spanner 一样,Spanner Omni 支持 GoogleSQL、PostgreSQL 和 Spanner Graph。您可以实现跨环境的弹性、应用可移植性,以及在各种环境中保持一致的开发技术栈。Spanner Omni 支持以下部署选项:
- 虚拟机
- Linux 容器
- Kubernetes 集群
Spanner Omni 预览版限制
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 支持多种数据模型(关系型、键值对、图表、向量)和功能(全文搜索、分析处理),并提供跨模型查询和符合 ACID 的跨不同数据模型的事务。
熟悉的界面:使用 Spanner CLI 与数据互动,该 CLI 包含一个用于交互式查询的 SQL shell。 Spanner Omni 支持 GoogleSQL、PostgreSQL 方言和 GQL,可让您迁移现有应用。
部署拓扑
Spanner Omni 使用区域、可用区和服务器的层次结构来定义其部署配置。Spanner Omni 提供以下部署配置:
单服务器 - Spanner Omni 在单台机器上运行。 此拓扑结构在单台机器上运行,因此非常适合本地开发。升级到此拓扑会导致停机。
单可用区(或可用区级)- 所有 Spanner Omni 服务器都属于一个可用区。此部署配置至少需要三台服务器。为了实现最佳正常运行时间,此拓扑的可用性目标较低,因为单区域故障可能会导致服务中断。
多可用区(或地区性)- Spanner Omni 将服务器分布在多个可用区中。所有可用区都位于一个位置。对于多可用区部署,至少使用三个可用区。每个可用区都必须至少有一台服务器。建议在每个可用区中使用 3 个服务器。与单可用区部署相比,此部署配置可提供更高的可用性。
多集群(或多区域)- Spanner Omni 服务器位于多个集群中的多个可用区。为了实现高可用性,请在两个或更多集群中使用三个可用区,并为每个可用区配置三个或更多服务器。
系统要求
为了优化性能,请使用以下针对服务器部署的最低推荐要求:
| 环境 | 操作系统或平台 | 硬件建议 |
|---|---|---|
| 本地 | Linux(RHEL 9、Ubuntu 22) | 每个 vCPU 4 GB RAM,20 GB 以上的磁盘空间 |
| 云(Google Cloud 和 AWS) | 虚拟机或 Kubernetes Pod | 每个虚拟机或 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命令可收集日志、轨迹和线程堆栈以进行问题排查。