PostgreSQL को data warehouse के रूप में इस्तेमाल करना
(narrator.ai)डेटा विश्लेषण के ज़रिए निर्णय-निर्माण सहायता प्रणाली Narrative ने अपने अनुभव के आधार पर कुछ प्रमुख tweaks संकलित किए हैं
-
प्रोडक्शन सिस्टम वाले सर्वर का इस्तेमाल न करें
-
PG 12+ में upgrade करें (CTE का इस्तेमाल न करें)
-
index जितने संभव हों उतने छोटे रखें
-
table partitioning (range/list)
-
disk I/O को न्यूनतम रखें
-
bulk insert के बाद Vacuum करें
-
parallel query का उपयोग करें
-
statistics sampling बढ़ाएँ (column-वार या पूरे DB के लिए; default 100 है लेकिन 500 रखें)
-
कम columns का उपयोग करें (क्योंकि यह row-based storage है)
-
5 करोड़~10 करोड़ rows वाली tables पर Postgres शानदार तरीके से काम करता है
-
जब scale 1 अरब के स्तर तक पहुँचे, तब Citus की सिफारिश की जाती है
→ https://www.citusdata.com : Postgres को distributed DB में बदलने वाला open source
3 टिप्पणियां
अनुभव के आधार पर देखें तो अगर यह time-series आधारित है, तो मुझे लगता है कि timescaledb बेहतर हो सकता है, लेकिन इसे आधार देने लायक सामग्री नहीं है, इसलिए यह बात मैं सावधानी से कह रहा हूँ। compression ratio और performance के मामले में timescaledb बेहतर हो सकता है, यही मेरी सावधानीपूर्ण राय है.
मैं जानना चाहता/चाहती हूँ कि citus और timescaledb की तुलना कैसी होगी.
जहाँ तक मुझे पता है, timescaledb में time series के हिसाब से partitioning का फायदा है, और citus में sharding का फायदा है... (सोचने पर, क्या दोनों को साथ में इस्तेमाल करना भी असंभव नहीं होगा?)