एक वैश्विक ई-कॉमर्स प्लेटफॉर्म जिसके लिए कई महाद्वीपों में ACID लेनदेन, मजबूत सुसंगतता और 99.999% उपलब्धता की आवश्यकता है।
→मल्टी-रीजन कॉन्फ़िगरेशन (जैसे, nam-eur-asia) के साथ Cloud Spanner।
क्यों: Spanner एकमात्र GCP प्रबंधित सेवा है जो 99.999% SLA के साथ वैश्विक रूप से वितरित, मजबूत सुसंगत ACID लेनदेन प्रदान करती है।
संदर्भ↗
जटिल स्टोर्ड प्रोसीजर और विश्लेषणात्मक क्वेरी आवश्यकताओं के साथ एक बड़े, उच्च-प्रदर्शन वाले Oracle OLTP डेटाबेस को माइग्रेट करना।
→AlloyDB for PostgreSQL।
क्यों: AlloyDB बेहतर PostgreSQL प्रदर्शन, Oracle अनुकूलता सुविधाएँ, और लेनदेन संबंधी वर्कलोड को प्रभावित किए बिना विश्लेषणात्मक प्रश्नों (HTAP) को तेज करने के लिए एक कॉलमिनर इंजन प्रदान करता है।
संदर्भ↗
समय-श्रृंखला डेटा (जैसे, IoT, लॉग) का उच्च-थ्रूपुट (लाखों OPS) अंतर्ग्रहण जिसके लिए कम-विलंबता रीड और स्वचालित डेटा समाप्ति की आवश्यकता होती है।
→`(entity_id)#(reverse_timestamp)` की पंक्ति कुंजी डिज़ाइन और कचरा संग्रह नीति के साथ Cloud Bigtable।
क्यों: Bigtable बड़े पैमाने पर, कम-विलंबता कुंजी/मान वर्कलोड के लिए डिज़ाइन किया गया है। पंक्ति कुंजी में एक रिवर्स टाइमस्टैम्प कुशल स्कैन के लिए हाल के डेटा को सह-स्थानित करता है। कचरा संग्रह TTL को संभालता है।
संदर्भ↗
मोबाइल या वेब एप्लिकेशन जिसके लिए लचीली स्कीमा, क्लाइंट के लिए रीयल-टाइम डेटा सिंक्रनाइज़ेशन और ऑफ़लाइन समर्थन की आवश्यकता होती है।
→नेटिव मोड में Firestore।
क्यों: Firestore इस सर्वरलेस ऐप बैकएंड पैटर्न के लिए विशेष रूप से बनाया गया है, जो अपने क्लाइंट SDK के माध्यम से आउट-ऑफ-द-बॉक्स रीयल-टाइम लिसनर्स और ऑफ़लाइन परसिस्टेंस प्रदान करता है।
संदर्भ↗
AI/ML अनुप्रयोगों (जैसे, RAG, अनुशंसाएँ) के लिए बड़े पैमाने पर (10M+ वेक्टर्स) समानता खोज जिसके लिए सब-100ms विलंबता की आवश्यकता होती है।
→pgvector एक्सटेंशन और ScaNN इंडेक्स के साथ AlloyDB for PostgreSQL।
क्यों: AlloyDB अनुमानित निकटतम पड़ोसी (ANN) खोज के लिए Google's उच्च-प्रदर्शन वाले ScaNN एल्गोरिथम को एकीकृत करता है, जो बड़े पैमाने पर मानक वेक्टर खोज कार्यान्वयन से बेहतर प्रदर्शन करता है।
एक राइट-हेवी वर्कलोड के लिए Cloud Spanner स्कीमा डिज़ाइन करना ताकि एक ही सर्वर पर हॉटस्पॉट को रोका जा सके।
→प्राथमिक कुंजी डिज़ाइन करें जो पहले कुंजी भाग के रूप में मोनोटोनिक रूप से बढ़ते हुए मानों (जैसे, अनुक्रमिक ID, टाइमस्टैम्प) का उपयोग न करें। इसके बजाय UUIDs, हैश किए गए मान, या बिट-रिवर्स किए गए अनुक्रमों का उपयोग करें।
क्यों: Spanner डेटा को प्राथमिक कुंजी द्वारा लेक्सिकोग्राफिक रूप से वितरित करता है। अनुक्रमिक कुंजियाँ सभी राइट्स को एक ही स्प्लिट पर निर्देशित करती हैं, जिससे एक हॉटस्पॉट बनता है। यादृच्छिक रूप से वितरित कुंजियाँ सभी स्प्लिट्स में राइट्स को फैलाती हैं।
संदर्भ↗
एक Spanner स्कीमा में एक मजबूत पैरेंट-चाइल्ड संबंध (जैसे, ग्राहक और ऑर्डर) है और क्वेरी अक्सर अपने सभी बच्चों के साथ एक पैरेंट को फेच करती हैं।
→इंटरलीव्ड तालिकाओं का उपयोग करें, चाइल्ड तालिका को `INTERLEAVE IN PARENT` के साथ परिभाषित करें।
क्यों: इंटरलीविंग चाइल्ड पंक्तियों को उनके पैरेंट पंक्ति के साथ स्टोरेज में भौतिक रूप से सह-स्थानित करता है। यह पैरेंट-चाइल्ड जॉइन को अत्यधिक कुशल बनाता है, क्योंकि यह एक ही स्प्लिट पर एक अत्यधिक अनुकूलित रेंज स्कैन बन जाता है।
एक बड़े वाहन बेड़े (50k+ writes/sec) के लिए रीयल-टाइम स्थानों को ट्रैक करना, जिसमें भौगोलिक क्षेत्र के भीतर वाहनों को खोजने के लिए क्वेरी शामिल हैं।
→वाहन के GeoHash द्वारा उपसर्गित पंक्ति कुंजी के साथ Cloud Bigtable।
क्यों: Bigtable अत्यधिक राइट थ्रूपुट को संभालता है। GeoHash एन्कोडिंग 2D निर्देशांकों को एक 1D स्ट्रिंग में परिवर्तित करता है जहां उपसर्ग भौगोलिक निकटता का प्रतिनिधित्व करते हैं, जिससे कुशल भू-स्थानिक रेंज स्कैन सक्षम होते हैं।
जटिल विश्लेषणात्मक SQL क्वेरी के साथ पेटाबाइट-स्केल डेटा (जैसे, जीनोमिक डेटा, लॉग) को संग्रहीत और विश्लेषण करना।
→Cloud Storage में रॉ डेटा संग्रहीत करें और बाहरी तालिकाओं का उपयोग करके सीधे BigQuery से क्वेरी करें, या नेटिव BigQuery स्टोरेज में लोड करें।
क्यों: BigQuery पेटाबाइट-स्केल एनालिटिक्स के लिए बनाया गया एक सर्वरलेस डेटा वेयरहाउस है। स्टोरेज और कंप्यूट का इसका अलगाव OLAP वर्कलोड के लिए अद्वितीय क्वेरी प्रदर्शन और लागत-प्रभावशीलता प्रदान करता है।
जटिल डेटा संरचनाओं (हैश, सेट) के लिए एक उच्च-उपलब्धता इन-मेमोरी कैश जिसमें कैश अमान्यकरण के लिए पब/सब क्षमताएं हों।
→रीड रेप्लिका के साथ Memorystore for Redis Standard Tier।
क्यों: Standard Tier स्वचालित फेलओवर के साथ 99.9% SLA प्रदान करता है। Redis Memcached के विपरीत, जटिल डेटा प्रकारों और पब/सब का समर्थन करता है। रीड रेप्लिका रीड थ्रूपुट को स्केल कर सकते हैं।
Spanner पर एक मल्टी-टेनेंट SaaS एप्लिकेशन डिज़ाइन करना जिसके लिए प्रति टेनेंट मजबूत डेटा अलगाव और प्रदर्शन गारंटी की आवश्यकता होती है।
→सभी तालिकाओं के लिए प्राथमिक कुंजी के पहले घटक के रूप में tenant_id का उपयोग करें। मजबूत अलगाव के लिए, एक ही Spanner इंस्टेंस के भीतर डेटाबेस-प्रति-टेनेंट मॉडल का उपयोग करें।
क्यों: एक tenant_id उपसर्ग स्वाभाविक रूप से एक ही टेनेंट के सभी डेटा को सह-स्थानित करता है, क्वेरी को अनुकूलित करता है और Spanner को टेनेंट द्वारा डेटा को विभाजित करने की अनुमति देता है। डेटाबेस-प्रति-टेनेंट सबसे मजबूत लॉजिकल अलगाव प्रदान करता है।