Pengantar pemantauan BigQuery

Pemantauan BigQuery memungkinkan Anda melacak penggunaan resource, eksekusi tugas, dan kondisi operasional di seluruh workload untuk mengidentifikasi bottleneck dan menjaga keandalan.

Pemantauan dan logging sangat penting untuk menjalankan aplikasi yang andal di cloud. Begitu pula dengan workload BigQuery, terutama jika workload Anda memiliki volume tinggi atau sangat penting.

Sumber pemantauan bervariasi menurut frekuensi pengambilan sampel dan tingkat agregasi. Misalnya, tampilan skema informasi sering kali memberikan perincian yang lebih tinggi daripada metrik Cloud Monitoring. Akibatnya, diagram metrik mungkin berbeda untuk sementara dari data skema informasi hingga agregasi memperhalus perbedaan. Saat mendesain strategi pemantauan, nilai latensi, presisi, dan akurasi berdasarkan persyaratan Anda.

Metrik

Metrik adalah nilai numerik yang dikumpulkan pada interval reguler dan tersedia untuk analisis. Anda dapat menggunakan metrik untuk:

  • Membuat diagram dan dasbor.
  • Memicu pemberitahuan untuk kondisi atau situasi yang memerlukan intervensi manusia.
  • Menganalisis histori performa.

Untuk BigQuery, metrik yang tersedia mencakup jumlah tugas yang berjalan, jumlah byte yang dipindai selama kueri, dan distribusi waktu kueri. Metrik untuk kueri hanya akan tersedia setelah kueri berhasil dan dapat memakan waktu hingga tujuh menit untuk dilaporkan. Metrik untuk kueri yang gagal tidak dilaporkan. Untuk mengetahui daftar lengkap metrik yang tersedia, termasuk frekuensi sampel, visibilitas, dan batasannya, lihat bigquery di bagian metrikCloud de Confiance .

Menggunakan Cloud Monitoring untuk melihat metrik BigQuery serta membuat diagram dan pemberitahuan. Setiap metrik memiliki jenis resource, baik bigquery_dataset, bigquery_project, atau global, dan sekumpulan label. Anda dapat mengelompokkan atau memfilter setiap metrik menggunakan label.

Misalnya, untuk membuat diagram jumlah kueri interaktif yang sedang berlangsung, gunakan pernyataan PromQL berikut, yang difilter menurut priority sama dengan interactive:

{"bigquery.googleapis.com/query/count", monitored_resource="global", priority="interactive"}

Contoh berikutnya mendapatkan jumlah tugas pemuatan yang sedang berlangsung, yang dikelompokkan ke dalam interval 10 menit:

avg_over_time({"bigquery.googleapis.com/job/num_in_flight",
  monitored_resource="bigquery_project",
  job_type="load"
}[10m])

Untuk mengetahui informasi selengkapnya, lihat Membuat diagram dan pemberitahuan untuk BigQuery.

Log

Log adalah rekaman teks yang dibuat sebagai respons terhadap peristiwa atau tindakan tertentu. BigQuery membuat entri log untuk tindakan seperti membuat atau menghapus tabel, membeli slot, atau menjalankan tugas pemuatan. Untuk mengetahui informasi selengkapnya tentang logging di Cloud de Confiance, lihat Cloud Logging.

Log adalah kumpulan entri log yang hanya dilengkapi penambahan. Misalnya, Anda dapat menulis entri log Anda sendiri ke log bernama projects/PROJECT_ID/logs/my-test-log. Banyak layananCloud de Confiance , termasuk BigQuery, membuat jenis log yang disebut log audit. Log ini mencatat:

  • Aktivitas administratif, seperti membuat atau mengubah resource.
  • Akses data, seperti membaca data yang disediakan pengguna dari resource.
  • Peristiwa sistem yang dihasilkan oleh sistem Google, bukan oleh tindakan pengguna.

