Spanner Omni는 Spanner의 어디에나 배포할 수 있는 버전으로, 온프레미스 데이터 센터, Google Cloud, Amazon Web Services(AWS)와 같은 퍼블릭 클라우드, 노트북에서 Google의 분산 데이터베이스 기술을 실행할 수 있습니다. Paxos 기반 복제, 자동 샤딩, 소프트웨어 정의 TrueTime API를 사용하여 수평 확장성, 고가용성, ACID 규정 준수, 강력한 외부 일관성을 비롯한 핵심 Spanner 기능을 제공합니다.
Spanner Omni는 관계형, 그래프, 벡터, 키-값 데이터 모델을 전체 텍스트 및 운영 분석 기능과 통합합니다. Spanner와 마찬가지로 Spanner Omni는 GoogleSQL, PostgreSQL, Spanner Graph Language를 지원합니다. 다양한 환경에서 교차 환경 복원력, 애플리케이션 이식성, 일관된 개발 스택을 달성할 수 있습니다. Spanner Omni는 다음을 포함한 배포 옵션을 지원합니다.
- 가상 머신
- Linux 컨테이너
- Kubernetes 클러스터
주요 특징
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 규격 트랜잭션을 제공합니다.
익숙한 인터페이스: 대화형 쿼리를 위한 SQL 셸이 포함된 Spanner CLI를 사용하여 데이터와 상호작용합니다. Spanner Omni는 GoogleSQL, PostgreSQL 언어, GQL을 지원하므로 기존 애플리케이션을 이전할 수 있습니다.
배포 토폴로지
Spanner Omni는 리전, 영역, 서버의 계층 구조를 사용하여 배포 구성을 정의합니다. Spanner Omni는 다음과 같은 배포 구성을 제공합니다.
단일 서버 - Spanner Omni가 단일 머신에서 실행됩니다. 이 토폴로지는 로컬 개발에 적합합니다. Spanner Omni를 4개 이하의 vCPU가 있는 단일 서버 구성에 배포하면 제한 없이 백업 및 복원 기능을 사용할 수 있습니다. 이 토폴로지로 업그레이드하면 다운타임이 발생합니다.
단일 영역 (또는 영역) - 모든 Spanner Omni 서버가 하나의 영역에 속합니다. 이 배포 구성에는 서버를 3개 이상 사용하세요. 최적의 가동 시간을 위해 이 토폴로지는 단일 영역 장애로 인해 중단이 발생할 수 있으므로 가용성 타겟이 낮습니다.
멀티 영역 (또는 리전) - Spanner Omni는 여러 영역에 서버를 분산합니다. 모든 영역이 단일 위치에 있습니다. 멀티 영역 배포의 경우 영역을 3개 이상 사용하세요. 각 영역에는 서버가 하나 이상 있어야 합니다. 각 영역에서 서버 3개를 사용하는 것이 좋습니다. 이 배포 구성은 단일 영역 배포보다 높은 가용성을 제공합니다.
멀티 클러스터 (또는 멀티 리전) - Spanner Omni 서버가 여러 클러스터의 여러 영역에 있습니다. 고가용성을 위해 두 개 이상의 클러스터에 걸쳐 세 개의 영역을 사용하고 각 영역을 세 개 이상의 서버로 구성합니다.
시스템 요구사항
성능을 최적화하려면 서버 배포에 다음 최소 권장 요구사항을 사용하세요.
| 환경 | OS 또는 플랫폼 | 하드웨어 권장사항 |
|---|---|---|
| 온프레미스 | Linux (RHEL 9, Ubuntu 22) | vCPU당 4GB RAM, 20GB 이상의 디스크 공간 |
| 클라우드 (Google Cloud 및 AWS) | VM 또는 Kubernetes 포드 | VM 또는 Kubernetes 포드당 vCPU 4개, 16GB RAM |
| 개발자 (노트북, 데스크톱) | macOS (M1, M2, M3) | 4GB RAM, 10GB 디스크 공간 |
저장소의 경우 ext4 파일 시스템이 있는 전용 솔리드 스테이트 드라이브 (SSD) 스토리지를 사용하는 것이 좋습니다.
연결 및 개발
Spanner Omni에 연결하고 애플리케이션을 개발하려면 다음 도구를 고려하세요.
클라이언트 라이브러리: Spanner Omni 엔드포인트를 지정하여 Java 및 Go용 기존 Spanner 클라이언트 라이브러리를 사용할 수 있습니다. 예를 들어 Java에서
setExperimentalHost("http://localhost:15000")를 설정합니다.PGAdapter: 이 프록시를 사용하면 기존 PostgreSQL 애플리케이션이 표준 PostgreSQL 유선 프로토콜을 사용하여 Spanner Omni PostgreSQL 언어 데이터베이스에 연결할 수 있습니다.
진단: 전용
spanner admin diagnostics create명령어가 문제 해결을 위해 로그, 트레이스, 스레드 스택을 수집합니다.