Tampilan TABLE_STORAGE

Tampilan INFORMATION_SCHEMA.TABLE_STORAGE memberikan ringkasan saat ini dari penggunaan penyimpanan untuk tabel dan tampilan terwujud. Saat Anda membuat kueri tampilan INFORMATION_SCHEMA.TABLE_STORAGE, hasil kueri akan berisi satu baris untuk setiap tabel atau tampilan terwujud untuk project saat ini. Data dalam tampilan INFORMATION_SCHEMA.TABLE_STORAGE tidak disimpan secara real time, dan pembaruan biasanya tertunda beberapa detik hingga beberapa menit. Perubahan penyimpanan yang disebabkan oleh masa berlaku partisi atau tabel saja, atau yang disebabkan oleh modifikasi pada periode perjalanan waktu set data, mungkin memerlukan waktu hingga satu hari untuk ditampilkan di tampilan INFORMATION_SCHEMA.TABLE_STORAGE.

Tampilan penyimpanan tabel memberikan cara mudah untuk mengamati konsumsi penyimpanan saat ini. Selain itu, tampilan ini memberikan detail tentang apakah penyimpanan Anda menggunakan byte logis yang tidak terkompresi, byte fisik terkompresi, atau byte perjalanan waktu. Informasi ini dapat membantu Anda menangani tugas-tugas seperti merencanakan pertumbuhan pada masa mendatang dan memahami pola pembaruan untuk tabel.

Data yang disertakan dalam kolom *_BYTES

Kolom *_BYTES dalam tampilan penyimpanan tabel menyertakan informasi tentang penggunaan byte penyimpanan. Informasi ini ditentukan dengan melihat penggunaan penyimpanan untuk tampilan terwujud dan jenis tabel berikut:

  • Tabel permanen yang dibuat melalui salah satu metode yang dijelaskan dalam Membuat dan menggunakan tabel.
  • Tabel sementara yang dibuat dalam beberapa sesi. Tabel ini ditempatkan ke dalam set data dengan nama yang dihasilkan seperti "_c018003e063d09570001ef33ae401fad6ab92a6a".
  • Tabel sementara yang dibuat di kueri multi-pernyataan ("skrip"). Tabel ini ditempatkan ke dalam set data dengan nama yang dihasilkan seperti "_script72280c173c88442c3a7200183a50eeeaa4073719".

Data yang disimpan di cache hasil kueri tidak ditagihkan kepada Anda, sehingga tidak disertakan dalam nilai kolom *_BYTES.

Clone dan snapshot menampilkan nilai kolom *_BYTES seolah-olah merupakan tabel lengkap, bukan menampilkan delta dari penyimpanan yang digunakan oleh tabel dasar, sehingga clone dan snapshot tersebut merupakan estimasi yang berlebihan. Tagihan Anda memperhitungkan penggunaan penyimpanan delta ini secara tepat. Untuk mengetahui informasi selengkapnya tentang byte delta yang disimpan dan ditagih oleh clone dan snapshot, lihat tampilan TABLE_STORAGE_USAGE_TIMELINE.

Memperkirakan penagihan penyimpanan

Untuk memperkirakan penagihan penyimpanan bulanan untuk set data, Anda dapat menggunakan kolom logical atau physical *_BYTES dalam tampilan ini, bergantung pada model penagihan penyimpanan set data yang digunakan oleh set data. Perlu diperhatikan bahwa ini hanya perkiraan kasar, dan jumlah penagihan yang tepat dihitung berdasarkan penggunaan oleh infrastruktur penagihan penyimpanan BigQuery serta terlihat di Penagihan Cloud.

Untuk set data yang menggunakan model penagihan logis, Anda dapat memperkirakan biaya penyimpanan bulanan sebagai berikut:

((nilai ACTIVE_LOGICAL_BYTES/POW(1024, 3)) * harga byte logis aktif) + ((nilai LONG_TERM_LOGICAL_BYTES/POW(1024, 3)) * harga byte logis jangka panjang)

Nilai ACTIVE_LOGICAL_BYTES untuk tabel mencerminkan byte aktif yang saat ini digunakan oleh tabel tersebut.