Log audit ditulis dalam format JSON terstruktur. Jenis data dasar untuk entri logCloud de Confiance adalah struktur LogEntry. Struktur ini berisi nama log, resource yang menghasilkan entri log, stempel waktu (UTC), dan informasi dasar lainnya.

Detail peristiwa yang dicatat ke dalam log terdapat di dalam subkolom yang disebut kolom payload. Untuk log audit, kolom payload diberi nama protoPayload. Nilai kolom ini adalah struktur AuditLog, yang ditunjukkan dengan nilai kolom protoPayload.@type, yang ditetapkan ke type.googleapis.com/google.cloud.audit.AuditLog.

Untuk operasi pada set data, tabel, dan tugas, BigQuery menulis log audit dalam dua format yang berbeda, meskipun keduanya menggunakan jenis dasar AuditLog yang sama.

Dalam format yang lama:

  • Kolom resource.type adalah bigquery_resource.
  • Detail tentang operasi ditulis ke kolom protoPayload.serviceData. Nilai kolom ini adalah struktur AuditData.

Dalam format yang lebih baru:

  • Kolom resource.type adalah bigquery_project atau bigquery_dataset. Resource bigquery_project memiliki entri log tentang tugas, sedangkan resource bigquery_dataset memiliki entri log tentang penyimpanan.
  • Detail tentang operasi ditulis ke kolom protoPayload.metadata. Nilai kolom ini adalah struktur BigQueryAuditMetadata.

Sebaiknya gunakan log dalam format yang lebih baru. Untuk informasi selengkapnya, lihat Panduan migrasi log audit.

Berikut adalah contoh singkat entri log yang menunjukkan operasi yang gagal:

{
  "protoPayload": {
    "@type": "type.googleapis.com/google.cloud.audit.AuditLog",
    "status": {
      "code": 5,
      "message": "Not found: Dataset my-project:my-dataset was not found in location US"
    },
    "authenticationInfo": { ... },
    "requestMetadata":  { ... },
    "serviceName": "bigquery.googleapis.com",
    "methodName": "google.cloud.bigquery.v2.JobService.InsertJob",
    "metadata": {
  },
  "resource": {
    "type": "bigquery_project",
    "labels": { .. },
  },
  "severity": "ERROR",
  "logName": "projects/my-project/logs/cloudaudit.googleapis.com%2Fdata_access",
  ...
}

Untuk operasi pada Reservasi BigQuery, protoPayload adalah struktur AuditLog, dan kolom protoPayload.request dan protoPayload.response berisi informasi yang lebih lengkap. Anda dapat menemukan definisi kolom di BigQuery Reservation API. Untuk informasi selengkapnya, lihat Memantau Reservasi BigQuery.

Tampilan skema informasi BigQuery

Tampilan skema informasi adalah sumber insight lain di BigQuery, yang dapat Anda gunakan bersama dengan metrik dan log.

Tampilan ini berisi metadata tentang tugas, set data, tabel, dan entity BigQuery lainnya. Misalnya, Anda bisa mendapatkan metadata real-time tentang tugas BigQuery mana yang berjalan selama jangka waktu tertentu, lalu mengelompokkan atau memfilter hasilnya berdasarkan project, pengguna, tabel yang direferensikan, dan dimensi lainnya.

Anda dapat menggunakan informasi ini untuk melakukan analisis yang lebih mendetail tentang workload BigQuery, dan menjawab pertanyaan seperti:

  • Berapa rata-rata pemakaian slot untuk semua kueri selama 7 hari terakhir untuk project tertentu?
  • Pengguna mana yang mengirimkan tugas pemuatan batch untuk project tertentu?
  • Error streaming apa yang terjadi dalam 30 menit terakhir, yang dikelompokkan berdasarkan kode error?

Secara khusus, lihat metadata tugas, metadata streaming, dan metadata reservasi untuk mendapatkan insight tentang performa workload BigQuery Anda.

Anda dapat menemukan contoh kueri skema informasi di GitHub yang menunjukkan slot organisasi dan pemanfaatan reservasi, eksekusi tugas, dan error tugas. Misalnya, kueri berikut menyediakan daftar kueri yang tertunda atau yang sedang berjalan. Kueri ini diurutkan berdasarkan durasi waktu sejak dibuat di region us:

SELECT
    creation_time,
    project_id,
    user_email,
    job_id,
    job_type,
    priority,
    state,
    TIMESTAMP_DIFF(CURRENT_TIMESTAMP(), start_time,second) as running_time_sec
 FROM
   `region-us`.INFORMATION_SCHEMA.JOBS_BY_PROJECT
 WHERE
    creation_time BETWEEN TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL 1 DAY) AND CURRENT_TIMESTAMP()
    AND state != "DONE"
