승인된 뷰 개요
Bigtable의 승인된 뷰를 사용하면 기본 테이블과 별도로 테이블 데이터의 특정 하위 집합에 대한 세분화된 액세스 권한을 부여할 수 있습니다.
이러한 뷰를 사용하여 멀티 테넌트 테이블의 데이터를 격리하고 읽기 및 쓰기 액세스를 모두 제어할 수 있습니다. 다른 스토리지 시스템의 업데이트 가능한 뷰 또는 필터링된 별칭과 유사하게 수천 개의 뷰를 프로그래매틱 방식으로 만들 수도 있습니다.
시작하기 전에 Bigtable 스토리지 모델을 숙지해야 합니다. 설정 안내는 승인된 뷰 만들기 및 관리를 참고하세요.
승인된 뷰 정의
승인된 뷰를 만들 때 다음 매개변수 중 하나를 사용하여 승인된 뷰에 포함할 데이터를 지정하여 정의합니다.
- row key 프리픽스 - 예를 들어
examplepetstore1#로 시작하는 모든 행 - column qualifier 프리픽스 - 예를 들어 지정된 column family에서 한정자가
order#으로 시작하는 모든 열 - column qualifier - 예를 들어 지정된 column family의
order-examplepetstore열만 - row key 프리픽스와 column qualifier의 조합
여러 column family에 동일한 column qualifier가 사용되고 뷰에 해당 한정자가 있는 모든 열을 포함하려면 뷰를 정의할 때 column qualifier와 column family의 모든 조합을 개별적으로 지정해야 합니다.
승인된 뷰를 정의하는 데 사용하는 row key와 column qualifier 값은 서비스 데이터로 취급됩니다. 따라서 민감한 정보가 포함된 row key 또는 column qualifier 값을 사용하여 승인된 뷰를 만들지 마세요. 서비스 데이터 처리 방법에 대한 자세한 내용은 Google Cloud 개인정보처리방침을 참고하세요.
계열 또는 모든 행에 열 포함
기본 테이블의 column family에 추가된 열이 승인된 뷰에도 포함되도록 하려면 빈 문자열("")을 column qualifier 프리픽스로 지정해야 합니다. 예를 들어 정의 파일은 계열 하위 집합 "qualifierPrefixes": [""]에 이를 포함합니다.
마찬가지로 테이블의 모든 행을 포함하는 승인된 뷰를 정의하려면 빈 문자열("")을 row key 프리픽스로 지정합니다. 정의 파일에서는 뷰 하위 집합에서 "rowPrefixes": [""]로 기록됩니다.
승인된 뷰가 지나치게 복잡해지는 것을 방지하기 위해 Bigtable에서는 최대 10개의 고유한 한정자 프리픽스를 지정할 수 있습니다. 즉, 승인된 뷰는 한정자 프리픽스가 10개인 column family 1개, 한정자 프리픽스가 1개인 column family 10개 또는 총 한정자 수가 최대 10개까지 그 사이로 column family 수를 지정할 수 있습니다.
JSON 객체당 키를 한 번만 지정하는 것이 좋습니다. column family 이름과 같은 키를 두 번 이상 지정하면 키의 마지막 항목이 키의 이전 항목을 덮어씁니다.
정의 파일 예시
이 섹션에서는 승인된 뷰 정의 파일의 JSON 형식 예시를 보여줍니다.
다음은 row key 프리픽스가 examplepetstore1#인 행의 customer column family에 있는 address 열과 tel로 시작하는 열이 포함된 승인된 뷰에 대한 정의 파일 예시입니다.
{
"subsetView":
{
"rowPrefixes": ["examplepetstore1#"],
"familySubsets":
{
"customer":
{
"qualifiers":["address"],
"qualifierPrefixes":["tel"]
}
}
},
"deletionProtection": true
}
다음은 order column family의 skus 열과 customer column family의 모든 열이 포함된 승인된 뷰에 대한 정의 파일 예시입니다.
{
"subsetView": {
"rowPrefixes": [""],
"familySubsets": {
"order": {
"qualifiers": ["skus"]
},
"customer": {
"qualifierPrefixes": [""]
}
}
}
}
다음은 row key 프리픽스가 examplepetstore1#인 행의 order column family에 있는 skus 열의 데이터만 포함하는 승인된 뷰에 대한 정의 파일 예시입니다.
{
"subsetView": {
"rowPrefixes": ["examplepetstore1#"]
"familySubsets": {
"order": {
"qualifiers": ["skus"]
}
}
}
}
다음은 order column family의 skus 및 agents 열과 pet_id column family의 dog, cat, bird 열의 데이터만 포함하는 승인된 뷰에 대한 정의 파일 예시입니다.
{
"subsetView": {
"rowPrefixes": [""]
"familySubsets": {
"order": {
"qualifiers": ["skus", "agents"]
"pet_id": {
"qualifiers": ["dog", "cat", "bird"]
}
}
}
}
}