Untuk set data yang menggunakan model penagihan fisik, Anda dapat memperkirakan biaya penyimpanan sebagai berikut:

((nilai ACTIVE_PHYSICAL_BYTES + FAIL_SAFE_PHYSICAL_BYTES/POW(1024, 3)) * harga byte fisik aktif) + ((nilai LONG_TERM_PHYSICAL_BYTES/POW(1024, 3)) * harga byte fisik jangka panjang)

Nilai ACTIVE_PHYSICAL_BYTES untuk tabel mencerminkan byte aktif yang saat ini digunakan oleh tabel tersebut, plus byte yang digunakan dalam perjalanan waktu untuk tabel tersebut.

Untuk melihat byte aktif tabel saja, kurangi nilai TIME_TRAVEL_PHYSICAL_BYTES dari nilai ACTIVE_PHYSICAL_BYTES.

Untuk mengetahui informasi selengkapnya, lihat Harga penyimpanan.

Peran yang diperlukan

Untuk mendapatkan izin yang diperlukan untuk membuat kueri tampilan INFORMATION_SCHEMA.TABLE_STORAGE, minta administrator untuk memberi Anda peran IAM BigQuery Metadata Viewer (roles/bigquery.metadataViewer) di project. Untuk mengetahui informasi selengkapnya tentang cara memberikan peran, lihat Mengelola akses ke project, folder, dan organisasi.

Peran yang telah ditetapkan ini berisi izin yang diperlukan untuk membuat kueri tampilan INFORMATION_SCHEMA.TABLE_STORAGE. Untuk melihat izin yang pasti diperlukan, luaskan bagian Izin yang diperlukan:

Izin yang diperlukan

Izin berikut diperlukan untuk membuat kueri tampilan INFORMATION_SCHEMA.TABLE_STORAGE:

  • bigquery.tables.get
  • bigquery.tables.list

Anda mungkin juga bisa mendapatkan izin ini dengan peran khusus atau peran bawaan lainnya.

Skema

Tampilan INFORMATION_SCHEMA.TABLE_STORAGE memiliki skema berikut:

Nama kolom Jenis data Nilai
PROJECT_ID STRING ID project dari project yang berisi set data.
PROJECT_NUMBER INT64 Nomor project dari project yang berisi set data.
TABLE_CATALOG STRING ID project dari project yang berisi set data.
TABLE_SCHEMA STRING Nama set data yang berisi tabel atau tampilan terwujud, juga disebut sebagai datasetId.
TABLE_NAME STRING Nama tabel atau tampilan terwujud, juga disebut sebagai tableId.
CREATION_TIME TIMESTAMP Waktu pembuatan tabel.
TOTAL_ROWS INT64 Jumlah total baris dalam tabel atau tampilan terwujud.
TOTAL_PARTITIONS INT64 Jumlah partisi yang ada dalam tabel atau tampilan terwujud. Tabel yang tidak dipartisi menampilkan 0.
TOTAL_LOGICAL_BYTES INT64 Jumlah total byte logis (tidak terkompresi) dalam tabel atau tampilan terwujud.
ACTIVE_LOGICAL_BYTES INT64 Jumlah byte logis (tidak terkompresi) dengan usia kurang dari 90 hari.
LONG_TERM_LOGICAL_BYTES INT64 Jumlah byte logis (tidak terkompresi) yang sudah lebih dari 90 hari.
CURRENT_PHYSICAL_BYTES INT64 Jumlah total byte fisik untuk penyimpanan tabel saat ini di semua partisi.
TOTAL_PHYSICAL_BYTES INT64 Jumlah total byte fisik (terkompresi) yang digunakan untuk penyimpanan, termasuk byte aktif, jangka panjang, dan perjalanan waktu (data yang dihapus atau diubah). Byte fail-safe (data yang dihapus atau diubah yang disimpan setelah periode perjalanan waktu) tidak disertakan.
ACTIVE_PHYSICAL_BYTES INT64 Jumlah byte fisik (terkompresi) yang lebih muda dari 90 hari, termasuk byte perjalanan waktu (data yang dihapus atau diubah).
LONG_TERM_PHYSICAL_BYTES INT64 Jumlah byte fisik (terkompresi) yang sudah lebih dari 90 hari.
TIME_TRAVEL_PHYSICAL_BYTES INT64 Jumlah byte fisik (terkompresi) yang digunakan oleh penyimpanan perjalanan waktu (data yang dihapus atau diubah).
STORAGE_LAST_MODIFIED_TIME TIMESTAMP Waktu terakhir kali data ditulis ke tabel.
DELETED BOOLEAN Menunjukkan apakah tabel dihapus atau tidak.
TABLE_TYPE STRING Jenis tabel. Misalnya, EXTERNAL atau BASE TABLE.
FAIL_SAFE_PHYSICAL_BYTES INT64 Jumlah byte fisik (terkompresi) yang digunakan oleh penyimpanan gagal aman (data yang dihapus atau diubah).
LAST_METADATA_INDEX_REFRESH_TIME TIMESTAMP Waktu pembaruan indeks metadata terakhir dari tabel.