ORDER BY
    running_time_sec DESC

Untuk mengetahui informasi selengkapnya, baca Memecahkan masalah performa BigQuery dengan dasbor ini.

Selain menulis kueri sendiri, Anda dapat menggunakan alat pemantauan BigQuery di konsol Cloud de Confiance :

  • Memantau respons, pemanfaatan resource, dan tugas. Melihat dasbor kondisi operasional dan Diagram Resource Admin BigQuery yang melacak penggunaan slot, konkurensi tugas, dan waktu proses tugas di seluruh organisasi dan pemesanan Anda.
  • Memantau tugas. Telusuri, filter, dan kelompokkan eksekusi kueri individual di seluruh organisasi Anda untuk memeriksa grafik eksekusi kueri, mengidentifikasi konsumen slot teratas, dan memecahkan masalah tugas yang bermasalah.

Peta telemetri

Tabel berikut memetakan fitur dan resource BigQuery ke telemetri pemantauan operasional, layanan dan resource API yang diaudit, serta dokumentasi referensi log audit. Anda dapat menggunakannya untuk menemukan telemetri yang diperlukan untuk memecahkan masalah, mengoptimalkan performa, mengontrol biaya, mengaudit penggunaan, dan menjaga kepatuhan.

Tidak seperti banyak layanan Cloud de Confiance by S3NS yang menulis log tugas operasional ke Cloud Logging, BigQuery menulis telemetri tugas operasional ke tampilan skema informasi seperti INFORMATION_SCHEMA.JOBS. Tabel virtual ini mencatat tahap eksekusi kueri, penggunaan slot, byte yang ditagih, dan semua tugas yang dikirimkan, termasuk tugas yang sedang berlangsung dan gagal.

BigQuery menggunakan Logging terutama untuk memunculkan Cloud Audit Logs, yang mencatat aktivitas administratif dan akses data. Saat mengaudit aktivitas ini, Anda dapat menentukan siapa yang mengakses resource atau data, di mana, dan kapan.

Log audit tidak dikeluarkan untuk setiap gangguan atau kegagalan tugas. Misalnya, tugas yang gagal tidak menghasilkan peristiwa TableDataRead atau TableDataChange, dan jobCompletedEvent hanya mencatat penyelesaian tugas yang berhasil. Untuk mengetahui detail tentang skenario yang tidak memunculkan log audit, lihat Akses data dalam Ringkasan log audit BigQuery.

Dalam tabel berikut, tanda bintang (*) dalam nama tampilan INFORMATION_SCHEMA menunjukkan varian tampilan khusus cakupan, seperti _BY_PROJECT, _BY_USER, _BY_FOLDER, dan _BY_ORGANIZATION.

Fitur atau fasilitas Pemantauan operasional Cloud Audit Logs
Kueri dan tugas

Tampilan skema informasi:

  • JOBS*: eksekusi tugas real-time dan historis, milidetik slot, byte yang ditagih, tahap eksekusi, dan semua tugas yang dikirimkan, terlepas dari status penyelesaiannya
  • JOBS_TIMELINE*: status tugas dan penggunaan slot per rentang waktu

Konsol:

Metrik: Metrik Cloud Monitoring, seperti query/count, query/execution_times, dan job/num_in_flight.

Layanan API: bigquery.googleapis.com.

Resource yang diaudit: tugas di JobService (resource yang dimonitor: bigquery_project).

