Tampilan JOBS_BY_USER

Tampilan INFORMATION_SCHEMA.JOBS_BY_USER berisi metadata yang hampir real-time tentang tugas BigQuery yang dikirimkan oleh pengguna saat ini dalam project saat ini.

Peran yang diperlukan

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

Peran yang telah ditentukan ini berisi izin bigquery.jobs.list, yang diperlukan untuk membuat kueri tampilan INFORMATION_SCHEMA.JOBS_BY_USER.

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

Untuk mengetahui informasi selengkapnya tentang izin BigQuery, lihat Kontrol akses dengan IAM.

Skema

Data pokok dipartisi oleh kolom creation_time serta dikelompokkan menurut project_id dan user_email.

Tampilan INFORMATION_SCHEMA.JOBS_BY_USER memiliki skema berikut:

Nama kolom Data type Nilai
bi_engine_statistics RECORD Jika project dikonfigurasi untuk menggunakan Antarmuka BI Engine SQL, maka kolom ini berisi BiEngineStatistics. Atau NULL.
cache_hit BOOLEAN Apakah hasil kueri tugas ini berasal dari cache. Jika Anda memiliki tugas pernyataan multi-kueri, cache_hit untuk kueri induk Anda adalah NULL.
creation_time TIMESTAMP (Kolom partisi) Waktu pembuatan tugas ini. Partisi didasarkan pada waktu UTC stempel waktu ini.
destination_table RECORD Tabel tujuan untuk hasil, jika ada.
dml_statistics RECORD Jika tugas adalah kueri dengan pernyataan DML, nilainya adalah data dengan kolom berikut:
  • inserted_row_count: Jumlah baris yang disisipkan.
  • deleted_row_count: Jumlah baris yang telah dihapus.
  • updated_row_count: Jumlah baris yang diperbarui.
Untuk semua tugas lainnya, nilainya adalah NULL.
Kolom ini ada dalam tampilan INFORMATION_SCHEMA.JOBS_BY_USER dan INFORMATION_SCHEMA.JOBS_BY_PROJECT.
end_time TIMESTAMP Waktu berakhir tugas ini, dalam milidetik sejak epoch. Kolom ini menunjukkan waktu saat tugas memasuki status DONE.
error_result RECORD Detail error sebagai objek ErrorProto.
job_creation_reason.code STRING Menentukan alasan tingkat tinggi mengapa tugas dibuat.
Nilai yang mungkin adalah:
  • REQUESTED: pembuatan tugas diminta.
  • LONG_RUNNING: permintaan kueri berjalan melebihi waktu tunggu yang ditentukan sistem yang ditentukan oleh kolom timeoutMs di QueryRequest. Akibatnya, operasi ini dianggap sebagai operasi yang berjalan lama yang tugasnya dibuat.
  • LARGE_RESULTS: hasil dari kueri tidak dapat muat dalam respons inline.
  • OTHER: sistem telah menentukan bahwa kueri perlu dieksekusi sebagai tugas.
job_id STRING ID tugas jika tugas dibuat. Jika tidak, ID kueri dari kueri yang menggunakan mode kueri singkat. Misalnya, bquxjob_1234.
job_stages RECORD Tahap kueri tugas.

Catatan: Nilai kolom ini kosong untuk kueri yang membaca dari tabel dengan kebijakan akses tingkat baris. Untuk mengetahui informasi selengkapnya, lihat praktik terbaik untuk keamanan tingkat baris di BigQuery.

job_type STRING Jenis tugas. Dapat berupa QUERY, LOAD, EXTRACT, COPY, atau NULL. Nilai NULL menunjukkan tugas internal, seperti evaluasi pernyataan tugas skrip atau pemuatan ulang tampilan terwujud.
labels RECORD Array label yang diterapkan ke tugas sebagai pasangan nilai kunci.
parent_job_id STRING ID tugas induk, jika ada.
priority STRING Prioritas tugas ini. Nilai yang valid mencakup INTERACTIVE, dan BATCH.
project_id STRING (Kolom pengelompokkan) ID project.
project_number INTEGER Nomor project.
query STRING Teks kueri SQL. Hanya tampilan JOBS_BY_PROJECT yang memiliki kolom kueri.
referenced_tables RECORD Array tabel yang direferensikan oleh tugas. Hanya diisi untuk tugas kueri yang bukan hit cache.
reservation_id STRING Nama reservasi utama yang ditetapkan untuk tugas ini, dalam format RESERVATION_ADMIN_PROJECT:RESERVATION_LOCATION.RESERVATION_NAME.
Dalam output ini:
  • RESERVATION_ADMIN_PROJECT: nama project Google Cloud yang mengelola reservasi
  • RESERVATION_LOCATION: lokasi pemesanan
  • RESERVATION_NAME: nama pemesanan
edition STRING Edisi yang terkait dengan reservasi yang ditetapkan ke tugas ini. Untuk mengetahui informasi selengkapnya tentang edisi, lihat Pengantar edisi BigQuery.
session_info RECORD Detail tentang sesi tempat tugas ini dijalankan, jika ada.
start_time TIMESTAMP Waktu mulai tugas ini, dalam milidetik sejak epoch. Kolom ini menunjukkan waktu saat tugas bertransisi dari status PENDING ke RUNNING atau DONE.
state STRING Status tugas yang berjalan. Status yang valid mencakup PENDING, RUNNING, dan DONE.
statement_type STRING Jenis pernyataan kueri. Misalnya, DELETE, INSERT, SCRIPT, SELECT, atau UPDATE. Lihat QueryStatementType untuk mengetahui daftar nilai yang valid.
timeline RECORD Linimasa kueri tugas. Berisi snapshot eksekusi kueri.
total_bytes_billed INTEGER Jika project dikonfigurasi untuk menggunakan harga sesuai permintaan, maka kolom ini berisi total byte yang ditagih untuk tugas tersebut. Jika project dikonfigurasi untuk menggunakan harga tetap, Anda tidak akan dikenai biaya untuk byte dan kolom ini hanya bersifat informasi.

