INFORMATION_SCHEMA.SHARED_DATASET_USAGE 뷰
INFORMATION_SCHEMA.SHARED_DATASET_USAGE
뷰에는 공유 데이터 세트 테이블의 소비에 대한 실시간에 가까운 메타데이터가 포함됩니다. 조직 간 데이터 공유를 시작하려면 Analytics Hub를 참조하세요.
필요한 역할
INFORMATION_SCHEMA.SHARED_DATASET_USAGE
뷰를 쿼리는 데 필요한 권한을 얻으려면 관리자에게 소스 프로젝트에 대한 BigQuery 데이터 소유자(roles/bigquery.dataOwner
) IAM 역할을 부여해 달라고 요청하세요.
역할 부여에 대한 자세한 내용은 프로젝트, 폴더, 조직에 대한 액세스 관리를 참조하세요.
이 사전 정의된 역할에는 INFORMATION_SCHEMA.SHARED_DATASET_USAGE
뷰를 쿼리하는 데 필요한 bigquery.datasets.listSharedDatasetUsage
권한이 포함되어 있습니다.
커스텀 역할이나 다른 사전 정의된 역할을 사용하여 이 권한을 부여받을 수도 있습니다.
스키마
기본 데이터는job_start_time
열로 파티션을 나누고 project_id
및 dataset_id
로 클러스터링됩니다.
INFORMATION_SCHEMA.SHARED_DATASET_USAGE
에는 다음과 같은 스키마가 있습니다.
열 이름 | 데이터 유형 | 값 |
---|---|---|
project_id
|
STRING
|
(클러스터링 열) 공유 데이터 세트가 포함된 프로젝트의 ID입니다. |
dataset_id
|
STRING
|
(클러스터링 열) 공유 데이터 세트의 ID입니다. |
table_id
|
STRING
|
액세스된 테이블의 ID입니다. |
data_exchange_id
|
STRING
|
데이터 교환의 리소스 경로입니다. |
listing_id
|
STRING
|
목록의 리소스 경로입니다. |
job_start_time
|
TIMESTAMP
|
(파티션 나누기 열) 이 작업의 시작 시간입니다. |
job_end_time
|
TIMESTAMP
|
이 작업의 종료 시간입니다. |
job_id
|
STRING
|
작업 ID입니다. 예: bquxjob_1234 |
job_project_number
|
INTEGER
|
이 작업이 속한 프로젝트의 수입니다. |
job_location
|
STRING
|
작업의 위치입니다. |
linked_project_number
|
INTEGER
|
구독자 프로젝트의 프로젝트 번호입니다. |
linked_dataset_id
|
STRING
|
구독자 데이터 세트의 연결된 데이터 세트 ID입니다. |
subscriber_org_number
|
INTEGER
|
작업이 실행된 조직 번호입니다. 구독자의 조직 번호입니다. 조직이 없는 프로젝트의 경우 이 필드는 비어 있습니다. |
subscriber_org_display_name
|
STRING
|
작업이 실행된 조직을 참조하는 인간이 읽을 수 있는 문자열입니다. 구독자의 조직 번호입니다. 조직이 없는 프로젝트의 경우 이 필드는 비어 있습니다. |
num_rows_processed
|
INTEGER
|
작업으로 이 테이블에서 처리한 행 수입니다. |
total_bytes_processed
|
INTEGER
|
이 테이블에서 작업으로 처리한 총 바이트입니다. |
데이터 보관
INFORMATION_SCHEMA.SHARED_DATASET_USAGE
뷰에는 실행 중인 작업과 지난 180일 동안의 작업 기록이 포함됩니다.
범위 및 구문
이 뷰에 대한 쿼리에는 리전 한정자가 있어야 합니다. 리전 한정자를 지정하지 않으면 미국 리전에서 메타데이터가 검색됩니다. 다음 표에는 이 뷰의 리전 범위가 나와 있습니다.
뷰 이름 | 리소스 범위 | 리전 범위 |
---|---|---|
[PROJECT_ID.]INFORMATION_SCHEMA.SHARED_DATASET_USAGE |
프로젝트 수준 | 미국 리전 |
[PROJECT_ID.]`region-REGION`.INFORMATION_SCHEMA.SHARED_DATASET_USAGE |
프로젝트 수준 | REGION |
- (선택사항)
PROJECT_ID
: Google Cloud 프로젝트의 ID입니다. 지정하지 않으면 기본 프로젝트가 사용됩니다.
REGION
: 모든 데이터 세트 리전 이름입니다.
예를 들면 region-us
입니다.
예시
기본 프로젝트가 아닌 프로젝트에 대해 쿼리를 실행하려면 다음 형식으로 프로젝트 ID를 추가합니다.
PROJECT_ID
.region-REGION_NAME
.INFORMATION_SCHEMA.SHARED_DATASET_USAGE
예를 들면 myproject.region-us.INFORMATION_SCHEMA.SHARED_DATASET_USAGE
입니다.
모든 공유 테이블에서 실행된 총 작업 수 가져오기
다음 예시에서는 프로젝트의 구독자가 실행하는 총 작업 수를 계산합니다.
SELECT COUNT(DISTINCT job_id) AS num_jobs FROM `region-us`.INFORMATION_SCHEMA.SHARED_DATASET_USAGE
결과는 다음과 비슷합니다.
+------------+ | num_jobs | +------------+ | 1000 | +------------+
구독자가 실행하는 총 작업 수를 확인하려면 WHERE
절을 사용합니다.
- 데이터 세트의 경우
WHERE dataset_id = "..."
를 사용합니다. - 테이블의 경우
WHERE dataset_id = "..." AND table_id = "..."
를 사용합니다.
처리된 행 수를 기반으로 가장 많이 사용된 테이블 가져오기
다음 쿼리는 구독자가 처리한 행 수를 기반으로 가장 많이 사용된 테이블을 계산합니다.
SELECT dataset_id, table_id, SUM(num_rows_processed) AS usage_rows FROM `region-us`.INFORMATION_SCHEMA.SHARED_DATASET_USAGE GROUP BY 1, 2 ORDER BY 3 DESC LIMIT 1
출력은 다음과 비슷합니다.
+---------------+-------------+----------------+ | dataset_id | table_id | usage_rows | +---------------+-------------+----------------+ | mydataset | mytable | 15 | +---------------+-------------+----------------+
테이블을 소비하는 상위 조직 찾기
다음 쿼리는 테이블에서 처리된 바이트 수를 기준으로 상위 구독자를 계산합니다. num_rows_processed
열을 측정항목으로 사용할 수도 있습니다.
SELECT subscriber_org_number, ANY_VALUE(subscriber_org_display_name) AS subscriber_org_display_name, SUM(total_bytes_processed) AS usage_bytes FROM `region-us`.INFORMATION_SCHEMA.SHARED_DATASET_USAGE GROUP BY 1
출력은 다음과 비슷합니다.
+--------------------------+--------------------------------+----------------+ |subscriber_org_number | subscriber_org_display_name | usage_bytes | +-----------------------------------------------------------+----------------+ | 12345 | myorganization | 15 | +--------------------------+--------------------------------+----------------+
조직이 없는 구독자의 경우 subscriber_org_number
대신 job_project_number
를 사용할 수 있습니다.
데이터 교환의 사용량 측정항목 가져오기
데이터 교환 및 소스 데이터 세트가 서로 다른 프로젝트에 있는 경우 다음 단계에 따라 데이터 교환의 사용량 측정항목을 확인합니다.
- 데이터 교환에 속하는 모든 목록을 찾습니다.
- 목록에 연결된 소스 데이터 세트를 검색합니다.
- 데이터 교환의 사용량 측정항목을 보려면 다음 쿼리를 사용합니다.
SELECT * FROM source_project_1.`region-us`.INFORMATION_SCHEMA.SHARED_DATASET_USAGE WHERE dataset_id='source_dataset_id' AND data_exchange_id="projects/4/locations/us/dataExchanges/x1" UNION ALL SELECT * FROM source_project_2.`region-us`.INFORMATION_SCHEMA.SHARED_DATASET_USAGE WHERE dataset_id='source_dataset_id' AND data_exchange_id="projects/4/locations/us/dataExchanges/x1"