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_OPTIONSTABLE_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\")')