Cloud Datastore 개요

Google Cloud Datastore는 자동 확장, 고성능, 간편한 애플리케이션 개발을 위해 설계된 NoSQL 문서 데이터베이스입니다. Cloud Datastore에서 제공하는 기능은 다음과 같습니다.

  • 원자적 트랜잭션. Cloud Datastore는 일련의 작업을 모두 성공하거나 모두 취소하는 방식으로 실행할 수 있습니다.
  • 읽기 및 쓰기의 고가용성. Cloud Datastore는 장애 지점의 영향을 최소화하기 위해 중복화를 사용하는 Google 데이터 센터에서 실행됩니다.
  • 고성능의 방대한 확장성. Cloud Datastore는 분산형 아키텍처를 사용하여 확장을 자동으로 관리합니다. Cloud Datastore는 쿼리가 데이터 세트 크기가 아닌 결과 집합의 크기에 따라 확장되도록 색인과 쿼리 제약조건을 적절히 조합합니다.
  • 유연한 데이터 저장 및 쿼리. Cloud Datastore는 객체 지향 및 스크립트 언어에 자연스럽게 매핑하며 여러 클라이언트에 걸쳐 애플리케이션에 노출됩니다. 또한 SQL과 유사한 쿼리 언어도 제공합니다.
  • 강력한 일관성과 최종 일관성 간에 균형 유지. Cloud Datastore는 키별 항목 조회 및 상위 쿼리가 항상 강력한 일관성을 지닌 데이터를 수신하도록 보장합니다. 나머지 모든 쿼리는 최종 일관성을 지닙니다. 일관성 모델을 사용하면 애플리케이션이 대량의 데이터 및 사용자를 처리하는 한편 우수한 사용자 경험이 제공됩니다.
  • 미사용 데이터 암호화. Cloud Datastore는 디스크에 쓰기 전에 모든 데이터를 자동으로 암호화하고, 승인된 사용자가 읽으면 자동으로 데이터를 복호화합니다. 자세한 내용은 서버측 암호화를 참조하세요.
  • 계획된 다운타임 없는 완전 관리형. Google에서 Cloud Datastore 서비스 관리를 책임지기 때문에 개발자는 애플리케이션 개발에만 집중할 수 있습니다. 서비스가 계획된 일정에 따라 업그레이드되는 동안에도 애플리케이션은 여전히 Cloud Datastore를 사용할 수 있습니다.

기존 데이터베이스와 비교

Cloud Datastore 인터페이스의 많은 부분이 기존 데이터베이스와 동일한 면이 있지만 NoSQL 데이터베이스이기 때문에 데이터 객체 간의 관계를 정의하는 방식에서 차별화됩니다. Cloud Datastore와 관계형 데이터베이스 개념을 심도 있게 비교한 결과는 다음과 같습니다.

개념 Cloud Datastore Cloud Firestore 관계형 데이터베이스
객체 카테고리 종류 컬렉션 그룹
단일 객체 항목 문서
객체의 개별 데이터 속성
객체의 고유 ID 문서 ID 기본 키

