BigQuery untuk Pemula: Query Data Raksasa Tanpa Server
TL;DR
BigQuery adalah data warehouse dari Google yang bisa nge-query miliaran baris tanpa kamu perlu ngurus server. Kamu bayar berdasarkan jumlah byte yang dibaca query, bukan berdasarkan waktu — dan 1 TB pertama tiap bulan gratis. Untuk mulai: bikin project di Google Cloud, bikin dataset, upload CSV jadi tabel, lalu tulis SELECT biasa. Aturan hemat yang paling penting: jangan pernah pakai SELECT *, dan selalu filter kolom partisi (biasanya tanggal) di WHERE.
BigQuery adalah data warehouse dari Google yang bisa nge-query miliaran baris tanpa kamu perlu nyiapin server satu pun.
Kamu tempel query, tekan Run, hasilnya keluar. Nggak ada instalasi, nggak ada konfigurasi memori, nggak ada urusan indeks.
Yang perlu kamu ngerti dari awal cuma satu hal: kamu bayar berdasarkan jumlah byte yang dibaca query, bukan berdasarkan lama query jalan. Ini yang nentuin apakah tagihanmu nol rupiah atau bikin kaget.
Kenapa pakai BigQuery, bukan MySQL biasa?
MySQL dan PostgreSQL itu database transaksional. Mereka jago nyimpen dan ngubah data aplikasi baris per baris, real-time.
BigQuery beda kerjaannya. Dia dirancang buat baca dan agregasi data besar sekaligus.
| Kondisi | Pakai |
|---|---|
| Update 1 baris pesanan pelanggan | PostgreSQL / MySQL |
| Hitung total omzet 80 juta baris per kota | BigQuery |
| Data kamu 50 ribu baris | PostgreSQL / SQLite (BigQuery overkill) |
| Berbagi dataset ke 10 orang tanpa ngurus server | BigQuery |
Nyoba UPDATE satu baris di BigQuery bakal terasa lambat. Itu bukan bug — dia memang bukan buat itu.
Cara mulai BigQuery dari nol
Total waktu sekitar 15 menit. Kartu kredit perlu didaftarin, tapi kamu nggak bakal ditagih selama masih di free tier.
- Buka console.cloud.google.com/bigquery, login pakai akun Google.
- Klik dropdown project di kiri atas → New Project. Kasih nama, misalnya
ngulik-demo. - Di panel Explorer kiri, klik titik tiga di samping nama project → Create dataset. Nama:
toko_berkah. Location: pilihasia-southeast2(Jakarta) biar latensinya rendah. - Klik titik tiga di samping dataset → Create table.
- Source: Upload. Pilih file CSV kamu. Format: CSV.
- Table name:
transaksi. Schema: centang Auto detect. - Klik Create table. Selesai.
Buat file di atas 100 MB, upload lewat Google Cloud Storage dulu — lebih stabil daripada upload langsung dari browser.
Query pertama kamu di BigQuery
Sintaksnya SQL standar. Yang beda cuma cara nulis nama tabel: project.dataset.tabel dibungkus backtick.
SELECT
kota,
COUNT(*) AS jumlah_transaksi,
ROUND(SUM(qty * harga_satuan)) AS total_omzet
FROM `ngulik-demo.toko_berkah.transaksi`
WHERE tanggal BETWEEN '2026-01-01' AND '2026-03-31'
AND status = 'selesai'
GROUP BY kota
ORDER BY total_omzet DESC
LIMIT 10;
Sebelum kamu tekan Run, lihat pojok kanan atas editor. Ada tulisan kecil: "This query will process X MB when run."
Itu angka yang bakal kamu bayar. Selalu baca dulu.
Kenapa SELECT * itu mahal di BigQuery?
BigQuery nyimpen data secara kolom, bukan baris. Waktu kamu minta 3 kolom, dia cuma baca 3 kolom itu. Yang lain nggak disentuh.
Begitu kamu nulis SELECT *, dia baca semua kolom. Tabel 500 GB dengan 40 kolom? Kamu baca 500 GB.
Dan ini bagian yang paling sering bikin orang kaget: LIMIT nggak nghemat apa-apa.
-- Ini tetap baca SELURUH tabel. LIMIT cuma motong tampilan.
SELECT * FROM `ngulik-demo.toko_berkah.transaksi` LIMIT 10;
-- Ini yang bener kalau cuma mau ngintip isinya:
-- klik nama tabel di Explorer, buka tab "Preview" — gratis, 0 byte.
Tab Preview di UI BigQuery baca 0 byte. Pakai itu buat ngintip data, jangan query.
Partitioned table: trik hemat paling besar
Partitioned table adalah tabel yang dipecah jadi potongan berdasarkan satu kolom — hampir selalu tanggal.
Waktu query kamu filter tanggal, BigQuery cuma baca potongan yang relevan. Sisanya dilewatin.
CREATE TABLE `ngulik-demo.toko_berkah.transaksi_part`
PARTITION BY DATE(tanggal)
CLUSTER BY kota
AS
SELECT * FROM `ngulik-demo.toko_berkah.transaksi`;
PARTITION BY mecah per tanggal. CLUSTER BY ngurutin data di dalam tiap partisi berdasarkan kota — jadi filter kota juga jadi lebih cepat.
Syaratnya cuma satu: filter partisinya harus kena di WHERE.
-- HEMAT: baca 1 bulan doang
SELECT kota, SUM(qty * harga_satuan) AS omzet
FROM `ngulik-demo.toko_berkah.transaksi_part`
WHERE tanggal BETWEEN '2026-01-01' AND '2026-01-31'
GROUP BY kota;
-- MAHAL: nggak ada filter tanggal, baca semua partisi
SELECT kota, SUM(qty * harga_satuan) AS omzet
FROM `ngulik-demo.toko_berkah.transaksi_part`
GROUP BY kota;
Contoh kasus: 3,2 GB jadi 180 MB
Aku uji ini pakai versi besar dataset toko_berkah: 42 juta baris transaksi, 24 bulan, ukuran tabel 3,2 GB.
Query pertama, gaya pemula:
SELECT * FROM `ngulik-demo.toko_berkah.transaksi`
WHERE kota = 'Bandung'
LIMIT 100;
Bytes processed: 3,2 GB. Buat 100 baris hasil.
Query kedua, tabel udah dipartisi dan kolomnya disebut eksplisit:
SELECT tanggal, kota, qty, harga_satuan
FROM `ngulik-demo.toko_berkah.transaksi_part`
WHERE tanggal BETWEEN '2026-01-01' AND '2026-01-31'
AND kota = 'Bandung';
Bytes processed: 180 MB.
Turun 94,4%. Query yang sama, jawaban yang sama, biaya seperempat puluhan kali lebih kecil.
Di free tier 1 TB per bulan, query pertama bisa kamu jalanin 312 kali. Query kedua: 5.688 kali.
Kesalahan umum pemula di BigQuery
SELECT * buat ngintip data. Pakai tab Preview. Gratis.
Ngira LIMIT nghemat biaya. Nggak. LIMIT motong hasil, bukan pembacaan.
Nggak bikin tabel berpartisi. Kalau tabel kamu punya kolom tanggal dan bakal sering difilter per periode, partisi itu wajib.
Pilih location yang salah. Dataset di US nggak bisa di-JOIN sama dataset di asia-southeast2. Tentuin location dari awal dan konsisten.
Lupa set budget alert. Di Google Cloud Console, buka Billing → Budgets & alerts, set batas Rp 0 dengan notifikasi email. Kalau ada yang aneh, kamu tau duluan.
Detail model harganya bisa kamu baca di dokumentasi resmi BigQuery Pricing.
FAQ
Apakah BigQuery gratis?
Ada free tier: 1 TB query processing per bulan dan 10 GB storage, gratis selamanya. Buat belajar dan proyek portfolio, kamu hampir pasti nggak lewat batas itu. Kamu tetap perlu masukin kartu kredit waktu daftar Google Cloud, tapi nggak akan ditagih selama masih di dalam free tier.
Apa bedanya BigQuery sama MySQL atau PostgreSQL?
MySQL dan PostgreSQL database transaksional — buat nyimpen dan ngubah data aplikasi real-time, baris per baris. BigQuery data warehouse analitik — buat baca dan agregasi data besar sekaligus. BigQuery lambat kalau dipakai UPDATE satu baris, tapi bisa nge-scan 100 juta baris dalam hitungan detik.
Kenapa query BigQuery saya mahal padahal cuma SELECT?
Karena BigQuery ngitung biaya dari byte kolom yang dibaca, bukan jumlah baris hasil. SELECT * dari tabel 500 GB tetap baca 500 GB walaupun kamu kasih LIMIT 10. Sebut kolom yang kamu butuh secara eksplisit, dan pastikan filter tanggalnya kena kolom partisi.
Apa itu partitioned table dan kenapa penting?
Tabel yang dipecah jadi potongan berdasarkan satu kolom, biasanya tanggal. Waktu kamu filter WHERE tanggal BETWEEN, BigQuery cuma baca partisi yang relevan. Di tabel 2 tahun, ini bisa motong biaya query sampai 95%.
Bisa nggak BigQuery dipakai buat data kecil?
Bisa, tapi buat data di bawah 1 juta baris kamu nggak dapat manfaat kecepatannya — SQLite atau PostgreSQL udah cukup. BigQuery baru kerasa unggul di puluhan juta baris ke atas, atau kalau kamu perlu berbagi dataset ke banyak orang tanpa ngurus server.
Praktekin sekarang
Tiga aturan yang bikin BigQuery kamu tetap gratis:
- Nggak pernah
SELECT *. Sebut kolomnya. - Tabel yang punya kolom tanggal, partisi berdasarkan tanggal.
- Baca angka "will process X MB" sebelum tekan Run.
Bikin project BigQuery hari ini, upload satu CSV yang kamu punya, terus jalanin satu query GROUP BY. Lihat bytes processed-nya berapa.
Kalau sintaks SQL-nya masih baru buat kamu, mulai dari panduan belajar SQL dari nol. Buat fungsi agregasi yang paling sering kepakai, cek SUM dan GROUP BY.
Mau praktek langsung? Mulai latihan SQL gratis
Latihan interaktif, langsung di browser.
Artikel Terkait
7 SQL Client Gratis Terbaik buat Analis Data (2026)
Nggak perlu bayar buat nulis query. Ini 7 SQL client gratis yang beneran dipakai analis, plus kelebihan dan kekurangannya masing-masing.
SQL Style Guide: Cara Nulis Query yang Enak Dibaca Tim
Sepuluh aturan SQL style guide yang bikin query kamu kebaca sama tim — dan sama kamu sendiri 6 bulan lagi. Lengkap dengan contoh sebelum-sesudah.
Take-Home Test SQL Data Analyst: Contoh Soal + Cara Ngerjainnya
Contoh soal take-home test SQL yang beneran dipakai perusahaan, dikerjain step by step — dari baca soal, nulis query, sampai nyusun insight yang bikin recruiter nengok.