Log audit: Log Akses Data menggunakan BigQueryAuditMetadata (peristiwa JobInsertion dan JobChange), yang mencatat siapa yang mengirimkan atau membatalkan tugas, status tugas, jenis pernyataan, dan tabel atau tampilan yang direferensikan. Lihat Ringkasan log audit BigQuery.

Tabel dan tampilan

Tampilan skema informasi:

Metrik: Metrik pemantauan, seperti storage/stored_bytes dan storage/table_count.

Layanan API: bigquery.googleapis.com dan bigquerystorage.googleapis.com. Log Akses Data untuk BigQuery Storage API menggunakan bigquery.googleapis.com, sedangkan log Kebijakan Ditolak menggunakan bigquerystorage.googleapis.com.

Resource yang diaudit: tabel, tampilan, dan tampilan terwujud di TableService dan TableDataService; serta sesi baca penyimpanan dan aliran tulis di BigQueryRead dan BigQueryWrite (resource yang dimonitor: bigquery_dataset dan bigquery_table).

Log audit: Log Akses Data menggunakan BigQueryAuditMetadata (peristiwa TableDataRead dan TableDataChange untuk pembacaan tabel, modifikasi, kolom yang direferensikan, tugas sumber, dan pembacaan dan penulisan aliran BigQuery Storage API), ditambah log Aktivitas Admin, Akses Data, dan Peristiwa Sistem untuk peristiwa TableCreation, TableChange, dan TableDeletion, termasuk perubahan kebijakan Identity and Access Management (IAM) tabel dan masa berlaku tabel. Lihat Ringkasan log audit BigQuery.

Set data

Tampilan skema informasi:

Layanan API: bigquery.googleapis.com.

Resource yang diaudit: set data, kebijakan IAM set data, dan ACL set data di DatasetService dan IAMPolicy (resource yang dipantau: bigquery_dataset).

Log audit: Log Aktivitas Admin dan Akses Data menggunakan BigQueryAuditMetadata (peristiwa DatasetCreation, DatasetChange, dan DatasetDeletion), termasuk perubahan kebijakan IAM set data di bindingDeltas dan update ACL di accessChanges. Lihat Ringkasan log audit BigQuery.

Slot dan pemesanan

Tampilan skema informasi:

Konsol:

Metrik: Metrik pemantauan, seperti slots/allocated dan slots/total_available.

Layanan API: bigqueryreservation.googleapis.com untuk BigQuery Reservation API.

Resource yang diaudit: pemesanan, komitmen kapasitas, dan penetapan pemesanan di ReservationService (resource yang dipantau: bigquery_project).

Log audit: Log Aktivitas Admin dan Akses Data untuk membuat, mengubah, menghapus, dan mencantumkan pemesanan, komitmen kapasitas, serta penetapan project atau folder. Lihat Logging audit BigQuery Reservation API.

Keamanan tingkat kolom dan penyamaran data

Tampilan skema informasi:

  • COLUMN_FIELD_PATHS: jalur kolom bertingkat, tag kebijakan, dan penetapan kebijakan data
  • COLUMNS: skema kolom dan jenis data

Layanan API: datacatalog.googleapis.com untuk tag kebijakan Data Catalog, bigquerydatapolicy.googleapis.com untuk BigQuery Data Policy API, dan bigquery.googleapis.com.

Resource yang diaudit: taksonomi dan tag kebijakan di PolicyTagManager, kebijakan data di DataPolicyService, dan kolom tabel yang diberi tag kebijakan (resource yang dipantau: audited_resource dan bigquery_dataset).

Log audit: Log Aktivitas Admin dan Akses Data untuk pengelolaan taksonomi dan tag kebijakan serta perubahan kebijakan IAM (Tag kebijakan audit); pengelolaan kebijakan data dan update penerima (Logging audit Kebijakan Data BigQuery); dan log TableDataRead.fields untuk pembacaan di kolom yang dilindungi (Ringkasan log audit BigQuery).

