논리적 뷰 만들기 및 관리
Bigtable에서 논리적 뷰 는 다른 SQL 쿼리로 쿼리할 수 있는 가상 테이블 역할을 하는 SQL 쿼리의 결과입니다. 데이터는 소스 테이블에 남아 있습니다.
이 문서에서는 논리적 뷰와 이를 만들고 작업을 수행하는 방법을 설명합니다. 연속 구체화된 뷰 및 승인된 뷰와의 비교는 테이블 및 뷰를 참조하세요.
논리적 뷰를 사용하면 Bigtable 데이터로 다음 작업을 수행할 수 있습니다.
- 쿼리 반복 방지: 논리적 뷰에 열 매핑 및 캐스트 논리를 저장하고 발전시킬 수 있습니다. 그러면 추가 논리적 뷰에서 이 논리를 복사하여 붙여넣거나 이해할 필요 없이 사용할 수 있습니다.
- 관계형 데이터베이스에서 읽도록 설계된 시스템과 통합: 논리적 뷰를 사용하면 Bigtable 데이터를 관계형 데이터베이스 테이블 또는 Cassandra 테이블처럼 읽을 수 있습니다.
- 여러 테이블에 대해 동일한 논리적 뷰 실행:
FROM절을 수정하여 동일한 뷰를 사용하여 Bigtable 인스턴스의 모든 테이블을 쿼리할 수 있습니다. - 일관된 인터페이스 제공: 소스 테이블이 변경되더라도 애플리케이션에서 논리적 뷰를 사용할 수 있습니다.
- 특정 열 또는 행에 대한 읽기 액세스 제한: 전체 테이블에 대한 액세스 권한을 부여하지 않고 사용자가 읽을 수 있도록 허용할 데이터만 노출할 수 있습니다.
논리적 뷰는 인스턴스 수준 리소스입니다. Google Cloud CLI 또는 콘솔의 Bigtable Studio 쿼리 편집기를 사용하여 논리적 뷰를 만들 수 있습니다. Google Cloud 논리적 뷰를 쿼리하려면 Bigtable Studio 쿼리 편집기 또는 SQL을 지원하는 Bigtable 클라이언트 라이브러리를 사용하면 됩니다.
논리적 뷰의 특성은 다음과 같습니다.
- Bigtable용 GoogleSQL에서 지원하는 SQL 기능을 사용해야 합니다.
- 읽기 전용
ReadRows호출이 아닌 SQL로 읽어야 합니다.- SQL을 지원하는 Bigtable 클라이언트 라이브러리를 사용하여 쿼리할 수 있습니다.
- 정의자 권한 을 사용합니다. 소스 테이블에서 읽을 권한이 없더라도 논리적 뷰에서 읽을 권한이 있으면 논리적 뷰를 쿼리할 수 있습니다.
논리적 뷰를 정의하는 데 사용하는 row key, column qualifier, 열 값은 서비스 데이터로 취급됩니다. 따라서 민감한 정보가 포함된 row key, column qualifier 또는 열 값을 사용하여 논리적 뷰를 만들지 마세요. 서비스 데이터 처리 방법에 대한 자세한 내용은 Google Cloud 개인정보처리방침을 참조하세요.
시작하기 전에
gcloud CLI를 사용하려는 경우 다음 단계를 따르세요.
-
Google Cloud CLI를 설치합니다.
-
외부 ID 공급업체(IdP)를 사용하는 경우 먼저 제휴 ID로 gcloud CLI에 로그인해야 합니다.
-
gcloud CLI를 초기화하려면, 다음 명령어를 실행합니다.
gcloud init
필요한 역할
논리적 뷰를 사용하려면 다음 권한이 필요합니다.
논리적 뷰를 관리하려면 다음 안내를 따르세요.
- 논리적 뷰를 만들거나 업데이트하거나 삭제하려면 인스턴스에 Bigtable 관리자 (
roles/bigtable.admin) 역할이 필요합니다. - 또는 관리자에게 인스턴스 수준에서 다음 권한을 부여해 달라고 요청할 수 있습니다.
- 만들기:
bigtable.logicalViews.create - 업데이트:
bigtable.logicalViews.update - 삭제:
bigtable.logicalViews.delete
- 만들기:
논리적 뷰를 보고 쿼리하려면 다음 안내를 따르세요.
- 논리적 뷰를 나열하거나 설명하려면 인스턴스에 Bigtable 리더 (
roles/bigtable.reader) 역할이 필요합니다. 또는 관리자에게 인스턴스 수준에서 다음 권한을 부여해 달라고 요청할 수 있습니다.
- 목록:
bigtable.logicalViews.list - 설명:
bigtable.logicalViews.get
- 목록:
논리적 뷰를 쿼리하려면 논리적 뷰에
bigtable.logicalViews.readRows권한이 필요합니다.
논리적 뷰를 만들려면 다음 안내를 따르세요.
- 소스 테이블에 최소한
bigtable.tables.readRows권한이 있어야 합니다.
특정 뷰에 대한 읽기 액세스 권한을 부여하려면 다음 안내를 따르세요.
다른 Bigtable 권한이 없는 사용자에게도 특정 논리적 뷰를 읽을 권한을 부여할 수 있습니다. 이렇게 하려면 IAM 조건을 사용하여 해당 뷰에만 bigtable.logicalViews.readRows 권한을 부여합니다.
- 프로젝트에 사용자에게
bigtable.reader역할을 부여합니다. bigtable.logicalViews.readRows권한을 특정 논리적 뷰로 제한하는 IAM 조건을 만듭니다. 예를 들면 다음과 같습니다.resource.name == projects/PROJECT_ID/instances/INSTANCE_ID/logicalViews/VIEW다음을 바꿉니다.
PROJECT_ID: Bigtable 인스턴스가 있는 Google Cloud 프로젝트입니다.VIEW: 새 논리적 뷰의 최대 128자(영문 기준) 길이의 ID입니다. ID는 인스턴스의 테이블 ID와 뷰 ID 중에서 고유해야 합니다.INSTANCE_ID: 논리적 뷰를 만들 인스턴스의 ID입니다.
자세한 내용은 IAM 조건을 사용하여 리소스 액세스 관리를 참조하세요.
사용 가능한 모든 역할 및 권한에 대한 자세한 내용은 IAM으로 Bigtable 액세스 제어를 참조하세요.
논리적 뷰 만들기
콘솔
콘솔에서 Bigtable 인스턴스 목록을 엽니다. Google Cloud
인스턴스를 선택합니다.
탐색창에서 Bigtable Studio 를 클릭합니다.
을 클릭한 후 편집기를 선택하여 새 탭을 엽니다.
쿼리 편집기에서 쿼리를 작성합니다. 쿼리가 유효한 SQL이면 유효 메시지가 표시됩니다.
선택사항: SQL 스타일로 문 형식을 지정하려면 형식을 클릭합니다.
실행을 클릭합니다. 쿼리 결과가 결과 테이블에 표시됩니다.
쿼리가 만족스러우면 다른 이름으로 저장 확장기 화살표를 클릭하고 논리적 뷰로 저장 을 선택합니다.
논리적 뷰 저장 대화상자에서 뷰 이름을 입력한 후 저장 을 클릭합니다.
쿼리 편집기 사용에 대한 자세한 내용은 Bigtable Studio를 사용하여 데이터 관리를 참조하세요.
gcloud
논리적 뷰를 만들려면
gcloud bigtable logical-views create
명령어를 사용합니다.
gcloud bigtable logical-views create VIEW \
--instance=INSTANCE --query=QUERY
다음을 바꿉니다.
VIEW: 새 논리적 뷰의 최대 128자(영문 기준) 길이의 ID입니다. ID는 인스턴스의 테이블 ID와 뷰 ID 중에서 고유해야 합니다.QUERY: 유효한 Bigtable용 GoogleSQL 쿼리INSTANCE: 논리적 뷰를 만들 인스턴스의 ID
선택사항:
- 논리적 뷰가 삭제되지 않도록 보호하려면
--deletion-protection플래그를 사용하여 명령어를 추가합니다. 이 설정을 적용하지 않으면 논리적 뷰가 삭제될 수 있습니다.--no-deletion-protection을 추가하여 논리적 뷰 삭제를 명시적으로 허용할 수도 있습니다. 자세한 내용은 이 문서의 논리적 뷰 업데이트 섹션을 참조하세요.
논리적 뷰 업데이트
콘솔
콘솔에서는 논리적 뷰의 삭제 보호를 업데이트할 수 없습니다. Google Cloud 삭제 보호를 사용 설정하거나 사용 중지하려면 Google Cloud CLI를 사용하세요.
콘솔에서 Bigtable 인스턴스 목록을 엽니다. Google Cloud
목록에서 인스턴스를 선택합니다.
탐색창에서 Bigtable Studio 를 클릭합니다. 탐색기에 뷰 목록이 표시됩니다.
선택사항: 인스턴스의 처음 10개 뷰가 나열됩니다. 10개를 더 보려면 더보기 를 클릭합니다.
업데이트하려는 뷰 옆에 있는 more_vert 작업 메뉴를 클릭한 후 뷰 정의를 클릭합니다.
쿼리를 수정합니다.
실행 을 클릭합니다.
결과 창에 뷰에 포함되어야 하는 데이터가 표시되는지 확인한 후 다른 이름으로 저장 을 클릭합니다.
대화상자에서 수정한 뷰의 ID를 입력합니다.
대화상자에 기존 뷰를 덮어쓰고 있다는 경고 메시지가 표시됩니다.
저장 을 클릭합니다.
gcloud
다른 쿼리를 실행하도록 논리적 뷰를 업데이트하거나 삭제
보호를 수정하려면
gcloud bigtable logical-views update
명령어를 사용합니다. 쿼리, 삭제 보호 또는 둘 다를 지정해야 합니다.
논리적 뷰의 쿼리를 업데이트하려면 다음 안내를 따르세요.
gcloud bigtable logical-views update VIEW \
--instance=INSTANCE --query=QUERY
논리적 뷰에 삭제 보호를 사용 설정하려면 다음 안내를 따르세요.
gcloud bigtable logical-views update VIEW \
--instance=INSTANCE \
--deletion-protection=true
논리적 뷰에 삭제 보호를 사용 중지하려면 다음 안내를 따르세요.
gcloud bigtable logical-views update VIEW \
--instance=INSTANCE \
--deletion-protection=false
다음을 바꿉니다.
VIEW: 업데이트할 논리적 뷰의 IDINSTANCE: 논리적 뷰가 포함된 인스턴스의 IDQUERY: 유효한 GoogleSQL 쿼리
논리적 뷰 삭제
이 작업은 되돌릴 수 없습니다.
논리적 뷰에 삭제 보호가 사용 설정되어 있으면 삭제할 수 없습니다. 삭제 보호가 사용 설정된 논리적 뷰를 삭제하려면 논리적 뷰를 업데이트하여 삭제 보호를 사용 중지해야 합니다. 자세한 내용은 이 문서의 논리적 뷰 업데이트 섹션을 참조하세요.
콘솔
콘솔에서 Bigtable 인스턴스 목록을 엽니다. Google Cloud
목록에서 인스턴스를 선택합니다.
탐색창에서 Bigtable Studio 를 클릭합니다. 탐색기에 뷰 목록이 표시됩니다.
선택사항: 인스턴스의 처음 10개 뷰가 나열됩니다. 10개를 더 보려면 더보기 를 클릭합니다.
뷰 를 펼칩니다.
삭제하려는 뷰 옆에 있는 more_vert 작업 메뉴를 클릭한 후 삭제를 클릭합니다.
gcloud
논리적 뷰를 삭제하려면
gcloud bigtable logical-views delete
명령어를 사용합니다.
gcloud bigtable logical-views delete VIEW \
--instance=INSTANCE
다음을 바꿉니다.
VIEW: 업데이트할 논리적 뷰의 IDINSTANCE: 논리적 뷰가 포함된 인스턴스의 ID
인스턴스의 논리적 뷰 목록 가져오기
인스턴스의 논리적 뷰 목록을 볼 수 있습니다.
콘솔
콘솔에서 Bigtable 인스턴스 목록을 엽니다. Google Cloud
목록에서 인스턴스를 선택합니다.
탐색창에서 Bigtable Studio 를 클릭합니다. 탐색기에 뷰 목록이 표시됩니다.
선택사항: 인스턴스의 처음 10개 뷰가 나열됩니다. 10개를 더 보려면 더보기 를 클릭합니다.
gcloud
인스턴스의 논리적 뷰 목록을 보려면
gcloud bigtable logical-views list
명령어를 사용합니다.
gcloud bigtable logical-views list --instance=INSTANCE
INSTANCE를 인스턴스 ID로 바꿉니다.
논리적 뷰 설명
논리적 뷰에 대한 세부정보를 가져오려면 gcloud bigtable logical-views
describe 명령어를 사용합니다.
gcloud bigtable logical-views describe VIEW \
--instance=INSTANCE
터미널에 다음과 유사한 세부정보가 표시됩니다.
createTime: '2025-03-07T19:49:56.316578Z'
etag: W/"/v1/17919275593532352351"
name: projects/my-project/instances/my-instance/logicalViews/my-view
query: SELECT street FROM addresses
updateTime: '2025-03-07T19:49:56.316578Z'
deletion_protection: true
논리적 뷰 쿼리
논리적 뷰를 만든 후에는 일반 테이블을 쿼리하는 것과 마찬가지로 SQL을 사용하여 쿼리할 수 있습니다. SELECT 문의 FROM 절에서 논리적 뷰를 사용할 수 있습니다.
쿼리 편집기에서 뷰 이름을 참조하는 GoogleSQL 쿼리를 입력합니다. 예를 들어 뷰 이름이 MyLogicalView인 경우 다음 안내를 따르세요.
SELECT *
FROM MyLogicalView
LIMIT 100;
Bigtable에서 SQL 쿼리를 실행하는 방법에 대한 자세한 내용은 쿼리 편집기에서 SQL로 데이터 쿼리를 참조하세요.