[संगीत बजाना] रिक Houlihan: ठीक है। सबको नमस्ते। मेरा नाम रिक Houlihan है। मैं एक वरिष्ठ प्राचार्य हूँ एडब्ल्यूएस पर समाधान वास्तुकार। मैं एनओएसक्यूएल पर ध्यान केंद्रित करने और DynamoDB प्रौद्योगिकियों। मैं करने के लिए बात करने के लिए आज यहाँ हूँ आप उन लोगों के बारे में एक छोटा सा। मेरी पृष्ठभूमि है मुख्य रूप से डेटा परत में। मैं आधे मेरे विकास में खर्च कैरियर, डेटाबेस लिख डेटा का उपयोग, समाधान विभिन्न अनुप्रयोगों के लिए। मैं बादल वर्चुअलाइजेशन में किया गया है के बारे में 20 साल के लिए। बादल बादल था तो इससे पहले, हम उपयोगिता कंप्यूटिंग यह कह कर बुलाते थे। और आइडिया को यह पसंद है था स्नातकोत्तर और ई, आप क्या इस्तेमाल के लिए भुगतान करते हैं। आज हम बादल कहते हैं। लेकिन पिछले कुछ वर्षों में, मैंने काम किया है कंपनियों के एक जोड़े के लिए आप शायद कभी नहीं सुना है। लेकिन मैं तकनीकी की एक सूची तैयार की है उपलब्धियों, मैं तुम्हें कह सकता हूँ लगता है। मैं बादल सिस्टम में आठ पेटेंट है वर्चुअलाइजेशन, माइक्रोप्रोसेसर डिजाइन, जटिल घटना प्रसंस्करण, और अन्य क्षेत्रों के रूप में अच्छी तरह से। इन दिनों तो, मैं एनओएसक्यूएल पर ज्यादातर ध्यान प्रौद्योगिकियों और अगली पीढ़ी डेटाबेस। और कहा कि मैं जा रहा हूँ आम तौर पर है के बारे में आप के लिए आज बात कर यहाँ होना। तो आप क्या उम्मीद कर सकते इस सत्र से, हम एक संक्षिप्त माध्यम से जाना होगा डाटा प्रोसेसिंग के इतिहास। यह हमेशा के लिए उपयोगी है हम कहाँ से आया समझ में हम कर रहे हैं और यही कारण है कि हम कहाँ हैं। और हम एक छोटे से बात करेंगे एनओएसक्यूएल तकनीक के बारे में बिट एक मौलिक दृष्टि से। हम में से कुछ में मिल जाएगा DynamoDB internals। DynamoDB एडब्ल्यूएस का कोई स्वाद है। यह एक पूरी तरह कामयाब रहा है और मेजबानी एनओएसक्यूएल समाधान। और हम मेज के बारे में थोड़ा बात करेंगे संरचना, एपीआई, डेटा प्रकार, अनुक्रमणिका, और internals के कुछ कि DynamoDB प्रौद्योगिकी की। हम डिजाइन के कुछ में मिल जाएगा पैटर्न और सर्वोत्तम प्रथाओं। हम आप के बारे में कैसे बात करेंगे कुछ के लिए इस तकनीक का प्रयोग आज के आवेदनों की। और फिर हम एक छोटा सा बात करेंगे विकास या उद्भव के बारे में प्रोग्रामिंग में एक नए प्रतिमान की कहा जाता घटना चालित अनुप्रयोगों और DynamoDB के रूप में अच्छी तरह से है कि नाटकों में कैसे। और हम आप का एक छोटा सा छोड़ देंगे एक संदर्भ वास्तुकला चर्चा तो हम में से कुछ के बारे में बात कर सकते हैं तरीकों से आप DynamoDB उपयोग कर सकते हैं। तो पहले यह एक सवाल है off-- मैं एक बहुत एक डेटाबेस क्या है, सुना है। बहुत सारे लोग उन्हें लगता है एक डेटाबेस है क्या पता है। गूगल आप हैं, तो आप इस देखेंगे। यह एक आयोजित डेटा की एक संरचित सेट है एक कंप्यूटर, विशेष रूप से एक में है कि विभिन्न तरीकों से पहुँचा जा सकता है। मुझे लगता है कि एक अच्छी बात है एक आधुनिक डेटाबेस की परिभाषा। लेकिन मुझे लगता है, क्योंकि यह पसंद नहीं है यह चीजों की एक जोड़ी निकलता है। यह संरचना निकलता है। और यह एक कंप्यूटर पर है कि निकलता है। और डेटाबेस नहीं किया कंप्यूटर पर हमेशा मौजूद हैं। डेटाबेस वास्तव में कई मायनों में मौजूद था। एक का तो एक बेहतर परिभाषा डेटाबेस कुछ इस तरह है। एक डाटाबेस एक आयोजित किया जाता है भंडारण के प्रबंधन के लिए तंत्र, और जानकारी को पुन: प्राप्त। इस About.com से है। इसलिए मैं वास्तव में बात करती है तो इसकी वजह यह पसंद है के बारे में एक डेटाबेस भंडार होने, का भंडार जानकारी, जरूरी नहीं एक कंप्यूटर पर बैठता है कि कुछ और। और इतिहास के दौरान, हम हमेशा कंप्यूटर नहीं पड़ा है। अब, मैं औसत से पूछना अगर क्या डेवलपर आज एक डेटाबेस, कि मैं पाने के जवाब है। कहीं न कहीं मैं सामान छड़ी कर सकते हैं। है ना? और यह सच है। लेकिन यह दुर्भाग्यपूर्ण है। डेटाबेस सच है क्योंकि आधुनिक एप्लिकेशन की नींव। यह नींव है के हर आवेदन। और आपको लगता है कि निर्माण कैसे डेटाबेस, आप कैसे संरचना डेटा है कि कैसे हुक्म है कि करने के लिए जा रहा है आप पैमाने के रूप में आवेदन करता है। तो मेरा काम आज का एक बहुत साथ काम कर रहा है क्या जब डेवलपर्स होता है इस दृष्टिकोण रखना और बाद के साथ काम एक आवेदन की है कि अब मूल परे स्केलिंग है बुरा डिजाइन से आशय और पीड़ा। इसलिए उम्मीद है कि जब आप आज दूर चलना है, तुम हूँ उपकरणों की एक जोड़ी में है आप रखेंगे कि अपनी बेल्ट वे एक ही गलती करने से। ठीक है। तो चलो का एक छोटा सा के बारे में बात करते हैं डेटाबेस प्रौद्योगिकी का समय। मैंने सोचा कि मैं एक पढ़ा है लेख नहीं कि कुछ समय पहले और यह lines-- पर कुछ कहा यह एक बहुत ही काव्य बयान है। यह कहा इतिहास डेटा की प्रोसेसिंग है उच्च वॉटरमार्क से भरा डेटा बहुतायत की। ठीक है। अब, मैं उस तरह का सच है। लेकिन मैं वास्तव में है के रूप में देखो इतिहास वास्तव में भर जाता है डेटा दबाव के उच्च वॉटरमार्क के साथ। के डाटा दर की वजह से घूस नीचे चला जाता है कभी नहीं। यह केवल ऊपर चला जाता है। और नवाचार तब होता है जब हम डेटा दबाव देखते हैं, जो है कि डेटा की मात्रा है अब सिस्टम में आने में। और यह संसाधित नहीं किया जा सकता कुशलतापूर्वक समय में या लागत में या तो। हम शुरू और है कि जब डेटा दबाव को देखने के लिए। इसलिए हम पर जब देखो पहले डेटाबेस, इस हमारे कान के बीच किया गया था कि एक है। हम सब इसके साथ पैदा कर रहे हैं। यह एक अच्छा डेटाबेस है। यह एक उच्च उपलब्धता है। यह हमेशा पर है। तुम हमेशा इसे प्राप्त कर सकते हैं। लेकिन यह एकल उपयोगकर्ता की। मैं तुम्हारे साथ मेरे विचारों को साझा नहीं कर सकते। आप मेरे विचारों को प्राप्त नहीं कर सकता जब आप उन्हें चाहते। और उनके abilitiy इतना अच्छा नहीं है। हम चीजों को भूल जाते हैं। हर अब और फिर, हम में से एक पत्ते और एक अन्य अस्तित्व पर चलता है और हम सब कुछ खो देते हैं कि कि डेटाबेस में था। तो यह है कि यह सब अच्छा नहीं है। और यह समय के साथ अच्छी तरह से काम हम दिन में वापस आ रहे थे जब जब हम सच में पता करने के लिए सभी आवश्यक है जहां हम कल पर जाने के लिए जा रहे हैं या हम सबसे अच्छा भोजन इकट्ठा जहां। लेकिन हम शुरू कर के रूप में एक के रूप में विकसित करने के लिए सभ्यता और सरकार शुरू कर दिया अस्तित्व में आते हैं, और करने के लिए व्यवसायों, विकसित करने के लिए शुरू कर दिया हम महसूस करने के लिए शुरू कर दिया एक छोटे से अधिक की जरूरत है क्या हम अपने सिर में डाल सकता है। ठीक है? हम रिकॉर्ड की प्रणाली की जरूरत है। हम सक्षम डाटा स्टोर होने के लिए स्थानों की जरूरत है। इसलिए हम, लेखन दस्तावेजों शुरू कर दिया पुस्तकालयों और अभिलेखागार बनाने। हम एक विकासशील शुरू प्रणाली एक खाता बही लेखा। और खाता गिनती की है कि सिस्टम कई शताब्दियों के लिए दुनिया भागा और शायद यह भी सदियों के रूप में हम किस तरह की बात करने के लिए बढ़ी जहां कि डेटा लोड पार उन प्रणालियों की क्षमता इसे रोकने के लिए सक्षम हो। और यह वास्तव में 1880 के दशक में हुआ। है ना? 1880 अमेरिकी जनगणना में। यह जहां मोड़ वास्तव में है आधुनिक डाटा प्रोसेसिंग इशारा करते हैं। इस बिंदु पर है डेटा की जो राशि उस के द्वारा एकत्र की जा रही थी अमेरिकी सरकार के बिंदु पर मिल गया जहां यह प्रक्रिया आठ साल लग गए। अब, आठ years-- के रूप में आप, जनगणना जानते रन हर 10 years-- तो यह है बहुत स्पष्ट है कि समय से हम 1890 की जनगणना के लिए मिला डेटा की मात्रा कि संसाधित करने के लिए जा रहा था सरकार द्वारा किया गया था 10 साल से अधिक के लिए यह जा रहा है कि शुरू की नई जनगणना के लिए ले जाएगा। यह एक समस्या थी। तो पुरुष हरमन नामित होलेरिथ साथ आया था और वह इकाई रिकॉर्ड पंच का आविष्कार कार्ड, पंच कार्ड रीडर, पंच कार्ड टेबुलेटर, और कोलेशन की इस प्रौद्योगिकी के लिए तंत्र। तब उस पर गठित है कि उस कंपनी समय, दूसरों के एक जोड़े के साथ-साथ, वास्तव में बन गया एक के स्तंभों में से एक आज हम जानते छोटी सी कंपनी आईबीएम बुलाया। तो आईबीएम मूल रूप में किया गया था डेटाबेस व्यापार। और कहा कि वे क्या वास्तव में है। वे डाटा प्रोसेसिंग किया था। पंच के प्रसार इतनी के रूप में कार्ड, एक सरल तंत्र की है कि लाभ उठाने के लिए सक्षम होने के नाते प्रौद्योगिकी सॉर्ट परिणाम सेट चुनाव करने के लिए। आप इस तस्वीर में देख सकते हैं वहाँ हम एक little-- है यह एक छोटे से small-- है, लेकिन आप देख सकते हैं एक बहुत ही सरल यांत्रिक तंत्र हम एक पंच कार्ड डेक है जहां। और किसी को ले जा रहा एक छोटे पेचकश और के माध्यम से चिपके हुए स्लॉट और इसे ऊपर उठाने उस मैच मिलता है कि करने के लिए छाँटे गए परिणामों को निर्धारित किया है। यह एक एकत्रीकरण है। हम यह सब समय है कंप्यूटर में आज आप डेटाबेस में यह करना है। हम सही, इसे स्वयं करने के लिए इस्तेमाल किया? लोगों को एक साथ इन बातों को रखा। और यह प्रसार था इन पंच कार्ड की हम क्या कहा जाता है डेटा ड्रम में और डेटा रीलों, कागज टेप। डाटा प्रोसेसिंग उद्योग में ले लिया खिलाड़ी पियानो से सबक। प्लेयर पर वापस पियानो शताब्दी का करवट स्लॉट के साथ कागज रीलों का उपयोग करने के लिए इस्तेमाल किया पर इसे खेलने के लिए चाबी है जो बताने के लिए। प्रौद्योगिकी है कि अनुकूलित किया गया था तो अंत में, डिजिटल डाटा स्टोर करने के लिए वे कहते हैं कि डेटा डाल सकता है क्योंकि उन कागज टेप रीलों पर। अब, एक परिणाम के रूप में, डेटा कैसे actually-- था आप इस डेटा सीधे था का उपयोग आप इसे संग्रहित कैसे पर निर्भर है। तो मैं एक टेप पर डेटा डाल दिया, मैं रैखिक डेटा का उपयोग किया था। मैं पूरे रोल करने के लिए किया था टेप सभी डेटा का उपयोग करने के लिए। मैं पंच में डेटा डाल दिया है कार्ड, मैं इसे का उपयोग कर सकता है एक छोटे से अधिक यादृच्छिक में फैशन, शायद नहीं के रूप में जल्दी। लेकिन यह कैसे में सीमाओं वहाँ थे हम संग्रहीत किया गया था के आधार पर डेटा के लिए उपयोग। और तो यह एक समस्या थी '50 के दशक में जा रहा है। फिर, हम के रूप में देखने के लिए कि शुरू कर सकते हैं प्रक्रिया करने के लिए नई प्रौद्योगिकियों का विकास डेटा, ठीक है, यह खुल जाता है नए समाधान के लिए दरवाजा, नए कार्यक्रमों के लिए, नई कि डेटा के लिए आवेदन। और वास्तव में, शासन कारण हो सकता है यही कारण है कि हम इन प्रणालियों में से कुछ का विकास किया। लेकिन व्यापार में तेजी से बन गया विकास के पीछे चालक आधुनिक डेटाबेस की और आधुनिक फाइल सिस्टम। अगली बात तो यह है कि '50 के दशक में आया था फाइल सिस्टम और था रैंडम एक्सेस भंडारण का विकास। इस सुंदर था। अब, अचानक, हम डाल सकते हैं हमारी इन हार्ड ड्राइव पर कहीं भी फाइलें और हम बेतरतीब ढंग से इस डेटा का उपयोग कर सकते हैं। हम जानते हैं कि पार्स कर सकते हैं फाइलों से बाहर जानकारी। और हम दुनिया के सभी हल डाटा प्रोसेसिंग के साथ समस्याओं। और उस समय तक चली बारे में 20 या विकास जब तक 30 साल रिलेशनल डेटाबेस की जो दुनिया अब हमने तय किया है जब है धरा है कि एक भंडार की आवश्यकता है फ़ाइल में डेटा के फैलाव हम का निर्माण किया है कि सिस्टम। है ना? भी कई में वितरित बहुत ज्यादा डेटा स्थानों, डेटा की डे-दोहराव, और भंडारण की लागत भारी था। 70 के दशक में, सबसे महंगी संसाधन एक कंप्यूटर था कि भंडारण किया गया था। प्रोसेसर था एक निश्चित लागत के रूप में देखा। मैं बॉक्स खरीदते हैं, सीपीयू कुछ काम करता है। यह है कि क्या कताई किया जा रहा है यह वास्तव में काम है या नहीं। यह वास्तव में एक डूब लागत है। लेकिन क्या एक के रूप में मुझे लागत व्यापार भंडारण है। मैं अगले अधिक डिस्क खरीदने के लिए है, तो महीने, कि मैं भुगतान करते हैं कि एक वास्तविक लागत है। और कहा कि भंडारण महंगा है। अब हम तेजी से आगे 40 साल और हम एक अलग समस्या है। गणना अब है सबसे महंगी संसाधन। भंडारण सस्ता है। मुझे लगता है हम पर कहीं भी जा सकते हैं, इसका मतलब यह बादल और हम सस्ते भंडारण पा सकते हैं। लेकिन क्या मैं नहीं मिल सकता है सस्ते गणना है। आज का विकास तो प्रौद्योगिकी, डेटाबेस प्रौद्योगिकी की, वास्तव में चारों ओर ध्यान केंद्रित किया है वितरित डेटाबेस उस से पीड़ित नहीं है बड़े पैमाने की एक ही प्रकार संबंधपरक डेटाबेस की सीमाओं। हम के बारे में थोड़ा बात करेंगे कि वास्तव में क्या मतलब। लेकिन कई कारणों में से एक है और है- हम पीछे चालक डेटा दबाव के बारे में बात की थी। डेटा दबाव कुछ है नवीनता है कि ड्राइव। और तुम पर पर नजर डालें तो पिछले पांच साल, यह क्या डेटा का एक चार्ट है सामान्य उद्यम भर में लोड पिछले पांच वर्षों में की तरह लग रहा है। और अंगूठे के सामान्य नियम इन days-- आप Google-- जाना है डेटा के 90% है कि हम आज की दुकान है, और यह था पिछले दो वर्षों के भीतर उत्पन्न। ठीक है। अब, यह नया है कि एक प्रवृत्ति नहीं है। यह हो गया है कि एक प्रवृत्ति है 100 साल के लिए बाहर जा रहा है। कभी हरमन होलेरिथ के बाद से पंच कार्ड विकसित की है, हम डेटा खजाने का निर्माण किया गया है और अभूतपूर्व दरों पर डेटा एकत्र। इसलिए पिछले 100 वर्षों में, हम इस प्रवृत्ति को देखा है। यही कारण है कि बदलने के लिए नहीं जा रहा है। आगे जा रहे हैं, हम देखने जा रहे हैं इस, नहीं तो एक त्वरित प्रवृत्ति। और तुम उस तरह लग रहा है देख सकते हैं। 2010 में एक व्यापार एक था प्रबंधन के तहत डाटा के टेराबाइट, वे कर रहे हैं इसका मतलब है कि आज डेटा की 6.5 petabytes प्रबंध। यही कारण है कि 6500 गुना अधिक डेटा है। और मुझे यह पता है। मैं हर दिन इन व्यवसायों के साथ काम करते हैं। पांच साल पहले, मैं कंपनियों से बात करेंगे क्या एक दर्द के बारे में मुझे जो बात करेंगे यह डेटा के terabytes का प्रबंधन है। और वे बात करेंगे हम देखते हैं कि कैसे के बारे में मुझसे मतलब यह है कि शायद जा रहा है एक petabyte या दो होने की वर्ष की एक जोड़ी के भीतर। ये वही कंपनियों मैं के साथ बैठक कर रहा हूँ आज, और वे के बारे में मुझसे बात कर रहे हैं इस समस्या के प्रबंधन वहाँ हो रही है दसियों, डेटा के 20 petabytes। के विस्फोट तो उद्योग में डेटा भारी गाड़ी चला रहा है बेहतर समाधान के लिए की जरूरत है। और संबंधपरक डेटाबेस है सिर्फ मांग को जीवित नहीं। और हां एक रेखीय वहाँ डेटा दबाव के बीच संबंध और तकनीकी नवाचार। इतिहास हमें दिखाया है यह, कि समय के साथ, जब भी डेटा की मात्रा कि संसाधित करने की जरूरत है सिस्टम की क्षमता से अधिक एक उचित समय में यह प्रक्रिया या एक उचित कीमत पर, उसके बाद नई प्रौद्योगिकियों उन समस्याओं को हल करने के लिए आविष्कार कर रहे हैं। उन नई प्रौद्योगिकियों, बदले में, दरवाजा खुला समस्याओं का एक और सेट, जो और भी अधिक डेटा एकत्र कर रहा है। अब, हम इसे रोकने के लिए नहीं जा रहे हैं। है ना? हम इसे रोकने के लिए नहीं जा रहे हैं। क्यों? आप सब कुछ पता नहीं कर सकता, क्योंकि ब्रह्मांड में पता करने के लिए नहीं है। और जब तक हम जिंदा किया गया है के रूप में आदमी के पूरे इतिहास में, हम हमेशा और अधिक जानना करने के लिए प्रेरित किया है। इसलिए यह हम कदम हर इंच की तरह लगता है वैज्ञानिक खोज के रास्ते नीचे, हम डेटा की मात्रा बढ़ रहे हैं हम तेजी से प्रक्रिया की जरूरत है कि हम अधिक से अधिक और अधिक उजागर के रूप में जीवन के भीतर के कामकाज के बारे में, , ब्रह्मांड कैसे काम करता है के बारे में के बारे में वैज्ञानिक खोज ड्राइविंग, और आविष्कार कि हम आज कर रहे हैं। डेटा की मात्रा बस लगातार बढ़ जाती है। तो साथ सौदा करने में सक्षम किया जा रहा है इस समस्या को भारी है। चीजों में से एक तो हम एनओएसक्यूएल के रूप में क्यों लग रही है? कैसे एनओएसक्यूएल इस समस्या को हल करता है? खैर, रिलेशनल डेटाबेस, स्ट्रक्चर्ड क्वेरी लैंग्वेज, SQL-- कि वास्तव में से एक का निर्माण है रिलेशनल ये बातें कर रहे database-- भंडारण के लिए अनुकूलित। वापस 70 के दशक में, फिर से, डिस्क महंगा है। भंडारण की प्रोविजनिंग व्यायाम उद्यम में कभी खत्म नहीं होता है। मैं जानता हूँ। मैं इसे रहते थे। मैं एक के लिए भंडारण चालकों ने लिखा है Enterprised सुपरसर्वर कंपनी वापस 90 के दशक में। और नीचे की रेखा एक और चालाकी है भंडारण सरणी सिर्फ कुछ था कि उद्यम में हर दिन क्या हुआ। और यह कभी नहीं रोका। उच्च घनत्व भंडारण, मांग उच्च घनत्व भंडारण के लिए, और अधिक कुशल भंडारण के लिए यह कभी नहीं रोका है devices--। और एनओएसक्यूएल एक महान तकनीक है यह डेटा normalizes है। यह डेटा डे-डुप्लिकेट। यह एक संरचना में डेटा डालता है हर पहुँच पैटर्न को नास्तिक है। एकाधिक अनुप्रयोगों कि हिट कर सकते हैं एसक्यूएल डाटाबेस, तदर्थ प्रश्नों को चलाने, और आकार में डेटा मिलता है कि वे उनकी वर्कलोड के लिए प्रक्रिया की जरूरत है। यह सुनने में शानदार है। लेकिन लब्बोलुआब यह किसी के साथ है प्रणाली है, यह सब कुछ करने के लिए नास्तिक है, यह कुछ भी नहीं के लिए अनुकूलित है। ठीक है? और कहा कि हम साथ क्या हो रहा है रिलेशनल डेटाबेस। यह भंडारण के लिए अनुकूलित है। यह सामान्यीकृत है। यह रिलेशनल है। यह तदर्थ प्रश्नों का समर्थन करता है। और यह इसे और खड़ी तराजू। मैं एक बड़ा एसक्यूएल डाटाबेस प्राप्त करने की जरूरत है या एक अधिक शक्तिशाली एसक्यूएल डाटाबेस, मैं लोहे का एक बड़ा टुकड़ा खरीदने के लिए जाना। ठीक है? मैं ग्राहकों की एक बहुत कुछ के साथ काम किया है प्रमुख उन्नयन के माध्यम से किया गया है कि उनकी एसक्यूएल बुनियादी ढांचे में ही छह महीने बाद पता लगाने के लिए, वे फिर से दीवार मार रहे हैं। और ओरेकल या MSSQL से जवाब वरना किसी को भी एक बड़ा बॉक्स मिल गया है। खैर अभी या बाद में, आप एक खरीद नहीं कर सकते बॉक्स बड़ा है, और कहा कि वास्तविक समस्या है। हम वास्तव में चीजों को बदलने की जरूरत है। तो जहां इस काम करता है? यह ऑफ़लाइन के लिए अच्छी तरह से काम करता है एनालिटिक्स, OLAP प्रकार वर्कलोड। एसक्यूएल अंतर्गत आता है और कहा कि जहां वास्तव में है। अब, यह कई ऑनलाइन में आज प्रयोग किया जाता है व्यवहार प्रसंस्करण प्रकार अनुप्रयोगों। और उस पर ठीक काम करता है उपयोग के कुछ स्तर, लेकिन यह सिर्फ पैमाने पर नहीं है एनओएसक्यूएल करता है कि जिस तरह से। और हम एक छोटे से बात करेंगे यही वजह है कि के बारे में थोड़ा सा। अब, एनओएसक्यूएल, दूसरे हाथ पर, अधिक गणना के लिए अनुकूलित है। ठीक है? यह करने के लिए नास्तिक नहीं है पहुँच पैटर्न। हम डी-सामान्यीकृत क्या कहते है संरचना या एक श्रेणीबद्ध संरचना। एक संबंधपरक डेटाबेस में डेटा है एकाधिक तालिकाओं से एक साथ शामिल हो जरूरत है कि आप को देखने का उत्पादन करने के लिए। एक एनओएसक्यूएल डेटाबेस में डेटा एक दस्तावेज़ में संग्रहीत किया जाता है सौपानिक संरचना में शामिल है। सामान्य रूप से होगा कि डेटा के सभी उस दृश्य का निर्माण करने के साथ शामिल हो गए एक ही दस्तावेज में संग्रहित है। और हम के बारे में थोड़ा बहुत बात करेंगे कैसे चार्ट के एक जोड़े में काम करता है। लेकिन यहाँ विचार है कि आप कि दुकान है इन चालू विचारों के रूप में अपने डेटा। ठीक है? आप क्षैतिज पैमाने। है ना? मैं बढ़ाने की जरूरत है मेरी एनओएसक्यूएल क्लस्टर के आकार, मैं एक बड़ा बॉक्स प्राप्त करने की आवश्यकता नहीं है। मैं एक और बॉक्स मिलता है। और मैं एक साथ उन क्लस्टर और मुझे लगता है कि डेटा ठीकरा कर सकते हैं। हम के बारे में एक सा बात करेंगे sharding क्या है, होना करने के लिए कि डेटाबेस पैमाने पर करने के लिए सक्षम कई शारीरिक उपकरणों के पार और बाधा को दूर कि खड़ी पैमाने पर करने की मुझे आवश्यकता है। तो यह वास्तव में ऑनलाइन के लिए बनाया गया है लेनदेन प्रसंस्करण और बड़े पैमाने। एक बड़ा अंतर नहीं है यहां रिपोर्टिंग के बीच, है ना? रिपोर्टिंग, मैं नहीं जानता सवाल मैं पूछने के लिए जा रहा हूँ। है ना? Reporting-- किसी से यदि मेरी विपणन विभाग मेरे ग्राहकों में से कितने just-- करना चाहता है इस खास विशेषता है, जो मैं नहीं जानता कि इस day-- पर खरीदा क्या वे पूछने के लिए जा रहे हैं क्वेरी। तो मैं नास्तिक होने की जरूरत है। अब, एक ऑनलाइन में व्यवहार आवेदन मैंने सोचा कि मैं क्या पूछ रहा हूँ सवाल पता। मैं के लिए आवेदन बनाया एक बहुत ही विशिष्ट कार्यप्रवाह। ठीक है? मैं डेटा का अनुकूलन तो अगर कार्यप्रवाह है कि समर्थन करने के लिए दुकान है, यह तेजी से हो रहा है। और यही वजह है कि एनओएसक्यूएल सकता है वास्तव में वितरण में तेजी लाने सेवाओं के उन प्रकार की। ठीक है। तो हम में शामिल होने के लिए जा रहे हैं यहाँ सिद्धांत का एक छोटा सा। और आप में से कुछ, अपनी आँखें एक छोटा सा रोल बैक हो सकता है। लेकिन मैं इसे रखने की कोशिश करेंगे मैं कर सकता हूँ के रूप में उच्च स्तर पर। आप इस परियोजना में कर रहे हैं तो प्रबंधन, वहाँ एक निर्माण बुलाया बाधाओं के त्रिकोण। ठीक है। constrains बातें की त्रिकोण आप सब कुछ हर समय नहीं हो सकता। अपने पाई है और इसे भी खा सकते हैं। इसलिए इस परियोजना प्रबंधन में, कि त्रिकोण की कमी है, तो आप यह सस्ता हो सकता है आप इसे तेजी से हो सकता है या आप इसे अच्छा हो सकता है। दो लीजिए। आप सभी तीन नहीं हो सकता है। है ना? ठीक है। तो अगर आप इस बारे में बहुत कुछ सुना है। यह एक ट्रिपल बाधा है ट्रिपल बाधा के त्रिकोण, या लोहे त्रिकोण oftentimes-- है आप परियोजना प्रबंधकों के लिए बात करते हैं, वे इस बारे में बात करेंगे। अब, डेटाबेस है अपने स्वयं के लोहे के त्रिकोण। और डेटा का लोहा त्रिकोण हम टोपी प्रमेय कहते हैं। ठीक है? कैप प्रमेय बातें कैसे डेटाबेस संचालित एक बहुत ही विशेष शर्त के तहत। और हम के बारे में बात करेंगे शर्त यह है कि क्या है। लेकिन त्रिकोण के तीन अंक, इसलिए, सी हैं, स्थिरता बात करने के लिए। ठीक है? इसलिए कैप में, स्थिरता सब का मतलब है कि डेटाबेस का उपयोग कर सकते हैं, जो ग्राहकों हमेशा एक बहुत ही होगा डेटा के अनुरूप विचार। कोई नहीं करने वाला दो अलग अलग चीजें देखते हैं। ठीक है? मैं डेटाबेस को देखते हैं, मैं एक ही दृश्य को देख रहा हूँ मेरे साथी के रूप में कौन देखता है एक ही डेटाबेस। यही कारण है कि स्थिरता है। उपलब्धता इसका मतलब है कि यदि डेटाबेस ऑनलाइन, यह पहुँचा जा सकता है, तो सभी ग्राहकों को हमेशा जाएगा कि पढ़ने और लिखने में सक्षम हो। ठीक है? इसलिए हर ग्राहक है कि डेटाबेस पढ़ सकते हैं हमेशा सक्षम पढ़ा जाएगा डेटा और लिखने डेटा। और कहा कि अगर मामला है, यह एक प्रणाली उपलब्ध है। और तीसरी बात क्या है हम विभाजन सहिष्णुता कहते हैं। ठीक है? विभाजन सहिष्णुता साधन प्रणाली अच्छी तरह से काम करता है कि भौतिक नेटवर्क के बावजूद नोड्स के बीच विभाजन। ठीक है? तो क्लस्टर में नोड्स नहीं कर सकते एक दूसरे से बात करते हैं, क्या होता है? ठीक है। तो संबंधित डेटाबेस choose-- आप इनमें से दो चुन सकते हैं। ठीक है। तो संबंधित डेटाबेस का चयन सुसंगत और उपलब्ध होने के लिए। विभाजन के बीच यदि ऐसा होता है डेटा की दुकान में DataNodes, डेटाबेस दुर्घटनाओं। है ना? यह सिर्फ नीचे चला जाता है। ठीक है। और यह है कि वे क्यों है बड़ा बक्से के साथ विकसित करने के लिए। है ना? No-- आम तौर पर, एक क्लस्टर क्योंकि वहाँ डेटाबेस, उनमें से बहुत सारे नहीं है कि उस तरह से कार्य करते हैं। लेकिन सबसे डेटाबेस को स्केल खड़ी एक बॉक्स के भीतर। वे करने की आवश्यकता है, क्योंकि सुसंगत और उपलब्ध है। एक विभाजन इंजेक्शन जा रहे थे, तो आप एक का चयन करना होगा। आप के बीच एक का चयन करना है सुसंगत और उपलब्ध किया जा रहा। और कहा कि एनओएसक्यूएल डेटाबेस क्या करते हैं। ठीक है। तो एक एनओएसक्यूएल डेटाबेस, यह दो जायके में आता है। हम अच्छी तरह से यह have-- कई जायके में आता है, लेकिन यह दो बुनियादी के साथ आता है क्या characteristics-- हम सी.पी. डेटाबेस, या एक फोन होगा सुसंगत और विभाजन सहिष्णुता प्रणाली। ये लोग चुनाव करना है कि जब नोड्स, एक दूसरे के साथ संपर्क खो हम अनुमति देने के लिए नहीं जा रहे हैं लोगों को किसी भी अधिक लिखने के लिए। ठीक है? उस विभाजन निकाले जाने तक, लेखन पहुँच अवरुद्ध है। यही कारण है कि वे उपलब्ध नहीं हैं इसका मतलब है। वे लगातार कर रहे हैं। हम देखते हैं कि जब विभाजन को स्वयं इंजेक्षन, अब हम लगातार कर रहे हैं हम नहीं जा रहे हैं क्योंकि दो पर डेटा परिवर्तन की अनुमति के लिए स्वतंत्र रूप से विभाजन के पक्ष एक दूसरे की। हमें करना होगा संचार पैर जमाने के लिए किसी भी अद्यतन करने से पहले डेटा की अनुमति दी है। ठीक है? अगले स्वाद, एक एपी व्यवस्था होगी या एक से उपलब्ध है और विभाजित सहिष्णुता प्रणाली। ये लोग परवाह नहीं है। है ना? एक हो जाता है कि किसी भी नोड हम ले लेंगे, लिखें। इसलिए मैं अपने डेटा नकल कर रहा हूँ एकाधिक नोड्स के पार। इन नोड्स एक ग्राहक, ग्राहक आता है मिल कहते हैं, में, मैं कुछ डेटा लिखने जा रहा हूँ। नोड कोई समस्या नहीं है, कहते हैं। नोड उसे हो जाता है के बगल में एक ही रिकॉर्ड पर एक लिखने, वह कोई समस्या नहीं कहने जा रहा है। कहीं न कहीं वापस वापस अंत पर, कि डेटा को दोहराने जा रहा है। और फिर कोई है, महसूस करने के लिए जा रहा है ओह, एहसास होगा कि वे सिस्टम, ओह, दोनों पक्षों के लिए एक अद्यतन किया गया है। हम क्या करें? और क्या वे तो करते है वे कुछ करना है, जो उन्हें लगता है कि डेटा राज्य को हल करने के लिए अनुमति देता है। और हम के बारे में बात करेंगे अगले चार्ट में है। बात यहाँ बाहर बात करने के लिए। और मैं भी पाने के लिए नहीं जा रहा हूँ ज्यादा से इस मामले में, इस वजह से गहरी डेटा सिद्धांत में हो जाता है। लेकिन एक व्यवहार है वहाँ ढांचा कि एक संबंधपरक सिस्टम में चलता है कि मुझे सुरक्षित रूप से अद्यतन बनाने के लिए अनुमति देता है डेटाबेस में कई संस्थाओं के लिए। और उन अद्यतन घटित होगा सभी को एक बार या बिल्कुल नहीं। और इस एसिड लेनदेन कहा जाता है। ठीक है? एसिड, हमें स्थिरता atomicity देता है, अलगाव, और स्थायित्व। ठीक है? यही सब है, परमाणु, लेन-देन का अर्थ है मेरे अपडेट होता है या वे नहीं है। संगति का मतलब है कि डेटाबेस हमेशा जाएगा एक सुसंगत में लाया जाना एक अद्यतन के बाद राज्य। मैं एक में डेटाबेस छोड़ कर कभी नहीं होगा एक अद्यतन को लागू करने के बाद बुरी स्थिति। ठीक है? इसलिए यह थोड़ा अलग है कैप संगति से। कैप स्थिरता का मतलब है मेरे सारे ग्राहकों को हमेशा डेटा देख सकते हैं। एसिड स्थिरता का अर्थ है कि जब एक लेन-देन डेटा अच्छा है, हो चुका है। मेरे रिश्तों सभी अच्छे हैं। मैं एक माता पिता पंक्ति को नष्ट करने के लिए नहीं जा रहा हूँ और अनाथ बच्चों की एक गुच्छा छोड़ कुछ अन्य तालिका में। मैं लगातार हूँ तो यह नहीं हो सकता एक एसिड लेन-देन में। अलगाव के लेन-देन का मतलब है कि हमेशा एक के बाद एक घटित होगा। डेटा के अंतिम परिणाम एक ही राज्य हो जाएगा उन लेनदेन के रूप में यदि कि समवर्ती जारी किए गए थे क्रमानुसार मार डाला गया। तो यह संगामिति है डेटाबेस में नियंत्रण। तो बुनियादी तौर पर, मैं वेतन वृद्धि नहीं कर सकते दो बार दो आपरेशन के साथ ही मूल्य। लेकिन मैं इस मूल्य को 1 जोड़ने कहते हैं, और दो लेन-देन में आ और एक है, ऐसा करने की कोशिश पहले वहाँ ले जा और एक दूसरे का बाद वहाँ पाने के लिए जा रहा है। तो अंत में, मैं दो जोड़ा। तुम्हे समझ में आया मैंने जो कहा? ठीक है। स्थायित्व बहुत सीधा है। जब लेन-देन स्वीकार किया है, यह है यहां तक ​​कि वहाँ होने जा रहा सिस्टम क्रैश हो। कि सिस्टम ठीक हो जाए, तो उस प्रतिबद्ध था कि लेन-देन वास्तव में वहाँ होने जा रहा है। तो यह है कि गारंटी देता है एसिड लेनदेन की। उन बहुत अच्छा गारंटी रहे हैं एक डेटाबेस पर है, लेकिन वे कहते हैं कि कीमत पर आते हैं। है ना? समस्या के कारण इस ढांचे के साथ डेटा में एक विभाजन है, अगर वहाँ सेट, मैं एक निर्णय करने के लिए है। मैं अनुमति देने के लिए किया जा रहा हूँ एक पक्ष या दूसरे पर अद्यतन। और अगर ऐसा होता है, तो मैं अब और नहीं जा रहा हूँ बनाए रखने के लिए सक्षम होने के लिए उन विशेषताओं। वे लगातार नहीं होगा। वे अलग-थलग नहीं किया जाएगा। यह टूट जाती है, जहां यह है रिलेशनल डेटाबेस के लिए। इस कारण रिलेशनल है डेटाबेस खड़ी पैमाने। दूसरी ओर, हमारे पास क्या आधार प्रौद्योगिकी कहा जाता है। और ये अपने एनओएसक्यूएल डेटाबेस रहे हैं। ठीक है। इसलिए हम अपने वाणिज्यिक पत्र, एपी डेटाबेस है। और ये आप मूल रूप से कहते हैं उपलब्ध है, नरम राज्य, अंततः लगातार। ठीक है? मूल रूप से उपलब्ध है, क्योंकि वे विभाजन सहिष्णु हो। वे हमेशा रहेगा वहाँ, भले ही वहाँ नोड्स के बीच एक नेटवर्क विभाजन। मैं एक नोड के लिए बात कर सकते हैं, तो मैं कर रहा हूँ डेटा को पढ़ने के लिए सक्षम होने के लिए जा रहा है। ठीक है? मैं हमेशा लिखने के लिए सक्षम नहीं हो सकता है डेटा मैं एक सुसंगत मंच हूँ। लेकिन मैं डेटा को पढ़ने में सक्षम हो जाएगा। मुलायम राज्य इंगित करता है मुझे लगता है कि डेटा को पढ़ने जब कि, यह अन्य नोड्स के रूप में ही नहीं हो सकता है। एक सही एक नोड पर जारी किया गया था, तो क्लस्टर में कहीं और इसे भर में दोहराया नहीं किया गया है क्लस्टर अभी तक मुझे लगता है कि डेटा को पढ़ने के लिए जब उस राज्य सुसंगत नहीं हो सकता है। हालांकि, यह हो जाएगा अंततः लगातार, जिसका अर्थ है जब एक लिखने कि व्यवस्था करने के लिए किया जाता है, यह नोड्स भर में दोहराने जाएगा। और अंत में, उस राज्य आदेश में लाया जाएगा, और यह एक निरंतर राज्य हो जाएगा। अब, कैप प्रमेय सच केवल एक ही हालत में खेलता है। जब ऐसा होता है कि स्थिति है। जब भी उस में काम कर रही है, क्योंकि सामान्य मोड, कोई विभाजन नहीं है, सब कुछ के अनुरूप और उपलब्ध है। आप केवल टोपी के बारे में चिंता हम चाहते हैं कि विभाजन किया है। तो उन दुर्लभ हैं। लेकिन सिस्टम जब उन कैसे प्रतिक्रिया करता है प्रणाली किस प्रकार निर्देशित होते हैं हम साथ काम कर रहे हैं। तो चलो पर एक नजर डालते हैं क्या कि एपी सिस्टम के लिए की तरह लग रहा है। ठीक है? एपी सिस्टम को दो जायके में आते हैं। वे एक है कि स्वाद में आते हैं मास्टर मास्टर, हमेशा उपलब्ध 100%,। और वे में आते हैं जो कहते हैं, अन्य स्वाद, आप, मुझे चिंता करने जा रहा हूँ पता है क्या इस विभाजन बात के बारे में जब एक वास्तविक विभाजन होता है। अन्यथा, प्राथमिक होने के लिए वहाँ जा रहा है अधिकार लेने के लिए जा रहा है, जो नोड्स। ठीक है? कैसेंड्रा तरह हम कुछ तो अगर। कैसेंड्रा एक मास्टर होगा गुरु, मुझे किसी भी नोड के लिए लिखने चलो। तो क्या होता है? इसलिए मैं में एक वस्तु है दो नोड्स पर मौजूद है कि डेटाबेस। का उद्देश्य यह है कि एस कहते हैं इसलिए हम एस के लिए राज्य है हम कुछ कार्य किया है एस पर चल रहे हैं। कैसेंड्रा करने के लिए मुझे अनुमति देता है कई नोड्स के लिए लिखें। तो चलो मैं एक मिल हम कहते हैं दो नोड्स के लिए एस के लिए लिखें। खैर, क्या है हो रहा समाप्त होता हम एक विभाजन घटना है कि कहते हैं। वहाँ नहीं हो सकता है एक भौतिक नेटवर्क विभाजन। लेकिन डिजाइन की वजह से सिस्टम के कारण, यह है वास्तव में के रूप में जल्द से विभाजन मैं दो नोड्स पर एक लिख पाने के रूप में। मुझे यह करने के लिए मजबूर नहीं कर रहा है एक नोड के माध्यम से सभी लिखें। मैं दो नोड्स पर लिख रहा हूँ। ठीक है? तो अब मैं दो राज्यों की है। ठीक है? क्या होने जा रहा है , अभी या बाद में है एक प्रतिकृति घटना होने के लिए वहाँ जा रहा है। वहाँ के लिए क्या हो रहा है हम एक विभाजन वसूली, जो बुलाया जहां इन दो है राज्यों को एक साथ वापस आना और एक एल्गोरिथ्म होने के लिए वहाँ जा रहा है कि, डेटाबेस के अंदर चलाता क्या करना है का फैसला किया। ठीक है? डिफ़ॉल्ट रूप से, पिछले अद्यतन सबसे एपी प्रणालियों में जीतता है। तो वहाँ आमतौर पर एक डिफ़ॉल्ट एल्गोरिथ्म, क्या वे एक कॉलबैक फोन समारोह, कुछ है कि जब इस हालत बुलाया जाएगा कुछ तर्क निष्पादित करने के लिए पता लगाया है, कि संघर्ष को हल करने के लिए। ठीक है? डिफ़ॉल्ट कॉलबैक और डिफ़ॉल्ट सबसे एपी डेटाबेस में रिज़ॉल्वर है, टाइमस्टैम्प जीतता लगता है क्या। यह पिछले अद्यतन किया गया था। मैं वहाँ में है कि अद्यतन डाल करने के लिए जा रहा हूँ। मैं इस रिकॉर्ड डंप हो सकता है कि मैं एक वसूली लॉग में दूर फेंक दिया उपयोगकर्ता बाद में वापस आ सकता है, ताकि और कहते हैं, अरे, एक टकराव था। क्या हुआ? और आप वास्तव में एक रिकार्ड डंप कर सकते हैं सभी टकराव और वापस लें और देखो क्या होता है। अब, एक उपयोगकर्ता के रूप में, आप भी कर सकते हैं कि कॉलबैक में तर्क शामिल हैं। तो आपको लगता है कि बदल सकते हैं कॉलबैक आपरेशन। अरे, मैं चाहता हूँ, कह सकते हैं इस डेटा के remediate। और मैं कोशिश करना चाहते हैं और उन दो रिकॉर्ड विलय। लेकिन यह है कि आप पर निर्भर है। डेटाबेस नहीं जानता है कि कैसे करने के लिए डिफ़ॉल्ट रूप से करते हैं। समय से अधिकांश, केवल बात यह है कि डेटाबेस कैसे कह रहा है क्या करना जानता है, इस एक पिछले रिकॉर्ड था। यही कारण है, जीतने जा रहा है कि एक है और कहा कि मैं डाला जा रहा हूँ मूल्य है। कि विभाजन वसूली एक बार और नकल होता है, हम हमारे राज्य है, जो है, जो अब प्रधानमंत्री एस उन सभी वस्तुओं का मर्ज राज्य। तो एपी सिस्टम इस राशि। सीपी सिस्टम की जरूरत नहीं इस बारे में चिंता करने की। के रूप में जल्द ही एक विभाजन के रूप में आता है, क्योंकि खेलने में, वे सिर्फ लेने बंद करो लिखते हैं। ठीक है? तो यह है कि बहुत आसान है लगातार होने के साथ सौदा जब आप अपडेट स्वीकार नहीं करते। सीपी सिस्टम करना साथ है। ठीक है। तो चलो एक छोटी सी बात करते हैं उपयोग पैटर्न के बारे में थोड़ा सा। हम एनओएसक्यूएल के बारे में बात करते हैं, यह है सभी का उपयोग पैटर्न के बारे में। अब, एसक्यूएल तदर्थ, प्रश्नों है। यह रिलेशनल की दुकान है। हमें चिंता करने की जरूरत नहीं है उपयोग पैटर्न के बारे में। मैं एक बहुत ही जटिल क्वेरी लिखें। यह चला जाता है और डेटा हो जाता है। यही कारण है कि यह दिखता है जैसे, सामान्य। इस विशेष संरचना में तो हम एक उत्पादों की सूची को देख रहे हैं। मैं उत्पादों के विभिन्न प्रकार के हैं। मैं किताबें हैं। मैं राशि। मैं वीडियो है। उत्पादों के बीच के रिश्ते और इन पुस्तकों, एलबम में से किसी एक, और वीडियो टेबल 1: 1 है। ठीक है? मैं एक उत्पाद आईडी मिल गया है, और कहा कि आईडी से मेल खाती है एक पुस्तक, एक एल्बम, या एक वीडियो के लिए। ठीक है? एक रिश्ते: यह एक है 1 उन तालिकाओं के पार। अब, यह सब वे books-- है जड़ गुण है। कोई बात नहीं। यह बहुत अच्छा है। एक-से-एक संबंध है, मैं सभी मिल डेटा मैं उस किताब का वर्णन करने की जरूरत है। Albums-- एलबम पटरियों है। यह है कि हम कई लोगों के लिए एक कहते हैं। हर एलबम कई पटरियों हो सकता था। पर हर ट्रैक के लिए तो एल्बम, मैं कर सकता था इस बच्चे को तालिका में एक और रिकॉर्ड। तो मैं एक रिकॉर्ड बनाने मेरी एलबम तालिका में। मैं कई रिकॉर्ड बना पटरियों तालिका में। एक-से-कई संबंध। यह रिश्ता क्या है हम कई-कई कहते हैं। ठीक है? आप अभिनेताओं हो सकता है कि वहाँ कई फिल्मों, कई वीडियो में। तो हम क्या हम इस मैपिंग डाल दिया है उन लोगों के बीच मेज, जो यह सिर्फ वीडियो आईडी को अभिनेता आईडी नक्शे। अब मैं मिलती है एक क्वेरी बना सकते हैं अभिनेताओं के लिए अभिनेता वीडियो के माध्यम से वीडियो, और यह मुझे का एक अच्छा सूची देता है सभी फिल्मों और सभी अभिनेताओं जो कि फिल्म में थे। ठीक है। तो ये हम चले। एक-से-एक शीर्ष स्तर के है रिश्ते; कई लोगों के लिए एक, पटरियों को एलबम; कई कई। उन तीन शीर्ष स्तर के हैं किसी भी डेटाबेस में संबंध हैं। आप कैसे उन जानते हैं रिश्तों को एक साथ काम करते हैं, तो आप एक बहुत कुछ पता है पहले से ही डेटाबेस के बारे में। तो एनओएसक्यूएल थोड़ा अलग तरह से काम करता है। एक दूसरे के लिए के बारे में सोचते हैं क्या यह लग रहा है अपने सभी उत्पादों मिल जाना पसंद है। एक रिलेशनल दुकान में, मैं मेरे सभी उत्पादों को प्राप्त करना चाहते हैं अपने सभी उत्पादों की एक सूची पर। यही कारण है कि प्रश्नों की एक बहुत कुछ है। मैं अपने सभी पुस्तकों के लिए एक क्वेरी मिल गया। मैं अपने एलबम से एक क्वेरी मिल गया। और मैं अपने सभी वीडियो के लिए एक क्वेरी मिल गया। और मैं इसे लगाने के लिए मिला सभी एक साथ एक सूची में और अप करने के लिए इसे वापस की सेवा यह अनुरोध है कि आवेदन। मेरी किताबें पाने के लिए, मैं शामिल उत्पादों और किताबें। मेरे एल्बमों को पाने के लिए, मैं में शामिल होने के लिए मिला उत्पाद, एलबम, और ट्रैक करता है। और मुझे लगता है, मेरे वीडियो पाने के लिए वीडियो उत्पादों में शामिल होने के लिए, अभिनेता वीडियो के माध्यम से शामिल हो, और अभिनेता में लाने के लिए। तो यह है कि तीन प्रश्नों है। करने के लिए बहुत जटिल प्रश्नों एक परिणाम सेट इकट्ठा। यही कारण है कि इष्टतम से भी कम है। यह हम बात क्यों जब है है कि एक डेटा संरचना के बारे में उपयोग करने के लिए नास्तिक होने के लिए बनाया pattern-- अच्छी तरह से यह बहुत अच्छा है। और तुम यह सच है देख सकते हैं हम डेटा का आयोजन किया गया है कि कैसे अच्छा है। और क्या आपको पता है? मैं केवल एक अभिनेता के लिए एक रिकॉर्ड है। यह अच्छा है। मैं अपने सभी अभिनेताओं deduplicated है, और मैं अपने संघों बनाए रखा इस मैपिंग तालिका में। हालांकि, डेटा प्राप्त बाहर महंगा हो जाता है। मैं यह सब व्यवस्था पर सीपीयू भेज रहा हूँ एक साथ इन आंकड़ा संरचना में शामिल होने के उस डेटा वापस खींचने के लिए सक्षम हो। तो कैसे मैं उस के आसपास मिलता है? एनओएसक्यूएल में इसके बारे में एकत्रीकरण, नहीं सामान्यीकरण। इसलिए हम हम चाहते कहना चाहता हूँ उपयोग पैटर्न समर्थन करते हैं। उपयोग पैटर्न हैं आवेदन करने के लिए, मैं अपने सभी उत्पादों को प्राप्त करने की आवश्यकता है। की एक तालिका में सभी उत्पादों डाल दिया। मैं एक तालिका में सभी उत्पादों डाल दिया है, मैं सिर्फ सभी उत्पादों का चयन कर सकते हैं उस तालिका से और मैं यह सब मिलता है। वैसे मुझे लगता है कि कैसे करते हैं? खैर एनओएसक्यूएल में कोई भी नहीं है तालिका करने के लिए संरचना। हम के बारे में थोड़ा बात करेंगे यह कैसे डायनमो DB में काम करता है। लेकिन अगर आप एक ही नहीं है गुण और एक ही गुण हर एक में हर एक पंक्ति में आइटम, आप एक एसक्यूएल तालिका में क्या पसंद है। और क्या इस मुझे अनुमति देता है ऐसा करने के लिए बहुत सारी बातें है और मुझे लचीलेपन का एक बहुत कुछ दे। इस विशेष मामले में, मैं मेरे उत्पाद दस्तावेज है। और इस विशेष में उदाहरण के लिए, सब कुछ उत्पाद तालिका में एक दस्तावेज है। और एक किताब के लिए उत्पाद हो सकता है एक किताब बताता है कि एक प्रकार आईडी है। और आवेदन कि आईडी पर स्विच होगा। आवेदन स्तर पर, मैं जा रहा हूँ ओह, यह क्या रिकॉर्ड प्रकार का कहना है कि करने के लिए? ओह, यह एक किताब रिकॉर्ड है। किताब रिकॉर्ड इन गुण होते हैं। मुझे एक किताब वस्तु पैदा करते हैं। इसलिए मैं भरने के लिए जा रहा हूँ इस मद के साथ पुस्तक वस्तु। अगला आइटम आता है और इस आइटम क्या है, कहते हैं? वैसे इस आइटम एक एल्बम है। ओह, मैं एक पूरी अलग मिला उस के लिए प्रसंस्करण दिनचर्या, यह एक एलबम है, क्योंकि। तुम्हे समझ में आया मैंने जो कहा? इसलिए आवेदन tier-- मैं बस इन सभी अभिलेखों का चयन करें। वे सब में आने लगते हैं। वे सब अलग अलग प्रकार के हो सकता है। और यह आवेदन का तर्क है उन है कि प्रकारों में स्विच और उन पर कार्रवाई करने का फैसला कैसे। फिर, तो हम अनुकूलन कर रहे हैं उपयोग पैटर्न के लिए स्कीमा। हम से यह कर रहे हैं उन तालिकाओं ढहने। हम मूल रूप से ले जा रहे हैं इन सामान्यीकृत संरचनाओं, और हम निर्माण कर रहे हैं श्रेणीबद्ध संरचनाओं। इन अभिलेखों में से हर एक के अंदर मैं सरणी गुण देखने के लिए जा रहा हूँ। एल्बम के लिए इस दस्तावेज़ के अंदर, मैं पटरियों की सरणियों देख रहा हूँ। उन पटरियों अब यह become-- मूल रूप से इस बच्चे को मेज कि यहीं इस संरचना में मौजूद है। तो अगर आप DynamoDB में ऐसा कर सकते हैं। आप MongoDB में ऐसा कर सकते हैं। आप किसी भी एनओएसक्यूएल डेटाबेस में यह कर सकते हैं। के इन प्रकार बनाएं श्रेणीबद्ध डेटा संरचनाओं आप डेटा पुनः प्राप्त करने की अनुमति देते हैं कि बहुत जल्दी अब क्योंकि मैं अनुरूप करने की जरूरत नहीं है। मैं पटरियों में एक पंक्ति सम्मिलित करते हैं तालिका, या एल्बम तालिका में एक पंक्ति, मुझे लगता है कि स्कीमा के अनुरूप करने के लिए है। मैं विशेषता या पास करने के लिए उस मेज पर परिभाषित किया गया है कि संपत्ति। उनमें से हर एक, मैं उस पंक्ति सम्मिलित करते। यही कारण है कि एनओएसक्यूएल में मामला नहीं है। मैं पूरी तरह से अलग हो सकता है हर दस्तावेज़ में गुण मैं संग्रह में सम्मिलित है। तो बहुत शक्तिशाली तंत्र। और यह वास्तव में आप कैसे है प्रणाली का अनुकूलन। बजाय कि अब प्रश्न है, क्योंकि इन सभी तालिका में शामिल होने के और एक आधा दर्जन प्रश्नों को क्रियान्वित मैं जरूरत डेटा वापस खींचने के लिए, मैं एक क्वेरी निष्पादित कर रहा हूँ। और मैं पुनरावृति कर रहा हूँ सेट परिणाम के पार। यह आप एक विचार देता है एनओएसक्यूएल की शक्ति का। मैं एक तरह से बग़ल में यहां जाने के लिए जा रहा हूँ और इस बारे में थोड़ा बहुत बात करते हैं। इस के अधिक प्रकार है विपणन या technology-- प्रौद्योगिकी का विपणन चर्चा के प्रकार। लेकिन यह समझना महत्वपूर्ण है हम शीर्ष पर नजर डालें तो, क्योंकि यहां इस चार्ट में, क्या हम देख रहे हैं हम क्या कहते है प्रौद्योगिकी के प्रचार की अवस्था। और इसका मतलब क्या है नया सामान खेलने में आता है। लोग यह बहुत अच्छा लगता है। मैं अपने सभी समस्याओं को हल कर दिया है। यह अंत हो सकता है सब के सब कुछ करने के लिए सभी हो। और वे यह प्रयोग शुरू। और वे इस सामान काम नहीं करता है, कहते हैं। यह सही नहीं है। पुराने सामान बेहतर था। और वे क्या कर के लिए वापस जाओ चीजों को वे थे जिस तरह। और फिर अंत वे क्या आप जानते हैं, जाने के लिए? यह सामान इतना बुरा नहीं है। ओह, कि यह कैसे काम करता है। और वे कैसे यह समझ से बाहर एक बार काम करता है, वे बेहतर शुरू हो रही है। और इसके बारे में मजेदार बात यह करने के लिए, लाइनों की तरह है क्या हम प्रौद्योगिकी अपनाने वक्र कहते हैं। तो हम क्या होता है किसी प्रकार प्रौद्योगिकी ट्रिगर। डेटाबेस के मामले में, यह डेटा दबाव है। हम उच्च पानी अंक के बारे में बात की थी समय के दौरान डेटा दबाव की। उस डेटा का दबाव एक निश्चित हिट बिंदु, एक तकनीक है कि ट्रिगर है। यह महंगा भी हो रही है। यह डेटा की प्रक्रिया में बहुत समय लगता है। बेहतर होगा कि हम कुछ की जरूरत है। आप नवीन आविष्कारों मिल वहाँ से बाहर के आसपास चल रहा है, समाधान क्या है यह पता लगाने की कोशिश कर। नया विचार क्या है? सबसे अच्छा आगे क्या है यह करने का तरीका है? और वे कुछ के साथ आते हैं। और असली दर्द के साथ लोगों को, खून बह रहा किनारे पर लोग, वे इस पर सभी कूद जाएगा, वे एक जवाब की जरूरत है। अब अनिवार्य रूप से happens-- क्या और यह एनओएसक्यूएल में अभी हो रहा है। मुझे यह हर समय दिखाई देता है। क्या अनिवार्य रूप से होता है लोगों को नए उपकरण का उपयोग शुरू एक ही तरीका है कि वे पुराने उपकरण का इस्तेमाल किया। और वे यह पता लगाने के इतनी अच्छी तरह से काम नहीं करता है। मैंने सोचा कि मैं कौन था, याद नहीं कर सकते पहले आज से बात कर। लेकिन यह जब की तरह है Jackhammer आविष्कार किया गया था, लोग इस पर झूले नहीं किया उनके सिर ठोस नष्ट करने के लिए। लेकिन यह है कि क्या है आज एनओएसक्यूएल के साथ हो रहा। आप सबसे अधिक दुकानों में चलना, वे एनओएसक्यूएल दुकानों होने की कोशिश कर रहे हैं। क्या वे क्या कर रहे है वे एनओएसक्यूएल उपयोग कर रहे हैं और वे इसे लोड कर रहे हैं रिलेशनल स्कीमा से भरा है। कि कैसे क्योंकि है वे डेटाबेस डिजाइन। और वे क्यों है, सोच रहे हैं यह बहुत अच्छा प्रदर्शन नहीं? लड़का, इस बात को बदबू आ रही है। मैं सभी को बनाए रखने के लिए किया था मेरी यह नहीं, नहीं, की तरह है in-- में मिलती है। मिलती बनाए रखें? क्यों आप डेटा शामिल हो रहे हैं? आप एनओएसक्यूएल में डेटा शामिल नहीं है। आप इसे कुल। आप इस से बचना चाहते हैं, जानने के लिए तो उपकरण वास्तव में आप से पहले कैसे काम करता है यह प्रयोग शुरू। कोशिश करते हैं और नए उपकरणों का उपयोग न करें एक ही तरीका है कि आप पुराने उपकरणों का इस्तेमाल किया। आप एक बुरा अनुभव किया जा रहे हैं। और हर एक बार कि इस बारे में क्या है। हम यहाँ आ रहा शुरू करते हैं, लोगों को पता लगा कि यह है क्योंकि कैसे उपकरणों का उपयोग करने के लिए। वे जब एक ही काम किया संबंधपरक डेटाबेस का आविष्कार किया गया, और वे फाइल सिस्टम जगह ले रहे थे। वे फाइल सिस्टम का निर्माण करने की कोशिश की संबंधपरक डेटाबेस के साथ कि लोगों को समझ में आ रहा है, क्योंकि। यह काम नहीं किया। सर्वोत्तम प्रथाओं को समझने तो प्रौद्योगिकी के साथ आप काम कर रहे हैं ये बहुत बड़ा है। बहोत महत्वपूर्ण। इसलिए हम DynamoDB में शामिल होने के लिए जा रहे हैं। DynamoDB एडब्ल्यूएस की है एनओएसक्यूएल मंच पूरी तरह से कामयाब रहे। क्या मतलब है पूरी तरह से प्रबंधित करता है? यह आप की जरूरत नहीं है इसका मतलब है वास्तव में कुछ के बारे में चिंता है। आप में आते हैं, आपको बता हमें, मैं एक मेज की जरूरत है। यह इतना क्षमता की जरूरत है। आप बटन मारा, और हम प्रावधान दृश्य के पीछे सभी बुनियादी ढांचे। अब जब कि भारी है। जब आप बात करते क्योंकि एक डेटाबेस स्केलिंग के बारे में, एनओएसक्यूएल डेटा समूहों पर पैमाने पर, चल बॉबी चांग, लाखों चल दूसरी प्रति लेन-देन, इन बातों को छोटे समूहों में नहीं हैं। हम उदाहरणों के हजारों बात कर रहे हैं। उदाहरणों के हजारों के प्रबंधन, यहां तक ​​कि आभासी उदाहरणों, बट में एक असली दर्द है। मैं हर समय एक के बारे में सोचने का मतलब ऑपरेटिंग सिस्टम पैच बाहर आता है या डेटाबेस का एक नया संस्करण। इसका क्या मतलब है आप के लिए सक्रिय? यही कारण है कि आप 1,200 मिला है इसका मतलब है जरूरत है कि सर्वर अद्यतन किया जाना है। अब भी स्वचालन के साथ, कि एक लंबा समय लग सकता है। इस बात का एक बहुत कुछ पैदा कर सकता है परिचालन सिर दर्द, मैं सेवाओं नीचे हो सकता है क्योंकि। मैं इन डेटाबेस अद्यतन के रूप में, मैं नीले, हरे तैनाती कर सकता है जहां मैं तैनाती और उन्नयन मेरा आधा नोड्स, और फिर अन्य आधा उन्नयन। उन नीचे ले लो। तो बुनियादी ढांचे के प्रबंधन पैमाने काफी दर्दनाक है। और एडब्ल्यूएस इसे से बाहर है कि दर्द ले। और एनओएसक्यूएल डेटाबेस कर सकते हैं असाधारण दर्द हो वे पैमाने रास्ते की वजह से। क्षैतिज स्केल। आप एक बड़ा एनओएसक्यूएल प्राप्त करना चाहते हैं डेटाबेस, आप और अधिक नोड्स खरीदते हैं। आप खरीदने से हर नोड है एक और परिचालन सिरदर्द। तो किसी और कि आप के लिए करते हैं। एडब्ल्यूएस ऐसा कर सकते हैं। हम दस्तावेज़ कुंजी मान समर्थन करते हैं। अब हम बहुत ज्यादा जाना नहीं था अन्य चार्ट पर में। अलग से एक बहुत कुछ है एनओएसक्यूएल के जायके। वे हो रही के सभी प्रकार के कर रहे हैं इस बिंदु पर एक साथ munged। तुम्हें पता है, DynamoDB को देखो और हाँ कह सकते हैं हम एक दस्तावेज और एक कुंजी मान दोनों कर रहे हैं इस बिंदु दुकान। और तुम सुविधाओं बहस कर सकते हैं एक दूसरे के ऊपर की। मेरे लिए, इस का एक बहुत वास्तव में छह है एक आधा दूसरे के एक दर्जन से। इन प्रौद्योगिकियों में से हर एक है एक ठीक प्रौद्योगिकी और एक ठीक समाधान। मैं MongoDB बेहतर है या नहीं कहूंगा फिर सोफे, कैसेंड्रा से भी बदतर, तो डायनमो, या इसके विपरीत। मैं ये सिर्फ विकल्प हैं, मतलब है। यह तेजी से है और यह बात है किसी भी पैमाने पर लगातार। तो यह सबसे बड़ी में से एक है बोनस आप एडब्ल्यूएस के साथ मिलता है। DynamoDB साथ करने की क्षमता है एक कम एक अंक पाने के लिए किसी भी पैमाने पर मिलीसेकंड विलंबता। यही कारण है कि इस प्रणाली का एक डिजाइन लक्ष्य था। और हम क्या कर रहे हैं कि ग्राहकों को दिया है दूसरी प्रति लेन-देन के लाखों लोगों की। अब मैं उन लोगों में से कुछ के माध्यम से जाना होगा यहां कुछ ही मिनटों में मामलों का उपयोग करें। एकीकृत अभिगम control-- हम हम क्या कहते हैं पहचान पहुँच प्रबंधन, या आई ए एम। यह हर प्रणाली में व्याप्त है, एडब्ल्यूएस प्रदान करता है कि हर सेवा। DynamoDB कोई अपवाद नहीं है। आप उपयोग को नियंत्रित कर सकते हैं DynamoDB तालिकाओं के लिए। अपने एडब्ल्यूएस द्वारा खातों सभी भर में पहुँच भूमिकाओं और अनुमतियों को परिभाषित आई ए एम बुनियादी ढांचे में। और यह करने में एक महत्वपूर्ण और अभिन्न अंग है हम चालित प्रोग्रामिंग घटना क्या कहते हैं। अब यह एक नया प्रतिमान है। दर्शकों: कितना सच के अपने दर है झूठी नकारात्मक बनाम सकारात्मक अपने अभिगम नियंत्रण प्रणाली पर? रिक Houlihan: सच सकारात्मक झूठी नकारात्मक बनाम? दर्शकों: क्या रिटर्निंग तुम लौट जाना चाहिए? एक बार एक समय में करने के लिए विरोध के रूप में यह यह मान्य होना चाहिए जब वापस नहीं करता है? रिक Houlihan: मैं आपको बता नहीं सकता था। किसी भी विफलताओं अगर वहाँ जो भी उस पर, मैं पूछना व्यक्ति नहीं हूँ कि विशेष रूप से सवाल। लेकिन यह एक अच्छा सवाल है। पता करने के लिए मैं उत्सुक होगा अपने आप को उस, वास्तव में। और तो फिर, नए प्रतिमान घटना चालित प्रोग्रामिंग है। मतलब यह है कि आप कर सकते हैं विचार है जटिल अनुप्रयोगों को तैनात है कि एक बहुत, बहुत उच्च पैमाने संचालित कर सकते हैं किसी भी बुनियादी सुविधाओं के बिना। किसी निश्चित बिना जो भी बुनियादी सुविधाओं। और हम एक छोटा सा बात करेंगे कि हम के रूप में इसका क्या मतलब के बारे में चार्ट के अगले कुछ करने पर मिलता है। हम क्या करेंगे पहली बात हम टेबल के बारे में बात करेंगे। डायनमो के लिए एपीआई डेटा प्रकार के। पहली बात यह है और आप देंगे आप इस पर जब देखो नोटिस, आप किसी भी डेटाबेस के साथ परिचित हो, डेटाबेस एपीआई का वास्तव में दो तरह का है मैं यह कह सकता हूँ। या एपीआई के दो सेट। उन में से एक होगा प्रशासनिक एपीआई। वे की देखभाल बातें डेटाबेस का कार्य करता है। भंडारण इंजन का विन्यास, स्थापित करने और तालिकाओं जोड़ने। बनाने डेटाबेस कैटलाग और उदाहरण। DynamoDB में ये बातें, आप बहुत ही कम, लघु सूची है। तो दूसरे डाटाबेस में, आप दर्जनों देख सकते हैं के प्रशासनिक के आदेश, आदेशों, विन्यास के लिए इन अतिरिक्त विकल्प। DynamoDB में आप क्योंकि उन लोगों की जरूरत नहीं है आप सिस्टम विन्यस्त नहीं है, हम करते हैं। तो तुम क्या करने की जरूरत है केवल एक चीज है मुझे जरूरत है क्या आकार मेज मुझे बताओ। तो आप एक बहुत मिलता है आदेशों की सीमित सेट। आप एक मेज अद्यतन बनाने के लिए मिलता है, टेबल, तालिका हटाएँ, और टेबल का वर्णन करें। वे केवल बातें कर रहे हैं आप DynamoDB के लिए की जरूरत है। आप एक भंडारण की जरूरत नहीं इंजन विन्यास। मैं प्रतिकृति के बारे में चिंता करने की जरूरत नहीं है। मैं sharding के बारे में चिंता करने की जरूरत नहीं है। मुझे चिंता करने की ज़रूरत नहीं है इस सामान में से किसी के बारे में। ये सब हम आपके लिए कर रहे हैं। तो यह है कि भूमि के ऊपर का एक विशाल राशि है लगता है कि सिर्फ अपनी थाली से हटा लिया है। तो फिर हम CRUD ऑपरेटरों है। CRUD कुछ हम क्या है है कि डेटाबेस में फोन , अपडेट, ऑपरेटरों मिटायें बनाएँ। ये अपने आम हैं डेटाबेस कार्रवाई। पुट आइटम जैसे हालात, मद, अद्यतन प्राप्त आइटम, आइटम को हटाने, बैच क्वेरी, स्कैन। आप संपूर्ण तालिका स्कैन करने के लिए चाहते हैं। मेज से सब कुछ खींचो। DynamoDB के बारे में अच्छी चीजों में से एक यह समानांतर स्कैनिंग की अनुमति देता है। तो अगर आप वास्तव में कितने मुझे पता कर सकते हैं धागे आपको लगता है कि स्कैन पर चलाना चाहते हैं। और हम उन धागे चला सकते हैं। हम जानते हैं कि ऊपर स्कैन स्पिन कर सकते हैं कई सूत्र के पार इसलिए यदि आप संपूर्ण तालिका स्कैन कर सकते हैं बहुत, बहुत जल्दी DynamoDB में अंतरिक्ष। हमारे पास अन्य एपीआई है हम हमारी नदियों एपीआई क्या कहते हैं। हम भी बात करने के लिए नहीं जा रहे हैं अभी इस बारे में ज्यादा। मैं कुछ सामग्री बाद में मिल गया है इस बारे में डेक में पर। लेकिन धाराओं वास्तव में एक दौड़ है समय का आदेश दिया के रूप में सोच और विभाजन प्रवेश बदलें। पर हो रहा है कि सब कुछ तालिका धारा पर पता चलता है। हर मेज पर लिखने धारा पर पता चलता है। आपको लगता है कि धारा पढ़ा है, और कर सकते हैं आप इसके साथ बातें कर सकते हैं। हम इस बारे में बात करेंगे क्या चीजों के प्रकार आप प्रतिकृति जैसी चीजों के साथ करते हैं, माध्यमिक अनुक्रमणिका बना। वास्तव में अच्छा के सभी प्रकार चीजें आप उस के साथ क्या कर सकते हैं। डेटा के प्रकार। DynamoDB में, हम दोनों कुंजी का समर्थन मूल्य और दस्तावेज़ डेटा प्रकार के। स्क्रीन के बाएं हाथ की तरफ यहाँ, हम अपने बुनियादी प्रकार मिल गया है। कुंजी मान प्रकार के। ये तार कर रहे हैं, नंबर, और बायनेरिज़। इसलिए सिर्फ तीन बुनियादी प्रकार। और फिर आप उन लोगों में से सेट कर सकते हैं। अच्छी बातें की एनओएसक्यूएल है के बारे में आप गुण के रूप में सरणियों शामिल कर सकते हैं। और DynamoDB साथ आप सरणियों शामिल कर सकते हैं एक रूट संपत्ति के रूप में बुनियादी प्रकार के। और उसके बाद दस्तावेज़ प्रकार के होते है। कितने लोग JSON के साथ परिचित हैं? इतना JSON के साथ परिचित तुम लोग? यह मूल रूप से जावास्क्रिप्ट है वस्तु, संकेतन। यह आप मूल रूप से करने के लिए अनुमति देता है एक श्रेणीबद्ध संरचना को परिभाषित। आप पर एक JSON दस्तावेज स्टोर कर सकते हैं DynamoDB आम घटकों का उपयोग या कि इमारत ब्लॉकों उपलब्ध हैं सबसे प्रोग्रामिंग भाषाओं में। आप जावा है, तो आप कर रहे हैं नक्शे और सूचियों में देख रहे हैं। मुझे लगता है कि क्षेत्र के नक्शे वस्तुओं का निर्माण कर सकते हैं। कुंजी मान के रूप में एक नक्शा गुण के रूप में जमा। और इस बात की सूचियों हो सकता है उन गुणों के भीतर मूल्यों। आप इस जटिल स्टोर कर सकते हैं वर्गीकृत संरचना एक भी विशेषता के रूप में एक DynamoDB मद की। DynamoDB में तालिकाओं तो, सबसे अधिक पसंद एनओएसक्यूएल डेटाबेस, टेबल आइटम नहीं हैं। MongoDB में आप होगा इन दस्तावेजों को कहते हैं। और यह सोफे आधार होगा। इसके अलावा एक दस्तावेज़ डेटाबेस। आप इन दस्तावेजों को कहते हैं। दस्तावेज़ या आइटम विशेषता है। गुण मौजूद कर सकते हैं या आइटम पर मौजूद नहीं। DynamoDB में, वहाँ एक अनिवार्य विशेषता। बस एक संबंधपरक डेटाबेस में पसंद है, तुम मेज पर एक प्राथमिक कुंजी है। DynamoDB हम एक हैश कुंजी क्या कहते है। हैश कुंजी अद्वितीय होना चाहिए। तो मैं एक हैश तालिका को परिभाषित करते हैं, मूल रूप से मैं क्या कह रहा हूँ हर आइटम एक हैश कुंजी होगा है। और हर हैश कुंजी अद्वितीय होना चाहिए। हर आइटम परिभाषित किया गया है कि अद्वितीय हैश कुंजी के द्वारा। और वहाँ केवल एक ही हो सकता है। यह ठीक है, लेकिन बार बार क्या लोगों की जरूरत है वे चाहते है इस हैश है एक छोटे से अधिक बिट करने के लिए कुंजी की तुलना में सिर्फ एक अद्वितीय पहचानकर्ता होना। बार बार हम उस हैश कुंजी का उपयोग करना चाहते हैं शीर्ष स्तर एकत्रीकरण बाल्टी के रूप में। और हम ऐसा तरीका है हम एक सीमा कुंजी क्या कॉल जोड़ने। यह केवल एक हैश है तो मेज, इस अद्वितीय होना चाहिए। यह एक हैश और सीमा मेज है, हैश और सीमा के संयोजन अद्वितीय होना चाहिए। तो इस तरह से इसके बारे में सोचते हैं। मैं एक मंच है। और फ़ॉर्म है, विषय है पोस्ट, और यह प्रतिक्रियाओं है। तो मैं एक हैश हो सकता है विषय आईडी है, जो महत्वपूर्ण,। और मैं एक सीमा कुंजी हो सकता है, जो प्रतिक्रिया आईडी है। यही कारण है कि जिस तरह से मैं सभी प्राप्त करना चाहते हैं विशेष विषय के लिए प्रतिक्रियाओं, मैं सिर्फ हैश क्वेरी कर सकते हैं। मैं मुझे सब दे बस का कहना है सकते हैं इस हैश है कि आइटम नहीं है। और मैं हर सवाल पाने के लिए जा रहा हूँ या उस विशेष विषय के लिए पोस्ट। इन शीर्ष स्तर एकत्रित बहुत महत्वपूर्ण हैं। वे प्राथमिक उपयोग का समर्थन आवेदन के पैटर्न। आम तौर पर, यह बोल रहा हूँ हम क्या करना चाहते है। हम जानते हैं कि table-- चाहते हैं आप तालिका लोड के रूप में, हम डेटा संरचना करना चाहते हैं इस तरह से तालिका के भीतर कि आवेदन बहुत कर सकते हैं जल्दी से उन परिणामों को निकालते हैं। और बार बार जिस तरह से करना है हम के रूप में इन एकत्रित बनाए रखने के लिए डेटा डालें। असल में, हम डेटा फैल रहे उज्ज्वल बाल्टी में यह रूप में आता है। रेंज चाबियाँ me-- हैश की अनुमति देते हैं चाबियाँ समानता होना है। मैं एक हैश क्वेरी करते हैं, मैं कहना है मुझे इस के बराबर होती है कि एक हैश दे। मैं एक सीमा क्वेरी करते हैं, मैं मुझे एक श्रृंखला दे कह सकते हैं कि किसी भी तरह का उपयोग कर रहा है हम समर्थन करते हैं कि अमीर ऑपरेटर। मुझे एक हैश के लिए सभी वस्तुओं को दे। यह अधिक से अधिक बराबर है, इसके साथ शुरू होता है, कम से कम यह इन दोनों के मूल्यों के बीच मौजूद है? सीमा प्रश्नों की तो इन प्रकार हम में हमेशा से रुचि रखते हैं कि। अब डेटा के बारे में एक बात है, जब आप जब डेटा तक पहुँचने में लग आप डेटा का उपयोग, यह है हमेशा एक एकत्रीकरण के बारे में। यह रिकॉर्ड के बारे में हमेशा कि इस से संबंधित हैं। मुझे यहाँ सब कुछ दे दो सब that's-- इस क्रेडिट कार्ड पर लेनदेन पिछले महीने के लिए। यही कारण है कि एक एकत्रीकरण है। लगभग सब कुछ आप में क्या डेटाबेस एकत्रीकरण किसी तरह का है। परिभाषित करने के लिए सक्षम होने के लिए जा रहा है तो सक्षम इन बाल्टी और आप इन रेंज दे पर प्रश्न करने के लिए सक्षम होने के लिए जिम्मेदार बताते हैं, उन अमीर प्रश्नों, कई का समर्थन बहुत से, कई आवेदन का उपयोग पैटर्न। दूसरी बात यह है हैश कुंजी तो करता है कि यह हमें एक तंत्र देता है आसपास डेटा का प्रसार करने में सक्षम हो। एनओएसक्यूएल डेटाबेस सबसे अच्छा काम जब डेटा समान रूप से है क्लस्टर भर में वितरित की। कितने लोग परिचित हैं एल्गोरिदम hashing के साथ? मैं हैश और एक hashing-- कहना है कि जब एक हैशिंग एल्गोरिथ्म क्योंकि उत्पन्न करने में सक्षम होने का एक तरीका है किसी भी मूल्य से एक यादृच्छिक मूल्य। इस विशेष मामले में तो, हम चलाने हैश एल्गोरिथ्म आधारित एन डी 5 है। और मैं एक आईडी है, और अगर यह मेरी हैश कुंजी है, मैं 1, 2, 3 लोगों की है। मैं हैश एल्गोरिथ्म चलाते हैं, यह वापस आ गया और कहने जा रहा है अच्छी तरह से 1, 2 7 बी के बराबर होती है 48 के बराबर होती है 3 सीडी के बराबर होती है। वे सभी प्रमुख अंतरिक्ष में फैला हुआ है। और यही कारण है कि आप इस करते हैं? सुनिश्चित करती है कि ऐसा इसलिए है क्योंकि मैं कर सकता हूँ कई नोड्स भर में रिकॉर्ड डाल दिया। मैं यह कर रहा हूँ तो संवर्द्धित, 1, 2, 3। और मैं एक हैश श्रृंखला है कि इस विशेष मामले में रन एक छोटे हैश अंतरिक्ष, यह, एफएफ करने के लिए 00 से चलाता है तो रिकॉर्ड में आ जा रहे हैं और वे जाने के लिए जा रहे हैं 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12। क्या होता है? हर डालने ही नोड के लिए जा रहा है। तुम्हे समझ में आया मैंने जो कहा? मैं अंतरिक्ष विभाजित क्योंकि जब, और मैं भर में इन अभिलेखों का प्रसार और मैं विभाजन, मैं कहने जा रहा हूँ विभाजन 1 54 की कुंजी अंतरिक्ष 0 है। विभाजन 2 55-89 है। विभाजन 3 एफएफ को ए.ए. है। मैं incrementing रैखिक उपयोग कर रहा हूँ तो अगर आईडी, तुम क्या हो रहा है देख सकते हैं। 1, 2, 3, 4, 5, 6, 54 के लिए सभी तरह। मैं चोट कर रहा हूँ के रूप में तो प्रणाली में रिकॉर्ड, सब कुछ एक नोड के लिए जा रहा समाप्त होता है। यह अच्छा नहीं है। यही कारण है कि एक antipattern है। MongoDB में वे इस समस्या है आप एक हैश कुंजी का उपयोग नहीं करते हैं। MongoDB आप विकल्प देता है की कुंजी मान hashing। तुम हमेशा करते हैं, कि क्या करना चाहिए आप एक incrementing हैश का उपयोग कर रहे हैं MongoDB में कुंजी, या आप हो जाएगा एक नोड के लिए हर लिखने श्रेष्ठ, और आप को सीमित कर दिया जाएगा बुरी तरह से अपने लिखने थ्रूपुट। दर्शकों: दशमलव में कि ए 9 169 है? रिक Houlihan: हाँ, यह है कहीं वहाँ के आसपास। ए 9, मैं नहीं जानता। तुम मेरी बाइनरी प्राप्त होगा दशमलव कैलकुलेटर के लिए। मेरे दिमाग उस तरह काम नहीं करता है। दर्शकों: बस एक त्वरित एक अपने मोंगो टिप्पणी की। इसलिए आता है कि वस्तु आईडी है नेटिव मोंगो के साथ ऐसा? रिक Houlihan: यह है कि क्या करना है? आप यह निर्दिष्ट करते हैं। MongoDB के साथ, आप विकल्प होता है। आप में से हर दस्तावेज़ specify-- कर सकते हैं MongoDB एक अंडरस्कोर आईडी के लिए है। यही कारण है कि अद्वितीय मूल्य है। MongoDB में आप निर्दिष्ट कर सकते हैं यह हैश या नहीं। वे सिर्फ तुम विकल्प देते हैं। आप यह जानते हैं कि बिना सोचे समझे, कोई समस्या नहीं है। तुम्हें पता है कि क्या करने की जरूरत नहीं है। आप यह है कि, बिना सोचे समझे नहीं पता है कि अगर यह incrementing है, तो हैश करते हैं। अब बात के बारे में आप हैश एक बार, hashing एक value-- और यह है क्यों हैश चाबियाँ हमेशा से रहे हैं अनूठा प्रश्नों, मैं बदल दिया है क्योंकि मूल्य, अब मैं एक सीमा क्वेरी नहीं कर सकते। मैं यह नहीं कह सकता इस या उस के बीच, हैश मान नहीं जा रहा है, क्योंकि वास्तविक मूल्य के बराबर हो। तो आपको लगता है कि हैश जब कुंजी है, यह केवल समानता है। यही कारण है DynamoDB हैश कुंजी में है प्रश्नों हमेशा ही समानता है। तो अब एक रेंज में key-- मुझे लगता है कि सीमा कुंजी जोड़ते हैं, उन रेंज कुंजी अभिलेखों सभी में आते हैं और वे एक ही विभाजन पर जमा हो। ताकि वे आसानी से, बहुत जल्दी कर रहे हैं इस हैश है क्योंकि लिया गया, इस रेंज है। और तुम सब कुछ देख एक ही हैश के साथ एक ही विभाजन के स्थान पर जमा हो जाता है। आप मदद करने के लिए है कि सीमा कुंजी का उपयोग कर सकते हैं अपने माता पिता के करीब अपने डेटा का पता लगाने। इसलिए मैं वास्तव में यहाँ क्या कर रहा हूँ? यह कई रिश्ते के लिए एक से एक है। एक हैश कुंजी के बीच के रिश्ते और रेंज कुंजी कई लोगों के लिए एक है। मैं कई हैश कुंजी हो सकता। मैं केवल एकाधिक श्रृंखला हो सकती है हर हैश कुंजी भीतर चाबियाँ। हैश माता-पिता को परिभाषित करता है, रेंज बच्चों को परिभाषित करता है। तो आप देख सकते हैं अनुरूप यहाँ है रिलेशनल निर्माण के बीच की और एक ही प्रकार एनओएसक्यूएल में निर्माण करती है। लोगों के बारे में बात करते हैं Nonrelational रूप एनओएसक्यूएल। यह nonrelational नहीं है। डेटा हमेशा संबंध है। उन रिश्तों बस अलग ढंग से मॉडलिंग कर रहे हैं। चलो थोड़ा बात करते हैं स्थायित्व के बारे में थोड़ा सा। आप DynamoDB के लिए लिखते हैं, लिखते हैं हमेशा तीन तरह से दोहराया है। हम तीन-जेड की है जिसका अर्थ है कि। जेड की उपलब्धता के क्षेत्र हैं। आप एक उपलब्धि के बारे में सोच सकते हैं एक डाटा सेंटर के रूप में जोन डेटा केंद्रों की या एक संग्रह। इन बातों को भौगोलिक रूप से कर रहे हैं एक दूसरे से अलग विभिन्न गलती क्षेत्र में, के पार बिजली ग्रिड और बाढ़ के मैदानों अलग। एक AZ में एक विफलता नहीं है एक और नीचे ले जा रहा। उन्होंने यह भी जुड़े हुए हैं एक साथ अंधेरे फाइबर के साथ। यह एक उप समर्थन करता है 1 Azs के बीच मिलीसेकंड विलंबता। तो वास्तविक समय डाटा अनुकरण बहु Azs में सक्षम। और बार बार बहु-जेड की तैनाती उच्च उपलब्धता की आवश्यकताओं को पूरा सबसे उद्यम संगठनों की। तो DynamoDB फैला हुआ है डिफ़ॉल्ट रूप से तीन Azs के पार। हम केवल ज्ञान लिखने जा रहे हैं उन तीन नोड्स के दो वापस आने के लिए जब और मैं यह मिल गया, हाँ, कहते हैं। ऐसा क्यों है? पढ़ें पक्ष पर हम कर रहे हैं, क्योंकि केवल जब वापस आप डेटा देने जा रहा हम दो नोड्स से मिलता है। मैं भर में नकल कर रहा हूँ तीन, और मैं दो से पढ़ रहा हूँ, मैं हमेशा की गारंटी रहा हूँ कम से कम एक है उन होने के लिए पढ़ता डेटा के सबसे वर्तमान प्रति। यही कारण है कि DynamoDB लगातार बनाता है। अब आप बारी करने के लिए चुन सकते हैं उन लगातार बंद पढ़ता है। जो मामले में मैं कहने जा रहा हूँ, मैं केवल एक नोड से पढ़ा हूँ। और मुझे लगता है कि यह हो रहा है गारंटी नहीं दे सकते सबसे मौजूदा डेटा हो। एक लिखने में आ रही है तो, अगर यह अभी तक दोहराया नहीं किया गया है आपको लगता है कि प्रतिलिपि प्राप्त करने के लिए जा रहे हैं। यही कारण है कि एक अंततः लगातार पढ़ा है। और क्या यह है कि आधी कीमत है। इसलिए इस बारे में सोचने के लिए कुछ है। जब आप DynamoDB बाहर पढ़ने, और कर रहे हैं आप अपने पढ़ने की क्षमता स्थापित कर रहे हैं इकाइयों, आप अंततः चुनते हैं संगत, यह एक बहुत सस्ता है, पढ़ता इसके बारे में आधी कीमत है। और तो यह है कि आप पैसे की बचत होती है। लेकिन यह है कि अपनी पसंद है। आप एक सुसंगत पढ़ें चाहते हैं या एक अंततः लगातार पढ़ें। यही कारण है कि आप चुन सकते हैं कि कुछ है। के अनुक्रमित के बारे में बात करते हैं। तो क्या हम उल्लेख किया है कि शीर्ष स्तर एकत्रीकरण। हम हैश चाबी मिल गया है, और हम सीमा चाबियाँ मिल गया है। यह अच्छा है। और कहा कि, प्राथमिक मेज पर मैं एक हैश कुंजी मिल गया है, मैं एक रेंज कुंजी है। इसका क्या मतलब है? मैं एक विशेषता मिल गया है कि मैं के खिलाफ अमीर प्रश्नों चला सकते हैं। यह रेंज कुंजी है। कि item-- पर अन्य विशेषताओं मैं उन विशेषताओं पर फ़िल्टर कर सकते हैं। लेकिन मुझे लगता है कि यह चीजों की तरह नहीं कर सकते साथ शुरू होता है, या अधिक से अधिक है। मैं ऐसा कैसे करूं? मैं एक सूची बनाने। दो प्रकार की होती है DynamoDB में अनुक्रमणिका। एक सूचकांक वास्तव में है तालिका के एक और दृश्य। और स्थानीय माध्यमिक सूचकांक। हम के बारे में बात करेंगे पहले एक। इसलिए स्थानीय माध्यमिक सहअस्तित्वमय रहे हैं डेटा के रूप में एक ही विभाजन पर। और इस तरह के रूप में, वे कर रहे हैं पर एक ही शारीरिक नोड। उन्होंने कहा कि हम लगातार कहते हैं। मतलब, वे स्वीकार करेंगे तालिका के साथ लिखना। लिखने में आता है, हम सूचकांक के माध्यम से लिख देंगे। हम मेज तक लिख देंगे और फिर हम स्वीकार करेंगे। तो यह है कि संगत है। लिखने के लिए किया गया है एक बार मेज से स्वीकार किया है, यह कि गारंटी है स्थानीय माध्यमिक सूचकांक डेटा का एक ही सपना होगा। लेकिन क्या वे अनुमति तुम्हें क्या है वैकल्पिक रेंज कुंजियों को परिभाषित। एक ही हैश का उपयोग किया है प्राथमिक तालिका के रूप में कुंजी, वे कर रहे हैं क्योंकि पर सह स्थित एक ही विभाजन है, और वे लगातार कर रहे हैं। लेकिन मैं एक सूचकांक बना सकते हैं विभिन्न रेंज कुंजी के साथ। तो उदाहरण के लिए, यदि मैं एक निर्माता था कि एक कच्चे भागों तालिका में आ रहा था। और कच्चे भागों में आते हैं, और वे विधानसभा द्वारा एकत्रित कर रहे हैं। और हो सकता है एक याद नहीं है। इस से बनाया गया था कि किसी भी भाग इस तिथि के बाद निर्माता, मैं अपनी लाइन से खींचने की जरूरत है। मैं एक सूचकांक स्पिन कर सकते हैं कि, देख रही होगी की तारीख को कुल मिलाकर उस विशेष हिस्से का निर्माण। मेरी शीर्ष स्तर तालिका था तो अगर पहले से ही निर्माता द्वारा बंटी, हो सकता है यह मैं, भाग आईडी पर व्यवस्थित किया गया था कि मेज से एक सूचकांक बना सकते हैं निर्माता द्वारा बंटी के रूप में और निर्माण की तारीख पर बताया गया। और मैं कह सकते हैं कि जिस तरह से, कुछ भी है कि इन तिथियों के बीच निर्मित किया गया था, मैं रेखा से खींचने की जरूरत है। तो यह है कि एक स्थानीय माध्यमिक सूचकांक है। इन का असर अपने हैश कुंजी अंतरिक्ष सीमित। क्योंकि वे सह अस्तित्व एक ही भंडारण नोड पर, वे हैश कुंजी की सीमा 10 गीगाबाइट करने के लिए अंतरिक्ष। DynamoDB, के तहत टेबल, विभाजन होगा अपनी मेज हर 10 गीगाबाइट। आप डेटा के 10 gigs में डाल दिया है, हम [PHH] जाना है, और हम एक और नोड जोड़ें। हम LSI विभाजन नहीं होगा कई विभाजन के पार। हम तालिका बाँट लेंगे। लेकिन हम LSI विभाजन नहीं होगा। कि कुछ है तो समझने के लिए महत्वपूर्ण तुम बहुत कर रहे हैं है, बहुत, बहुत बड़े एकत्रित, तो आप सीमित करने जा रहे हैं अपने LSIs पर 10 गीगाबाइट। यदि यह मामला है, हम कर सकते हैं वैश्विक माध्यमिक का उपयोग करें। वैश्विक माध्यमिक हैं वास्तव में एक और टेबल। वे करने के लिए पूरी तरह से बंद मौजूद अपनी प्राथमिक मेज की ओर। और वे मुझे एक खोजने के लिए अनुमति पूरी तरह से अलग संरचना। डेटा डाला जा रहा है तो यह सोचने दो अलग-अलग तालिकाओं में, संरचित दो अलग अलग तरीकों से। मैं एक पूरी तरह से परिभाषित कर सकते हैं अलग हैश कुंजी। मैं एक पूरी तरह से परिभाषित कर सकते हैं विभिन्न रेंज कुंजी। और मैं इस चला सकते हैं पूरी तरह से स्वतंत्र रूप से। तथ्य की बात के रूप में, मैं मेरे पढ़ने की क्षमता का प्रावधान और के लिए क्षमता लिखना मेरी वैश्विक माध्यमिक अनुक्रमित पूरी तरह से स्वतंत्र रूप से मेरी प्राथमिक तालिका की। मुझे लगता है कि सूचकांक को परिभाषित करते हैं, तो मैं बता यह कितना पढ़ना और लिखना क्षमता का उपयोग किया जा रहा है। और कहा कि अलग-अलग है मेरी प्राथमिक तालिका से। अब अनुक्रमित दोनों के लिए हमें की अनुमति न केवल, हैश और सीमा कुंजियों को परिभाषित लेकिन वे हमें करने की अनुमति अतिरिक्त मान परियोजना। मैं सूचकांक दूर पढ़ने के लिए चाहते हैं तो, और मैं डेटा के कुछ सेट प्राप्त करना चाहते हैं, मैं मुख्य करने के लिए वापस जाने की जरूरत नहीं है तालिका अतिरिक्त विशेषताओं पाने के लिए। मैं उन लोगों के अतिरिक्त परियोजना कर सकते हैं तालिका में विशेषताओं उपयोग पैटर्न का समर्थन है। मुझे लगता है हम शायद कुछ में हो रही है पता वास्तव में, मातम में हो रही really-- यहाँ इस सामान में से कुछ पर। अब मैं इस से बाहर बहाव के लिए मिला है। दर्शकों: [अश्राव्य] --table कुंजी एक हैश था मतलब? मूल हैश? मल्टी-हवा का झोंका? रिक Houlihan: हाँ। हाँ। तालिका कुंजी मूल रूप से वापस आइटम के लिए अंक। तो एक सूचकांक एक संकेतक के लिए वापस आ गया है मेज पर मूल आइटम नहीं है। अब आप एक निर्माण करने के लिए चुन सकते हैं केवल तालिका कुंजी है कि सूचकांक, और कोई अन्य गुण। और मुझे लगता है कि यही कारण क्या हो सकता है? वैसे, शायद मैं बहुत बड़ी आइटम नहीं हैं। मैं वास्तव में केवल पता करने की जरूरत which-- मेरी पहुंच पैटर्न कह सकते हैं, जो आइटम इस संपत्ति होते हैं? आइटम लौटने की जरूरत नहीं है। मैं सिर्फ इतना पता करने की जरूरत है जो आइटम यह होते हैं। तो अगर आप अनुक्रमित निर्माण कर सकते हैं कि केवल तालिका कुंजी है। लेकिन यह है कि मुख्य रूप से क्या है डेटाबेस में एक सूचकांक के लिए है। यह जल्दी करने में सक्षम होने के लिए है , जो रिकॉर्ड की पहचान जो पंक्तियाँ, जो तालिका में आइटम नहीं हैं मैं के लिए खोज कर रहा हूँ कि गुण। GSIS, तो वे कैसे काम करते हैं? GSIS मूल रूप से अतुल्यकालिक हैं। अद्यतन तालिका में आता है, मेज तो asynchronously अद्यतन किया जाता है अपने GSIS के सभी। GSIS हैं यही कारण है अंततः लगातार। यह ध्यान रखने के लिए महत्वपूर्ण है जब आप GSIS निर्माण कर रहे हैं, और आप आप बना रहे हैं समझते हैं aggregation-- का एक और आयाम अब देखते हैं कि एक अच्छा उदाहरण हम कहते हैं यहां एक निर्माता है। मैं मैं के बारे में बात की है हो सकता है एक चिकित्सा उपकरण निर्माता। चिकित्सा उपकरण निर्माताओं बार बार धारावाहिक भागों है। में जाने कि भागों एक हिप रिप्लेसमेंट सभी उन पर एक छोटी सी सीरियल नंबर है। और वे लाखों हो सकता था और लाखों और भागों के अरबों वे उस जहाज के सभी उपकरणों में। खैर, वे के तहत कुल करने की जरूरत है विभिन्न आयामों, सभी भागों एक सभा में, सभी किए गए भागों एक निश्चित लाइन पर, सभी आया है कि भागों एक निश्चित निर्माता से में एक निश्चित तारीख पर। और कभी कभी इन एकत्रित अरबों में उठो। इसलिए मुझे लगता है की कुछ के साथ काम पीड़ित हैं, जो इन लोगों को वे बना रहे हैं क्योंकि इन ginormous एकत्रित उनके माध्यमिक सूचकांकों में। वे एक कच्चे भागों हो सकता है केवल हैश के रूप में आता है कि मेज। हर हिस्सा एक अद्वितीय सीरियल नंबर है। मैं हैश के रूप में सीरियल नंबर का उपयोग करें। यह खूबसूरत है। मेरे कच्चे डेटा तालिका में फैला हुआ है सभी प्रमुख अंतरिक्ष में। मेरे [? लिखने?] [? घूस?] भयानक है। मैं डेटा का एक बहुत ले। तब वे क्या करते हैं, वे एक जीएसआई बनाने के लिए है। और मुझे लगता है कि मैं यह देखने की जरूरत है, तो आप जानते हैं कि क्या कहते हैं, इस निर्माता के लिए सभी भागों। खैर, अचानक मैं कर रहा हूँ एक अरब पंक्तियों ले रही है, और पर उन्हें सामान एक नोड, क्योंकि जब मैं के रूप में कुल हैश के रूप में निर्माता आईडी, और सीमा के रूप में भाग संख्या, तो मैं कर रहा हूँ अचानक में एक अरब भागों डाल क्या इस निर्माता ने मुझे जन्म दिया है। यह एक बहुत पैदा कर सकता है जीएसआई पर दबाव की, फिर, मैं एक नोड टंकण कर रहा हूँ क्योंकि। मैं इन सभी डाल रहा हूँ एक नोड में सम्मिलित करता है। और वह एक वास्तविक समस्याग्रस्त उपयोग मामला है। अब, मैं एक अच्छा डिजाइन मिला आप से बचने के लिए कैसे पैटर्न। और कहा कि समस्याओं में से एक है मैं हमेशा के साथ काम करते हैं। क्या होता है लेकिन, जीएसआई सकता है पर्याप्त लिखने की क्षमता नहीं उन सभी पुश करने के लिए सक्षम होने के लिए एक नोड में पंक्तियाँ। और फिर क्या होता है प्राथमिक, ग्राहक की मेज, प्राथमिक तालिका गला घोंटकर की जाएगी जीएसआई नहीं रख सकते हैं क्योंकि। इसलिए मेरी डालने दर होगी प्राथमिक मेज पर गिर मेरी जीएसआई को बनाए रखने की कोशिश करता है। ठीक है, LSI की, जीएसआई की तो, मुझे किसका उपयोग करना चाहिए? LSI के अनुरूप हैं। जीएसआई के अंत में संगत कर रहे हैं। यह ठीक है, मैं एक का उपयोग करना चाहिये जीएसआई, वे और अधिक लचीला कर रहे हैं। LSI के एक जीएसआई के रूप में मॉडलिंग की जा सकती है। और अगर हैश चाबियाँ प्रति डेटा आकार में अपने संग्रह में 10 गीगाबाइट से अधिक है, तो आप उस का उपयोग करना चाहते करने जा रहे हैं जीएसआई यह सिर्फ एक कठिन सीमा है, क्योंकि। ठीक है, तो स्केलिंग। डायनमो DB में throughput, आप कर सकते प्रावधान [सुनाई] एक मेज के लिए throughput। हम हैं कि ग्राहकों को दिया है का प्रावधान 60 billion-- नियमित रूप से 60 अरब अनुरोध कर रहे हैं एक लाख से अधिक अनुरोधों पर चल रहा है हमारे टेबल पर प्रति सेकंड। कोई वास्तव में नहीं है करने के लिए सैद्धांतिक सीमा कितना और कितनी तेजी से मेज डायनमो DB में चला सकते हैं। कुछ नरम कर रहे हैं अपने खाते पर सीमा हम तो वहाँ में डाल दिया है कि कि तुम पागल हो जाना नहीं है। आप की तुलना में अधिक चाहते हैं कि, एक समस्या नहीं है। तुम हमें बताओ आते हैं। हम डायल अप बदल देंगे। हर खाते के कुछ स्तर तक सीमित है हर सेवा में, सिर्फ बल्ले से ताकि लोगों को पागल मत जाओ खुद को मुसीबत में मिलता है। आकार में कोई सीमा नहीं। आप किसी भी नंबर डाल सकते हैं एक मेज पर आइटम की। एक आइटम का आकार है 400 किलोबाइट प्रत्येक के लिए सीमित है, उस आइटम नहीं विशेषताओं होगा। सभी गुण का योग तो 400 किलोबाइट तक सीमित है। और फिर, हमारे पास उस छोटे से LSI मुद्दा हैश प्रति 10 गीगाबाइट की सीमा के साथ। दर्शकों: छोटी संख्या है, मुझे याद आ रही क्या आपको लगता है कि, मुझे बता रहे है- दर्शकों: ओह, 400 किलोबाइट आइटम प्रति अधिकतम आकार है। तो एक आइटम सभी गुण है। तो 400 कश्मीर कुल आकार है उस मद के, 400 किलोबाइट। सभी गुण की तो संयुक्त, सभी डेटा कि उन सभी विशेषताओं में है, कुल आकार में लुढ़का, वर्तमान में आज आइटम सीमा 400 कश्मीर है। तो हासिल की, फिर स्केलिंग विभाजन के माध्यम से। Throughput प्रावधान किया गया है मेज के स्तर पर। और वास्तव में दो knobs नहीं है। हम क्षमता पढ़ा है और क्षमता लिखें। इसलिए इन समायोजित कर रहे हैं एक दूसरे से स्वतंत्र। आरसीयू के उपाय सख्ती से लगातार पढ़ता है। ठीक है, यदि ऐसा है तो आप मैं 1,000 चाहते कह रहे हैं आरसीयू के उन लोगों के लिए सख्ती से संगत कर रहे हैं उन लगातार पढ़ता हैं। तुम्हें पता है मैं कहना चाहते हैं लगातार अंतिम पढ़ता है, आप प्रावधान 1,000 कर सकते हैं आरसीयू के, आप जा रहे हैं अंत में 2,000 पाने के लिए लगातार पढ़ता है। और उन लोगों के लिए आधी कीमत अंततः में पढ़ता मिलकर बनता है। फिर, समायोजित एक दूसरे से स्वतंत्र। और वे throughput-- है आप अपने आरसीयू के 100% का उपभोग करते हैं, आप को प्रभावित करने के लिए नहीं जा रहे हैं अपने अधिकारों की उपलब्धता। तो वे पूरी तरह से कर रहे हैं एक दूसरे से स्वतंत्र। ठीक है, तो बातों में से एक यह है कि मैं संक्षेप में थ्रॉटलिंग उल्लेख किया गया है। थ्रॉटलिंग बुरा है। थ्रॉटलिंग कोई एसक्यूएल बुरा इंगित करता है। हम मदद करने के लिए क्या कर सकते हैं बातें कर रहे हैं आप थ्रॉटलिंग कम है कि आप सामना कर रहे हैं। लेकिन सबसे अच्छा समाधान इस के लिए के लिए ले जाने के लिए है एक, क्योंकि आप क्या कर रहे हैं पर देखो यहाँ खेलने में एक विरोधी पैटर्न नहीं है। ये बातें, गैर वर्दी की तरह बातें वर्कलोड, गर्म चाबियाँ, गर्म विभाजन। मैं एक विशेष कुंजी अंतरिक्ष मार रहा हूँ बहुत मेहनत से कुछ विशेष कारण के लिए। मैं यह क्यों कर रहा हूं? का पता लगाना है कि चलो। मैं ठंड डेटा के साथ मेरे गर्म डेटा मिश्रण कर रहा हूँ। मैं अपने टेबल मिल दे रहा हूँ विशाल है, लेकिन वास्तव में नहीं है, डेटा का केवल कुछ सबसेट कि वास्तव में मेरे लिए दिलचस्प है। इसलिए का लॉग डेटा के लिए, उदाहरण के लिए, एक बहुत ग्राहकों, वे हर दिन लॉग डेटा मिलता है। उन्होंने लॉग डेटा की एक बड़ी राशि मिल गई। तुम सिर्फ सभी लॉग डंपिंग कर रहे हैं समय के साथ एक बड़ा तालिका में डेटा, उस तालिका में बड़े पैमाने पर हो रहा है। लेकिन मैं सच में ही दिलचस्पी रहा हूँ पिछले 24 घंटे, पिछले सात दिन, पिछले 30 दिनों के लिए। समय के जो भी खिड़की मैं देखने में दिलचस्पी रहा हूँ कि मुझे परेशान है, या कि घटना के लिए मेरे लिए दिलचस्प है कि घटना, कि जरूरत है कि मैं केवल खिड़की का समय है। तो क्यों मैं 10 साल डाल रहा हूँ तालिका में लॉग इन आंकड़ों के लायक है? क्या कारण है कि है तालिका टुकड़ा। यह बहुत बड़ा हो जाता है। यह बाहर फैल शुरू होता है नोड्स के हजारों भर में। और अपनी क्षमता के बाद से आप कर रहे हैं, इतनी कम है वास्तव में प्रत्येक पर सीमित दर उन अलग-अलग नोड्स में से एक। तो चलो देख कैसे शुरू करते हैं हम पर है कि तालिका रोल करते हैं। हम उस डेटा के एक छोटे से प्रबंधन कैसे करूँ बेहतर इन समस्याओं से बचने के लिए। और क्या है कि कैसे दिखते हैं? यह उस तरह लग रहा है। यह बुरा एनओएसक्यूएल की तरह दिखता है। मैं यहाँ एक गर्म कुंजी है। आप यहाँ पक्ष पर देखो, ये सब मेरी विभाजन कर रहे हैं। मैं यहाँ 16 विभाजन उठकर इस विशेष डेटाबेस पर। हम यह सब समय है। मैं ग्राहकों के लिए हर समय इस चलाते हैं। यह गर्मी के नक्शे कहा जाता है। गर्मी नक्शा कैसे तुम मुझसे कहता है अपने प्रमुख अंतरिक्ष तक पहुँचने। और क्या इस मुझे कह रहा है है एक विशेष हैश है कि वहाँ इस आदमी को एक पसंद करता है कि बहुत भयंकर है, वह है, क्योंकि वास्तव में मुश्किल है, वास्तव में यह मार। तो नीले अच्छा है। हम नीले रंग की तरह। हम लाल पसंद नहीं है। लाल, जहां दबाव 100% तक हो जाता है। 100%, अब आप गला घोंटकर हो जा रहे हैं। तो अगर आप की तरह किसी भी लाल लाइनों को देखने के लिए जब भी है- और यह सिर्फ डायनमो DB-- नहीं है हर एनओएसक्यूएल डेटाबेस इस समस्या है। विरोधी पैटर्न है कि कर सकते हैं कर रहे हैं शर्तों के इन प्रकार के ड्राइव। मैं क्या मैं ग्राहकों के साथ काम है इन शर्तों को कम करने के लिए। और क्या है कि कैसे दिखते हैं? और यह सबसे अधिक हो रही है डायनमो डीबी throughput के बाहर, लेकिन यह सच हो रही है एनओएसक्यूएल का सबसे बाहर। इस डायनमो तक ही सीमित नहीं है। इस definitely-- मैं है मोंगो पर काम करने के लिए प्रयोग किया जाता है। मैं कई एनओएसक्यूएल प्लेटफार्म के साथ परिचित हूँ। हर एक इन प्रकार है गर्म प्रमुख समस्याओं में से। किसी भी एनओएसक्यूएल के बाहर सबसे अधिक प्राप्त करने के लिए डेटाबेस, विशेष रूप से डायनमो डीबी, आप टेबल बनाना चाहते हैं जहां हैश प्रमुख तत्व है विशिष्ट मूल्यों की एक बड़ी संख्या है, प्रमुखता के एक उच्च डिग्री। कि मैं लिख रहा हूँ क्योंकि इसका मतलब है अलग बाल्टी के लिए बहुत सारे। मैं कर रहा हूँ अधिक बाल्टी , और अधिक होने की संभावना के लिए लिख मुझे लगता है कि लिखने लोड प्रसार करने के लिए कर रहा हूँ या कई नोड्स भर में बाहर लोड पढ़ा, अधिक संभावना है कि मैं एक है करने के लिए कर रहा हूँ मेज पर उच्च throughput। और फिर मैं मूल्यों होना चाहते हैं समय के साथ काफी समान रूप से अनुरोध किया और समान रूप बेतरतीब ढंग से हो सके। खैर, कि, दिलचस्प की तरह क्योंकि मैं नहीं कर सकता सच नियंत्रण उपयोगकर्ताओं आते हैं। हम फैल यदि हां, तो कहने के लिए पर्याप्त कुंजी अंतरिक्ष में बाहर बातें, हम शायद बेहतर स्थिति में हो जाएगा। एक निश्चित नहीं है समय पर वितरण की राशि आप नहीं जा रहे हैं कि सक्षम नियंत्रण हो। लेकिन वे वास्तव में कर रहे हैं हम है कि दो आयामों, अंतरिक्ष, उपयोग में समान रूप से प्रसार, समय, अनुरोध समान रूप से समय में दूरी आ रहा है। और उन दो यदि शर्तों को पूरा किया जा रहा है, तो यह है कि यह क्या हो रहा है की तरह लग रहा। यह बहुत अच्छा है। हम यहाँ वास्तव में खुश हैं। हम एक बहुत भी उपयोग पैटर्न मिल गया है। हाँ, शायद तुम हो रही है एक थोड़ा दबाव है और अब तो हर, लेकिन कुछ भी नहीं है वास्तव में बहुत व्यापक। तो यह कितनी बार आश्चर्यजनक है मैं ग्राहकों के साथ काम करते हैं, बड़ी लाल के साथ कि पहली ग्राफ बार और सभी कि यह पीला है बदसूरत सभी जगह पर है, हम व्यायाम के साथ किया जाना कुछ महीने के बाद फिर से वास्तुकला की, वे सटीक एक ही चला रहे हैं ठीक उसी लोड पर काम का बोझ। और यह अब की तरह लग रहा है क्या है। तो क्या आप एनओएसक्यूएल के साथ मिल गया है एक बिल्कुल है कि डेटा स्कीमा उपयोग पैटर्न से बंधा। और तुम उस डेटा स्कीमा अनुकूलन कर सकते हैं उस का उपयोग पैटर्न का समर्थन है। यदि आप नहीं करते हैं, तो आप जा रहे हैं समस्याओं के उन प्रकार के देखने के लिए उन गर्म कुंजी के साथ। दर्शकों: ठीक है, अनिवार्य रूप से कुछ स्थानों दूसरों की तुलना में hotter होने जा रहे हैं। रिक Houlihan: हमेशा। हमेशा। हाँ, मैं वहाँ हमेशा मतलब एक-- और फिर, वहाँ है कुछ डिजाइन पैटर्न हम के माध्यम से मिलेगा कि आप निपटने के बारे में बात करेंगे इन सुपर बड़े एकत्रित साथ। मेरा मतलब है, मैं उन्हें करने के लिए मिला हम उन लोगों के साथ कैसे सौदा करते हैं? मैं एक बहुत अच्छा उपयोग के मामले मिला हम उस के लिए के बारे में बात करेंगे। ठीक है, तो चलो बात अब के बारे में कुछ ग्राहकों। ये लोग AdRoll हैं। आप कर रहे हैं, तो मैं नहीं जानता AdRoll से परिचित। आप शायद उन्हें देख ब्राउज़र पर बहुत कुछ। उन्होंने कहा कि वे कर रहे हैं, विज्ञापन फिर से लक्षित कर रहे हैं सबसे बड़ा विज्ञापन फिर से निशाना बना व्यापार वहाँ से बाहर। वे सामान्य रूप से नियमित रूप से अधिक रन प्रति दिन 60 अरब लेनदेन। वे एक लाख से अधिक कर रहे हैं दूसरी प्रति लेन-देन। वे एक बहुत सरल तालिका मिल गया है संरचना, व्यस्ततम मेज। यह मूल रूप से सिर्फ एक हैश कुंजी, कुकी है सीमा जनसांख्यिकीय है श्रेणी, और उसके बाद तीसरी विशेषता स्कोर है। इसलिए हम सभी में कुकीज़ इन लोगों से हमारे ब्राउज़र। और अगर आप एक के लिए जाने के लिए जब व्यापारी ने हिस्सा लिया, वे मूल रूप से भर में आप स्कोर विभिन्न जनसांख्यिकीय श्रेणियों। यदि आप एक वेबसाइट के लिए जाते हैं और आप मुझे इस ad-- देखना चाहते हैं का कहना है या मूल रूप से आप that-- मत कहो लेकिन आप वेबसाइट पर जाते हैं वे तो आप इस विज्ञापन को देखने के लिए चाहते हैं। और वे AdRoll से उस विज्ञापन मिल जाना। AdRoll उनकी मेज पर आप को लग रहा है। वे अपने कुकी लगता है। बता रही विज्ञापनदाताओं उन्हें, मैं किसी को चाहते हैं जो, मध्यम आयु वर्ग के है खेल में 40 वर्षीय आदमी,। और वे उन जनसांख्यिकी में आप स्कोर और वे तय है या नहीं कि आप के लिए एक अच्छा विज्ञापन है। अब वे एक एसएलए के साथ है अपने विज्ञापन प्रदाताओं उप-10 मिलीसेकंड प्रदान करने के लिए हर एक के अनुरोध पर प्रतिक्रिया। इसलिए वे इस के लिए डायनमो डीबी उपयोग कर रहे हैं। वे हमें एक मार रहे हैं दूसरी प्रति मिलियन अनुरोधों। वे सब करने में सक्षम रहे हैं उनके लुकअप, ट्राइएज है कि सभी डेटा, और कहा कि वापस करने के लिए ऐड लिंक मिल 10 मिसे के तहत में विज्ञापनदाता। यह वास्तव में बहुत जबरदस्त है कार्यान्वयन है कि वे। ये लोग actually-- लोग इन कर रहे हैं। मैं यह है कि इन लोगों को अगर यकीन नहीं है। इन लोगों को हो सकता है। असल में मैं कोई us-- को बताया यह उन लोगों के लिए किया गया लगता नहीं है। मैं इसे किसी और को किया गया लगता है। मैं एक साथ काम कर रहा था ग्राहक ने मुझे बताया कि कि अब वे है कि डायनमो DB के लिए चला गया है, वे कर रहे हैं के लिए नाश्ते पर ज्यादा पैसा खर्च उनके विकास टीम हर महीने वे अपने डेटाबेस पर खर्च से अधिक है। तो यह है कि आप एक देता हूँ लागत बचत करने के विचार आप डायनमो DB में प्राप्त कर सकते हैं कि बहुत बड़ा है। ठीक है, Dropcam एक और कंपनी है। ये पुरुष तरह of-- अगर आपको लगता है चीजों की इंटरनेट, Dropcam की मूल रूप से इंटरनेट सुरक्षा वीडियो है। तुम वहाँ अपने कैमरे बाहर डाल दिया। कैमरा एक प्रस्ताव डिटेक्टर है। कोई है, के साथ आता है एक क्यू बात हो सके। कैमरा थोड़ी देर तक के लिए रिकॉर्डिंग शुरू होता है यह अब किसी भी प्रस्ताव का पता नहीं लगा। इंटरनेट पर वीडियो है कि डालता है। Dropcam है कि एक कंपनी थी मूल रूप से डायनमो डीबी के लिए बंद वे सामना कर रहे थे, क्योंकि भारी बढ़ते दर्द। और वे क्या हमें बताया, अचानक डेटा के petabytes। उन्हें पता नहीं उनकी सेवा की थी इतना सफल होगा। यूट्यूब से अधिक भीतर वीडियो इन लोगों को हो रही है। वे सभी को ट्रैक करने के DynamoDB उपयोग सभी वीडियो महत्वपूर्ण बिंदुओं पर मेटाडाटा। इसलिए वे धक्का S3 बाल्टी सभी बाइनरी कलाकृतियों में। और फिर वे है डायनमो डीबी रिकॉर्ड है कि उन S3 के तीन वस्तुओं के लिए लोगों को इंगित करते हैं। वे एक वीडियो को देखने के लिए की जरूरत है, वे डायनमो DB में रिकॉर्ड को देखो। वे लिंक पर क्लिक करें। वे S3 से वीडियो नीचे खींच। तो यह है कि इस तरह लग रहा है की तरह है। और यह उनकी टीम की ओर से सीधे है। डायनमो डीबी उनकी कम कर देता है वीडियो घटनाओं के लिए प्रसव के समय पांच से 10 सेकंड से। अपने पुराने रिलेशनल दुकान में, वे जाने के लिए और निष्पादित करने के लिए किया करते थे आंकड़ा करने के लिए कई जटिल प्रश्नों जो बाहर वीडियो, नीचे खींचने के लिए कम से कम 50 मिसे के लिए। तो यह अद्भुत, आश्चर्यजनक है कितना प्रदर्शन आप अनुकूलन जब आप प्राप्त कर सकते हैं और आप धुन अंतर्निहित डेटाबेस उपयोग पैटर्न का समर्थन है। यह क्या है Halfbrick, इन लोगों को, मुझे लगता है कि फल निंजा उनकी बात है। डायनमो डीबी पर सब चलता है कि। और इन लोगों को, वे एक महान हैं विकास दल, महान विकास दुकान। नहीं एक अच्छा ऑप्स टीम। वे एक बहुत कुछ नहीं था आपरेशन संसाधनों की। वे रखने की कोशिश कर संघर्ष कर रहे थे उनके आवेदन बुनियादी ढांचे और चल रहा है। वे हमारे पास आया था। वे कहते हैं कि डायनमो डीबी को देखा। वे कहते हैं कि हमारे लिए है, ने कहा। वे अपने पूरे बनाया इस पर आवेदन ढांचा। यहां कुछ बहुत अच्छा टिप्पणियां उनकी क्षमता पर टीम से अब निर्माण पर ध्यान केंद्रित करने के लिए खेल और नहीं बनाए रखने के लिए होने बुनियादी ढांचा, जो एक भारी मात्रा में होता जा रहा था अपनी टीम के लिए भूमि के ऊपर की। तो यह कुछ है that-- आप डायनमो DB से मिलता है कि लाभ। ठीक है, में हो रही है यहां डेटा मॉडलिंग। और हम के बारे में थोड़ी सी बात एक करने के लिए यह एक है, कई लोगों के लिए एक, और कई प्रकार के संबंधों के लिए बहुत ज्यादा है। और आप कैसे डायनमो में उन लोगों को बनाए रखने के है। डायनमो DB में हम उपयोग अनुक्रमणिका, आम तौर पर बोल, से डेटा को घुमाने के लिए दूसरे के लिए एक स्वाद। हैश चाबियाँ, सीमा चाबियाँ, और अनुक्रमित। यह विशेष रूप से उदाहरण के लिए, ज्यादातर राज्यों के रूप में एक लाइसेंस की आवश्यकता है प्रति व्यक्ति केवल एक ड्राइवर का लाइसेंस। आप दो ड्राइवर का पाने के लिए नहीं जा सकते बोस्टन के राज्य में लाइसेंस। मैं टेक्सास में यह नहीं कर सकता। यही तरीका यह है की तरह है। और तो DMV पर, हम lookups है, हम ड्राइवर का लाइसेंस को देखना चाहता हूँ सामाजिक सुरक्षा संख्या से। मैं उपयोगकर्ता जानकारी को देखना चाहता हूँ ड्राइवर का लाइसेंस नंबर से। इसलिए हम एक उपयोगकर्ता की मेज हो सकता है कि सीरियल नंबर पर एक हैश कुंजी है, या सामाजिक सुरक्षा संख्या, और विभिन्न विशेषताओं आइटम पर परिभाषित किया। अब जब कि मेज पर मैं एक जीएसआई को परिभाषित कर सकता है कि का कहना है कि चारों ओर मैं चाहता हूँ कि flips तो लाइसेंस और पर एक हैश कुंजी अन्य सभी वस्तुओं। अब मैं क्वेरी और खोजना चाहते हैं किसी भी सामाजिक के लिए लाइसेंस नंबर सुरक्षा नंबर, मैं कर सकता हूँ मुख्य तालिका क्वेरी। मैं क्वेरी करने के लिए चाहते हैं और मैं चाहते हैं सामाजिक सुरक्षा पाने के लिए नंबर या एक से अन्य विशेषताओं लाइसेंस नंबर, मैं जीएसआई क्वेरी कर सकते हैं। यही कारण है कि मॉडल है कि एक है एक रिश्ते के लिए। बस एक बहुत ही सरल जीएसआई, चारों ओर उन चीजों फ्लिप। अब, कई लोगों के लिए एक के बारे में बात करते हैं। कई लोगों के लिए एक मूल रूप से है अपने हैश रेंज कुंजी। हम इस के साथ एक बहुत मिलता है, जहां उपयोग के मामले पर नजर रखने के डेटा है। मॉनीटर डेटा नियमित रूप में आता है चीजों की इंटरनेट की तरह अंतराल। हम हमेशा इन सब मिल रिकॉर्ड के सभी समय में आ रहे हैं। और मैं सभी रीडिंग लगाना चाहते हैं एक विशेष समय अवधि के बीच। यह एक बहुत ही आम क्वेरी है निगरानी बुनियादी ढांचे। उस के बारे में जिस तरह से जाना एक को मिल रहा है सरल तालिका संरचना, एक मेज। मैं एक युक्ति माप तालिका मिल गया है डिवाइस आईडी पर एक हैश कुंजी के साथ। और मुझे लगता है पर एक सीमा कुंजी है टाइमस्टैम्प, या इस मामले में, महाकाव्य। और कहा कि मुझे जटिल अमल की अनुमति देता है कि सीमा कुंजी के खिलाफ प्रश्नों और उन रिकॉर्ड है कि वापसी परिणाम के सापेक्ष हैं मेरी चाहत है कि निर्धारित किया है। और यह कि एक बनाता है कई रिश्ते के लिए का उपयोग करते हुए प्राथमिक तालिका में हैश कुंजी, रेंज कुंजी संरचना। तो यह है कि एक तरह से बनाया गया है डायनमो DB में तालिका में। मैं एक हैश को परिभाषित करते हैं और रेंज टी टेबल, मैं कर रहा हूँ कई रिश्ते के लिए एक से एक को परिभाषित। यह एक माता पिता के बच्चे का रिश्ता है। कई के बारे में बात करते हैं कई रिश्तों को। और इस विशेष उदाहरण के लिए, फिर, हम जीएसआई का उपयोग करने के लिए जा रहे हैं। और चलो जुआ खेलने के बारे में बात करते हैं मैं एक दिया उपयोगकर्ता है, जहां परिदृश्य। मैं सभी खेल पता लगाना चाहते हैं कि वह के लिए या में खेल पंजीकृत है। और एक निश्चित खेल के लिए, मैं सभी उपयोगकर्ताओं को खोजने के लिए चाहते हैं। तो मैं कैसे करते हो? मेरे उपयोगकर्ता खेल टेबल, मैं जा रहा हूँ यूजर आईडी की एक हैश कुंजी है और खेल की एक श्रृंखला की कुंजी। तो एक उपयोगकर्ता कई खेल हो सकता है। यह बीच कई रिश्ते के लिए एक से एक है उपयोगकर्ता और वह खेलता है खेल। और फिर जीएसआई पर, मुझे लगता है कि चारों ओर फ्लिप हूँ। मैं इस खेल पर हैश करेंगे और मैं उपयोगकर्ता पर लेकर कर देंगे। मैं सभी प्राप्त करना चाहते हैं तो खेल प्रयोक्ता की, में खेल मैं मुख्य क्वेरी तालिका करेंगे। मैं सभी उपयोगकर्ताओं को प्राप्त करना चाहते हैं कि एक विशेष खेल खेल रहे हैं, मैं जीएसआई क्वेरी। तो आप हम ऐसा करते हैं कि कैसे देखते हैं? आप इन जीएसआई का समर्थन करने के लिए निर्माण मामले का उपयोग, आवेदन, का उपयोग पैटर्न, आवेदन। मैं पर प्रश्न करने की जरूरत है इस आयाम, चलो मुझे उस आयाम पर एक सूचकांक पैदा करते हैं। मैं नहीं करते हैं, तो मुझे परवाह नहीं है। और उपयोग के मामले पर निर्भर करता है, मैं सूचकांक की जरूरत है या मैं नहीं हो सकता है हो सकता है। यह एक साधारण एक कई लोगों के लिए है, प्राथमिक तालिका ठीक है। मैं करने के लिए इनमें से कई क्या करने की जरूरत है कई के लिए, या मैं, लोगों को एक करने की जरूरत है तो शायद मैं क्या ज़रूरत है दूसरी सूचकांक करने के लिए। तो यह सब पर निर्भर करता है मैं क्या करने की कोशिश कर रहा हूँ और मैं पूरा होने की कोशिश कर रहा हूँ। शायद मैं भी खर्च करने के लिए नहीं जा रहा हूँ ज्यादा समय दस्तावेजों के बारे में बात कर रही है। यह शायद एक छोटा सा हो जाता है गहरी हम में जाने की जरूरत है। का एक छोटा सा बात करते हैं के बारे में अमीर क्वेरी अभिव्यक्ति। तो डायनमो DB में हमारे पास बनाने की क्षमता हम प्रक्षेपण भाव क्या कहते हैं। प्रोजेक्शन भाव बस रहे हैं खेतों या मूल्यों उठा आप प्रदर्शित करना चाहते हैं। ठीक है, तो मैं एक चयन करना। मैं डायनमो DB के खिलाफ एक क्वेरी बनाते हैं। और मुझे लगता है, इस शो क्या आप जानते हैं, का कहना है मुझे केवल पाँच सितारा समीक्षा इस विशेष उत्पाद के लिए। तो यह है कि मैं देखना चाहता हूँ सब है। मैं सभी को देखने के लिए नहीं करना चाहते पंक्ति की अन्य विशेषताओं, मैं सिर्फ यह देखना चाहते हैं। यह बस जब एसक्यूएल में की तरह है आप चयन स्टार या मेज से कहते हैं, आप सब कुछ मिलता है। मैं से चुनिंदा नाम का कहना है कि जब मेज, मैं केवल एक विशेषता मिलता है। यह बात का एक ही प्रकार में है डायनमो डीबी या अन्य एनओएसक्यूएल डेटाबेस। फ़िल्टर अभिव्यक्ति के लिए मुझे अनुमति मूल रूप से नीचे सेट परिणाम काटा। तो मैं एक प्रश्न बनाते हैं। क्वेरी 500 आइटम के साथ वापस आ सकते हैं। लेकिन मैं सिर्फ आइटम चाहते हैं कि यह कहते हैं कि एक विशेषता है। ठीक है, तो उन वस्तुओं बाहर फिल्टर जाने कि उस विशेष क्वेरी से मेल नहीं खाते। इसलिए हम फिल्टर भाव है। फ़िल्टर भाव कर सकते हैं किसी भी विशेषता पर चला जा। वे सीमा प्रश्नों पसंद नहीं कर रहे हैं। उठाएँ प्रश्नों अधिक चयनात्मक हैं। फ़िल्टर प्रश्नों जाने के लिए मुझे आवश्यकता पूरे परिणाम तो सेट और मिल मैं नहीं चाहता कि डेटा बाहर उत्कीर्ण। क्यों कि महत्वपूर्ण है? मैं यह सब पढ़ है। एक प्रश्न में, मैं पढ़ने के लिए जा रहा हूँ और यह डेटा के बारे में एक विशाल होने जा रहा है। और फिर मैं जा रहा हूँ मैं क्या जरूरत बाहर उत्कीर्ण। और मैं केवल बाहर नक्काशी कर रहा हूँ, तो एक पंक्तियों की जोड़ी है, तो यह ठीक है। यह तो अक्षम नहीं है। लेकिन मुझे लगता है की एक पूरी ढेर पढ़ रहा हूँ डेटा, बस, एक आइटम बाहर बनाने के लिए तो मैं बेहतर होने जा रहा हूँ एक सीमा क्वेरी का उपयोग बंद, इसे और अधिक चयनात्मक है क्योंकि। यह मुझे का एक बहुत बचाने के लिए हो रहा है पैसा, मुझे लगता है कि पढ़ने के लिए भुगतान करते हैं। जहां से वापस आता है कि परिणाम छोटा हो सकता है कि तार पार, लेकिन मैं पढ़ने के लिए दे रहा हूँ। तो कैसे समझते हैं आप डेटा हो रही है। यही कारण है कि डायनमो DB में बहुत महत्वपूर्ण है। सशर्त भाव, यह क्या है आप आशावादी लॉकिंग बुला सकता है। अद्यतन अगर मौजूद है, या यह मूल्य यदि मैं क्या निर्दिष्ट करने के लिए बराबर है। और मैं एक पर एक समय टिकट है तो रिकॉर्ड, मैं डेटा पढ़ सकता है। मुझे लगता है कि डेटा को बदल सकता है। मैं लिखने जा सकता है कि डेटाबेस के लिए डेटा वापस। किसी रिकॉर्ड बदल गया है, टाइमस्टैम्प परिवर्तित हो सकता है। और कहा कि जिस तरह से मेरी सशर्त अद्यतन अद्यतन कह सकते हैं टाइमस्टैम्प इस के बराबर होती है। या अद्यतन किसी क्योंकि असफल हो जायेगी इस बीच में रिकॉर्ड अपडेट किया गया। यही कारण है कि हम आशावादी लॉकिंग क्या कहते है। ऐसा लगता है कि किसी को मतलब है में आते हैं और इसे बदल सकते हैं, और मुझे लगता है कि यह पता लगाने के लिए जा रहा हूँ मैं वापस जाने के लिए जब लिखने के लिए। और फिर मैं वास्तव में है कि पढ़ सकते हैं डेटा और ओह, वह यह बदल गया है, कहते हैं। मुझे लगता है कि के लिए खाते में करने की जरूरत है। और मैं में डेटा को बदल सकते हैं मेरी रिकॉर्ड और एक और अद्यतन लागू होते हैं। तो अगर आप उन लोगों के वृद्धिशील पकड़ कर सकते हैं समय के बीच होती है कि अपडेट आप डेटा और पढ़ा है कि बार जब आप डेटा लिख ​​सकता है। दर्शकों: और फिल्टर अभिव्यक्ति वास्तव में नहीं है इसका मतलब नंबर या not-- में [आवाज interposing] रिक Houlihan: मैं नहीं होगा इस में बहुत ज्यादा मिलता है। यह एक सुरक्षित कीवर्ड है। पौंड दृश्य एक आरक्षित है डायनमो DB में कीवर्ड। हर डेटाबेस है अपने आप ही सुरक्षित आप का उपयोग नहीं कर सकते हैं संग्रह के लिए नाम है। डायनमो डीबी, आप निर्दिष्ट करते हैं इस के सामने एक पाउंड, आप उन लोगों के ऊपर नामों परिभाषित कर सकते है। यह एक संदर्भित मूल्य है। यह शायद करने के लिए सबसे अच्छा वाक्य रचना नहीं है इस चर्चा के लिए वहाँ है, यह कुछ real-- में हो जाता है क्योंकि मैं बात कर दिया गया होता और अधिक एक गहरे स्तर पर उस बारे में। लेकिन कहने के लिए पर्याप्त, इस सकता है वे views-- जहां स्कैन क्वेरी किया और न ही पाउंड विचारों 10 से अधिक है। यह हाँ, एक संख्यात्मक मूल्य है। यदि आप चाहते हैं, हम इस बारे में बात कर सकते हैं चर्चा के बाद कि। ठीक है, तो हम में हो रही है सर्वोत्तम प्रथाओं में कुछ परिदृश्यों जहां हम बात करने जा रहे हैं यहाँ कुछ क्षुधा के बारे में। डायनमो DB के लिए उपयोग के मामलों में क्या कर रहे हैं। डिजाइन क्या हैं डायनमो DB में पैटर्न। और पहले एक हम करने जा रहे हैं के बारे में बात करते हैं चीजों की इंटरनेट है। मुझे लगता है कि of-- तो हम एक बहुत कुछ मिलता है, it-- 50% से अधिक क्या है इन दिनों इंटरनेट पर यातायात की वास्तव में मशीनों द्वारा उत्पन्न होता है, नहीं मनुष्यों द्वारा स्वचालित प्रक्रियाओं,। मैं इस बात को इस बात का मतलब यह है कि यदि आप अपनी जेब में चारों ओर ले जाने के लिए कितना डाटा कि बात यह है कि वास्तव में आप बिना चारों ओर भेजने के यह जानते हुए भी बिल्कुल आश्चर्यजनक है। आपका स्थान, सूचना कितनी तेजी के बारे में आप जा रहे हैं। आप गूगल मैप्स काम करता है लगता है कि कैसे जब वे आपको बता यातायात क्या है। लाखों रहे हैं, क्योंकि यह और चारों ओर ड्राइविंग के लाखों लोगों को भेज रहे हैं कि फोन के साथ सभी हर समय जगह पर डेटा। चीजों में से एक तो आंकड़ों के इस प्रकार के बारे में उस में आता है, पर नजर रखने के डेटा, लॉग इन करें डेटा, समय श्रृंखला डेटा, यह है आमतौर पर केवल दिलचस्प समय का एक छोटा सा के लिए। उस समय के बाद से, यह है इतनी दिलचस्प नहीं। इसलिए हम ऐसा नहीं करते, के बारे में बात की थी उन तालिकाओं सीमा के बिना हो जाना। यहाँ विचार हो सकता है मैं 24 मिल गया है मेरे गर्म तालिका में घटनाओं के लायक घंटे। और कहा कि गर्म तालिका होने जा रहा है एक बहुत ही उच्च दर पर प्रावधान किया, यह डेटा का एक बहुत ले जा रहा है क्योंकि। यह डेटा का एक बहुत ले जा रहा है और मुझे यह बहुत पढ़ रहा हूँ। मैं ऑपरेशन का एक बहुत कुछ मिल गया कि डेटा के खिलाफ चल रहे प्रश्नों। 24 घंटे के बाद, अरे, तुम मुझे परवाह नहीं है क्या, पता है। तो शायद हर आधी रात मैं रोल एक नए मेज पर मेरी मेज और मैं इस तालिका deprovision। और मैं ले लेंगे आरसीयू के और WCU के नीचे क्योंकि 24 घंटे बाद मैं के रूप में कई नहीं चल रहा हूँ डेटा के विरुद्ध प्रश्नों। तो मैं पैसे बचाने के लिए जा रहा हूँ। और हो सकता है 30 दिनों के बाद मैं नहीं यहां तक ​​कि यह सब के बारे में परवाह करने की जरूरत है। मैं WCU के ले सकता है एक करने के लिए सभी तरह से नीचे, क्योंकि आप जानते हैं, यह क्या हो रहा है कभी नहीं करने के लिए लिखा जा रहा है। डेटा 30 दिन पुरानी है। यह कभी नहीं बदलता। और यह पढ़ पाने के लिए जा लगभग कभी नहीं तो चलो सिर्फ 10 के लिए नीचे है कि आरसीयू ले चलो। और मैं इस पर पैसे की एक टन की बचत कर रहा हूँ डेटा, और केवल मेरे गर्म डेटा के लिए भुगतान। तो यह है कि देखने के लिए महत्वपूर्ण बात है आप एक बार श्रृंखला में जब देखो पर डेटा की मात्रा में आ रहा है। इन रणनीतियों रहे हैं। अब, मैं सिर्फ यह चलो सकता है सभी एक ही मेज पर जाना और सिर्फ इतना है कि तालिका बढ़ता है। अंत में, मैं जा रहा हूँ प्रदर्शन के मुद्दों को देखते हैं। मैं संग्रह करने के लिए शुरू करने के लिए जा रहा हूँ मेज से कि डेटा के कुछ, क्या नहीं। ज्यादा बेहतर करते हैं अपने आवेदन डिजाइन तो अगर आप सही इस तरह से काम कर सकते हैं। तो यह सिर्फ स्वचालित है आवेदन कोड में। आधी रात हर रात में यह तालिका रोल। हो सकता है कि मैं क्या जरूरत है एक रपट है डेटा के 24 घंटे की खिड़की। फिर एक नियमित आधार पर मैं कर रहा हूँ मेज से डेटा बुला रही है। मैं एक साथ यह trimming हूँ क्रॉन नौकरी और मैं इसे डाल रहा हूँ इन अन्य टेबल पर, आप की जरूरत है जो भी हो। एक रोल ओवर काम करता है तो, यह बहुत अच्छा है। यदि नहीं, तो यह ट्रिम। लेकिन गर्म है कि डेटा रखने के लिए दूर अपने ठंडे डेटा से। यह आपको बहुत सारा पैसा बचा सकते हैं और अपनी टेबल अधिक प्रदर्शन कर सकते हैं। तो अगली बात यह है कि हम बात करेंगे के बारे में उत्पाद सूची है। उत्पाद सूची है बहुत आम उपयोग के मामले। यह वास्तव में एक बहुत ही आम पैटर्न है हम चीजों की एक किस्म में देखेंगे कि। आप के लिए, ट्विटर जानते उदाहरण के लिए, एक गर्म कलरव। हर कोई आ रहा है और कि कलरव हथियाने। उत्पाद सूची, मैं एक बिक्री मिला है। मैं एक गर्म बिक्री मिला है। मैं प्रति 70,000 अनुरोध मिला दूसरा एक उत्पाद के लिए आ रहा है मेरे उत्पाद सूची से बाहर का विवरण। हम खुदरा पर यह देखना आपरेशन काफी एक सा है। तो कैसे हम उस के साथ सौदा करते हैं? उस के साथ सौदा करने के लिए कोई रास्ता नहीं है। मेरे सभी उपयोगकर्ताओं को देखना चाहते हैं डेटा के एक ही टुकड़े। वे समवर्ती में आ रहे हैं कर रहे हैं। और वे सभी अनुरोधों को बना रहे हैं डेटा के एक ही टुकड़े के लिए। यह मुझे देता है कि गर्म कुंजी, कि बड़ी लाल हम पसंद नहीं है कि मेरी चार्ट पर पट्टी। और वह यह है की तरह दिखता है। मेरी चाबी अंतरिक्ष में मैं जा रहा हूँ तो बिक्री वस्तुओं में अंकित किया। मैं कहीं भी और कुछ नहीं हो रही है। मैं कैसे इस समस्या को कम करते हैं? खैर, हम कैश के साथ यह कम। कैश, आप स्मृति में मूल रूप से एक डाल डेटाबेस के सामने विभाजन। हम कामयाब रहे हैं [अश्राव्य] कैश, आप कैसे अपने खुद के कैश सेट कर सकते हैं, [सुनाई] कैश [? घ,?] जो आप चाहते हैं। डेटाबेस के सामने है कि ऊपर डाल दिया। और इस तरह आपको लगता है कि डेटा स्टोर कर सकते हैं कि कैश में उन गर्म चाबी से अंतरिक्ष और कैश के माध्यम से पढ़ा। और फिर सबसे अपने पढ़ता इस तरह की तलाश शुरू। मैं इन कैश यहां सभी को हिट हो गया और मैं कुछ भी नहीं यहाँ नीचे चल रहा है डेटाबेस के पीछे बैठी है, क्योंकि कैश और के माध्यम से कभी नहीं आया पढ़ता है। मैं में डेटा को बदलते हैं डेटाबेस, मैं कैश अद्यतन करने के लिए है। हम कुछ का उपयोग कर सकते हैं जैसे कि क्या करना steams। और मुझे लगता है कि यह कैसे काम करता समझाता हूँ। ठीक है, संदेश। ईमेल, हम सभी ईमेल का उपयोग करें। यह एक बहुत अच्छा उदाहरण है। हम संदेश तालिका के कुछ प्रकार मिल गया है। और हम इनबॉक्स और आउटबॉक्स मिला है। यह क्या एसक्यूएल होता है कि इनबॉक्स का निर्माण करने के लिए की तरह देखो। हम किस तरह का एक ही तरह का उपयोग जीएसआई के जीएसआई का उपयोग करने के लिए रणनीति की अपने इनबॉक्स और मेरी आउटबॉक्स के लिए। इसलिए मैं कच्चे संदेशों आ रहा है मेरे संदेश तालिका में। और इस के लिए पहले दृष्टिकोण हो सकता है, ठीक है, कोई समस्या नहीं है, कहते हैं। मैं कच्चे संदेशों मिल गया है। आने वाले संदेशों [सुनाई], संदेश आईडी, यह बहुत अच्छा है। यही कारण है कि अपने अद्वितीय हैश है। मैं दो जीएसआई का बनाने के लिए एक जा रहा हूँ मेरे इनबॉक्स, मेरे आउटबॉक्स के लिए एक के लिए। और पहली बात मैं कोशिश करूँगा मैं अपने हैश कुंजी है कहूँगा है प्राप्तकर्ता होने जा रहा है और मैं आज की तारीख की व्यवस्था करने जा रहा हूँ। ये शानदार है। मैं यहाँ अपना अच्छा दृश्य मिला है। लेकिन एक छोटे से मुद्दे को यहाँ नहीं है। और अगर आप में इस दौड़ में रिलेशनल डेटाबेस के रूप में अच्छी तरह से। वे खड़ी विभाजन बुलाया। आप अपने बड़े डेटा रखना चाहते हैं दूर अपने छोटे से डेटा से। मैं होगा क्योंकि और यही वजह है गुण पाने के लिए आइटम पढ़ा जाना। और मेरे शव यहां सब पर हैं, तो बस कुछ आइटम पढ़ने मेरा शरीर की लंबाई है, तो 256 किलोबाइट प्रत्येक औसत गणित बहुत बदसूरत हो जाता है। इसलिए मुझे लगता है कि दाऊद के इनबॉक्स को पढ़ने के लिए चाहते हैं। दाऊद के इनबॉक्स में 50 आइटम नहीं है। औसत और आकार 256 किलोबाइट है। यहाँ अपने रूपांतरण अनुपात है आरसीयू के लिए चार किलोबाइट है। ठीक है, चलो साथ चलते हैं अंततः लगातार पढ़ता है। मैं अभी भी 1600 आरसीयू के खा रहा हूँ सिर्फ दाऊद के इनबॉक्स को पढ़ने के लिए। आउच। ठीक है, अब चलो लगता है कि एप्लिकेशन कैसे काम करता है के बारे में। मैं एक ईमेल अनुप्रयोग में हूँ और मैं अपने इनबॉक्स में देख रहा हूँ और मैं हर संदेश के शरीर को देखो, नहीं, मैं के सारांश को देख रहा हूँ। मैं केवल हेडर को देख रहा हूँ। तो चलो एक तालिका संरचना का निर्माण करते हैं अधिक है कि ऐसा लग रहा है। तो यहाँ जानकारी है मेरे कार्यप्रवाह की जरूरत है। यह मेरे इनबॉक्स जीएसआई में है। यह तारीख है, प्रेषक, विषय है, और उसके बाद जो अंक संदेश आईडी, वापस संदेशों की मेज पर जहां मैं शरीर प्राप्त कर सकते हैं। खैर, इन रिकॉर्ड आईडी के लिए किया जाएगा। वे वापस करने के लिए बात करेंगे डायनमो डीबी मेज पर आइटम आईडी के। हर सूचकांक हमेशा creates-- हमेशा आइटम है कि of-- भाग के रूप में आईडी सूचकांक के साथ आता है। ठीक है। दर्शकों: यह बताता है कि यह संग्रह किया गया है कहाँ? रिक Houlihan: हाँ, यह बताता है exactly-- कि यह करता है वास्तव में क्या है। यह यहाँ का कहना है कि मेरी फिर से रिकॉर्ड है। और यह मेरे फिर से रिकॉर्ड करने के लिए इसे वापस बात करेंगे। बिल्कुल सही। ठीक है, तो अब मेरे इनबॉक्स है वास्तव में बहुत छोटा होता है। और यह वास्तव में समर्थन करता है एक ईमेल अनुप्रयोग के कार्यप्रवाह। अपने इनबॉक्स तो, मैं क्लिक करें। मैं भी साथ चलते हैं और मैं इस संदेश पर क्लिक करें मैं शरीर मिल जाने की जरूरत है कि जब, है मैं जा रहा हूँ, क्योंकि एक अलग दृष्टिकोण के लिए जाना। आप में से MVC के प्रकार के बारे में सोचना तो अगर ढांचा, मॉडल देखें नियंत्रक। मॉडल शामिल डेटा दृश्य की जरूरत है कि और नियंत्रक के साथ आदान प्रदान। मैं फ्रेम बदलते हैं, जब मैं दृष्टिकोण को बदलने, यह करने के लिए वापस जाने के लिए ठीक है सर्वर और मॉडल फिर से आबाद, उपयोगकर्ता है कि क्या उम्मीद है, क्योंकि। वे विचार बदलते हैं, कि जब है हम वापस डेटाबेस के लिए जा सकते हैं। तो ईमेल, क्लिक करें। मैं शरीर के लिए देख रहा हूँ। राउंड ट्रिप। शरीर को पाने के लिए जाओ। मैं एक बहुत कम डेटा पढ़ें। मैं केवल शव पढ़ रहा हूँ कि वह उन्हें जरूरत है जब डेविड की जरूरत है। और मैं 1600 में जला नहीं कर रहा हूँ आरसीयू के सिर्फ अपने इनबॉक्स को दिखाने के लिए। तो अब इस तरह से है that-- LSI या GSI-- मैं माफी चाहता हूँ कि, जीएसआई, बाहर काम करेगा। हम प्राप्तकर्ता पर हमारे हैश मिल गया है। हम तारीख को रेंज कुंजी मिल गया है। और हम अनुमान गुण मिल गया है हम दृष्टिकोण का समर्थन करने के लिए केवल जरूरत है। हम आउटबॉक्स के लिए कि बारी बारी से। एल्बम की सूची पर हैश। और संक्षेप में, हम है बहुत अच्छी, साफ दृश्य। और यह basically-- हम है यह अच्छा संदेश नहीं है अच्छी तरह से, क्योंकि प्रसार किया जा रहा है कि तालिका यह हैश केवल, बंटी संदेश आईडी है। और हम दो अनुक्रमण करता है कि उस मेज के बंद घूर्णन कर रहे हैं। ठीक है, तो यहाँ विचार करना नहीं है बड़ा डेटा और इस छोटे से डेटा रखने एक साथ। खड़ी विभाजन, उन तालिकाओं का विभाजन। डेटा पढ़ा नहीं है आप के लिए नहीं है। ठीक है, गेमिंग। हम सभी खेलों की तरह। कम से कम मैं तो खेल की तरह है। चीजों में से कुछ तो हम जब साथ सौदा है कि हम सही, जुआ खेलने के बारे में सोच रहे हैं? इन दिनों गेमिंग, विशेष रूप से मोबाइल गेमिंग, सब सोच के बारे में है। और मैं यहाँ एक बारी बारी से करने जा रहा हूँ दूर DynamoDB से थोड़ा सा। मैं में लाने के लिए जा रहा हूँ चर्चा के कुछ आसपास के कुछ अन्य एडब्ल्यूएस प्रौद्योगिकियों। लेकिन जुआ खेलने के बारे में विचार करने के लिए लगता है एपीआई के मामले में, के बारे में हैं कि एपीआई, आम तौर पर, एचटीटीपी और JSON बोल रहा हूँ। यह कैसे मोबाइल गेम्स तरह का उनके वापस सिरों के साथ बातचीत। वे JSON पोस्टिंग करते हैं। वे डेटा मिलता है, और यह सब है, आम तौर पर अच्छा JSON एपीआई में बोल रहा हूँ। दोस्तों को पाने जैसे हालात, मिल लीडरबोर्ड, विनिमय डेटा, उपयोगकर्ता जनित विषय, व्यवस्था करने के लिए वापस धक्का, इन बातों के प्रकार हैं हम क्या करने जा रहे हैं। बाइनरी संपत्ति डेटा, इस डेटा डेटाबेस में नहीं बैठ सकता है। यह एक में बैठ सकता है वस्तु की दुकान, है ना? लेकिन डेटाबेस के लिए जा रहा है सिस्टम बता रहा खत्म होता है, आवेदन कह रही जहां इसे पाने के लिए जाने के लिए। और अनिवार्य रूप से, मल्टीप्लेयर सर्वर, वापस अंत बुनियादी ढांचे, और उच्च के लिए डिज़ाइन किया गया उपलब्धता और scalability। तो ये हम सभी चाहते हैं कि बातें कर रहे हैं जुआ खेलने के बुनियादी ढांचे में दी। तो चलो पर एक नजर डालते हैं क्या लगता है कि जैसे लग रहा है। एक कोर वापस अंत मिला बहुत ही सरल। हम यहाँ के साथ एक प्रणाली मिल गया है एकाधिक उपलब्धता जोनों। लगता being-- के रूप में हम Azs के बारे में बात की थी उनमें से अलग डेटा केंद्रों के रूप में। एक से अधिक डेटा सेंटर AZ प्रति है, लेकिन वह ठीक है, सिर्फ अलग डेटा के रूप में उनमें से लगता है भौगोलिक रूप से कर रहे हैं कि केन्द्रों और गलती को अलग किया। हम एक हैं करने के लिए जा रहे हैं युगल EC2 उदाहरणों। हम करने के लिए जा रहे हैं कुछ वापस अंत सर्वर। आप एक विरासत रहे हैं हो सकता है अगर वास्तुकला, हम कर रहे हैं हम आरडीएस क्या कॉल का उपयोग कर, रिलेशनल डेटाबेस सेवाएं। MSSQL, MySQL हो सकता है, या कुछ इस तरह का। इस तरह से एक बहुत अनुप्रयोगों है आज तैयार कर रहे हैं। खैर, हम साथ जाने के लिए चाहते हो सकता है हम बाहर पैमाने पर जब यह है। हम आगे जाना है और डाल देता हूँ वहाँ ऊपर S3 बाल्टी। और कहा कि S3 बाल्टी, बजाय सेवारत हमारे servers-- से उन वस्तुओं को हम ऐसा कर सकता है। आप अपने सभी बाइनरी डाल अपने सर्वर पर वस्तुओं और आप उन सर्वर का उपयोग कर सकते हैं उदाहरणों कि डेटा सेवा करने के लिए। लेकिन यह बहुत महंगा है। बेहतर करने के लिए जिस तरह से आगे जाने के लिए और है एक S3 बाल्टी में उन वस्तुओं डाल दिया। S3 एक वस्तु खजाने है। इसके लिए विशेष रूप से बनाया गया है चीजों के इन प्रकार की सेवा। और उन ग्राहकों के अनुरोध करते हैं सीधे उन वस्तु बाल्टी से, सर्वर बोझ उतार लेना। तो हम यहाँ बाहर पैमाने पर करने के लिए शुरू कर रहे हैं। अब हम दुनिया भर में सभी उपयोगकर्ताओं के लिए मिला है। मैं उपयोगकर्ताओं को मिला है। मैं स्थानीय सामग्री है की जरूरत है ठीक है, इन उपयोगकर्ताओं के करीब स्थित है? मैं एक S3 बाल्टी बना लिया है मेरे स्रोत भंडार के रूप में। और मैं सामने हूँ के साथ कि CloudFront वितरण। CloudFront एक सीडी और एक सामग्री वितरण प्रसार। असल में यह है कि आप निर्दिष्ट डेटा लेता है और इंटरनेट पर यह सभी कैश उपयोगकर्ताओं को हर जगह हो सकता है तो एक बहुत ही त्वरित प्रतिक्रिया जब वे उन वस्तुओं अनुरोध करते हैं। तो तुम एक विचार मिलता है। आप की तरह इस्तेमाल कर रहे सभी एडब्ल्यूएस के पहलुओं को यहाँ इस करवाने के लिए। और अंत में, हम फेंक एक ऑटो स्केलिंग समूह में। हमारे AC2 उदाहरणों तो हमारे खेल सर्वर की, वे व्यस्त पाने के लिए शुरू के रूप में और व्यस्त और व्यस्त, वे सिर्फ एक और स्पिन करेंगे उदाहरण, एक और उदाहरण स्पिन एक और उदाहरण स्पिन। एडब्ल्यूएस, यह है तकनीक इतनी आप पैरामीटर की अनुमति देता है जो चारों ओर अपने सर्वर विकसित होगा। तो अगर आप सर्वर के एन संख्या हो सकती है किसी भी समय में वहाँ से बाहर। अपने भार दूर हो जाता है और, अगर वे हूँ हटना, संख्या हटना होगा। और लोड वापस आता है, यह लचीलेपन से, वापस बाहर हो जाना होगा। तो यह अच्छा लग रहा है। हम EC2 उदाहरण के एक बहुत कुछ मिल गया। हम में कैश डाल सकते हैं डेटाबेस के सामने, कोशिश करते हैं और डेटाबेस में तेजी लाने के। अगले दबाव बिंदु आम तौर पर लोगों को देखते हैं वे एक का उपयोग कर एक खेल पैमाने पर है रिलेशनल डाटाबेस सिस्टम। भगवान, डेटाबेस प्रदर्शन भयानक है। हम जानते हैं कि कैसे सुधार करते हैं? के डालने की कोशिश करते हैं उस के सामने कैश। खैर, कैश काम नहीं करता खेलों में इतनी महान है, है ना? खेल के लिए, लेखन दर्दनाक है। खेल बहुत भारी लिखने कर रहे हैं। आप कर रहे हैं जब कैश काम नहीं करता आप हमेशा किया है, क्योंकि भारी लिखने कैश अद्यतन करने के लिए मिला है। आप यह है, कैश अद्यतन अप्रासंगिक कैशिंग किया जाना है। यह वास्तव में सिर्फ अतिरिक्त काम है। तो हम यहाँ कहाँ जाना है? तुम एक बड़ी अड़चन मिल गया है वहाँ नीचे डेटाबेस में। और जगह जाने के लिए जाहिर है कि विभाजन के है। विभाजन नहीं है जब तुम क्या करने के लिए आसान संबंधपरक डेटाबेस के साथ काम कर रहे हैं। संबंधपरक डेटाबेस के साथ, आप कर रहे हैं प्रबंधन के लिए जिम्मेदार, प्रभावी ढंग से, कुंजी अंतरिक्ष। तुम एक और एम के बीच उपयोगकर्ताओं कह रहे हैं एन जेड और वहाँ जाने के बीच, यहां जाना। और अगर आप करने जा रहे हैं आवेदन के पार। तो क्या आप के साथ काम कर रहे हैं इस विभाजन डेटा स्रोत। आप व्यवहार की कमी है कि विभाजन अवधि नहीं है। आप के सभी प्रकार मिल गया है आप कर रहे हैं कि messiness वहाँ नीचे की कोशिश कर के साथ काम बाहर स्केलिंग के साथ सौदा करने के लिए और एक बड़ा बुनियादी ढांचे के निर्माण। यह सिर्फ कोई मज़ा नहीं है। दर्शकों: तो आप कह रहे हैं कि स्रोत अंक बढ़ाने को गति प्रक्रिया? रिक Houlihan: बढ़ती? दर्शकों: स्रोत अंक। रिक Houlihan: स्रोत अंक? दर्शकों: जानकारी से, जहां जानकारी से आ रही है? रिक Houlihan: नहीं मैं क्या कह रहा बढ़ती जा रही है डेटा की दुकान में विभाजन की संख्या थ्रूपुट को बेहतर बनाता है। तो यहाँ क्या हो रहा है उपयोगकर्ताओं है यहाँ EC2 उदाहरण में आ रहा है, खैर, मैं एक उपयोगकर्ता की जरूरत है तो कि एम के लिए एक है, मैं यहां से जाना होगा। N से पी करने के लिए, मैं यहाँ से जाना होगा। Z करने के लिए पी से, मैं यहां से जाना होगा। दर्शकों: ठीक है, उन इसलिए उन लोगों के हैं सब अलग-अलग नोड्स में संग्रहीत? रिक Houlihan: हाँ। इन के रूप में सोचो डेटा के विभिन्न साइलो। तो अगर आप ऐसा करने के लिए कर रहे हैं। तुम क्या करने की कोशिश कर रहे हैं यह आप कोशिश कर रहे हैं एक रिलेशनल मंच पर पैमाने पर करने के लिए, यह आप क्या कर रहे है। आप डेटा ले जा रहे हैं और आप इसे नीचे काट रहे हैं। और अगर आप इसे भर में विभाजन के रहे हैं डेटाबेस के कई उदाहरण। और आप सभी प्रबंध कर रहे हैं कि आवेदन स्तर पर। यह कोई मज़ा नहीं है। तो क्या हम जाने के लिए करना चाहते हैं? हम DynamoDB, पूरी तरह से प्रबंधित जाना चाहते हैं, एनओएसक्यूएल डेटा स्टोर, प्रावधान थ्रूपुट। हम माध्यमिक अनुक्रमित का उपयोग करें। यह मूल रूप से HTTP एपीआई और दस्तावेज़ समर्थन शामिल है। तो आपको चिंता करने की जरूरत नहीं है कि विभाजन के किसी भी बारे में। ये सब हम आपके लिए कर रहे हैं। तो अब, इसके बजाय, आप सिर्फ मेज पर लिखें। तालिका विभाजित करने की जरूरत है, कि पर्दे के पीछे क्या होता है। आप पूरी तरह से अछूता रहे एक डेवलपर के रूप में उस से। तो चलो के बारे में बात करते हैं उपयोग के मामलों के कुछ हम जुआ खेलने में, आम में चलने वाले जुआ खेलने के परिदृश्यों, लीडरबोर्ड। तो तुम, उपयोगकर्ताओं में आ रहा है वे कर रहे हैं कि BoardNames पर, इस प्रयोक्ता के लिए स्कोर। हम UserID पर hashing किया जा सकता है और फिर हम खेल पर श्रृंखला है। इसलिए हर यूजर को देखना चाहता है वह खेला है सभी खेल और उसके सभी शीर्ष स्कोर सभी खेल भर में। तो यह है कि अपने निजी लीडरबोर्ड है। अब मैं में जाना चाहता हूँ और मैं get-- करना चाहते हैं इसलिए मैं इन व्यक्तिगत लीडरबोर्ड मिलता है। क्या मैं करना चाहता हूँ मिल जाना है सभी उपयोगकर्ताओं को भर में शीर्ष स्कोर। तो मैं कैसे करते हो? मेरे रिकार्ड पर बंटी है जब UserID, खेल पर लेकर, मैं अच्छी तरह से आगे जाने के लिए जा रहा हूँ और पुनर्गठन, एक जीएसआई बनाने और मुझे लगता है कि डेटा का पुनर्गठन करने जा रहा हूँ। अब मैं पर हैश करने के लिए जा रहा हूँ खेल है जो BoardName। और मैं शीर्ष स्कोर पर लेकर जा रहा हूँ। और अब मैं अलग बाल्टी बना लिया है। मैं एक ही तालिका का उपयोग कर रहा हूँ, एक ही मद डेटा। लेकिन मुझे देता है कि एक बाल्टी पैदा कर रहा हूँ मुझे खेल से शीर्ष स्कोर के एक एकत्रीकरण। और मुझे लगता है कि तालिका क्वेरी कर सकते हैं जानकारी मिलती है कि। इसलिए मुझे लगता है अप करने के लिए कि क्वेरी पैटर्न निर्धारित किया है एक माध्यमिक सूचकांक द्वारा समर्थित हो। अब वे BoardName द्वारा हल किया जा सकता और पर निर्भर करता है, TopScore के अनुसार क्रमबद्ध। आप देख सकते हैं तो, इन प्रकार के होते हैं की आप गेम में मिल मामलों का उपयोग करें। हम जुआ खेलने में मिलता है एक और अच्छा उपयोग के मामले पुरस्कार और जो पुरस्कार जीते है है। और यह एक महान उपयोग मामला है हम विरल अनुक्रमित फोन जहां। विरल अनुक्रमित रहे हैं उत्पन्न करने की क्षमता जरूरी नहीं है कि एक सूचकांक मेज पर हर एक आइटम होते हैं। और क्यों नहीं? क्योंकि जा रहा है कि विशेषता सूचीबद्ध हर आइटम पर मौजूद नहीं है। इस विशेष में तो मामले का उपयोग, मैं कह रहा हूँ, आप क्या, मैं जा रहा हूँ पुरस्कार नामक एक विशेषता बनाने। और मैं हर उपयोगकर्ता देने के लिए जा रहा हूँ कि विशेषता है कि एक पुरस्कार है। उपयोगकर्ता पुरस्कार की जरूरत नहीं है कि कि विशेषता है नहीं जा रहा। इसलिए मुझे लगता है बनाते समय सूचकांक, केवल उपयोगकर्ताओं कि दिखाने के लिए जा रहे हैं सूचकांक में उठ रहे हैं वास्तव में पुरस्कार जीत लिया है कि लोगों को। तो यह है कि सक्षम होने के लिए एक शानदार तरीका है फ़िल्टर्ड अनुक्रमित बनाने के लिए ऐसा नहीं है कि बहुत, बहुत ही चयनात्मक हैं सूचकांक के लिए पूरे टेबल है। तो हम यहाँ समय पर कम हो रही है। मुझे आगे जाना है और छोड़ जा रहा हूँ बाहर और इस परिदृश्य को छोड़। एक छोटा सा बात about-- दर्शकों: मैं जल्दी से एक सवाल पूछ सकता हूँ? एक भारी लिखना है? रिक Houlihan: क्या है? दर्शकों: भारी लिखें। रिक Houlihan: भारी लिखें। मुझे देखने दो। दर्शकों: या कि नहीं है कुछ तुम सिर्फ कर सकते हैं सेकंड के एक मामले में करने के लिए आवाज? रिक Houlihan: हम जाना मतदान परिदृश्य के माध्यम से। इतना खराब नहीं है। तुम लोगों को कुछ ही मिनटों के लिए क्या है? ठीक है। इसलिए हम मतदान के बारे में बात करेंगे। तो वास्तविक समय मतदान, हमारे पास मतदान के लिए आवश्यकताओं। आवश्यकताओं हम अनुमति है कि कर रहे हैं प्रत्येक व्यक्ति को केवल एक बार वोट करने के लिए। हम कोई भी सक्षम होना चाहता हूँ उनके वोट को बदलने के लिए। हम वास्तविक समय एकत्रीकरण चाहते हैं और जनसांख्यिकी के लिए एनालिटिक्स हम हो जा रहे हैं कि साइट पर उपयोगकर्ताओं के लिए दिखा। इस परिदृश्य के बारे में सोचो। हम वास्तविकता का एक बहुत काम वे कर रहे हैं, जहां टीवी से पता चलता है इन चीजों की सही प्रकार से कर रही। तो अगर आप परिदृश्य के बारे में सोच सकते हैं, हम लाखों और लाखों लोगों की है वहाँ की किशोर लड़कियों अपने सेल फोन के साथ और मतदान, और मतदान, और वे जो कर रहे हैं के लिए मतदान सबसे लोकप्रिय हो पाते हैं। तो इनमें से कुछ हैं आवश्यकताओं को हम बाहर चला। और तो पहले ले इस समस्या को सुलझाने में एक का निर्माण करना होगा बहुत ही सरल अनुप्रयोग। इसलिए मैं इस एप्लिकेशन को मिल गया है। मैं वहाँ कुछ मतदाताओं से बाहर है। उन्होंने कहा कि वे मतदान एप्लिकेशन मारा, में आते हैं। मैं कुछ कच्चे वोट तालिका मिल गया है मैं सिर्फ उन वोटों में डंप करेंगे। मैं कुछ सकल होगा वोट तालिका कि मेरी एनालिटिक्स और जनसांख्यिकी करना होगा, और हम वहाँ में यह सब डाल देता हूँ। और यह बहुत अच्छा है। जीवन अच्छा है। जीवन का हम पाते हैं कि बाहर तक अच्छा हमेशा केवल एक या दो नहीं है, एक चुनाव में लोकप्रिय हैं कि लोग। केवल एक या दो चीजें नहीं है लोगों को वास्तव में के बारे में परवाह है। और तुम पर मतदान कर रहे हैं, तो पैमाने पर, मैं कर रहा हूँ अचानक नरक से बाहर टंकण होने जा रहा दो उम्मीदवारों, एक या दो उम्मीदवारों। मदों की एक बहुत ही सीमित संख्या लोग लोकप्रिय हो पाते हैं। यह एक अच्छा डिजाइन पैटर्न नहीं है। यह वास्तव में एक है बहुत बुरा डिजाइन पैटर्न यह बनाता है, क्योंकि वास्तव में क्या हम गर्म चाबियाँ था जिसके बारे में बात की थी। गर्म चाबियाँ हम पसंद नहीं करते कुछ हैं। तो हम कैसे है कि तय करते हैं? और वास्तव में, यह तय करने के लिए रास्ता है उन उम्मीदवार बाल्टी लेने के द्वारा और हम प्रत्येक उम्मीदवार के लिए, हम एक यादृच्छिक मूल्य संलग्न करने के लिए जा रहे हैं, यादृच्छिक हम जानते हैं कि कुछ है, एक और 100 के बीच मूल्य, 100 और 1000 के बीच, या एक और 1000 के बीच, लेकिन कई यादृच्छिक मूल्यों आप करना चाहते हैं उस उम्मीदवार के अंत पर संलग्न। और मैं वास्तव में तो क्या किया है? मैं उम्मीदवार आईडी के रूप में उपयोग कर रहा हूँ कुल वोट करने के लिए बाल्टी, मैं एक यादृच्छिक जोड़ दिया है इस बात का अंत करने के लिए संख्या है, मैं बना लिया है अब 10 बाल्टी, एक सौ बाल्टी, एक हजार बाल्टियों कि मैं भर में वोट कुल हूँ। इसलिए मुझे लगता है, लाखों और लाखों लोगों की है और अभिलेखों का लाखों में आ रहा है इन उम्मीदवारों के लिए, मैं अब से फैल रहा हूँ उम्मीदवार A_1 भर में उन वोट उम्मीदवार A_100 के माध्यम से, क्योंकि एक वोट में आता है हर बार, मैं एक यादृच्छिक पैदा कर रहा हूँ एक और 100 के बीच मूल्य। मैं के अंत पर यह टैकिंग रहा हूँ व्यक्ति के लिए मतदान है कि उम्मीदवार। मुझे लगता है कि बाल्टी में यह डंपिंग कर रहा हूँ। अब पीठ पर, मुझे पता है कि मैं एक सौ बाल्टी मिला है। तो मैं आगे जाना चाहते हैं जब और वोट कुल, मैं उन सभी बाल्टी से पढ़ा। तो मुझे आगे जाना है और जोड़ें। और फिर मैं तितर बितर इकट्ठा करते हैं मैं बाहर जाना है और कहना हे जहां, क्या तुम्हें पता है, इस उम्मीदवार की कुंजी रिक्त स्थान सौ से अधिक बाल्टी है। मैं सभी को इकट्ठा करने के लिए जा रहा हूँ उन सौ बाल्टी से वोट। मैं कुल करने के लिए जा रहा हूँ उन्हें और मैं कहने जा रहा हूँ उम्मीदवार एक अब है एक्स के कुल वोट की गिनती। अब लिखना दोनों क्वेरी और पढ़ें क्वेरी अच्छी तरह से वितरित कर रहे हैं मैं भर में लिख रहा हूँ क्योंकि और मैं चाबी के सैकड़ों भर में पढ़ रहा हूँ। मैं नहीं लिख रहा हूँ और अब एक चाबी भर में पढ़ रहे हैं। तो यह है कि एक महान पैटर्न है। यह वास्तव में शायद एक है सबसे महत्वपूर्ण डिजाइन की एनओएसक्यूएल में बड़े पैमाने के लिए पैटर्न। आप देखते हैं इस प्रकार होगा हर स्वाद में डिजाइन पैटर्न। MongoDB, DynamoDB, यह नहीं है बात नहीं, हम यह सब करने के लिए है। आप काम कर रहे हैं क्योंकि जब उन विशाल एकत्रित साथ आप एक तरह से करने के लिए बाहर निकालने के लिए बाल्टी भर में उन्हें बाहर फैल गया। तो यह आपको लगता है कि जिस तरह से है। ठीक है, तो क्या आप अभी कर रहे हैं आप पढ़ने के लिए बंद कर व्यापार कर रहे है लिखने के scalability के लिए लागत। मेरे पढ़ने की लागत है एक छोटे से अधिक जटिल और मैं एक से पढ़ा जाना है सौ बाल्टी के बजाय एक। लेकिन मैं लिखने में सक्षम हूँ। और मेरे थ्रूपुट, मेरे लिखने थ्रूपुट अविश्वसनीय है। तो यह आम तौर पर एक मूल्यवान है DynamoDB स्केलिंग के लिए तकनीक, या उस बात के लिए किसी भी एनओएसक्यूएल डेटाबेस। इसलिए हम यह पैमाने पर करने के लिए बाहर सोचा। और हमें लगा कि कैसे करने के लिए हमारे गर्म कुंजी को समाप्त। और इस शानदार है। और हम यह अच्छा सिस्टम मिला है। और यह हमें बहुत सही वोटिंग दिया है हम रिकार्ड मतदान डे-धोखा देना पड़ता है। यह DynamoDB में बनाया गया है। हम सशर्त अधिकारों के बारे में बात की थी। एक मतदाता में आता है, कहते हैं मेज पर एक डालने, वे अपने मतदाता पहचान पत्र के साथ डालें वे एक और वोट डालने के लिए प्रयास करते हैं, मैं एक सशर्त लिख भेजें। यह लिखना ही कहो यह अस्तित्व में नहीं है। इसलिए जैसे ही मुझे लगता है कि देखने के रूप में कि वोट की मेज मारा, कोई नहीं होने जा रहा है में अपने वोट डाल करने में सक्षम। और कहा कि शानदार है। और हम incrementing रहे हमारे उम्मीदवार काउंटरों। और हम अपने कर रहे हैं जनसांख्यिकी और यह सब। लेकिन क्या होता है अगर मेरी आवेदन खत्म हो जाता है? अब अचानक वोट के सभी में आ रहे हैं, और मैं वे संसाधित हो रही है पता नहीं है मेरी एनालिटिक्स और जनसांख्यिकी में अब और नहीं। और जब आवेदन ऊपर, कैसे वापस आता है आखिर मैं वोट है क्या जानते हो संसाधित किया गया है और मैं कहाँ शुरू करूँ? तो यह एक वास्तविक समस्या है जब आप है परिदृश्य के इस प्रकार को देखने के लिए शुरू करते हैं। और हम कैसे है कि हल क्या है? हम क्या है के साथ इसे हल हम DynamoDB धाराओं कहते हैं। धाराओं एक समय का आदेश दिया है और हर पहुँच से विभाजित प्रवेश बदलें मेज पर, हर लिखना तालिका के लिए उपयोग। करने के लिए लिखा है कि किसी भी डेटा तालिका धारा पर पता चलता है। यह मूल रूप से एक 24 घंटे कतार में है। आइटम धारा मारा, वे 24 घंटे के लिए रहते हैं। वे कई बार पढ़ा जा सकता है। वितरित होने की गारंटी केवल स्ट्रीम करने के लिए एक बार, बार के एन संख्या में पढ़ा जा सकता है। ताकि हालांकि कई प्रक्रियाओं आप करना चाहते हैं कि डेटा की खपत है, आप इसे उपभोग कर सकते हैं। यह हर अद्यतन दिखाई देंगे। हर लिखेंगे केवल धारा पर एक बार दिखाई देते हैं। तो आपको चिंता करने की जरूरत नहीं है इसे दो बार प्रसंस्करण के बारे में एक ही प्रक्रिया से। इसे सख्ती से प्रति मद का आदेश दिया है। हम समय का कहना है कि जब आदेश दिया है और विभाजित, आप धारा पर विभाजन प्रति देखेंगे। आप क्रम में आइटम्स, अद्यतन देखेंगे। हम गारंटी नहीं कर रहे हैं आप कर रहे हैं कि धारा पर हर लेन-देन को मिल जा आइटम भर के क्रम में। इसलिए धाराओं idempotent हैं। हम सब idempotent इसका मतलब क्या जानते हो? Idempotent आप यह कर सकते हैं इसका मतलब अधिक और अधिक और फिर से अधिक। परिणाम एक ही होने जा रहा है। नदियों, idempotent हैं लेकिन वे होने की जरूरत शुरुआती बिंदु से खेला जाता है, आप चुनते हैं, जहाँ भी समाप्त करने के लिए, या वे परिणाम नहीं होगा एक ही मूल्यों में। MongoDB साथ वही बात। MongoDB एक निर्माण है वे oplog कहते हैं। यह ठीक उसी का निर्माण है। कई एनओएसक्यूएल डेटाबेस इस निर्माण किया है। वे बातें करने के लिए इसका इस्तेमाल करते हैं जैसे प्रतिकृति, जो वास्तव में हम धाराओं के साथ क्या करना है। दर्शकों: शायद एक विधर्म सवाल है, लेकिन आप क्षुधा एक बहुत आगे नीचे करने के बारे में बात करते हैं। नदियों की गारंटी हैं संभवतः नीचे जाना कभी नहीं? रिक Houlihan: हाँ, नदियों नीचे जाना कभी नहीं की गारंटी है। हम बुनियादी सुविधाओं का प्रबंधन पीछे। स्वचालित रूप से नदियों उनके ऑटो स्केलिंग समूह में तैनात। हम एक छोटे माध्यम से जाना होगा क्या होता है के बारे में थोड़ा सा। मुझे लगता है वे नहीं कर रहे हैं नहीं कहना चाहिए नीचे जाना कभी नहीं करने की गारंटी। तत्वों तय कर रहे हैं धारा में प्रकट करने के लिए। और धारा सुलभ हो जाएगा। तो क्या नीचे चला जाता है या वापस आता है ऊपर, कि नीचे होता है। यह ठीक है यह covers--। ठीक है, आप अलग अलग मिलता है तो स्क्रीन बंद दृश्य प्रकार। एक के लिए महत्वपूर्ण हैं कि दृश्य प्रकार प्रोग्रामर आम तौर पर यह क्या था, कर रहे हैं? मैं पुराने दृश्य मिलता है। एक अद्यतन तालिका मारता है, यह हूँ धारा के लिए पुराने दृश्य धक्का इसलिए डेटा संग्रह, या परिवर्तन कर सकते हैं नियंत्रण, परिवर्तन की पहचान, परिवर्तन प्रबंधन। इसे करने के बाद अब क्या है नई छवि, देखने का एक और प्रकार है कि अद्यतन, आप प्राप्त कर सकते हैं। आप पुराने और नए छवियों दोनों प्राप्त कर सकते हैं। हो सकता है कि मैं उन दोनों चाहते हैं। मैं यह क्या था देखना चाहते हैं। मैं यह करने के लिए बदल क्या देखना चाहते हैं। मैं एक अनुपालन प्रकार है प्रक्रिया की कि चलाता है। ऐसा लगता है कि सत्यापित करने के लिए की जरूरत है इन बातों को परिवर्तित करते हैं, वे निश्चित सीमा के भीतर रहे हैं कि या निश्चित मापदंडों के भीतर। और फिर शायद मैं केवल बदल जानते हैं कि क्या करने की जरूरत है। मैं बदल क्या आइटम परवाह नहीं है। मैं पता करने की जरूरत की जरूरत नहीं है क्या बदल जिम्मेदार बताते हैं। मैं सिर्फ इतना है कि पता करने की जरूरत आइटम को छुआ जा रहा है। इसलिए इन विचारों के प्रकार हैं आप धारा बंद मिलता है कि और आप के साथ बातचीत कर सकते हैं। आवेदन कि धारा सेवन करती है, यह इस तरह काम करता है की तरह है। DynamoDB ग्राहक के लिए पूछना तालिकाओं के लिए डेटा धक्का। धाराओं हम शार्ड्स क्या कॉल पर तैनात। शार्ड्स पहुंचा रहे हैं स्वतंत्र रूप से तालिका की। वे पूरी तरह से लाइन नहीं है अपनी मेज के विभाजन के लिए। और यही वजह है वे लाइन क्योंकि क्षमता के कारण, वर्तमान तालिका की क्षमता। वे में तैनात उनके खुद ऑटो स्केलिंग समूह, और वे आधार पर बाहर स्पिन करने के लिए शुरू में आ रहे हैं कि कितने लिखता है पर, कितने reads-- वास्तव में यह है लिखता है। वहाँ कोई reads-- लेकिन कैसे कई में लिखते आ रहे हैं। और फिर पीठ पर अंत में, हम क्या हैं हम एक KCl, या Kinesis ग्राहक पुस्तकालय कहते हैं। Kinesis एक धारा डेटा है अमेज़न से प्रसंस्करण प्रौद्योगिकी। और धाराओं कि पर बनाया गया है। तो अगर आप एक KCL सक्षम उपयोग आवेदन धारा को पढ़ने के लिए। Kinesis ग्राहक पुस्तकालय वास्तव में आप के लिए श्रमिकों का प्रबंधन करता है। और यह भी कुछ करता है दिलचस्प चीजें। यह कुछ तालिकाओं पैदा करेगा अपने DynamoDB टेबलस्थान जो आइटम को ट्रैक करने के लिए संसाधित किया गया है। तो इस तरह से यह करते हैं, तो वापस गिर जाता है यह खत्म हो जाता है और आता है और हो जाता है वापस ऊपर खड़ा था, जहां यह तय कर सकते हैं धारा प्रसंस्करण में यह किया गया था। यही कारण है कि जब बहुत महत्वपूर्ण है आप प्रतिकृति के बारे में बात कर रहे हैं। मैं क्या पता करने की जरूरत डेटा संसाधित किया गया था और क्या डेटा अभी तक संसाधित किया जा चुका है। इसलिए धाराओं के लिए KCL पुस्तकालय होगा आपको लगता है कि कार्यक्षमता का एक बहुत कुछ दे। यह सब गृह व्यवस्था का ख्याल रखता है। यह हर ठीकरा के लिए एक कार्यकर्ता के ऊपर खड़ा है। यह एक प्रशासनिक तालिका बनाता है हर कार्यकर्ता के लिए हर ठीकरा, के लिए। और उन श्रमिकों आग के रूप में, वे उन तालिकाओं को बनाए रखने के इसलिए आप इस रिकॉर्ड को पता है पढ़ सकते हैं और संसाधित किया गया था। और फिर उस तरह की प्रक्रिया है, तो मर जाता है, और ऑनलाइन वापस आता है इसे दूर ले गया जहां यह सही फिर से शुरू कर सकते हैं। इसलिए हम के लिए इस का उपयोग पार क्षेत्र प्रतिकृति। ग्राहकों की बहुत जरूरत है अपने डेटा तालिकाओं के डेटा या भागों को स्थानांतरित आसपास के विभिन्न क्षेत्रों के लिए। नौ क्षेत्रों रहे हैं सारी दुनिया मे़। तो एक need-- मैं वहाँ हो सकता है एशिया में उपयोगकर्ताओं के लिए हो सकता है, उपयोगकर्ताओं संयुक्त राज्य अमेरिका के पूर्वी तट में। वे अलग अलग डेटा है कि स्थानीय स्तर पर वितरित किए जाने की जरूरत है। और हो सकता है एक उपयोगकर्ता से मक्खियों संयुक्त राज्य अमेरिका में एशिया, और मैं नकल करना चाहते हैं उसके साथ अपने डेटा। वह विमान से दूर हो जाता है तो, जब वह है उसके मोबाइल एप्लिकेशन का उपयोग कर एक अच्छा अनुभव है। तुम पार क्षेत्र का उपयोग कर सकते हैं प्रतिकृति पुस्तकालय यह करने के लिए। असल में हम है दो प्रौद्योगिकियों प्रदान की है। एक आप कर सकते हैं एक सांत्वना आवेदन अपने खुद के EC2 के उदाहरण पर खड़े हो जाओ। यह शुद्ध प्रतिकृति चलाता है। और फिर हम आप पुस्तकालय दे दी है। पुस्तकालय आप का निर्माण करने के लिए उपयोग कर सकते हैं अपने खुद के आवेदन अगर आप उस के साथ पागल बातें करना चाहता हूँ data-- फिल्टर, यह का ही हिस्सा दोहराने , डेटा बारी बारी से एक में यह कदम अलग मेज, इतने पर और आगे। तो यह है कि है कि ऐसा लगता है की तरह है। DynamoDB धाराओं हो सकता है हम लैम्ब्डा क्या कॉल द्वारा कार्रवाई की। हम इस घटना के बारे में थोड़ा उल्लेख संचालित आवेदन आर्किटेक्चर। लैम्ब्डा इस बात का एक महत्वपूर्ण घटक है। लैम्ब्डा मांग पर कि आग कोड है एक विशेष घटना के जवाब में। उन घटनाओं में से एक एक हो सकता है धारा पर प्रदर्शित होने का रिकॉर्ड है। एक रिकॉर्ड धारा पर दिखाई देता है, हम इस जावा समारोह फोन करता हूँ। खैर, इस जावास्क्रिप्ट, और लैम्ब्डा है Node.js, जावा, अजगर, का समर्थन करता है और जल्द ही समर्थन करेंगे अन्य भाषाओं के रूप में अच्छी तरह से। और यह शुद्ध कोड है, कहने के लिए पर्याप्त। जावा में लिखने के लिए, आप एक वर्ग को परिभाषित। आप लैम्ब्डा में जार धक्का। और फिर आप जो वर्ग निर्दिष्ट जो घटना के जवाब में फोन करने के लिए। और फिर लैम्ब्डा बुनियादी ढांचे उस के पीछे है कि कोड चलेंगे। यही कारण है कि कोड प्रक्रिया कर सकते हैं धारा बंद रिकॉर्ड। ऐसा लगता है कि यह साथ करना चाहता है कुछ भी कर सकते हैं। इस विशेष उदाहरण में, सब हम कर रहे हैं वास्तव में गुण लॉगिन कर रहा है कर रही है। लेकिन यह सिर्फ कोड है। कोड सही, कुछ भी कर सकता है? तो आपको लगता है कि डेटा को बारी बारी से कर सकते हैं। आप एक व्युत्पन्न दृश्य बना सकते हैं। यह एक दस्तावेज़ संरचना है, आप संरचना समतल कर सकते हैं। आप वैकल्पिक अनुक्रमित बना सकते हैं। सभी प्रकार की बातें आप कर सकते हैं DynamoDB धाराओं के साथ करते हैं। और वास्तव में, कि इस तरह दिखता है। तो अगर आप उन अद्यतन में आ जाओ। वे स्ट्रिंग बंद आ रहे हैं। वे लैम्ब्डा समारोह से पढ़ रहे हैं। वे डेटा घूर्णन कर रहे हैं और व्युत्पन्न तालिकाओं में यह धक्का, परिवर्तन की बाहरी सिस्टम को अधिसूचित, और ElastiCache में डेटा धक्का। हम कैश डाल करने के बारे में बात की थी कि बिक्री के लिए डेटाबेस के सामने परिदृश्य। खैर क्या होता है, तो मैं आइटम वर्णन अद्यतन? खैर, अगर मैं था एक लैम्ब्डा समारोह, उस मेज पर चल रहा है मैं आइटम विवरण को अपडेट करते हैं, तो यह हूँ धारा बंद रिकॉर्ड उठाओ, और यह ElastiCache अपडेट करेंगे नए डेटा के साथ उदाहरण। तो यह है कि एक बहुत की है हम लैम्ब्डा के साथ क्या करना है। यह कनेक्टर्स गोंद कोड है। और यह वास्तव में देता है लांच करने की क्षमता और बहुत जटिल अनुप्रयोगों को चलाने के लिए एक समर्पित सर्वर के बिना वास्तव में अच्छा है, जो बुनियादी ढांचे,। तो चलो के लिए वापस जाओ हमारे वास्तविक समय मतदान वास्तुकला। इस नए और के साथ सुधार किया है हमारी नदियों और KCl आवेदन सक्षम होना चाहिए। एक ही है, हम कर सकते हैं के रूप में पहले चुनाव के किसी भी पैमाने संभाल। हम इस तरह से। हम बिखराव बटोरता बाहर कर रहे हैं कई बाल्टी भर। हम आशावादी लॉकिंग चल रहा है मिल गया है। हम अपने मतदाताओं को रख सकते हैं उनके वोट को बदलने से। वे केवल एक बार मतदान कर सकते हैं। ये शानदार है। वास्तविक समय गलती सहिष्णुता, अब स्केलेबल एकत्रीकरण। बात खत्म हो जाता है, तो यह खुद को पुनः आरंभ करने के लिए जानता है, जहां इसकी वजह यह वापस ऊपर आता है जब हम KCL अनुप्रयोग का उपयोग कर रहे हैं। और फिर हम भी उपयोग कर सकते हैं KCL आवेदन बाहर डेटा पुश करने के लिए अन्य के लिए रेडशिफ़्ट को एप्लिकेशन एनालिटिक्स, या उपयोग लचीला MapReduce को चलाने के लिए बंद वास्तविक समय स्ट्रीमिंग एकत्रित कि डेटा की। इसलिए इन बातों को हम कर रहे हैं ज्यादा के बारे में बात नहीं की है। लेकिन वे अतिरिक्त रहे हैं आया है कि प्रौद्योगिकियों आप देख रहे हैं जब सहन करने के लिए परिदृश्यों के इन प्रकार पर। ठीक है, उस बारे में है, इसलिए DynamoDB धाराओं के साथ एनालिटिक्स। आप DE-धोखा देना जमा कर सकते हैं डेटा, सभी प्रकार के कर अच्छा सामान की, कुल डेटा में स्मृति, उन व्युत्पन्न टेबल बना। यह एक बहुत बड़ी उपयोग मामला है कि ग्राहकों की एक बहुत नेस्टेड ले रही है, के साथ शामिल हैं उन JSON के दस्तावेजों के गुण और अतिरिक्त अनुक्रमणिका बनाने। हम अंत में कर रहे हैं। मेरे साथ सहने के लिए धन्यवाद। तो चलो के बारे में बात करते हैं संदर्भ वास्तुकला। DynamoDB इतनी के बीच में बैठता एडब्ल्यूएस बुनियादी ढांचे की ज्यादा। मूल रूप से आप यह हुक कर सकते हैं कुछ भी करने के लिए आप चाहते हैं। एप्लीकेशन डायनमो शामिल हैं का उपयोग कर बनाया लैम्ब्डा, ElastiCache, CloudSearch, इलास्टिक में बाहर डेटा धक्का MapReduce, DynamoDB से आयात निर्यात S3, वर्कफ़्लोज़ के सभी प्रकार में। लेकिन शायद सबसे अच्छा के बारे में बात करने के लिए बात है, और यह वास्तव में क्या है दिलचस्प है जब हम है घटना संचालित अनुप्रयोगों के बारे में बात करते हैं। इस का एक उदाहरण है एक आंतरिक परियोजना हम वास्तव में कर रहे हैं, जहां है प्रकाशन सर्वेक्षण के परिणामों को इकट्ठा करने के लिए। एक ईमेल कड़ी में तो यह है कि हम वहाँ हूँ, बाहर भेजने एक छोटी सी लिंक कह क्लिक होना यहाँ सर्वेक्षण के लिए प्रतिक्रिया करने के लिए। और जब एक व्यक्ति को क्लिक करता है उस लिंक, क्या होता है वे एक सुरक्षित नीचे खींच रहा है S3 से एचटीएमएल सर्वेक्षण प्रपत्र। कोई सर्वर नहीं है। यह सिर्फ एक S3 वस्तु है। यही कारण है कि फार्म के ऊपर आता है, ब्राउज़र में लोड करता है। यह रीढ़ मिल गया है। यह जटिल जावास्क्रिप्ट मिल गया है कि यह चल रहा है। इसलिए यह बहुत अमीर आवेदन ग्राहक के ब्राउज़र में चल रहा है। उन्होंने कहा कि वे नहीं कर रहे हैं कि पता नहीं है एक वापस अंत सर्वर के साथ बातचीत। इस बिंदु पर, यह सब ब्राउज़र है। वे करने के लिए परिणाम प्रकाशित क्या हम अमेज़न एपीआई गेटवे कहते हैं। एपीआई गेटवे बस एक वेब एपीआई है आप को परिभाषित करने और हुक कर सकते हैं कि जो कुछ भी आप चाहते हैं। इस विशेष मामले में, हम कर रहे हैं एक लैम्ब्डा समारोह को झुका। तो मेरी पोस्ट ऑपरेशन है कोई सर्वर के साथ हो रहा है। असल कि एपीआई गेटवे वहाँ बैठता है। यह मेरे लोग जब तक कुछ भी नहीं लागत ठीक है, यह करने के लिए पोस्टिंग शुरू कर दिया? लैम्ब्डा समारोह सिर्फ वहाँ बैठता है। और यह जब तक मुझे कुछ भी नहीं लागत लोग इसे मारने शुरू। तो अगर आप मात्रा के रूप में देख सकते हैं, आरोपों आते हैं जब बढ़ जाती है, वह है। मैं एक सर्वर 7/24 नहीं चल रहा हूँ। तो मैं फार्म खींच नीचे बाल्टी से बाहर, और मैं एपीआई के माध्यम से पोस्ट लैम्ब्डा समारोह में गेटवे। और फिर लैम्ब्डा समारोह आप जानते हैं, कहते हैं, क्या, मैं कुछ PIIs मिल गया है, कुछ व्यक्तिगत पहचान की जानकारी इन प्रतिक्रियाओं में। मैं उपयोगकर्ताओं से आ रही टिप्पणियों को मिला है। मैं ईमेल पतों को मिल गया है। मैं उपयोगकर्ता नाम मिल गया है। मुझे इस बंद विभाजित करते हैं। मैं कुछ उत्पन्न करने के लिए जा रहा हूँ इस रिकार्ड से बाहर मेटाडाटा। और मैं पुश करने के लिए जा रहा हूँ DynamoDB में मेटाडाटा। और मैं सभी डेटा एन्क्रिप्ट कर सकता है अगर मैं चाहता हूँ और DynamoDB में धक्का। लेकिन यह इस में है, मेरे लिए आसान है आगे एक का कहना है कि जाने के लिए, मामले का उपयोग, मैं कच्चे डेटा पुश करने के लिए जा रहा हूँ एक एन्क्रिप्टेड S3 बाल्टी में। इसलिए मैं S3 सर्वर साइड में बनाया का उपयोग एन्क्रिप्शन और अमेज़न की कुंजी प्रबंधन तो यह है कि सेवा मैं एक कुंजी है एक नियमित अंतराल पर बारी बारी से कर सकते हैं, और मुझे लगता है कि PII डेटा की रक्षा कर सकते हैं इस पूरे कार्यप्रवाह के हिस्से के रूप में। तो मैंने क्या किया है? मैं सिर्फ एक पूरी तैनात किया है आवेदन, और मैं कोई सर्वर है। तो घटना आवेदन संचालित क्या है वास्तुकला आप के लिए करता है। अब आप के बारे में सोचते हैं, तो है- के लिए उपयोग के मामले हम मैं बात कर रहा हूँ अन्य ग्राहकों को दिया है के बारे में इस सटीक वास्तुकला के लिए कौन अलग हटकर बड़े अभियानों, चलाने वाले इस पर विचार कर रही है और मेरे ओह, जा रहे हैं। अब, क्योंकि वे कर सकते मूल रूप से यह वहाँ बाहर धक्का, सिर्फ बैठने के उस अभियान जाने यह वहाँ की शुरूआत है, और जब तक नहीं के बारे में एक अंजीर चिंता करने की ज़रूरत बुनियादी सुविधाओं के लिए किस तरह यह समर्थन करने के लिए वहाँ होने जा रहा है। और फिर जैसे ही के रूप में उस अभियान किया जाता है, यह बुनियादी ढांचे की तरह है बस तुरंत दूर हो जाता है वास्तव में वहाँ क्योंकि कोई बुनियादी सुविधाओं है। यह लैम्ब्डा पर बैठता है कि सिर्फ कोड है। यह DynamoDB में बैठता है कि सिर्फ डेटा है। यह एक अद्भुत तरीका है अनुप्रयोगों का निर्माण करने के लिए। दर्शकों: तो अधिक यह है अल्पकालिक यह होगा की तुलना यह एक वास्तविक सर्वर पर संग्रहीत किया गया तो क्या होगा? रिक Houlihan: बिल्कुल। कि सर्वर उदाहरण क्योंकि एक 7/24 करना होगा। इसके लिए उपलब्ध हो गया है किसी के लिए प्रतिक्रिया करने के लिए। अच्छा अंदाजा लगाए? S3 7/24 उपलब्ध है। S3 हमेशा प्रतिक्रिया करता है। और S3 बहुत, बहुत अच्छा है वस्तुओं की सेवा में। उन वस्तुओं HTML फ़ाइलों हो सकता है, या कर सकते हैं जावास्क्रिप्ट फ़ाइलें, या जो भी आप चाहते हैं। आप बहुत अमीर वेब अनुप्रयोगों चला सकते हैं S3 बाल्टी से बाहर है, और लोग करते हैं। और इसलिए यह विचार है कि यहाँ है दूर रास्ते से मिल रहा है हम इसके बारे में सोचने के लिए प्रयोग किया जाता है। हम सभी में सोचने के लिए इस्तेमाल किया सर्वर और मेजबान टीम की दृष्टि से। यह अब उस बारे में नहीं है। यह कोड के रूप में बुनियादी ढांचे के बारे में है। बादल के लिए कोड की तैनाती और बादल आप के लिए इसे चलाते हैं। और कहा कि एडब्ल्यूएस करने की कोशिश कर रहा है। दर्शकों: बीच में अपने सोने बॉक्स तो एपीआई के गेटवे, सर्वर की तरह नहीं है लेकिन इसके बजाय just-- है रिक Houlihan: आप सोच सकते हैं सर्वर मुखौटा के रूप में यह। सभी यह है कि यह एक HTTP ले लेंगे है अनुरोध करता है और किसी अन्य प्रक्रिया के लिए यह नक्शा। यही कारण है कि यह सब होता है। और इस मामले में, हम मानचित्रण रहे यह एक लैम्ब्डा समारोह के लिए। ठीक है, तो लगता है कि सब मुझे मिल गया है। बहुत बहुत धन्यवाद। मैं इसकी प्रशंसा करता हूँ। मुझे लगता है हम समय के साथ एक छोटा सा चाहते हैं। और उम्मीद है कि तुम लोगों को मिला जानकारी का एक छोटा सा आप आज दूर ले जा सकते हैं। मैं गया था और अगर मैं माफी माँगता हूँ अपने सिर के कुछ खत्म हो, लेकिन का एक अच्छा बहुत कुछ है मौलिक मूलभूत ज्ञान मुझे लगता है कि आप के लिए बहुत मूल्यवान है। तो मुझे रखने के लिए धन्यवाद। [वाहवाही] दर्शकों: [अश्राव्य] आप कह रहे थे जब है आप बात के माध्यम से जाना पड़ा शुरू से अंत तक सही मूल्यों को प्राप्त करने के लिए या एक ही मूल्यों, कैसे होता है मानों [अश्राव्य] यदि बदल जाते हैं। रिक Houlihan: ओह, idempotent? मूल्यों कैसे बदल जाएगा? ठीक है, क्योंकि मैं नहीं चला था कि अगर यह अंत करने के लिए सभी तरह से, उसके बाद मैं बदलाव नहीं जानता कि क्या पिछले मील में किए गए थे। यह नहीं होने जा रहा है मैं क्या देखा के रूप में एक ही डेटा। दर्शकों: ओह, आप तो बस पूरे इनपुट नहीं मिल गया है। रिक Houlihan: ठीक है। आप शुरू से ही जाना है अंत करने के लिए, और फिर यह है संगत स्थिति होने जा रहा। कूल। दर्शकों: आप हमें पता चला तो DynamoDB दस्तावेज़ या कुंजी मान कर सकते हैं। और हम पर समय की एक बहुत खर्च एक हैश और तरीके के साथ कुंजी मान इसके चारों ओर फ्लिप करने के लिए। आप उन तालिकाओं पर जब देखा, वह यह है कि दस्तावेज़ दृष्टिकोण पीछे छोड़ रहा है? रिक Houlihan: मैं नहीं होगा इसके पीछे छोड़ने का कहना है। दर्शकों: वे the-- से अलग हो गए थे रिक Houlihan: दस्तावेज़ के साथ दृष्टिकोण, DynamoDB में दस्तावेज़ प्रकार सिर्फ एक और विशेषता के रूप में के बारे में सोच रहा है। यह होता है कि एक विशेषता है एक श्रेणीबद्ध डेटा संरचना। और फिर प्रश्नों में, आप गुणों का उपयोग कर सकते हैं वस्तु संकेतन का उपयोग कर उन वस्तुओं की। तो मैं एक नेस्टेड पर फ़िल्टर कर सकते हैं JSON दस्तावेज़ की संपत्ति। दर्शकों: तो किसी भी समय मैं एक दस्तावेज़ दृष्टिकोण करते हैं, मैं की तरह tabular-- पर पहुंच सकते हैं दर्शकों: बिल्कुल। दर्शकों: --indexes और आप बस के बारे में बात की बातें। रिक Houlihan: हाँ, अनुक्रमित और वह सब है, जब आप सूचकांक करना चाहते हैं JSON के गुण, हम ऐसा करने के लिए होता है कि जिस तरह से करता है, तो है आप एक JSON वस्तु या किसी दस्तावेज़ डालने डायनमो में, आप धाराओं का प्रयोग करेंगे। धाराओं इनपुट पढ़ा होगा। आप JSON कि मिलता था आपत्ति और आप ठीक कह सकता हूँ, मैं सूचकांक करना चाहते संपत्ति क्या है? आप एक व्युत्पन्न टेबल बनाए। अब जब कि यह अभी जिस तरह काम करता है। हम सूचकांक करने के लिए आप की अनुमति नहीं है सीधे उन गुणों। दर्शकों: अपने दस्तावेजों Tabularizing। रिक Houlihan: वास्तव में, सपाट यह वास्तव में, यह tabularizing। यही कारण है कि आप इसके साथ क्या करना है। दर्शकों: धन्यवाद। रिक Houlihan: हाँ, बिल्कुल, धन्यवाद। दर्शकों: तो यह एक तरह से है मोंगो Redis classifers पूरा करती है। रिक Houlihan: हाँ, यह उस तरह एक बहुत कुछ है। यही कारण है कि इसके लिए एक अच्छा विवरण दिया गया है। कूल।