Tampilan JOBS_BY_FOLDER
Tampilan INFORMATION_SCHEMA.JOBS_BY_FOLDER
berisi metadata yang mendekati real-time
tentang semua tugas yang dikirim di folder induk project saat ini, termasuk
tugas di subfolder di bawahnya.
Peran yang diperlukan
Untuk mendapatkan izin yang diperlukan untuk membuat kueri tampilan INFORMATION_SCHEMA.JOBS_BY_FOLDER
,
minta administrator untuk memberi Anda
Peran IAM BigQuery Resource Viewer (roles/bigquery.resourceViewer
) di folder induk Anda.
Untuk mengetahui informasi selengkapnya tentang cara memberikan peran, lihat Mengelola akses.
Peran yang telah ditentukan ini berisi
izin bigquery.jobs.listAll
, yang
diperlukan untuk membuat kueri tampilan INFORMATION_SCHEMA.JOBS_BY_FOLDER
.
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
. Kolom query_info
berisi
informasi tambahan tentang tugas kueri Anda.
Tampilan INFORMATION_SCHEMA.JOBS_BY_FOLDER
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. |
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. |
folder_numbers |
REPEATED INTEGER |
Jumlah ID folder yang berisi project, dimulai dengan folder yang langsung
berisi project, diikuti dengan folder yang berisi folder turunan, dan sebagainya.
Misalnya, jika folder_numbers adalah [1, 2, 3] , maka folder
1 langsung berisi project, folder 2 berisi
1 , dan folder 3 berisi 2 . Kolom ini hanya
diisi di JOBS_BY_FOLDER .
|
job_id |
STRING |
ID tugas. 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 cache ditemukan. |
reservation_id |
STRING |
Nama reservasi utama yang ditetapkan untuk tugas ini,
dalam format
RESERVATION_ADMIN_PROJECT:RESERVATION_LOCATION.RESERVATION_NAME .Dalam output ini:
|
session_info |
RECORD |
Detail tentang sesi tempat tugas ini dijalankan, jika ada. (Pratinjau) |
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.
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_FOLDER |
Folder yang berisi project yang ditentukan | REGION |
- 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
Kueri berikut menampilkan ID tugas, waktu pembuatan, dan status (PENDING
,
RUNNING
, atau DONE
) semua tugas interaktif di folder project yang
ditetapkan:
SELECT job_id, creation_time, state FROM `region-us`.INFORMATION_SCHEMA.JOBS_BY_FOLDER WHERE priority = 'INTERACTIVE';
Hasilnya mirip dengan berikut ini:
+--------------+---------------------------+---------------------------------+ | job_id | creation_time | state | +--------------+---------------------------+---------------------------------+ | bquxjob_1 | 2019-10-10 00:00:00 UTC | DONE | | bquxjob_2 | 2019-10-10 00:00:01 UTC | DONE | | bquxjob_3 | 2019-10-10 00:00:02 UTC | DONE | | bquxjob_4 | 2019-10-10 00:00:03 UTC | RUNNING | | bquxjob_5 | 2019-10-10 00:00:04 UTC | PENDING | +--------------+---------------------------+---------------------------------+
Mendapatkan byte yang diproses oleh tugas ekspor
Contoh berikut menghitung nilai total_processed_bytes
untuk
jenis tugas EXTRACT
. Untuk mengetahui informasi tentang kuota tugas ekspor, lihat Kebijakan kuota untuk tugas ekspor.
Total byte yang diproses dapat digunakan untuk memantau
penggunaan agregat dan memastikan bahwa tugas ekspor tetap di bawah batas 50 TB
per hari:
SELECT
DATE(creation_time) as day,
project_id as source_project_id,
SUM(total_bytes_processed) AS total_bytes_processed
FROM
region-us.INFORMATION_SCHEMA.JOBS_BY_PROJECT
WHERE
creation_time BETWEEN TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL 8 DAY) AND CURRENT_TIMESTAMP()
AND job_type = "EXTRACT"
GROUP BY
day,
source_project_id
ORDER BY
day DESC
Mendapatkan penggunaan tugas penyalinan
Untuk mengetahui informasi tentang tugas penyalinan, lihat Menyalin tabel. Contoh berikut menunjukkan penggunaan tugas penyalinan:
SELECT
DATE(creation_time) as day,
project_id as source_project_id,
CONCAT(destination_table.project_id,":",destination_table.dataset_id,".",destination_table.table_id) as destination_table,
COUNT(job_id) AS copy_job_count
FROM
region-us.INFORMATION_SCHEMA.JOBS_BY_PROJECT
WHERE
creation_time BETWEEN TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL 8 DAY) AND CURRENT_TIMESTAMP()
AND job_type = "COPY"
GROUP BY
day,
source_project_id,
destination_table
ORDER BY
day DESC
Melihat insight performa untuk kueri
Contoh berikut menampilkan semua tugas kueri yang memiliki insight performa dari folder project yang ditetapkan 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-us`.INFORMATION_SCHEMA.JOBS_BY_FOLDER 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 );