Tampilan JOBS_TIMELINE_BY_ORGANIZATION
Tampilan INFORMATION_SCHEMA.JOBS_TIMELINE_BY_ORGANIZATION
berisi metadata BigQuery yang hampir
real-time
berdasarkan timeslice untuk semua tugas yang dikirimkan di
organisasi yang terkait dengan project saat ini.
Tampilan ini berisi tugas yang sedang berjalan dan telah selesai.
Izin yang diperlukan
Untuk membuat kueri tampilan INFORMATION_SCHEMA.JOBS_TIMELINE_BY_ORGANIZATION
, Anda memerlukan izin Identity and Access Management (IAM) bigquery.jobs.listAll
untuk organisasi tersebut.
Setiap peran IAM yang telah ditetapkan berikut menyertakan izin
yang diperlukan:
- BigQuery Resource Admin di level organisasi
- Pemilik Organisasi
- Organization Admin
Tabel skema JOBS_BY_ORGANIZATION
hanya tersedia bagi pengguna dengan organisasi Google Cloud yang telah ditentukan.
Untuk mengetahui informasi selengkapnya tentang izin BigQuery, lihat Kontrol akses dengan IAM.
Skema
Saat Anda membuat kueri tabel virtual INFORMATION_SCHEMA.JOBS_TIMELINE_BY_*
, hasil kueri akan berisi satu baris untuk setiap detik eksekusi setiap tugas BigQuery. Setiap periode dimulai pada interval satu detik penuh dan berlangsung tepat satu detik.
Tabel virtual INFORMATION_SCHEMA.JOBS_TIMELINE_BY_*
memiliki skema berikut:
Nama kolom | Jenis data | Nilai |
---|---|---|
period_start |
TIMESTAMP |
Waktu mulai periode ini. |
period_slot_ms |
INTEGER |
Slot milidetik yang terpakai dalam periode ini. |
period_shuffle_ram_usage_ratio |
FLOAT |
Rasio penggunaan acak pada jangka waktu yang dipilih. |
project_id |
STRING |
(Kolom pengelompokan) ID project. |
project_number |
INTEGER |
Nomor project. |
folder_numbers |
REPEATED INTEGER |
Nomor ID folder yang berisi project, dimulai dengan folder yang langsung berisi project, diikuti dengan folder yang berisi folder turunan, dan seterusnya. Misalnya, jika `folder_numbers` adalah `[1, 2, 3]`, maka folder `1` langsung berisi project, folder `2` berisi `1`, dan folder `3` berisi `2`. |
user_email |
STRING |
(Kolom pengelompokan) Alamat email atau akun layanan pengguna yang menjalankan tugas. |
job_id |
STRING |
ID tugas. Misalnya, bquxjob_1234 . |
job_type |
STRING |
Jenis tugas. Dapat berupa QUERY , LOAD , EXTRACT , COPY , atau null . Jenis tugas null menunjukkan tugas internal, seperti evaluasi pernyataan tugas skrip atau pemuatan ulang tampilan terwujud. |
statement_type |
STRING |
Jenis pernyataan kueri, jika valid. Misalnya, SELECT , INSERT , UPDATE , atau DELETE . |
job_creation_time |
TIMESTAMP |
(Kolom partisi) Waktu pembuatan tugas ini. Partisi didasarkan pada waktu UTC stempel waktu ini. |
job_start_time |
TIMESTAMP |
Waktu mulai tugas ini. |
job_end_time |
TIMESTAMP |
Waktu berakhir tugas ini. |
state |
STRING |
Status menjalankan tugas di akhir periode ini. Status yang valid mencakup PENDING , RUNNING , dan DONE . |
reservation_id |
STRING |
Nama pemesanan utama yang ditetapkan untuk tugas ini di akhir periode ini, jika berlaku. |
total_bytes_processed |
INTEGER |
Total byte yang diproses oleh tugas. |
error_result |
RECORD |
Detail error (jika ada) sebagai
ErrorProto.
|
cache_hit |
BOOLEAN |
Apakah hasil kueri tugas ini berasal dari cache. |
period_estimated_runnable_units |
INTEGER |
Unit tugas yang dapat langsung dijadwalkan dalam periode ini. Slot tambahan untuk unit pekerjaan ini akan mempercepat kueri Anda, asalkan tidak ada kueri lain di pemesanan yang memerlukan slot tambahan. |
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. Jika Anda tidak menentukan penentu regional, metadata akan diambil dari semua region. Tabel berikut menjelaskan cakupan region untuk tabel virtual ini:
Nama tabel virtual | Cakupan resource | Cakupan region |
---|---|---|
[PROJECT_ID.]`region-REGION`.INFORMATION_SCHEMA.JOBS_TIMELINE_BY_ORGANIZATION |
Organisasi 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
Contoh: Lihat total penggunaan slot per menit
Untuk menjalankan kueri terhadap project selain project default Anda, tambahkan project ID dalam format berikut:
`PROJECT_ID`.`region-REGION_NAME`.INFORMATION_SCHEMA.JOBS_TIMELINE_BY_ORGANIZATION. Contoh,
`myproject`.`region-us`.INFORMATION_SCHEMA.JOBS_TIMELINE_BY_ORGANIZATION
.
Contoh berikut menunjukkan penggunaan slot per menit dari project yang ditetapkan ke
YOUR_RESERVATION_ID
di semua tugas:
SELECT res.period_start, SUM(jobs.period_slot_ms) / 1000 / 60 AS period_slot_minutes, ANY_VALUE(res.slots_assigned) AS slot_assigned, ANY_VALUE(res.slots_max_assigned) AS slots_max_assigned FROM `region-us`.INFORMATION_SCHEMA.JOBS_TIMELINE_BY_ORGANIZATION jobs JOIN `region-us`.INFORMATION_SCHEMA.RESERVATIONS_TIMELINE res ON TIMESTAMP_TRUNC(jobs.period_start, MINUTE) = res.period_start AND jobs.reservation_id = res.reservation_id WHERE jobs.job_creation_time BETWEEN TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL 1 DAY) AND CURRENT_TIMESTAMP() AND res.reservation_id = 'YOUR_RESERVATION_ID' AND (jobs.statement_type != "SCRIPT" OR jobs.statement_type IS NULL) -- Avoid duplicate byte counting in parent and children jobs. GROUP BY period_start ORDER BY period_start DESC;
Hasilnya mirip dengan berikut ini:
+-----------------------+---------------------+---------------+-------------------+ | period_start | period_slot_minutes | slots_assigned| slots_max_assigned| +-----------------------+---------------------+---------------+-------------------+ |2021-06-08 21:33:00 UTC| 100.000 | 100 | 100 | |2021-06-08 21:32:00 UTC| 96.753 | 100 | 100 | |2021-06-08 21:31:00 UTC| 41.668 | 100 | 100 | +-----------------------+---------------------+---------------+-------------------+
Contoh: Penggunaan slot berdasarkan pemesanan
Contoh berikut menunjukkan penggunaan slot per menit untuk setiap pemesanan dalam satu hari terakhir:
SELECT res.period_start, res.reservation_id, SUM(jobs.period_slot_ms) / 1000 / 60 AS period_slot_minutes, ANY_VALUE(res.slots_assigned) AS slots_assigned, ANY_VALUE(res.slots_max_assigned) AS slots_max_assigned, FROM `region-us`.INFORMATION_SCHEMA.JOBS_TIMELINE_BY_ORGANIZATION jobs JOIN `region-us`.INFORMATION_SCHEMA.RESERVATIONS_TIMELINE res ON TIMESTAMP_TRUNC(jobs.period_start, MINUTE) = res.period_start AND jobs.reservation_id = res.reservation_id WHERE jobs.job_creation_time BETWEEN TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL 1 DAY) AND CURRENT_TIMESTAMP() AND (jobs.statement_type != "SCRIPT" OR jobs.statement_type IS NULL) -- Avoid duplicate byte counting in parent and children jobs. GROUP BY period_start, reservation_id ORDER BY period_start DESC, reservation_id;
Hasilnya mirip dengan berikut ini:
+-----------------------+----------------+---------------------+---------------+--------------------+ | period_start | reservation_id | period_slot_minutes | slot_assigned | slots_max_assigned | +-----------------------+----------------+---------------------+---------------+--------------------+ |2021-06-08 21:33:00 UTC| prod01 | 100.000 | 100 | 100 | |2021-06-08 21:33:00 UTC| prod02 | 177.201 | 200 | 500 | |2021-06-08 21:32:00 UTC| prod01 | 96.753 | 100 | 100 | |2021-06-08 21:32:00 UTC| prod02 | 182.329 | 200 | 500 | +-----------------------+----------------+---------------------+---------------+--------------------+