데이터 교환 관리

BigQuery Sharing의 데이터 교환을 사용하면 프로젝트, 조직 간에 또는 일반 대중과 데이터 세트를 안전하게 공유할 수 있습니다. BigQuery Sharing 관리자는 다음 작업을 수행할 수 있습니다.

  • 데이터 교환을 생성, 업데이트, 보기, 공유, 삭제
  • 데이터 교환의 액세스 권한 및 역할을 관리합니다.
  • 데이터 교환을 공개적으로 검색 가능하게 설정합니다.

데이터 교환 내에서 목록을 관리하려면 목록 관리를 참고하세요.

기본적으로 데이터 교환은 비공개입니다. 교환에 액세스할 수 있는 사용자 또는 그룹만 목록을 보거나 구독할 수 있습니다. 데이터 교환을 공개로 설정할 수 있습니다. 데이터 교환을 공개로 설정하면 Google Cloud 사용자 (allAuthenticatedUsers)가 목록을 검색하고 구독할 수 있습니다.

시작하기 전에

BigQuery Sharing(이전 명칭: Analytics Hub)을 시작하려면 Google Cloud 프로젝트 내에서 Analytics Hub API를 사용 설정해야 합니다.

Analytics Hub API를 사용 설정하려면 다음 Identity and Access Management(IAM) 권한이 필요합니다.

  • serviceUsage.services.get
  • serviceUsage.services.list
  • serviceUsage.services.enable

다음과 같은 사전 정의된 IAM 역할에는 Analytics Hub API를 사용 설정하는 데 필요한 권한이 포함되어 있습니다.

Analytics Hub API를 사용 설정하려면 다음 옵션 중 하나를 선택합니다.

콘솔

Analytics Hub API 페이지로 이동하여 Google Cloud 프로젝트에 Analytics Hub API를 사용 설정합니다.

Analytics Hub API 사용 설정

gcloud

gcloud services enable 명령어를 실행합니다.

gcloud services enable analyticshub.googleapis.com

필요한 역할

데이터 교환을 관리하는 데 필요한 권한을 얻으려면 관리자에게 프로젝트에 대한 Analytics Hub 관리자 역할 (roles/analyticshub.admin) IAM 역할을 부여해 달라고 요청하세요. 역할 부여에 대한 자세한 내용은 프로젝트, 폴더, 조직에 대한 액세스 관리를 참조하세요.

커스텀 역할이나 다른 사전 정의된 역할을 통해 필요한 권한을 얻을 수도 있습니다.

데이터 교환 만들기

데이터 교환을 만들어 특정 개인, 그룹 또는 대중과 데이터 세트를 공유할 수 있습니다. 데이터 익스체인지를 만들 때 프로젝트, 리전, 표시 이름, 선택적 설정(예: 구독자 이메일 로깅 및 공개 검색 가능 여부)을 지정합니다.

데이터 교환을 만들려면 다음 단계를 따르세요.

콘솔

  1. Google Cloud 콘솔에서 Sharing(Analytics Hub) 페이지로 이동합니다.

    Sharing(Analytics Hub)으로 이동

  2. 교환 만들기를 클릭합니다.

  3. 교환 만들기 대화상자에서 데이터 교환의 프로젝트리전을 선택합니다. 데이터 교환을 만든 후에는 프로젝트 및 리전을 변경할 수 없습니다.

  4. 표시 이름 필드에 데이터 교환 이름을 입력합니다.

  5. 선택사항: 다음 필드에 값을 입력합니다.

    • 담당자: 데이터 교환용 담당자의 URL 또는 이메일 주소를 입력합니다.
    • 설명: 데이터 교환에 대한 설명을 입력합니다.
  6. 연결된 데이터 세트에서 작업 및 쿼리를 실행하는 모든 사용자의 주 구성원 식별자를 로깅하려면 구독자 이메일 로깅 전환 버튼을 클릭하여 설정 위치로 전환합니다. 이 설정을 사용 설정하면 데이터 교환의 향후 모든 등록정보에 구독자 이메일 로깅이 사용 설정됩니다. 로깅된 데이터는 INFORMATION_SCHEMA.SHARED_DATASET_USAGE 보기job_principal_subject 필드에서 확인할 수 있습니다.

  7. 교환을 공개적으로 검색 가능하게 하려면 공개 검색 가능 여부 전환 버튼을 클릭하여 사용 위치로 전환합니다. 교환을 공개적으로 검색할 수 있게 되면 교환의 모든 목록이 카탈로그에 표시되고 검색 가능하게 됩니다. 공개 검색 가능을 사용 설정할 때는 다음 요소를 고려하세요.

    • 목록 상속: 모든 목록은 기본적으로 데이터 교환의 공개 검색 가능 여부 설정을 상속합니다. 공개 교환은 비공개 목록을 가질 수 없지만 비공개 교환은 공개 목록을 가질 수 있습니다. 개별 등록정보 수준에서 공개 검색 가능 여부 유형을 구성할 수 있습니다.
    • 권한: 공개 검색 가능 여부를 사용 설정하는 경우 allUsers 또는 allAuthenticatedUsersAnalytics Hub 뷰어 역할(roles/analyticshub.viewer)을 부여하도록 교환 권한을 구성합니다.
    • 프로젝트 요구사항: 데이터 교환을 만드는 프로젝트에 연결된 조직 및 결제 계정이 있어야 합니다.
  8. 데이터 교환을 만들려면 교환 만들기를 클릭합니다.

  9. 선택사항: 교환 권한 섹션에서 다음 단계를 완료합니다.

    1. 다음 필드에 Identity and Access Management (IAM) 역할을 부여할 이메일 주소를 입력합니다.

    2. 권한을 저장하려면 권한 설정을 클릭합니다.

  10. 데이터 교환에 대한 권한을 설정하지 않은 경우 건너뛰기를 클릭합니다.

