TABLE_STORAGE_USAGE_TIMELINE 뷰
INFORMATION_SCHEMA.TABLE_STORAGE_USAGE_TIMELINE
뷰는 다음 유형의 테이블에 대해 이전 90일 동안의 일일 총 스토리지 사용량을 제공합니다.
- 표준 테이블
- 구체화된 뷰
- 기본 테이블의 델타 값(바이트)이 포함된 테이블 클론
- 기본 테이블의 델타 값(바이트)이 포함된 테이블 스냅샷
청구 가능한 바이트가 없는 테이블은 INFORMATION_SCHEMA.TABLE_STORAGE_USAGE_TIMELINE
뷰에 포함되지 않습니다. 여기에는 다음 유형의 테이블이 포함됩니다.
- 외부 테이블
- 익명 테이블
- 빈 테이블
- 기본 테이블의 델타 값(바이트)이 없는 테이블 클론
- 기본 테이블의 델타 값(바이트)이 없는 테이블 스냅샷
INFORMATION_SCHEMA.TABLE_STORAGE_USAGE_TIMELINE
뷰를 쿼리하면 쿼리 결과에 각 테이블에 대해 하나의 행 또는 현재 프로젝트에 대한 구체화된 뷰가 포함됩니다.
이 테이블의 데이터는 실시간으로 보관되지 않습니다. 테이블 데이터가 이 뷰에 반영되려면 약 72시간이 걸립니다.
스토리지 사용량은 MiB 초로 반환됩니다. 예를 들어 프로젝트에 86,400초 (24시간) 동안 물리적으로 1,000,000바이트가 사용된 경우 총 물리적 사용량은 86,400,000,000바이트 초이며, 이는 다음 예시에 표시된 것처럼 82,397MiB 초로 변환됩니다.
86,400,000,000 / 1,024 / 1,024 = 82,397
이것은 BILLABLE_TOTAL_PHYSICAL_USAGE
열에서 반환되는 값입니다.
자세한 내용은 스토리지 가격 책정 세부정보를 참조하세요.
필수 권한
INFORMATION_SCHEMA.TABLE_STORAGE_USAGE_TIMELINE
뷰를 쿼리하려면 다음 Identity and Access Management(IAM) 권한이 필요합니다.
bigquery.tables.get
bigquery.tables.list
다음과 같이 사전 정의된 각 IAM 역할에는 위의 권한이 포함되어 있습니다.
roles/bigquery.dataViewer
roles/bigquery.dataEditor
roles/bigquery.metadataViewer
roles/bigquery.admin
리전 한정자가 있는 쿼리에는 프로젝트에 대한 권한이 있어야 합니다.
BigQuery 권한에 대한 자세한 내용은 IAM으로 액세스 제어를 참조하세요.
스키마
INFORMATION_SCHEMA.TABLE_STORAGE_USAGE_TIMELINE
뷰에는 다음과 같은 스키마가 있습니다.
USAGE_DATE |
DATE |
표시된 바이트의 결제일(America/Los_Angeles 시간대 사용) |
PROJECT_ID |
STRING |
데이터 세트가 포함된 프로젝트의 프로젝트 ID |
TABLE_CATALOG |
STRING |
데이터 세트가 포함된 프로젝트의 프로젝트 ID |
PROJECT_NUMBER |
INT64 |
데이터 세트가 포함된 프로젝트의 프로젝트 번호 |
TABLE_SCHEMA |
STRING |
테이블이나 구체화된 뷰가 포함된 데이터 세트 이름(또는 datasetId 라고 함) |
TABLE_NAME |
STRING |
테이블 또는 구체화된 뷰의 이름(또는 tableId 라고 함) |
BILLABLE_TOTAL_LOGICAL_USAGE |
INT64 |
총 논리적 사용량(MiB 초)입니다. 데이터 세트에 물리적 스토리지 청구 모델이 사용되는 경우 0을 반환합니다. |
BILLABLE_ACTIVE_LOGICAL_USAGE |
INT64 |
90일 미만의 논리적 사용량(MiB 초)입니다. 데이터 세트에 물리적 스토리지 청구 모델이 사용되는 경우 0을 반환합니다. |
BILLABLE_LONG_TERM_LOGICAL_USAGE |
INT64 |
90일 초과의 논리적 사용량(MiB 초)입니다. 데이터 세트에 물리적 스토리지 청구 모델이 사용되는 경우 0을 반환합니다. |
BILLABLE_TOTAL_PHYSICAL_USAGE |
INT64 |
총 사용량(MiB 초)입니다. 여기에는 장애 안전 및 시간 이동 스토리지에 사용되는 물리적 바이트가 포함됩니다. 데이터 세트에 논리적 스토리지 청구 모델이 사용되는 경우 0을 반환합니다. |
BILLABLE_ACTIVE_PHYSICAL_USAGE |
INT64 |
90일 미만의 물리적 사용량(MiB 초)입니다. 여기에는 장애 안전 및 시간 이동 스토리지에 사용되는 물리적 바이트가 포함됩니다. 데이터 세트에 논리적 스토리지 청구 모델이 사용되는 경우 0을 반환합니다. |
BILLABLE_LONG_TERM_PHYSICAL_USAGE |
INT64 |
90일 초과의 물리적 사용량(MiB 초)입니다. 데이터 세트에 논리적 스토리지 청구 모델이 사용되는 경우 0을 반환합니다. |
범위 및 구문
이 뷰에 대한 쿼리에는 리전 한정자가 있어야 합니다. 다음 표에는 이 뷰의 리전 범위가 나와 있습니다.
뷰 이름 | 리소스 범위 | 리전 범위 |
---|---|---|
[PROJECT_ID.]`region-REGION`.INFORMATION_SCHEMA.TABLE_STORAGE_USAGE_TIMELINE[_BY_PROJECT] |
프로젝트 수준 | REGION |
(선택사항) PROJECT_ID
: Google Cloud 프로젝트의 ID입니다. 지정하지 않으면 기본 프로젝트가 사용됩니다.
REGION
: 모든 데이터 세트 리전 이름입니다.
예를 들면 `region-us`
입니다.
다음 예시에서는 지정된 프로젝트의 테이블에 대해 스토리지 정보를 반환하는 방법을 보여줍니다.
SELECT * FROM myProject.`region-REGION`.INFORMATION_SCHEMA.TABLE_STORAGE_USAGE_TIMELINE;
다음 예시에서는 지정된 리전의 테이블에 대해 스토리지 정보를 반환하는 방법을 보여줍니다.
SELECT * FROM `region-REGION`.INFORMATION_SCHEMA.TABLE_STORAGE_USAGE_TIMELINE;
예시
예시 1
다음 예시에서는 지정된 리전의 프로젝트에 대한 일일 스토리지 사용량을 합산합니다.
SELECT usage_date, project_id, SUM(billable_total_logical_usage) AS billable_total_logical_usage, SUM(billable_active_logical_usage) AS billable_active_logical_usage, SUM(billable_long_term_logical_usage) AS billable_long_term_logical_usage, SUM(billable_total_physical_usage) AS billable_total_physical_usage, SUM(billable_active_physical_usage) AS billable_active_physical_usage, SUM(billable_long_term_physical_usage) AS billable_long_term_physical_usage FROM `region-REGION`.INFORMATION_SCHEMA.TABLE_STORAGE_USAGE_TIMELINE GROUP BY 1, 2 ORDER BY usage_date;
결과는 다음과 비슷합니다.
+-------------------------+------------------------------+-------------------------------+-----------------------------------+-------------------------------+--------------------------------+-------------------------------------+ | usage_date | project_id | billable_total_logical_usage | billable_active_logical_usage | billable_long_term_logical_usage | billable_total_physical_usage | billable_active_physical_usage | billable_long_term_physical_usage | +-------------------------+------------------------------+-------------------------------+-----------------------------------+-------------------------------+--------------------------------+-------------------------------------+ | 2023-04-03 | project_A | 305085738096 | 7667321458 | 297418416638 | 74823954823 | 124235724 | 74699719099 | +-------------------------+------------------------------+-------------------------------+-----------------------------------+-------------------------------+--------------------------------+-------------------------------------+ | 2023-04-04 | project_A | 287033241105 | 7592334614 | 279440906491 | 75071991788 | 200134561 | 74871857227 | +-------------------------+------------------------------+-------------------------------+-----------------------------------+-------------------------------+--------------------------------+-------------------------------------+ | 2023-04-03 | project_B | 478173930912 | 8137372626 | 470036558286 | 0 | 0 | 0 | +-------------------------+------------------------------+-------------------------------+-----------------------------------+-------------------------------+--------------------------------+-------------------------------------+ | 2023-04-04 | project_B | 496648915405 | 7710451723 | 488938463682 | 0 | 0 | 0 | +-------------------------+------------------------------+-------------------------------+-----------------------------------+-------------------------------+--------------------------------+-------------------------------------+
예시 2
다음 예시에서는 논리적 스토리지를 사용하는 데이터 세트의 테이블에 대해 지정된 날짜의 스토리지 사용량을 보여줍니다.
SELECT usage_date, table_schema, table_name, billable_total_logical_usage FROM `region-REGION`.INFORMATION_SCHEMA.TABLE_STORAGE_USAGE_TIMELINE WHERE project_id = 'PROJECT_ID' AND table_schema = 'DATASET_NAME' AND usage_date = 'USAGE_DATE' ORDER BY billable_total_logical_usage DESC;
결과는 다음과 비슷합니다.
+--------------+--------------+------------+------------------------------+ | usage_date | table_schema | table_name | billable_total_logical_usage | +--------------+--------------+------------+------------------------------+ | 2023-04-03 | dataset_A | table_4 | 734893409201 | +--------------+--------------+------------+------------------------------+ | 2023-04-03 | dataset_A | table_1 | 690070445455 | +--------------+--------------+------------+------------------------------+ | 2023-04-03 | dataset_A | table_3 | 52513713981 | +--------------+--------------+------------+------------------------------+ | 2023-04-03 | dataset_A | table_2 | 8894535355 | +--------------+--------------+------------+------------------------------+
예시 3
다음 예시에서는 물리적 스토리지를 사용하는 데이터 세트의 테이블에 대한 최근 사용일의 스토리지 사용량을 보여줍니다.
SELECT usage_date, table_schema, table_name, billable_total_physical_usage FROM ( SELECT *, ROW_NUMBER() OVER (PARTITION BY project_id, table_schema, table_name ORDER BY usage_date DESC) AS rank FROM `region-REGION`.INFORMATION_SCHEMA.TABLE_STORAGE_USAGE_TIMELINE ) WHERE rank = 1 AND project_id = 'PROJECT_ID' AND table_schema ='DATASET_NAME' ORDER BY usage_date;
결과는 다음과 비슷합니다.
+--------------+--------------+------------+-------------------------------+ | usage_date | table_schema | table_name | billable_total_physical_usage | +--------------+--------------+------------+-------------------------------+ | 2023-04-12 | dataset_A | table_4 | 345788341123 | +--------------+--------------+------------+-------------------------------+ | 2023-04-12 | dataset_A | table_1 | 0 | +--------------+--------------+------------+-------------------------------+ | 2023-04-12 | dataset_A | table_3 | 9123481400212 | +--------------+--------------+------------+-------------------------------+ | 2023-04-12 | dataset_A | table_2 | 1451334553 | +--------------+--------------+------------+-------------------------------+
예시 4
다음 예시에서는 TABLE_OPTIONS
및 TABLE_STORAGE_USAGE_TIMELINE
뷰를 조인하여 태그를 기준으로 스토리지 사용량 세부정보를 가져옵니다.
SELECT * FROM region-REGION.INFORMATION_SCHEMA.TABLE_OPTIONS INNER JOIN region-REGION.INFORMATION_SCHEMA.TABLE_STORAGE_USAGE_TIMELINE USING (TABLE_CATALOG, TABLE_SCHEMA, TABLE_NAME) WHERE option_name='tags' AND CONTAINS_SUBSTR(option_value, '(\"tag_namespaced_key\", \"tag_namespaced_value\")')