Pengantar pemecahan masalah
Dokumen ini memberikan ringkasan tentang alat diagnostik, antarmuka telemetri, dan sumber daya dokumentasi yang tersedia untuk membantu Anda memecahkan masalah di BigQuery.
Saat Anda mengalami kegagalan kueri, hambatan performa, kesalahan izin, batas kuota, atau masalah penyerapan data, BigQuery menyediakan alat bawaan untuk membantu Anda mengidentifikasi akar masalah dan menyelesaikan masalah dengan cepat.
Memecahkan masalah alur kerja
Untuk memecahkan masalah di BigQuery secara efektif, pertimbangkan kriteria diagnostik berikut:
- Identifikasi gejala dan mode kegagalan. Tinjau hasil tugas Anda untuk menentukan apakah masalahnya adalah kegagalan berat (seperti kode error atau kegagalan tugas), penurunan performa (seperti kueri lambat atau kekurangan slot), penolakan izin, atau perbedaan biaya yang tidak terduga.
- Periksa detail eksekusi tugas. Gunakan Google Cloud konsol penjelajah tugas, grafik eksekusi kueri, atau alat command line untuk memeriksa pengaturan waktu tingkat tahap, alokasi slot, dan detail error. Anda juga dapat meminta Gemini Cloud Assist untuk menyelidiki masalah Anda.
- Menganalisis telemetri dan metadata. Kueri tampilan skema informasi atau periksa Cloud Audit Logs untuk mengorelasikan perilaku tugas dengan persaingan resource, batas reservasi, atau perubahan administratif.
- Terapkan mitigasi yang ditargetkan. Gunakan panduan pemecahan masalah khusus kategori atau fungsi SQL defensif untuk memperbaiki penyebab masalah.
Membedakan pemecahan masalah dari pengoptimalan
Saat Anda menggunakan BigQuery, penting untuk membedakan antara pemecahan masalah, pengoptimalan performa, dan praktik terbaik:
- Pemecahan masalah. Berfokus pada mendiagnosis dan menyelesaikan kegagalan yang tidak terduga, error runtime, pipeline yang rusak, kuota yang habis, atau perilaku yang tidak diinginkan yang mencegah tugas selesai dengan berhasil.
- Pengoptimalan performa. Berfokus pada peningkatan kecepatan eksekusi, latensi, atau efisiensi resource kueri dan workload yang sudah berjalan dengan sukses. Untuk mengetahui informasi selengkapnya, lihat Mengoptimalkan performa kueri.
- Praktik terbaik. Berfokus pada pola arsitektur dan desain untuk pemodelan, penyimpanan, keamanan, dan pengelolaan biaya data. Untuk mengetahui informasi selengkapnya, lihat Pengantar praktik terbaik.
Alat diagnostik
Bagian berikut menjelaskan beberapa antarmuka BigQuery dan alat otomatis untuk membantu Anda mendiagnosis masalah di seluruh workload.
Alat visual dan konsol
Alat berikut membantu Anda memecahkan masalah BigQuery dari konsolGoogle Cloud .
- Jobs Explorer. Telusuri, filter, dan periksa tugas yang lalu dan sedang berjalan di seluruh project atau organisasi tanpa menulis kueri SQL. Anda dapat melihat pesan error, penggunaan slot, linimasa eksekusi, dan metadata tugas. Untuk mengetahui informasi selengkapnya, lihat Memantau tugas di Penjelajah Tugas.
- Grafik eksekusi kueri. Periksa rencana eksekusi visual tahap demi tahap untuk kueri. Grafik eksekusi membantu Anda mengidentifikasi hambatan seperti tumpahan shuffle ke disk, tahap terikat komputasi, kecondongan data, atau penundaan input/output. Untuk mengetahui informasi selengkapnya, lihat Mendapatkan insight performa kueri.
- Query Insights dan diagram resource. Lihat grafik real-time dan historis penggunaan slot, konkurensi tugas, dan alokasi reservasi untuk mendiagnosis batasan kapasitas. Untuk mengetahui informasi selengkapnya, lihat Menggunakan diagram resource administratif.
- Gemini Cloud Assist di BigQuery. Dapatkan analisis kontekstual yang dibantu AI untuk kueri yang gagal dan bottleneck performa. Gemini Cloud Assist menjelaskan kode error, menandai sintaksis SQL yang bermasalah, dan menyarankan langkah-langkah perbaikan langsung di Google Cloud konsol. Untuk mengetahui informasi selengkapnya, lihat artikel Memecahkan masalah kueri menggunakan Gemini Cloud Assist.
Alat diagnostik otomatis dan command line
Alat berikut dapat membantu Anda mendiagnosis masalah BigQuery dari antarmuka command line.
- alat command line bq. Periksa struktur error mendetail, ID permintaan, dan metadata tugas menggunakan perintah
bq show -j <var>JOB_ID</var>atau dengan menambahkan flag--format=prettyjsonke perintah kueri. Untuk mengetahui informasi selengkapnya, lihat Memecahkan masalah perintah CLI. - alat
gcpdiag. Jalankan diagnostik otomatis dari command line untuk mendeteksi masalah konfigurasi umum Google Cloud , termasuk kesenjangan izin IAM, batasan jaringan, dan error akun layanan. Untuk mengetahui informasi selengkapnya, lihat Memecahkan masalah kegagalan kueri menggunakangcpdiag.
Tampilan metadata dan telemetri
Tabel virtual skema informasi memungkinkan Anda membuat kueri metadata real-time dan historis tentang tugas, kapasitas, penyerapan streaming, dan set data menggunakan SQL standar. Tampilan ini mencakup:
- Telemetri eksekusi tugas. Buat kueri
INFORMATION_SCHEMA.JOBSdanINFORMATION_SCHEMA.JOBS_TIMELINEuntuk menganalisis konsumsi slot milidetik, byte yang tumpah, waktu antrean, dan kode error di seluruh tugas. - Reservasi dan kapasitas. Kueri
INFORMATION_SCHEMA.RESERVATIONSdanINFORMATION_SCHEMA.CAPACITY_COMMITMENTSuntuk mendiagnosis alokasi slot, batas pemesanan, dan perilaku penskalaan otomatis. - Streaming dan penyerapan. Kueri
INFORMATION_SCHEMA.STREAMING_TIMELINEuntuk mengidentifikasi latensi penyerapan dan batas kecepatan streaming. - Kesehatan penyimpanan dan partisi. Kueri
INFORMATION_SCHEMA.TABLE_STORAGEuntuk memeriksa ukuran tabel fisik, penyimpanan aktif versus penyimpanan jangka panjang, dan distribusi partisi.
Untuk mengetahui informasi selengkapnya, lihat Pengantar BigQuery INFORMATION_SCHEMA.
Cloud Monitoring dan Cloud Audit Logs
- Cloud Audit Logs. Tinjau log audit Aktivitas Admin dan Akses Data untuk melacak siapa yang memulai operasi tertentu, memeriksa identitas pemanggil, dan mendiagnosis error
PERMISSION_DENIED. Untuk mengetahui informasi selengkapnya, lihat Referensi logging audit BigQuery. - Cloud Monitoring. Lacak metrik seperti penggunaan slot, durasi eksekusi kueri, dan byte yang diupload, lalu konfigurasi kebijakan pemberitahuan untuk memberi tahu tim Anda saat nilai minimum atau kuota terlampaui. Untuk mengetahui informasi selengkapnya, lihat Memantau BigQuery menggunakan Cloud Monitoring.
Fungsi SQL defensif dan pernyataan pen-debug-an
Untuk mencegah kueri gagal secara tidak terduga karena error data runtime, gunakan hal berikut:
- Ekspresi aman. Gunakan
SAFE_CAST(),SAFE_DIVIDE(),SAFE_OFFSET(), danSAFE_ORDINAL()untuk menampilkanNULL, bukan menghasilkan error runtime saat jenis data atau batas array tidak cocok. Sebagian besar fungsi skalar mendukung awalanSAFE.. Untuk mengetahui informasi selengkapnya, lihat Men-debug fungsi dan awalanSAFE.. - Pernyataan SQL. Gunakan pernyataan
ASSERTdalam transaksi atau skrip multi-pernyataan untuk menerapkan kondisi validasi data dan gagal dengan pesan error kustom sebelum operasi hilir dijalankan. Untuk mengetahui informasi selengkapnya, lihat Pernyataan pen-debug-an.
Memecahkan masalah menurut kategori masalah
Pilih kategori dari bagian berikut untuk melihat kode error mendetail, penyebab utama, dan panduan langkah demi langkah untuk penyelesaiannya.
Performa dan eksekusi kueri
Mendiagnosis kueri yang gagal dijalankan, kehabisan waktu, mengalami batasan resource, atau mengalami penundaan yang tidak terduga.
- Memecahkan masalah kueri. Atasi error
resourcesExceeded, eksekusi kueri yang lambat, tumpahan shuffle, kondisi kehabisan memori, dan kegagalan kueri terjadwal. - Memecahkan masalah waktu antrean kueri yang lama. Mendiagnosis hambatan konkurensi dan kueri yang diantrekan karena batas antrean interaktif atau batch.
- Referensi pesan error. Cari kode error HTTP, string alasan error, dan tindakan yang direkomendasikan tertentu.
Identity and Access Management (IAM) dan keamanan
Mendiagnosis kegagalan kontrol akses, penetapan peran yang tidak ada, dan pemblokiran kebijakan tata kelola data.
- Memecahkan masalah izin IAM di BigQuery. Mendiagnosis error izin ditolak, memberikan peran IAM yang tidak ada, dan menggunakan Pemecah Masalah Kebijakan.
- Memecahkan masalah Kontrol Layanan VPC. Identifikasi dan atasi pelanggaran perimeter serta blok aturan ingress atau egress.
- Memecahkan masalah keamanan tingkat baris dan tingkat kolom. Selesaikan masalah akses yang terkait dengan kebijakan data, tag kebijakan, dan filter akses tingkat baris.
Kuota, batas kapasitas, dan reservasi
Menyelesaikan masalah saat beban kerja melebihi batas layanan atau alokasi kapasitas BigQuery.
- Memecahkan masalah error kuota dan batas. Mengidentifikasi kuota yang dapat disesuaikan dan yang tidak dapat disesuaikan, menangani batas kueri serentak, dan menyelesaikan error batas frekuensi API.
- Memecahkan masalah pengelolaan beban kerja BigQuery. Mendiagnosis kekurangan slot, ketidakcocokan penetapan reservasi, keterlambatan komitmen kapasitas, persaingan slot, dan masalah pemantauan reservasi.
Penyerapan, streaming, dan transfer data
Mendiagnosis kegagalan saat memuat data, melakukan streaming rekaman, atau menyinkronkan sumber eksternal.
- Memecahkan masalah transfer data. Mendiagnosis masalah BigQuery Data Transfer Service, konektivitas jaringan untuk transfer pribadi, dan error pemuatan data CSV.
- Memecahkan masalah konfigurasi transfer. Selesaikan kesalahan konfigurasi BigQuery Data Transfer Service di berbagai sumber seperti Amazon Simple Storage Service (Amazon S3), Salesforce, Google Ads, dan Cloud Storage.
- Memecahkan masalah BigQuery Storage API. Men-debug kegagalan penyerapan streaming BigQuery Storage Read API, BigQuery Storage Write API (gRPC), dan BigQuery Storage Write API (REST), kesalahan penyisipan tingkat baris, dan kuota throughput.
Migrasi data warehouse
Mendiagnosis masalah saat menilai, menerjemahkan, atau memigrasikan data warehouse eksternal ke BigQuery.
- Memecahkan masalah migrasi. Selesaikan error penilaian migrasi, masalah terjemahan SQL interaktif dan batch, serta kegagalan ekstraksi metadata.
Sumber data eksternal dan kueri gabungan
Mendiagnosis error konektivitas, autentikasi, dan eksekusi saat membuat kueri data di luar BigQuery.
- Memecahkan masalah kueri gabungan Cloud SQL. Menyelesaikan masalah waktu tunggu koneksi, masalah konfigurasi instance, dan kegagalan kredensial.
Perbedaan penagihan dan biaya
Menyelidiki tagihan yang tidak terduga dan perbedaan penagihan di seluruh komputasi dan penyimpanan.
- Memecahkan masalah perbedaan biaya BigQuery. Mengidentifikasi asal tagihan yang tidak terduga, menganalisis byte sesuai permintaan yang ditagih, dan memverifikasi penggunaan komitmen kapasitas.
Mitigasi kehilangan data
Untuk memulihkan data historis yang diubah atau dihapus, atau untuk mempertahankan kelangsungan bisnis selama pemadaman layanan regional, gunakan alat pemulihan dari bencana dan retensi data berikut:
- Memulihkan data. Buat kueri atau pulihkan data tabel yang diubah atau dihapus dalam periode perjalanan waktu Anda. Untuk mengetahui informasi selengkapnya, lihat Memulihkan data.
- Perjalanan Waktu. Simpan data yang diperbarui atau dihapus dalam set data selama periode retensi data yang dikonfigurasi untuk membantu melindungi dari modifikasi yang tidak disengaja. Untuk mengetahui informasi selengkapnya, lihat Perjalanan waktu.
- Failover regional. Mempromosikan replika sekunder ke peran utama selama pemadaman regional saat menggunakan pemulihan dari bencana yang dikelola BigQuery. Untuk mengetahui informasi selengkapnya, lihat Failover regional.
Menggunakan API
Saat Anda berinteraksi dengan BigQuery secara terprogram, gunakan resource berikut untuk mengoptimalkan latensi permintaan dan mengelola alur kerja upload:
- Tips performa API. Ikuti praktik terbaik untuk melakukan panggilan API, seperti mengelola kumpulan koneksi, menggunakan operasi batch, dan menangani percobaan ulang. Untuk informasi selengkapnya, lihat Tips performa API.
- Upload API. Memecahkan masalah dan mengelola penyerapan data menggunakan permintaan upload multipart dan dapat dilanjutkan REST API. Untuk mengetahui informasi selengkapnya, lihat Upload API.
Langkah berikutnya
- Pelajari lebih lanjut cara memantau BigQuery.
- Jelajahi referensi
INFORMATION_SCHEMABigQuery. - Hubungi Cloud Customer Care untuk mendapatkan dukungan terkait masalah produksi yang persisten atau kritis.