API

데이터 교환을 만들려면 projects.locations.dataExchanges.create 메서드를 사용합니다.

POST https://analyticshub.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/dataExchanges?dataExchangeId=DATAEXCHANGE_ID

다음을 바꿉니다.

  • PROJECT_ID: 데이터 교환을 만들려는 프로젝트의 ID
  • LOCATION: 데이터 교환 위치. BigQuery Sharing을 지원하는 리전에 대한 자세한 내용은 지원되는 리전을 참고하세요.
  • DATAEXCHANGE_ID: 데이터 교환의 ID입니다.

요청 본문에 데이터 교환 세부정보를 제공합니다.

요청이 성공하면 응답 본문에 데이터 교환의 세부정보가 포함됩니다.

logLinkedDatasetQueryUserEmail 필드를 사용하여 구독자 이메일 로깅을 사용 설정하면 데이터 교환 응답에 log_linked_dataset_query_user_email: true가 포함됩니다. 로깅된 데이터는 INFORMATION_SCHEMA.SHARED_DATASET_USAGE 보기job_principal_subject 필드에서 확인할 수 있습니다.

API를 사용하여 데이터 교환에서 수행할 수 있는 작업에 대한 자세한 내용은 projects.locations.dataExchanges 메서드를 참조하세요.

데이터 교환 업데이트

표시 이름, 설명, 담당자, 공개 검색 가능 여부 설정과 같은 기존 데이터 교환의 구성을 업데이트할 수 있습니다. 기존 데이터 교환의 프로젝트 또는 리전은 변경할 수 없습니다.

데이터 교환을 업데이트하려면 다음 단계를 따르세요.

콘솔

  1. Google Cloud 콘솔에서 Sharing(Analytics Hub) 페이지로 이동합니다.

    Sharing(Analytics Hub)으로 이동

  2. 데이터 교환 목록에서 업데이트할 데이터 교환을 선택합니다.

  3. 세부정보 탭을 클릭합니다.

  4. 교환 수정을 클릭합니다.

  5. 교환 수정 대화상자에서 다음 필드를 업데이트합니다.

    • 표시 이름: 새 표시 이름을 입력합니다.
    • 담당자: 업데이트된 URL 또는 이메일 주소를 입력합니다.
    • 설명: 업데이트된 설명을 입력합니다.
    • 공개 검색 가능 여부: 공개 검색 가능 여부를 사용 설정하거나 사용 중지합니다.

      • 공개 검색 가능 여부를 사용 설정하는 경우 allUsers 또는 allAuthenticatedUsersAnalytics Hub 뷰어 역할(roles/analyticshub.viewer)을 부여합니다.
      • 공개 검색 가능 여부를 사용 중지하는 경우 allUsers 또는 allAuthenticatedUsers에서 Analytics Hub 뷰어 역할 (roles/analyticshub.viewer)을 삭제합니다. 공개 교환은 비공개 목록을 가질 수 없지만 비공개 교환은 공개 목록을 가질 수 있습니다.
    • 구독자 이메일 로깅: 구독자 이메일 로깅을 사용 설정 또는 사용 중지합니다.

  6. 변경사항을 적용하려면 저장을 클릭합니다.

API

데이터 교환을 업데이트하려면 projects.locations.dataExchanges.patch 메서드를 사용합니다.

PATCH https://analyticshub.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/dataExchanges/DATAEXCHANGE_ID?updateMask=UPDATEMASK

