논리적 뷰 만들기 및 관리

Bigtable에서 논리적 뷰는 다른 SQL 쿼리로 쿼리할 수 있는 가상 테이블로 작동하는 SQL 쿼리의 결과입니다. 데이터는 소스 테이블에 유지됩니다.

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

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

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

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

논리적 뷰에는 다음과 같은 특성이 있습니다.

  • Bigtable용 GoogleSQL에서 지원하는 SQL 기능을 사용해야 합니다.
  • 읽기 전용
  • ReadRows 호출이 아닌 SQL로 읽어야 합니다.
  • 정의자 권한을 사용합니다. 소스 테이블에서 읽을 권한이 없더라도 논리적 뷰에서 읽을 권한이 있으면 논리적 뷰를 쿼리할 수 있습니다.

시작하기 전에

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

  1. Install the Google Cloud CLI.
  2. To initialize the gcloud CLI, run the following command:

    gcloud init

필요한 역할

논리적 뷰를 만들고 관리하는 데 필요한 권한을 얻으려면 관리자에게 인스턴스에 대한 Bigtable 관리자(roles/bigtable.admin) 역할을 부여해 달라고 요청하세요. 그러지 않으면 수행하려는 작업에 따라 인스턴스 수준에서 다음 권한을 요청합니다.

  • 만들기: bigtable.logicalViews.create
  • 업데이트: bigtable.logicalViews.update
  • 삭제: roles/bigtable.logicalViews.delete
  • 목록: bigtable.logicalViews.list
  • 설명: bigtable.logicalViews.get

논리적 뷰를 만들려면 소스 테이블에 대한 bigtable.table.readRows 이상 권한도 있어야 합니다.

사용 가능한 모든 역할 및 권한을 보려면 IAM을 사용한 Bigtable 액세스 제어를 참고하세요.

논리 뷰 만들기

콘솔

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

    인스턴스 목록 열기

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

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

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

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

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

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

    4. 쿼리가 마음에 들면 저장을 클릭한 다음 뷰 저장을 선택합니다.

    쿼리 편집기 사용에 관한 자세한 내용은 Bigtable 스튜디오를 사용하여 데이터 관리를 참고하세요.

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입니다.

논리적 뷰 업데이트

콘솔

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

    인스턴스 목록 열기

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

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

  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

다음을 바꿉니다.

  • VIEW: 업데이트할 논리 뷰의 ID입니다.
  • QUERY: 유효한 GoogleSQL 쿼리
  • INSTANCE: 논리적 뷰가 포함된 인스턴스의 ID입니다.

논리적 뷰 삭제

이 작업은 되돌릴 수 없습니다. 논리적 뷰를 삭제하려면 gcloud bigtable logical-views delete 명령어를 사용합니다.

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

다음을 바꿉니다.

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

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

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

콘솔

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

    인스턴스 목록 열기

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

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

  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'

다음 단계