Menggunakan PostgreSQL sebagai data warehouse
(narrator.ai)Ringkasan tweak utama yang dirapikan berdasarkan pengalaman Narrative, sistem pendukung pengambilan keputusan melalui analisis data
-
Jangan gunakan server yang sama dengan sistem produksi
-
Upgrade ke PG 12+ (jangan gunakan CTE)
-
Buat indeks sekecil mungkin
-
Partisi tabel (range/list)
-
Minimalkan disk I/O
-
Jalankan Vacuum setelah bulk insert
-
Gunakan query paralel
-
Tingkatkan sampling statistik (per kolom atau seluruh DB; nilai default 100 tetapi 500)
-
Gunakan lebih sedikit kolom (karena penyimpanannya berbasis row)
-
Pada tabel 50 juta hingga 100 juta baris, Postgres bekerja dengan sangat baik
-
Saat skala mencapai level miliaran, Citus direkomendasikan
→ https://www.citusdata.com : open source yang mengubah Postgres menjadi DB terdistribusi
3 komentar
Berdasarkan pengalaman, untuk basis deret waktu saya memang merasa
timescaledbmungkin akan lebih baik, tetapi karena tidak ada data yang bisa dijadikan dasar, saya agak berhati-hati. Dari sisi rasio kompresi dan performa, saya ingin menyampaikan pendapat dengan hati-hati bahwatimescaledbmungkin lebih unggul.Saya penasaran bagaimana jika membandingkan citus dan timescaledb.
Setahu saya, timescaledb punya keunggulan dalam cara mempartisi berdasarkan deret waktu, dan citus punya keunggulan dalam sharding... (ngomong-ngomong, sepertinya bukan tidak mungkin juga ya untuk menggunakan keduanya bersama?)