다음을 바꿉니다.

  • PROJECT_ID: 데이터 교환이 포함된 프로젝트의 ID입니다.
  • LOCATION: 데이터 교환의 위치입니다.
  • DATAEXCHANGE_ID: 데이터 교환의 ID입니다.
  • UPDATEMASK: 업데이트할 필드의 쉼표로 구분된 목록입니다 (예: displayName,primaryContact).

요청 본문에서 다음 필드에 업데이트된 값을 지정하세요.

  • displayName
  • description
  • primaryContact
  • documentation
  • icon
  • discoveryType
  • logLinkedDatasetQueryUserEmail

이러한 필드에 대한 자세한 내용은 리소스: DataExchange를 참고하세요.

API를 사용하여 데이터 교환에서 수행할 수 있는 작업에 대한 자세한 내용은 projects.locations.dataExchanges 메서드를 참조하세요.

데이터 교환 보기

액세스 권한이 있는 Google Cloud 프로젝트 또는 조직의 데이터 교환 목록을 볼 수 있습니다.

데이터 교환을 보려면 다음 단계를 따르세요.

콘솔

  1. Google Cloud 콘솔에서 Sharing(Analytics Hub) 페이지로 이동합니다.

    Sharing(Analytics Hub)으로 이동

  2. 데이터 교환 목록에서Google Cloud 프로젝트에 표시된 데이터 교환을 확인합니다. resourcemanager.organizations.get 권한이 있는 경우 Google Cloud 조직 전체의 데이터 교환도 볼 수 있습니다.

API

프로젝트의 데이터 교환을 보려면 projects.locations.dataExchanges.list 메서드를 사용합니다.

GET https://analyticshub.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/dataExchanges

다음을 바꿉니다.

  • PROJECT_ID: 데이터 교환을 나열할 프로젝트의 ID입니다.
  • LOCATION: 기존 데이터 교환을 나열할 위치입니다.

조직의 데이터 교환을 보려면 organizations.locations.dataExchanges.list 메서드를 사용합니다.

GET https://analyticshub.googleapis.com/v1/organizations/ORGANIZATION_ID/locations/LOCATION/dataExchanges

다음을 바꿉니다.

  • ORGANIZATION_ID: 조직 ID입니다. 자세한 내용은 조직 ID 가져오기를 참고하세요.
  • LOCATION: 기존 데이터 교환을 나열할 위치입니다.

데이터 교환 공유

BigQuery Sharing 게시자가 데이터 교환이 포함된 조직과 다른 조직에 속한 경우 BigQuery Sharing에서 데이터 교환을 볼 수 없습니다. 게시자가 데이터 교환에 액세스하도록 하려면 직접 링크를 복사하여 공유하면 됩니다.

데이터 교환 링크를 공유하려면 다음 단계를 따르세요.

  1. Google Cloud 콘솔에서 Sharing(Analytics Hub) 페이지로 이동합니다.

    Sharing(Analytics Hub)으로 이동

  2. 데이터 교환 목록에서 공유할 데이터 교환을 찾은 다음 옵션 더보기를 클릭합니다.

  3. 링크를 클립보드에 복사하려면 공유 링크 복사를 클릭합니다.

사용자에게 데이터 교환 액세스 권한 부여

사용자에게 데이터 교환 액세스 권한을 부여하려면 해당 데이터 교환에 IAM 정책을 설정하세요. 사전 정의된 IAM 사용자 역할에 대한 자세한 내용은 BigQuery Sharing IAM 역할을 참고하세요.

콘솔

  1. Google Cloud 콘솔에서 Sharing(Analytics Hub) 페이지로 이동합니다.

    Sharing(Analytics Hub)으로 이동

  2. 권한을 설정할 데이터 교환의 이름을 클릭합니다.

  3. 세부정보 탭을 클릭합니다.

  4. 권한 설정을 클릭합니다.

  5. 주 구성원을 추가하려면 주 구성원 추가를 클릭합니다.

  6. 새 주 구성원 필드에 액세스 권한을 부여할 주 구성원의 이메일 주소를 입력합니다. allUsers를 사용하여 리소스를 공개하고 인터넷의 모든 사용자가 액세스할 수 있도록 하거나 allAuthenticatedUsers를 사용하여 로그인한 Google 사용자만 액세스할 수 있도록 할 수도 있습니다.

  7. 역할 선택 목록에서 Analytics Hub 위에 마우스 포인터를 올려놓고 다음 IAM 역할 중 하나를 선택합니다.

    • Analytics Hub 관리자
    • Analytics Hub 목록 관리자
    • Analytics Hub 게시자
    • Analytics Hub 구독자
    • Analytics Hub 구독 소유자
    • Analytics Hub 뷰어
  8. 저장을 클릭합니다.