관계형 데이터베이스 테이블의 행과 달리 동일한 종류의 Cloud Datastore 항목에는 서로 다른 속성이 있을 수 있고, 각 항목에는 이름은 동일하지만 값 유형이 다른 속성이 있을 수 있습니다. 이러한 고유한 특성으로 인해 자동 확장 기능을 활용하기 위한 데이터 설계 및 관리 방법이 다양해집니다. 특히 Cloud Datastore는 다음과 같은 중요한 면에서 기존의 관계형 데이터베이스와는 차이를 보입니다.

  • Cloud Datastore는 대규모 데이터 세트로 자동 확장되도록 설계되었기 때문에 애플리케이션에 유입되는 트래픽 양이 많아져도 높은 성능을 유지할 수 있습니다.
  • Cloud Datastore는 필요에 따라 데이터를 자동으로 분산하여 대량 쓰기를 수행합니다.
  • 데이터 세트가 아닌 결과 집합 크기에 따라 성능이 확장되는 쿼리만 지원하기 때문에 Cloud Datastore의 대량 읽기 작업이 가능합니다. 즉, 결과 집합에 100개 항목이 포함된 쿼리는 검색 범위가 100개 항목이든, 100만 개 항목이든 상관없이 동일한 성능을 보입니다. 이 속성은 일부 쿼리 유형이 지원되지 않는 주요한 이유입니다.
  • 모든 쿼리가 이전에 빌드한 색인에서 제공되기 때문에 실행 가능한 쿼리 유형이 SQL의 관계형 데이터베이스에서 허용되는 것보다 제한적입니다. 특히 Cloud Datastore에는 Join 연산, 여러 속성에 대한 비균등 필터링, 하위 쿼리 결과에 따른 데이터 필터링 지원이 포함되지 않습니다.
  • 스키마를 강제하는 기존 관계형 데이터베이스와 달리 Cloud Datastore에는 스키마가 없습니다. 일관적인 속성 집합을 갖기 위해 반드시 같은 종류의 항목이 필요한 것은 아닙니다(다만 원하는 경우 애플리케이션 코드에서 그러한 요구 사항을 강제할 수 있음).

장점

Cloud Datastore는 가용성이 매우 높은 대규모의 구조화된 데이터를 사용하는 애플리케이션에 이상적입니다. 다음과 같은 모든 데이터 유형을 저장하고 쿼리하는 데 Cloud Datastore를 사용할 수 있습니다.

  • 소매업체의 실시간 재고 및 제품 세부정보를 제공하는 제품 카탈로그
  • 사용자의 이전 작업과 환경설정을 기반으로 맞춤설정된 경험을 제공하는 사용자 프로필
  • ACID 속성을 기반으로 한 트랜잭션(예: 은행 계좌에서 다른 계좌로 자금을 이체하는 경우)

기타 저장소 옵션

Cloud Datastore가 모든 사용 사례에 이상적인 것은 아닙니다. 예를 들어 Cloud Datastore는 관계형 데이터베이스가 아니므로 분석 데이터에 효과적인 저장 솔루션이 아닙니다.

Cloud Datastore 외의 제품 채택을 고려해야 할 수도 있는 몇 가지 일반적인 시나리오는 다음과 같습니다.

  • OLTP(온라인 트랜잭션 처리) 시스템을 위해 완전한 SQL 지원이 제공되는 관계형 데이터베이스가 필요한 경우에는 Cloud SQL을 사용하는 것이 좋습니다.
  • ACID 트랜잭션을 위한 지원이 필요하지 않거나 데이터의 구조화 수준이 높지 않은 경우에는 Cloud Bigtable을 사용하는 것이 좋습니다.
  • OLAP(온라인 분석 처리) 시스템을 위해 양방향 쿼리가 필요한 경우에는 BigQuery를 사용하는 것이 좋습니다.
  • 대용량 이미지 또는 영화와 같은 불변의 대용량 blob을 저장해야 할 경우에는 Cloud Storage를 사용하는 것이 좋습니다.

다른 저장소 옵션에 대한 자세한 내용은 저장소 옵션 선택 가이드를 참조하세요.

App Engine으로 Cloud Datastore에 연결

App Engine의 Go 표준 런타임은 Go Datastore API를 사용하여 Cloud Datastore에 연결됩니다. datastore 패키지의 전체 콘텐츠 목록은 datastore 패키지 참조에서 볼 수 있습니다.

App Engine 표준 환경에서는 Go 애플리케이션과 Cloud Datastore 클라이언트 라이브러리를 함께 사용할 수 없습니다.

이 페이지가 도움이 되었나요? 평가를 부탁드립니다.

다음에 대한 의견 보내기...

Go용 App Engine 표준 환경