테이블 및 뷰
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 |
쓰기 가능 | 아니요 | 아니요 | 예 |
스토리지 | 데이터가 소스 테이블에 유지됨 | 데이터가 중복되거나 집계되거나 변환되어 새로운 읽기 전용 테이블에 저장됩니다. | 데이터가 소스 테이블에 유지됨 |
사용 비용 | 쿼리를 실행하기 위한 컴퓨팅 처리 | 동기화 시 컴퓨팅 처리, 스토리지 비용 | 쿼리를 실행하기 위한 컴퓨팅 처리 |