# Mengukur Performa Pipeline

Kuasai metrik throughput, latency p50/p95, dan memori puncak, lengkap dengan jebakan pengukuran, disiplin baseline JSON, dan verifikasi sebelum-sesudah yang jujur terhadap noise.

Buka →
# Query Profiling

Jalankan investigasi query lambat secara sistematis lewat piramida profiling — dari metrik pipeline turun ke operator — dengan EXPLAIN ANALYZE DuckDB pada kasus join fan-out 10x yang menjadi 21 kali lebih cepat setelah akar masalahnya ditemukan.

Buka →
# Indexing dan Partitioning

Adu index SQLite dan partition Parquet pada benchmark nyata: lookup titik 49x lebih cepat dengan index, query rentang 3x lebih cepat dengan partition pruning, lalu putuskan kapan memakai index, partition, atau keduanya.

Buka →
# Predicate Pushdown

Bukti terukur bahwa posisi filter menentukan biaya: filter kota='Bandung' pada 5 juta baris Parquet berjalan 3,9 detik di pandas, 0,6 detik di reader pyarrow, dan 0,011 detik sebagai WHERE DuckDB — plus batasan pushdown pada predikat kompleks.

Buka →
# Column Pruning

Ukur penghematan nyata membaca 2 dari 12 kolom Parquet: waktu 4,8x lebih cepat, memori tabel 6x lebih hemat, plus bukti projection pushdown dari rencana eksekusi dan alasan mengapa SELECT * membatalkan semuanya.

Buka →
# Batch Size dan Throughput

Sapukan ukuran batch executemany dari 1 sampai 50 ribu baris, temukan titik jenuh di mana throughput melandai sementara memori terus naik, lalu kendalikan memori pembacaan CSV dengan chunking — dan ubah throughput menjadi anggaran kapasitas.

Buka →
# Parallelism

Percepat pipeline dengan membagi pekerjaan: ThreadPool vs ProcessPool vs DuckDB threads, diuji jujur di mesin 2 CPU hingga efek oversubscription yang justru memperlambat.

Buka →
# Caching

Bangun cache disk berbasis hash input: miss dan hit terukur, invalidasi otomatis saat input berubah, perlindungan cache stampede dengan single-flight, dan daftar apa yang tidak layak di-cache.

Buka →
# Memory Optimization

Pangkas memori pipeline Python dengan tracemalloc: generator vs list-of-dicts, downcast dtype, chunked read, jebakan sys.getsizeof, hingga keputusan menumpah ke disk secara manual.

Buka →
# Mengatasi Data Skew

Diagnosa data skew dari hitungan kunci teratas, pecah partition timpang dengan salting dan agregasi dua tahap di multiprocessing, dan kenali kapan DuckDB justru tidak memerlukan obatnya.

Buka →
# Mengoptimalkan Biaya Storage

Tekan biaya penyimpanan data lake: benchmark empat format lengkap dengan hitungan dolar per tahun, masalah small files beserta kompaksinya, dan matematika retensi plus tiering storage class.

Buka →
# Benchmarking

Rancang benchmark yang bisa dipercaya: aturan pertandingan adil, warm-up, N run dengan statistik min/median/p95, jebakan single-run dan cache dingin, plus template pelaporan yang bisa direproduksi.

Buka →