Catatan: Nilai kolom ini kosong untuk kueri yang membaca dari tabel dengan kebijakan akses tingkat baris. Untuk mengetahui informasi selengkapnya, lihat praktik terbaik untuk keamanan tingkat baris di BigQuery.

total_bytes_processed INTEGER

Total byte yang diproses oleh tugas.

Catatan: Nilai kolom ini kosong untuk kueri yang membaca dari tabel dengan kebijakan akses tingkat baris. Untuk mengetahui informasi selengkapnya, lihat praktik terbaik untuk keamanan tingkat baris di BigQuery.

total_modified_partitions INTEGER Jumlah total partisi yang diubah oleh tugas. Kolom ini diisi untuk tugas LOAD dan QUERY.
total_slot_ms INTEGER Masukkan milidetik untuk tugas selama keseluruhan durasinya dalam status RUNNING, termasuk percobaan ulang.
transaction_id STRING ID transaksi tempat tugas ini berjalan, jika ada. (Pratinjau)
user_email STRING (Kolom pengelompokan) Alamat email atau akun layanan pengguna yang menjalankan tugas.
query_info.resource_warning STRING Pesan peringatan yang muncul jika penggunaan resource selama pemrosesan kueri berada di atas ambang batas internal sistem.
Tugas kueri yang berhasil dapat mengisi kolom resource_warning. Dengan resource_warning, Anda akan mendapatkan titik data tambahan untuk mengoptimalkan kueri dan menyiapkan pemantauan tren performa kumpulan kueri yang setara menggunakan query_hashes.
query_info.query_hashes.normalized_literals STRING Berisi hash kueri. normalized_literals adalah hash STRING heksadesimal yang mengabaikan komentar, parameter value, UDF, dan literal. Nilai hash akan berbeda saat tampilan yang mendasarinya berubah, atau jika kueri secara implisit mereferensikan kolom, seperti SELECT *, dan skema tabel berubah.
Kolom ini muncul untuk kueri GoogleSQL yang berhasil dan tidak menemukan cache.
query_info.performance_insights RECORD Insight performa untuk tugas.
query_info.optimization_details STRUCT Pengoptimalan berbasis histori untuk tugas.
transferred_bytes INTEGER Total byte yang ditransfer untuk kueri lintas-cloud, seperti tugas transfer lintas-cloud BigQuery Omni.
materialized_view_statistics RECORD Statistik tampilan terwujud yang dipertimbangkan dalam tugas kueri. (Pratinjau)

Retensi data

Tabel virtual ini berisi tugas yang sedang berjalan dan histori tugas selama 180 hari terakhir.

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.JOBS_BY_USER Tugas yang dikirim oleh pengguna saat ini dalam project yang ditentukan. 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

    Untuk menjalankan kueri terhadap project selain project default Anda, tambahkan project ID dalam format berikut:

    `PROJECT_ID`.`region-REGION_NAME`.INFORMATION_SCHEMA.JOBS_BY_USER
    Ganti kode berikut:

    • PROJECT_ID: ID project
    • REGION_NAME: region untuk project Anda

    Misalnya, `myproject`.`region-us`.INFORMATION_SCHEMA.JOBS_BY_USER.

    Melihat tugas yang tertunda atau berjalan

    SELECT
      job_id,
      creation_time,
      query
    FROM
      `region-REGION_NAME`.INFORMATION_SCHEMA.JOBS_BY_USER
    WHERE
      state != 'DONE';

    Hasilnya mirip dengan berikut ini:

    +--------------+---------------------------+---------------------------------+
    | job_id       |  creation_time            |  query                          |
    +--------------+---------------------------+---------------------------------+
    | bquxjob_1    |  2019-10-10 00:00:00 UTC  |  SELECT ... FROM dataset.table1 |
    | bquxjob_2    |  2019-10-10 00:00:01 UTC  |  SELECT ... FROM dataset.table2 |
    | bquxjob_3    |  2019-10-10 00:00:02 UTC  |  SELECT ... FROM dataset.table3 |
    | bquxjob_4    |  2019-10-10 00:00:03 UTC  |  SELECT ... FROM dataset.table4 |
    | bquxjob_5    |  2019-10-10 00:00:04 UTC  |  SELECT ... FROM dataset.table5 |
    +--------------+---------------------------+---------------------------------+
    

    Melihat insight performa untuk kueri

    Contoh berikut menampilkan semua tugas kueri yang memiliki insight performa dalam 30 hari terakhir, beserta URL yang tertaut ke grafik eksekusi kueri di konsol Google Cloud.

    SELECT
      `bigquery-public-data`.persistent_udfs.job_url(
        project_id || ':us.' || job_id) AS job_url,
      query_info.performance_insights
    FROM
      `region-REGION_NAME`.INFORMATION_SCHEMA.JOBS_BY_USER
    WHERE
      DATE(creation_time) >= CURRENT_DATE - 30 -- scan 30 days of query history
      AND job_type = 'QUERY'
      AND state = 'DONE'
      AND error_result IS NULL
      AND statement_type != 'SCRIPT'
      AND EXISTS ( -- Only include queries which had performance insights
        SELECT 1
        FROM UNNEST(
          query_info.performance_insights.stage_performance_standalone_insights
        )
        WHERE slot_contention OR insufficient_shuffle_quota
        UNION ALL
        SELECT 1
        FROM UNNEST(
          query_info.performance_insights.stage_performance_change_insights
        )
        WHERE input_data_change.records_read_diff_percentage IS NOT NULL
      );