API

  1. 기존 정책을 읽으려면 projects.locations.dataExchanges.getIamPolicy 메서드를 사용합니다.

    POST https://analyticshub.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/dataExchanges/DATAEXCHANGE_ID:getIamPolicy
    

    다음을 바꿉니다.

    • PROJECT_ID: 프로젝트 ID입니다(예: my-project-1).
    • LOCATION: 데이터 교환 위치 소문자를 사용합니다.
    • DATAEXCHANGE_ID: 데이터 교환 ID

    BigQuery 공유는 현재 정책을 반환합니다.

  2. 구성원과 연결된 IAM 역할을 추가하거나 삭제하려면 텍스트 편집기로 정책을 수정합니다. 구성원을 추가하려면 다음 형식을 사용하세요.

    • user:test-user@gmail.com
    • group:admins@googlegroups.com
    • serviceAccount:server@example.gserviceaccount.com
    • domain:example.com

    예를 들어 group:subscribers@googlegroups.comroles/analyticshub.subscriber 역할을 부여하려면 다음 바인딩을 정책에 추가합니다.

    {
     "members": [
       "group:subscribers@googlegroups.com"
     ],
     "role":"roles/analyticshub.subscriber"
    }
    
  3. 데이터 교환 정책을 설정하려면 projects.locations.dataExchanges.setIamPolicy 메서드를 사용합니다. 요청 본문에 이전 단계에서 업데이트한 IAM 정책을 제공합니다.

    POST https://analyticshub.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/dataExchanges/DATAEXCHANGE_ID:setIamPolicy
    

BigQuery Sharing 관리자 만들기

데이터 교환 관리를 위임하려면 프로젝트 또는 데이터 교환 수준에서 사용자에게 Analytics Hub 관리자 역할(roles/analyticshub.admin)을 부여하여 데이터 교환 관리자를 만들면 됩니다.

데이터 교환 공개

기본적으로 데이터 교환은 비공개입니다. 교환에 액세스할 수 있는 사용자 또는 그룹만 목록을 보거나 구독할 수 있습니다. 데이터 교환을 공개로 설정하면 Google Cloud 사용자 (allAuthenticatedUsers)가 목록을 검색하고 구독할 수 있습니다.

데이터 교환을 공개로 설정하려면 다음 단계를 따르세요.

  1. allAuthenticatedUsers목록을 볼 수 있도록 하려면 데이터 교환 수준에서 Analytics Hub 뷰어 역할(roles/analyticshub.viewer)을 부여합니다.

  2. allAuthenticatedUsers목록을 구독하도록 하려면 데이터 교환 수준에서 Analytics Hub 구독자 역할(roles/analyticshub.subscriber)을 부여합니다.

  3. 데이터 익스체인지를 만들거나 업데이트할 때 공개 검색 가능 여부 전환 버튼을 클릭하여 사용 설정합니다.

데이터 교환 삭제

데이터 교환을 삭제하면 교환 내 모든 목록도 삭제됩니다. 공유 및 연결된 데이터 세트는 삭제되지 않습니다. 프로젝트를 삭제해도 데이터 교환이 자동으로 삭제되지는 않으므로 프로젝트를 종료하기 전에 모든 데이터 교환을 삭제해야 합니다. 데이터 교환 삭제는 실행취소할 수 없습니다.

데이터 교환을 삭제하기 전에 데이터 교환 구성에 따라 다음 기본 요건을 완료하세요.

데이터 교환을 삭제하려면 다음 단계를 따르세요.

콘솔

  1. Google Cloud 콘솔에서 Sharing(Analytics Hub) 페이지로 이동합니다.

    Sharing(Analytics Hub)으로 이동

  2. 데이터 교환 목록에서 삭제할 데이터 교환을 선택합니다.

  3. 세부정보 탭을 클릭합니다.

  4. 교환 삭제를 클릭합니다.

  5. 교환을 삭제하시겠습니까? 대화상자에서 delete를 입력하여 삭제를 확인합니다.

  6. 데이터 교환을 완전히 삭제하려면 삭제를 클릭합니다.

API

데이터 교환을 삭제하려면 projects.locations.dataExchanges.delete 메서드를 사용합니다.

DELETE https://analyticshub.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/dataExchanges/DATAEXCHANGE_ID

다음을 바꿉니다.

  • PROJECT_ID: 데이터 교환이 포함된 프로젝트의 ID입니다.
  • LOCATION: 데이터 교환 위치. BigQuery Sharing을 지원하는 리전에 대한 자세한 내용은 지원되는 리전을 참고하세요.
  • DATAEXCHANGE_ID: 데이터 교환의 ID입니다.

API를 사용하여 데이터 교환에서 수행할 수 있는 작업에 대한 자세한 내용은 projects.locations.dataExchanges 메서드를 참조하세요.

다음 단계