테이블 및 뷰

Bigtable에서는 테이블에 데이터를 저장하며 테이블의 여러 유형의 뷰를 만들 수 있습니다. 사용하는 뷰 유형은 사용 사례에 따라 다릅니다.

테이블

Bigtable 테이블은 행과 열에 데이터를 저장하는 정렬된 키-값 매핑입니다. 각 행은 단일 고유 row key로 색인이 생성됩니다. 서로 관련된 열은 일반적으로 column family로 그룹화됩니다.

Bigtable에는 유연한 데이터 모델이 있으며 테이블은 희소합니다. 즉, 한 행의 열이 사용되지 않을 경우 해당 열에 대한 데이터가 저장되지 않습니다. 관계형 데이터베이스와 달리 사용하지 않는 열에 NULL 값을 저장할 필요가 없습니다. Bigtable 테이블에서 특정 행에는 열이 하나 있고 그 옆 행에는 열이 100개 있을 수 있습니다.

행에서 열은 여러 셀을 포함할 수 있으며 각 셀은 4-튜플 (행 키, 열 패밀리, 열 한정자, 타임스탬프)로 식별됩니다. 하나의 열에 여러 셀을 저장하면 해당 행과 열에 저장된 데이터가 시간에 따라 어떻게 변화했는지에 대한 레코드가 제공됩니다.

Bigtable 테이블은 조인을 지원하지 않으며 트랜잭션은 단일 행 내에서만 지원됩니다.

테이블은 인스턴스의 모든 클러스터에 자동으로 복제되는 인스턴스 수준 리소스입니다. 데이터 보관은 column family 수준에서 설정된 가비지 컬렉션 정책으로 제어됩니다.

자세한 내용은 Bigtable 개요스키마 설계 권장사항을 참고하세요.

조회수

Bigtable은 논리적 뷰, 연속 구체화된 뷰, 승인된 뷰와 같은 테이블 뷰 유형을 지원합니다. 뷰를 사용하면 기본 소스 데이터에 대한 액세스 권한을 부여하지 않고도 특정 사용자 및 그룹과 테이블 데이터를 공유할 수 있습니다.

논리적 뷰

논리적 뷰(일반적으로 라고 함)는 SQL 쿼리의 결과입니다. 다른 SQL 쿼리로 쿼리할 수 있는 가상 테이블로 작동합니다. 자세한 내용은 논리 뷰 만들기 및 관리를 참고하세요.

연속 구체화된 뷰

연속 구체화된 뷰는 Bigtable 테이블에 대해 SQL 쿼리를 지속적으로 실행하여 생성됩니다. Bigtable은 쿼리 출력을 기반으로 새 테이블을 만들고 소스 테이블과 동기화된 상태로 유지합니다.

연속 구체화된 뷰는 쿼리 성능을 개선하는 데 도움이 됩니다. 새 테이블(연속 구체화된 뷰)의 스키마는 소스 테이블과 다르며, 소스 테이블에 사용된 쿼리와 다른 쿼리에 최적화된 사전 집계 또는 변환된 데이터가 포함되어 있습니다.

연속 구체화된 뷰는 읽기 전용입니다. 연속 구체화된 뷰의 스토리지와 두 번째 테이블을 만들고, 소스 테이블과 동기화하고, 복제하는 데 필요한 처리 작업에 대해 요금이 청구됩니다.

자세한 내용은 연속 구체화된 뷰를 참고하세요.

승인된 뷰

승인된 뷰는 특정 테이블 데이터를 포함하도록 구성한 다음 소스 테이블에 대한 액세스와 별도로 액세스 권한을 부여하는 테이블의 뷰입니다. 승인된 뷰는 JSON 형식의 정의 파일로 정의됩니다.

연속 구체화된 뷰 또는 논리적 뷰와 달리 Bigtable 승인된 뷰는 읽기 및 쓰기 액세스 권한을 모두 제어하는 데 사용할 수 있습니다.

승인된 뷰는 Bigtable 테이블에 여러 고객의 데이터를 저장하고 각 고객에게 자신의 데이터가 포함된 테이블의 하위 집합에만 액세스 권한을 부여하려는 경우에 유용합니다.

승인된 뷰에는 추가 스토리지 비용이 발생하지 않습니다.

자세한 내용은 승인된 뷰 개요를 참고하세요.

비교

다음 표에서는 Bigtable 테이블 뷰의 차이점에 관한 추가 정보를 제공합니다.

논리적 뷰 연속 구체화된 뷰 승인된 뷰
구조 SQL 쿼리 결과를 나타내는 가상 테이블 소스 테이블을 기반으로 하는 읽기 전용 테이블 표의 하위 집합
정의 SQL 쿼리 SQL 쿼리 JSON 정의 파일
소스 테이블과의 일관성 쿼리가 실행될 때 일관됨 eventual consistency 쿼리가 실행될 때 일관됨
쿼리 옵션 SQL을 사용해야 함 SQL 또는 Bigtable Data API Bigtable Data API
쓰기 가능 아니요 아니요
스토리지 데이터가 소스 테이블에 유지됨 데이터가 중복되거나 집계되거나 변환되어 새로운 읽기 전용 테이블에 저장됩니다. 데이터가 소스 테이블에 유지됨
사용 비용 쿼리를 실행하기 위한 컴퓨팅 처리 동기화 시 컴퓨팅 처리, 스토리지 비용 쿼리를 실행하기 위한 컴퓨팅 처리

다음 단계