Rutinitas, termasuk UDF dan prosedur tersimpan

Tampilan skema informasi:

Layanan API: bigquery.googleapis.com.

Resource yang diaudit: fungsi yang ditentukan pengguna (UDF), fungsi tabel, dan prosedur tersimpan di RoutineService (resource yang dipantau: bigquery_dataset dan bigquery_project).

Log audit: Log Aktivitas Admin dan Akses Data menggunakan BigQueryAuditMetadata (peristiwa RoutineCreation, RoutineChange, dan RoutineDeletion), ditambah peristiwa tugas turunan untuk operasi prosedur tersimpan. Lihat Ringkasan log audit BigQuery.

Sambungan eksternal

Tampilan skema informasi:

  • OBJECT_PRIVILEGES: hak istimewa koneksi
  • JOBS*: kueri gabungan dan tugas fungsi jarak jauh yang menggunakan koneksi

Layanan API: bigqueryconnection.googleapis.com untuk BigQuery Connection API.

Resource yang diaudit: koneksi dan kebijakan IAM koneksi di ConnectionService (resource yang dimonitor: audited_resource).

Log audit: Log Aktivitas Admin dan Akses Data untuk pembuatan koneksi, pembaruan kredensial, penghapusan, listing, dan perubahan kebijakan IAM. Lihat logging audit BigQuery Connection API.

BigQuery sharing

Tampilan skema informasi:

Dasbor: dasbor metrik penggunaan berbagi.

Layanan API: analyticshub.googleapis.com.

Resource yang diaudit: pertukaran data, listingan, langganan, dan kebijakan IAM pertukaran atau listingan di AnalyticsHubService (resource yang dimonitor: audited_resource).

Log audit: Log Aktivitas Admin dan Akses Data untuk pertukaran data dan pembuatan, pembaruan, penghapusan listingan, perubahan kebijakan IAM, dan operasi pelanggan. Lihat Logging audit berbagi.

BigQuery Data Transfer Service

Metrik dan log:

Layanan API: bigquerydatatransfer.googleapis.com untuk BigQuery Data Transfer Service API.

Resource yang diaudit: konfigurasi transfer, operasi transfer, dan sumber data di DataTransferService (resource yang dimonitor: audited_resource).

Log audit: Log Aktivitas Admin dan Akses Data untuk membuat, memperbarui, menghapus, mencantumkan, dan memulai konfigurasi serta operasi transfer. Lihat Logging audit BigQuery Data Transfer Service.

Katalog dan tabel BigLake

Tampilan skema informasi:

  • TABLES: metadata tabel
  • JOBS*: statistik kueri penyimpanan objek eksternal (metadata_cache_statistics dan object_storage_stats)

Layanan API: biglake.googleapis.com dan bigquery.googleapis.com.

Resource yang diaudit: katalog, database, tabel, dan partisi metastore di MetastoreService dan HiveMetastoreService, serta katalog, namespace, dan tabel Apache Iceberg di IcebergCatalogService (resource yang dipantau: audited_resource dan bigquery_dataset).

Log audit: Log Aktivitas Admin dan Akses Data untuk operasi kebijakan IAM katalog, database, namespace, tabel, partisi, dan katalog. Lihat logging audit BigLake.

BigQuery Migration Service

Status dan laporan:

  • Status tugas Terjemahan SQL batch di konsol Cloud de Confiance
  • Status alur kerja dan subtugas di BigQuery Migration API
  • Laporan ringkasan terjemahan di Cloud Storage

Layanan API: bigquerymigration.googleapis.com untuk BigQuery Migration API.

Resource yang diaudit: alur kerja migrasi, subtugas migrasi, dan permintaan terjemahan SQL di MigrationService dan SqlTranslationService (resource yang dipantau: audited_resource).

Log audit: Log Akses Data untuk membuat, memulai, mencantumkan, melihat, dan menghapus alur kerja dan subtugas migrasi, serta menerjemahkan kueri SQL. Lihat Logging audit BigQuery Migration Service.

Langkah berikutnya