API, 클라이언트 라이브러리, ORM 드라이버 개요

사용 가능한 인터페이스

Spanner와 상호작용 시 여러 프로그래매틱 인터페이스 중 하나를 사용할 수 있습니다. 다음은 사용 가능한 인터페이스로, 권장 순으로 나열되어 있습니다.

  • 클라이언트 라이브러리: Spanner 클라이언트 라이브러리는 여러 언어로 제공되며 gRPC로 빌드됩니다. 이 클라이언트 라이브러리는 gRPC 맨 위에 추상화 계층을 제공하고 세션 관리, 트랜잭션 실행, 재시도 등의 세부정보를 처리합니다.
  • ORM 및 프레임워크 드라이버: Google에서는 JDBC와 같은 여러 인기 객체 관계형 매핑 라이브러리(ORM) 및 프레임워크에 대한 오픈소스 Spanner 드라이버를 지원합니다. 이 드라이버를 사용하면 이러한 프레임워크에서 정의한 API를 통해 Spanner 데이터베이스를 사용할 수 있습니다.
  • RPC API: 원하는 프로그래밍 언어로 클라이언트 라이브러리 또는 ORM 드라이버를 사용할 수 없는 경우 gRPC로 빌드된 RPC API를 사용합니다. gRPC는 REST API 사용과 비교 시 영구 연결(결과적으로 요청당 오버헤드가 적음)과 프로토콜 버퍼 형식으로 객체 표시(JSON에 비해 생성 및 소비 속도가 빠름) 등 여러 가지 성능상 이점을 제공합니다. gRPC 개념의 이러한 이점과 그 밖에 장점에 대해 자세히 알아보세요.
  • REST API: Spanner의 클라이언트 라이브러리 또는 RPC API를 사용할 수 없으면 REST API를 사용합니다. 아래 설명과 같이 REST API에서는 RPC API에서 사용할 수 있는 일부 기능이 지원되지 않습니다.

RPC와 REST API 비교

이 표에서는 RPC 및 REST API 인터페이스를 통해 사용할 수 있는 Spanner 기능을 비교합니다.

특성 RPC API에서 지원 여부 REST API에서 지원 여부
요청 취소 아니요
요청에 대한 기한 또는 제한시간 설정 아니요
스트리밍 요청 보내기 예. ExecuteStreamingSQLStreamingRead를 참조하세요. 일부만. HTTP 스트리밍은 지원되지만 애플리케이션 수준의 흐름 제어는 지원되지 않습니다.

클라이언트 라이브러리 기능 지원

다음 표에는 클라이언트 라이브러리와 각 라이브러리가 지원하는 주요 Spanner 기능이 나와 있습니다.

클라이언트 Go Java Node.js Python Ruby C++ PHP C#
문 힌트
변형
일괄 DML
일괄 DDL
비활성 읽기
인터리브 처리된 테이블
Partitioned DML
세션 라벨 지정
요청 우선순위
JSON 유형
요청 태그 지정
구성 가능한 리더 옵션
파티션을 나눈 읽기
PostgreSQL 인터페이스