사용 가능한 인터페이스
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에서 지원 여부 |
---|---|---|
요청 취소 | 예 | 아니요 |
요청에 대한 기한 또는 제한시간 설정 | 예 | 아니요 |
스트리밍 요청 보내기 | 예. ExecuteStreamingSQL 및 StreamingRead 를 참조하세요. |
일부만. HTTP 스트리밍은 지원되지만 애플리케이션 수준의 흐름 제어는 지원되지 않습니다. |
클라이언트 라이브러리 기능 지원
다음 표에는 클라이언트 라이브러리와 각 라이브러리가 지원하는 주요 Spanner 기능이 나와 있습니다.
클라이언트 | Go | 자바 | Node.js | Python | Ruby | C++ | PHP | C# |
---|---|---|---|---|---|---|---|---|
문 힌트 | ||||||||
변형 | ||||||||
일괄 DML | ||||||||
일괄 DDL | ||||||||
비활성 읽기 | ||||||||
인터리브 처리된 테이블 | ||||||||
Partitioned DML | ||||||||
세션 라벨 지정 | ||||||||
요청 우선순위 | ||||||||
JSON 유형 | ||||||||
요청 태그 지정 | ||||||||
구성 가능한 최적의 옵션 | ||||||||
파티션을 나눈 읽기 | ||||||||
PostgreSQL 인터페이스 |