승인된 뷰 개요
승인된 뷰는 Bigtable 데이터에 대한 세분화된 액세스 제어를 제공하는 테이블의 논리적 뷰입니다. 승인된 뷰는 특정 테이블 데이터를 포함하도록 구성하는 테이블의 하위 집합입니다. 그 다음 승인된 뷰에 대한 액세스 권한을 테이블에 대한 액세스 권한과 별도로 부여합니다.
승인된 뷰는 멀티 테넌트 테이블 또는 모든 사용자가 액세스할 수 없는 데이터가 테이블에 포함된 경우 유용합니다. 다른 데이터베이스 서비스의 뷰와 달리 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 형식 예시를 보여줍니다.
다음은 examplepetstore1#
row key 프리픽스가 있는 모든 행을 포함하는 승인된 뷰에 대한 정의 파일 예시입니다.
{
"subsetView":
{
"rowPrefixes": ["examplestore1#"],
"familySubsets":
{
"customer":
{
"qualifiers":["address"],
"qualifierPrefixes":["tel"]
}
}
},
"deletionProtection": true
}
다음은 order
column family의 skus
열과 customer
column family의 모든 열이 포함된 승인된 뷰에 대한 정의 파일 예시입니다.
{
"subsetView": {
"familySubsets": {
"order": {
"qualifiers": ["skus"]
}
}
"familySubsets": {
"key": "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": ["examplepetstore1#"]
"familySubsets": {
"order": {
"qualifiers": ["skus", "agents"]
"pet_id": {
"qualifiers": ["dog", "cat", "bird"]
}
}
}
}
}