Cakupan dan sintaksis

Kueri terhadap tabel virtual ini harus menyertakan penentu region. Tabel berikut menjelaskan cakupan region untuk tabel virtual ini:

Nama tabel virtual Cakupan resource Cakupan region
[`PROJECT_ID`.]`region-REGION`.INFORMATION_SCHEMA.TABLE_STORAGE[_BY_PROJECT] Level project REGION
Ganti kode berikut:

  • Opsional: PROJECT_ID: ID project Google Cloud Anda. Jika tidak ditentukan, project default akan digunakan.

  • REGION: nama region set data apa pun. Misalnya, `region-us`.

  • Contoh berikut menunjukkan cara menampilkan informasi penyimpanan untuk tabel di project yang ditentukan:

    SELECT * FROM `myProject`.`region-REGION`.INFORMATION_SCHEMA.TABLE_STORAGE;
    

    Contoh berikut menunjukkan cara menampilkan informasi penyimpanan untuk tabel di region yang ditentukan:

    SELECT * FROM `region-REGION`.INFORMATION_SCHEMA.TABLE_STORAGE_BY_PROJECT;
    

    Contoh

    Contoh 1:

    Contoh berikut menunjukkan total byte logis yang ditagih untuk project saat ini.

    SELECT
      SUM(total_logical_bytes) AS total_logical_bytes
    FROM
      `region-REGION`.INFORMATION_SCHEMA.TABLE_STORAGE;

    Hasilnya mirip dengan berikut ini:

    +---------------------+
    | total_logical_bytes |
    +---------------------+
    | 971329178274633     |
    +---------------------+
    
    Contoh 2:

    Contoh berikut menunjukkan cara memperkirakan perbedaan harga per set data antara model penagihan logis dan fisik selama 30 hari ke depan. Contoh ini mengasumsikan bahwa penggunaan penyimpanan mendatang bersifat konstan selama 30 hari ke depan sejak kueri dijalankan. Perlu diperhatikan bahwa perkiraan dibatasi untuk tabel dasar. Perkiraan tidak mencakup semua jenis tabel lainnya dalam set data.

    Harga yang digunakan dalam variabel harga untuk kueri ini adalah untuk region us-central1. Jika Anda ingin menjalankan kueri ini untuk wilayah lain, perbarui variabel harga dengan tepat. Lihat Harga penyimpanan untuk mengetahui informasi harga.

    1. Buka halaman BigQuery di Konsol Google Cloud.

      Buka halaman BigQuery

    2. Masukkan kueri GoogleSQL berikut di kotak Query editor. INFORMATION_SCHEMA memerlukan sintaksis GoogleSQL. GoogleSQL adalah sintaksis default di Konsol Google Cloud.

      DECLARE active_logical_gib_price FLOAT64 DEFAULT 0.02;
      DECLARE long_term_logical_gib_price FLOAT64 DEFAULT 0.01;
      DECLARE active_physical_gib_price FLOAT64 DEFAULT 0.04;
      DECLARE long_term_physical_gib_price FLOAT64 DEFAULT 0.02;
      
      WITH
       storage_sizes AS (
         SELECT
           table_schema AS dataset_name,
           -- Logical
           SUM(IF(deleted=false, active_logical_bytes, 0)) / power(1024, 3) AS active_logical_gib,
           SUM(IF(deleted=false, long_term_logical_bytes, 0)) / power(1024, 3) AS long_term_logical_gib,
           -- Physical
           SUM(active_physical_bytes) / power(1024, 3) AS active_physical_gib,
           SUM(active_physical_bytes - time_travel_physical_bytes) / power(1024, 3) AS active_no_tt_physical_gib,
           SUM(long_term_physical_bytes) / power(1024, 3) AS long_term_physical_gib,
           -- Restorable previously deleted physical
           SUM(time_travel_physical_bytes) / power(1024, 3) AS time_travel_physical_gib,
           SUM(fail_safe_physical_bytes) / power(1024, 3) AS fail_safe_physical_gib,
         FROM
           `region-REGION`.INFORMATION_SCHEMA.TABLE_STORAGE_BY_PROJECT
         WHERE total_physical_bytes + fail_safe_physical_bytes > 0
           -- Base the forecast on base tables only for highest precision results
           AND table_type  = 'BASE TABLE'
           GROUP BY 1
       )
      SELECT
        dataset_name,
        -- Logical
        ROUND(active_logical_gib, 2) AS active_logical_gib,
        ROUND(long_term_logical_gib, 2) AS long_term_logical_gib,
        -- Physical
        ROUND(active_physical_gib, 2) AS active_physical_gib,
        ROUND(long_term_physical_gib, 2) AS long_term_physical_gib,
        ROUND(time_travel_physical_gib, 2) AS time_travel_physical_gib,
        ROUND(fail_safe_physical_gib, 2) AS fail_safe_physical_gib,
        -- Compression ratio
        ROUND(SAFE_DIVIDE(active_logical_gib, active_no_tt_physical_gib), 2) AS active_compression_ratio,
        ROUND(SAFE_DIVIDE(long_term_logical_gib, long_term_physical_gib), 2) AS long_term_compression_ratio,
        -- Forecast costs logical
        ROUND(active_logical_gib * active_logical_gib_price, 2) AS forecast_active_logical_cost,
        ROUND(long_term_logical_gib * long_term_logical_gib_price, 2) AS forecast_long_term_logical_cost,
        -- Forecast costs physical
        ROUND((active_no_tt_physical_gib + time_travel_physical_gib + fail_safe_physical_gib) * active_physical_gib_price, 2) AS forecast_active_physical_cost,
        ROUND(long_term_physical_gib * long_term_physical_gib_price, 2) AS forecast_long_term_physical_cost,
        -- Forecast costs total
        ROUND(((active_logical_gib * active_logical_gib_price) + (long_term_logical_gib * long_term_logical_gib_price)) -
           (((active_no_tt_physical_gib + time_travel_physical_gib + fail_safe_physical_gib) * active_physical_gib_price) + (long_term_physical_gib * long_term_physical_gib_price)), 2) AS forecast_total_cost_difference
      FROM
        storage_sizes
      ORDER BY
        (forecast_active_logical_cost + forecast_active_physical_cost) DESC;
    3. Klik Run.

    Hasilnya mirip dengan berikut ini:

    +--------------+--------------------+-----------------------+---------------------+------------------------+--------------------------+-----------------------------+------------------------------+----------------------------------+-------------------------------+----------------------------------+--------------------------------+
    | dataset_name | active_logical_gib | long_term_logical_gib | active_physical_gib | long_term_physical_gib | active_compression_ratio | long_term_compression_ratio | forecast_active_logical_cost | forecaset_long_term_logical_cost | forecast_active_physical_cost | forecast_long_term_physical_cost | forecast_total_cost_difference |
    +--------------+--------------------+-----------------------+---------------------+------------------------+--------------------------+-----------------------------+------------------------------+----------------------------------+-------------------------------+----------------------------------+--------------------------------+
    | dataset1     |               10.0 |                  10.0 |                 1.0 |                    1.0 |                     10.0 |                        10.0 |                          0.2 |                              0.1 |                          0.04 |                             0.02 |                           0.24 |