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 update biasanya tertunda selama beberapa detik hingga beberapa menit. Perubahan penyimpanan yang hanya disebabkan oleh partisi atau akhir masa berlaku tabel, atau yang disebabkan oleh modifikasi pada periode perjalanan waktu set data, mungkin memerlukan waktu hingga satu hari untuk ditampilkan dalam 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 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) pada project. Untuk mengetahui informasi selengkapnya tentang cara memberikan peran, lihat Manage access.

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 yang telah ditetapkan 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
TABLE_CATALOG STRING ID project dari project yang berisi set data
PROJECT_NUMBER INT64 Nomor 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
DELETED BOOLEAN Menunjukkan apakah tabel dihapus atau tidak
STORAGE_LAST_MODIFIED_TIME TIMESTAMP Waktu terakhir kali data ditulis ke 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) dengan usia lebih dari 90 hari
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)
ACTIVE_PHYSICAL_BYTES INT64 Jumlah byte fisik (terkompresi) dengan usia kurang 90 hari, termasuk byte perjalanan waktu (data dihapus atau diubah)
LONG_TERM_PHYSICAL_BYTES INT64 Jumlah byte fisik (terkompresi) dengan usia lebih dari 90 hari
TIME_TRAVEL_PHYSICAL_BYTES INT64 Jumlah byte fisik (terkompresi) yang digunakan oleh penyimpanan perjalanan waktu (data yang dihapus atau diubah)
FAIL_SAFE_PHYSICAL_BYTES INT64 Jumlah byte fisik (terkompresi) yang digunakan oleh penyimpanan gagal aman (data yang dihapus atau diubah)
TABLE_TYPE STRING Jenis tabel. Misalnya, `EXTERNAL` atau `BASE TABLE`

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 > 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 |