논리적 뷰 만들기 및 관리

Bigtable에서 논리적 뷰 는 다른 SQL 쿼리로 쿼리할 수 있는 가상 테이블 역할을 하는 SQL 쿼리의 결과입니다. 데이터는 소스 테이블에 남아 있습니다.

이 문서에서는 논리적 뷰와 이를 만들고 작업을 수행하는 방법을 설명합니다. 연속 구체화된 뷰 및 승인된 뷰와의 비교는 테이블 및 뷰를 참조하세요.

논리적 뷰를 사용하면 Bigtable 데이터로 다음 작업을 수행할 수 있습니다.

  • 쿼리 반복 방지: 논리적 뷰에 열 매핑 및 캐스트 논리를 저장하고 발전시킬 수 있습니다. 그러면 추가 논리적 뷰에서 이 논리를 복사하여 붙여넣거나 이해할 필요 없이 사용할 수 있습니다.
  • 관계형 데이터베이스에서 읽도록 설계된 시스템과 통합: 논리적 뷰를 사용하면 Bigtable 데이터를 관계형 데이터베이스 테이블 또는 Cassandra 테이블처럼 읽을 수 있습니다.
  • 여러 테이블에 대해 동일한 논리적 뷰 실행: FROM 절을 수정하여 동일한 뷰를 사용하여 Bigtable 인스턴스의 모든 테이블을 쿼리할 수 있습니다.
  • 일관된 인터페이스 제공: 소스 테이블이 변경되더라도 애플리케이션에서 논리적 뷰를 사용할 수 있습니다.
  • 특정 열 또는 행에 대한 읽기 액세스 제한: 전체 테이블에 대한 액세스 권한을 부여하지 않고 사용자가 읽을 수 있도록 허용할 데이터만 노출할 수 있습니다.

논리적 뷰는 인스턴스 수준 리소스입니다. Google Cloud CLI 또는 콘솔의 Bigtable Studio 쿼리 편집기를 사용하여 논리적 뷰를 만들 수 있습니다. Google Cloud 논리적 뷰를 쿼리하려면 Bigtable Studio 쿼리 편집기 또는 SQL을 지원하는 Bigtable 클라이언트 라이브러리를 사용하면 됩니다.

논리적 뷰의 특성은 다음과 같습니다.

논리적 뷰를 정의하는 데 사용하는 row key, column qualifier, 열 값은 서비스 데이터로 취급됩니다. 따라서 민감한 정보가 포함된 row key, column qualifier 또는 열 값을 사용하여 논리적 뷰를 만들지 마세요. 서비스 데이터 처리 방법에 대한 자세한 내용은 Google Cloud 개인정보처리방침을 참조하세요.

시작하기 전에

gcloud CLI를 사용하려는 경우 다음 단계를 따르세요.

  1. Google Cloud CLI를 설치합니다.

  2. 외부 ID 공급업체(IdP)를 사용하는 경우 먼저 제휴 ID로 gcloud CLI에 로그인해야 합니다.

  3. 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 권한을 부여합니다.

  1. 프로젝트에 사용자에게 bigtable.reader 역할을 부여합니다.
  2. 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 액세스 제어를 참조하세요.

논리적 뷰 만들기

콘솔

  1. 콘솔에서 Bigtable 인스턴스 목록을 엽니다. Google Cloud

    인스턴스 목록 열기

  2. 인스턴스를 선택합니다.

  3. 탐색창에서 Bigtable Studio 를 클릭합니다.

  4. 을 클릭한 후 편집기를 선택하여 새 탭을 엽니다.

    1. 쿼리 편집기에서 쿼리를 작성합니다. 쿼리가 유효한 SQL이면 유효 메시지가 표시됩니다.

    2. 선택사항: SQL 스타일로 문 형식을 지정하려면 형식을 클릭합니다.

    3. 실행을 클릭합니다. 쿼리 결과가 결과 테이블에 표시됩니다.

    4. 쿼리가 만족스러우면 다른 이름으로 저장 확장기 화살표를 클릭하고 논리적 뷰로 저장 을 선택합니다.

  5. 논리적 뷰 저장 대화상자에서 뷰 이름을 입력한 후 저장 을 클릭합니다.

    쿼리 편집기 사용에 대한 자세한 내용은 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를 사용하세요.

  1. 콘솔에서 Bigtable 인스턴스 목록을 엽니다. Google Cloud

    인스턴스 목록 열기

  2. 목록에서 인스턴스를 선택합니다.

  3. 탐색창에서 Bigtable Studio 를 클릭합니다. 탐색기에 뷰 목록이 표시됩니다.

  4. 선택사항: 인스턴스의 처음 10개 뷰가 나열됩니다. 10개를 더 보려면 더보기 를 클릭합니다.

  5. 업데이트하려는 뷰 옆에 있는 more_vert 작업 메뉴를 클릭한 후 뷰 정의를 클릭합니다.

  6. 쿼리를 수정합니다.

  7. 실행 을 클릭합니다.

  8. 결과 창에 뷰에 포함되어야 하는 데이터가 표시되는지 확인한 후 다른 이름으로 저장 을 클릭합니다.

  9. 대화상자에서 수정한 뷰의 ID를 입력합니다.

    대화상자에 기존 뷰를 덮어쓰고 있다는 경고 메시지가 표시됩니다.

  10. 저장 을 클릭합니다.

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: 업데이트할 논리적 뷰의 ID
  • INSTANCE: 논리적 뷰가 포함된 인스턴스의 ID
  • QUERY: 유효한 GoogleSQL 쿼리

논리적 뷰 삭제

이 작업은 되돌릴 수 없습니다.

논리적 뷰에 삭제 보호가 사용 설정되어 있으면 삭제할 수 없습니다. 삭제 보호가 사용 설정된 논리적 뷰를 삭제하려면 논리적 뷰를 업데이트하여 삭제 보호를 사용 중지해야 합니다. 자세한 내용은 이 문서의 논리적 뷰 업데이트 섹션을 참조하세요.

콘솔

  1. 콘솔에서 Bigtable 인스턴스 목록을 엽니다. Google Cloud

    인스턴스 목록 열기

  2. 목록에서 인스턴스를 선택합니다.

  3. 탐색창에서 Bigtable Studio 를 클릭합니다. 탐색기에 뷰 목록이 표시됩니다.

  4. 선택사항: 인스턴스의 처음 10개 뷰가 나열됩니다. 10개를 더 보려면 더보기 를 클릭합니다.

  5. 를 펼칩니다.

  6. 삭제하려는 뷰 옆에 있는 more_vert 작업 메뉴를 클릭한 후 삭제를 클릭합니다.

gcloud

논리적 뷰를 삭제하려면 gcloud bigtable logical-views delete 명령어를 사용합니다.

  gcloud bigtable logical-views delete VIEW \
    --instance=INSTANCE

다음을 바꿉니다.

  • VIEW: 업데이트할 논리적 뷰의 ID
  • INSTANCE: 논리적 뷰가 포함된 인스턴스의 ID

인스턴스의 논리적 뷰 목록 가져오기

인스턴스의 논리적 뷰 목록을 볼 수 있습니다.

콘솔

  1. 콘솔에서 Bigtable 인스턴스 목록을 엽니다. Google Cloud

    인스턴스 목록 열기

  2. 목록에서 인스턴스를 선택합니다.

  3. 탐색창에서 Bigtable Studio 를 클릭합니다. 탐색기에 뷰 목록이 표시됩니다.

  4. 선택사항: 인스턴스의 처음 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로 데이터 쿼리를 참조하세요.

다음 단계