# स्टोर लोकेशन डेटा ![इस पाठ का स्केच नोट अवलोकन](../../../../../translated_images/lesson-12.ca7f53039712a3ec14ad6474d8445361c84adab643edc53fa6269b77895606bb.hi.jpg) > स्केच नोट [नित्या नरसिम्हन](https://github.com/nitya) द्वारा। बड़े संस्करण के लिए छवि पर क्लिक करें। ## प्री-लेक्चर क्विज़ [प्री-लेक्चर क्विज़](https://black-meadow-040d15503.1.azurestaticapps.net/quiz/23) ## परिचय पिछले पाठ में, आपने सीखा कि GPS सेंसर का उपयोग करके लोकेशन डेटा कैसे कैप्चर किया जाता है। इस डेटा का उपयोग ट्रक की लोकेशन और उसकी यात्रा को विज़ुअलाइज़ करने के लिए किया जा सकता है, लेकिन इसे क्लाउड में IoT सेवा पर भेजने और कहीं स्टोर करने की आवश्यकता होती है। इस पाठ में आप IoT डेटा को स्टोर करने के विभिन्न तरीकों के बारे में जानेंगे और यह भी सीखेंगे कि अपने IoT सेवा से डेटा को सर्वरलेस कोड का उपयोग करके कैसे स्टोर किया जाए। इस पाठ में हम निम्नलिखित विषयों को कवर करेंगे: * [संरचित और असंरचित डेटा](../../../../../3-transport/lessons/2-store-location-data) * [GPS डेटा को IoT हब पर भेजें](../../../../../3-transport/lessons/2-store-location-data) * [हॉट, वॉर्म और कोल्ड पाथ्स](../../../../../3-transport/lessons/2-store-location-data) * [GPS इवेंट्स को सर्वरलेस कोड का उपयोग करके हैंडल करें](../../../../../3-transport/lessons/2-store-location-data) * [Azure स्टोरेज अकाउंट्स](../../../../../3-transport/lessons/2-store-location-data) * [अपने सर्वरलेस कोड को स्टोरेज से कनेक्ट करें](../../../../../3-transport/lessons/2-store-location-data) ## संरचित और असंरचित डेटा कंप्यूटर सिस्टम डेटा के साथ काम करते हैं, और यह डेटा विभिन्न आकारों और प्रकारों में आता है। यह एकल नंबर से लेकर बड़े टेक्स्ट, वीडियो, इमेज और IoT डेटा तक हो सकता है। डेटा को आमतौर पर दो श्रेणियों में विभाजित किया जा सकता है - *संरचित* डेटा और *असंरचित* डेटा। * **संरचित डेटा** वह डेटा है जिसका एक स्पष्ट, कठोर ढांचा होता है जो नहीं बदलता और आमतौर पर डेटा की तालिकाओं और उनके संबंधों से मेल खाता है। उदाहरण के लिए, किसी व्यक्ति का नाम, जन्म तिथि और पता। * **असंरचित डेटा** वह डेटा है जिसका कोई स्पष्ट, कठोर ढांचा नहीं होता, और जो अक्सर बदल सकता है। उदाहरण के लिए, लिखित दस्तावेज़ या स्प्रेडशीट। ✅ शोध करें: क्या आप संरचित और असंरचित डेटा के कुछ अन्य उदाहरण सोच सकते हैं? > 💁 इसके अलावा, *अर्ध-संरचित डेटा* भी होता है, जो संरचित होता है लेकिन निश्चित तालिकाओं में फिट नहीं होता। IoT डेटा को आमतौर पर असंरचित डेटा माना जाता है। कल्पना करें कि आप एक बड़े वाणिज्यिक खेत के वाहनों के बेड़े में IoT डिवाइस जोड़ रहे हैं। आप विभिन्न प्रकार के वाहनों के लिए अलग-अलग डिवाइस का उपयोग करना चाह सकते हैं। उदाहरण के लिए: * खेत के वाहनों जैसे ट्रैक्टर के लिए आप GPS डेटा चाहते हैं ताकि यह सुनिश्चित किया जा सके कि वे सही खेतों पर काम कर रहे हैं। * खाद्य पदार्थों को गोदामों तक ले जाने वाले डिलीवरी ट्रकों के लिए आप GPS डेटा के साथ-साथ गति और त्वरण डेटा चाहते हैं ताकि यह सुनिश्चित किया जा सके कि ड्राइवर सुरक्षित रूप से चला रहा है, और ड्राइव पहचान और स्टार्ट/स्टॉप डेटा ताकि स्थानीय कानूनों के तहत काम के घंटे का पालन हो सके। * रेफ्रिजरेटेड ट्रकों के लिए आप तापमान डेटा चाहते हैं ताकि यह सुनिश्चित किया जा सके कि खाद्य पदार्थ बहुत गर्म या ठंडे न हों और ट्रांज़िट में खराब न हों। यह डेटा लगातार बदल सकता है। उदाहरण के लिए, यदि IoT डिवाइस ट्रक के कैब में है, तो यह डेटा ट्रेलर बदलने के साथ बदल सकता है, जैसे कि केवल रेफ्रिजरेटेड ट्रेलर का उपयोग होने पर तापमान डेटा भेजना। ✅ और कौन सा IoT डेटा कैप्चर किया जा सकता है? ट्रकों द्वारा ले जाने वाले लोड और रखरखाव डेटा के बारे में सोचें। यह डेटा वाहन से वाहन में भिन्न होता है, लेकिन यह सब एक ही IoT सेवा में प्रोसेसिंग के लिए भेजा जाता है। IoT सेवा को इस असंरचित डेटा को प्रोसेस करने में सक्षम होना चाहिए, इसे इस तरह से स्टोर करना चाहिए कि इसे खोजा या विश्लेषण किया जा सके, लेकिन इस डेटा के विभिन्न ढांचों के साथ काम कर सके। ### SQL बनाम NoSQL स्टोरेज डेटाबेस ऐसी सेवाएं हैं जो आपको डेटा स्टोर और क्वेरी करने की अनुमति देती हैं। डेटाबेस दो प्रकार के होते हैं - SQL और NoSQL। #### SQL डेटाबेस पहले डेटाबेस रिलेशनल डेटाबेस मैनेजमेंट सिस्टम (RDBMS) थे, जिन्हें रिलेशनल डेटाबेस भी कहा जाता है। इन्हें SQL डेटाबेस भी कहा जाता है क्योंकि इनमें डेटा जोड़ने, हटाने, अपडेट करने या क्वेरी करने के लिए स्ट्रक्चर्ड क्वेरी लैंग्वेज (SQL) का उपयोग किया जाता है। ये डेटाबेस एक स्कीमा से बने होते हैं - डेटा की एक स्पष्ट रूप से परिभाषित तालिका सेट, जो स्प्रेडशीट के समान होती है। प्रत्येक तालिका में कई नामित कॉलम होते हैं। जब आप डेटा डालते हैं, तो आप तालिका में एक पंक्ति जोड़ते हैं, प्रत्येक कॉलम में मान डालते हैं। यह डेटा को एक बहुत ही कठोर ढांचे में रखता है - हालांकि आप कॉलम खाली छोड़ सकते हैं, यदि आप एक नया कॉलम जोड़ना चाहते हैं तो आपको इसे डेटाबेस में करना होगा और मौजूदा पंक्तियों के लिए मान भरना होगा। ये डेटाबेस रिलेशनल होते हैं - यानी एक तालिका का दूसरे तालिका से संबंध हो सकता है। ![एक रिलेशनल डेटाबेस जिसमें उपयोगकर्ता तालिका का ID खरीदारी तालिका के उपयोगकर्ता ID कॉलम से संबंधित है, और उत्पाद तालिका का ID खरीदारी तालिका के उत्पाद ID से संबंधित है](../../../../../translated_images/sql-database.be160f12bfccefd3ca718a66468c2c4c89c53e5aad4c295324d576da87f9dfdd.hi.png) उदाहरण के लिए, यदि आप उपयोगकर्ता का व्यक्तिगत विवरण एक तालिका में स्टोर करते हैं, तो आपके पास प्रत्येक उपयोगकर्ता के लिए एक प्रकार का आंतरिक अद्वितीय ID होगा जो उपयोगकर्ता का नाम और पता वाली तालिका में उपयोग किया जाता है। यदि आप उस उपयोगकर्ता के बारे में अन्य विवरण स्टोर करना चाहते हैं, जैसे उनकी खरीदारी, तो आप एक नई तालिका में एक कॉलम में उस उपयोगकर्ता का ID रखेंगे। जब आप किसी उपयोगकर्ता को खोजते हैं, तो आप उनके ID का उपयोग करके उनके व्यक्तिगत विवरण एक तालिका से और उनकी खरीदारी दूसरी तालिका से प्राप्त कर सकते हैं। SQL डेटाबेस संरचित डेटा को स्टोर करने और यह सुनिश्चित करने के लिए आदर्श हैं कि डेटा आपके स्कीमा से मेल खाता है। ✅ यदि आपने पहले SQL का उपयोग नहीं किया है, तो [SQL पेज पर Wikipedia](https://wikipedia.org/wiki/SQL) पर इसके बारे में पढ़ें। कुछ प्रसिद्ध SQL डेटाबेस हैं Microsoft SQL Server, MySQL, और PostgreSQL। ✅ शोध करें: इन SQL डेटाबेस और उनकी क्षमताओं के बारे में पढ़ें। #### NoSQL डेटाबेस NoSQL डेटाबेस को NoSQL कहा जाता है क्योंकि इनमें SQL डेटाबेस की तरह कठोर ढांचा नहीं होता। इन्हें डॉक्यूमेंट डेटाबेस भी कहा जाता है क्योंकि ये असंरचित डेटा जैसे डॉक्यूमेंट को स्टोर कर सकते हैं। > 💁 उनके नाम के बावजूद, कुछ NoSQL डेटाबेस आपको SQL का उपयोग करके डेटा क्वेरी करने की अनुमति देते हैं। ![NoSQL डेटाबेस में फोल्डरों में डॉक्यूमेंट](../../../../../translated_images/noqsl-database.62d24ccf5b73f60d35c245a8533f1c7147c0928e955b82cb290b2e184bb434df.hi.png) NoSQL डेटाबेस में पहले से परिभाषित स्कीमा नहीं होता जो डेटा को स्टोर करने के तरीके को सीमित करता है। इसके बजाय, आप किसी भी असंरचित डेटा को डाल सकते हैं, आमतौर पर JSON डॉक्यूमेंट का उपयोग करके। इन डॉक्यूमेंट को फोल्डरों में व्यवस्थित किया जा सकता है, जैसे आपके कंप्यूटर पर फाइलें। प्रत्येक डॉक्यूमेंट में अन्य डॉक्यूमेंट से अलग फील्ड हो सकते हैं - उदाहरण के लिए, यदि आप अपने खेत के वाहनों से IoT डेटा स्टोर कर रहे हैं, तो कुछ में एक्सेलेरोमीटर और गति डेटा के लिए फील्ड हो सकते हैं, जबकि अन्य में ट्रेलर के तापमान के लिए फील्ड हो सकते हैं। यदि आप एक नए ट्रक प्रकार को जोड़ते हैं, जैसे कि ऐसा ट्रक जिसमें उत्पाद के वजन को ट्रैक करने के लिए बिल्ट-इन स्केल हो, तो आपका IoT डिवाइस इस नए फील्ड को जोड़ सकता है और इसे डेटाबेस में बिना किसी बदलाव के स्टोर किया जा सकता है। कुछ प्रसिद्ध NoSQL डेटाबेस हैं Azure CosmosDB, MongoDB, और CouchDB। ✅ शोध करें: इन NoSQL डेटाबेस और उनकी क्षमताओं के बारे में पढ़ें। इस पाठ में, आप IoT डेटा को स्टोर करने के लिए NoSQL स्टोरेज का उपयोग करेंगे। ## GPS डेटा को IoT हब पर भेजें पिछले पाठ में आपने अपने IoT डिवाइस से जुड़े GPS सेंसर से GPS डेटा कैप्चर किया। इस IoT डेटा को क्लाउड में स्टोर करने के लिए, आपको इसे IoT सेवा पर भेजना होगा। एक बार फिर, आप Azure IoT Hub का उपयोग करेंगे, वही IoT क्लाउड सेवा जिसे आपने पिछले प्रोजेक्ट में उपयोग किया था। ![IoT डिवाइस से IoT हब तक GPS टेलीमेट्री भेजना](../../../../../translated_images/gps-telemetry-iot-hub.8115335d51cd2c1285d20e9d1b18cf685e59a8e093e7797291ef173445af6f3d.hi.png) ### कार्य - GPS डेटा को IoT हब पर भेजें 1. फ्री टियर का उपयोग करके एक नया IoT हब बनाएं। > ⚠️ यदि आवश्यक हो, तो [प्रोजेक्ट 2, पाठ 4 से IoT हब बनाने के निर्देश](../../../2-farm/lessons/4-migrate-your-plant-to-the-cloud/README.md#create-an-iot-service-in-the-cloud) देखें। एक नया रिसोर्स ग्रुप बनाना याद रखें। नए रिसोर्स ग्रुप का नाम `gps-sensor` रखें, और नए IoT हब का नाम `gps-sensor` पर आधारित एक अद्वितीय नाम रखें, जैसे `gps-sensor-<आपका नाम>`। > 💁 यदि आपके पास पिछले प्रोजेक्ट से आपका IoT हब अभी भी है, तो आप इसे पुनः उपयोग कर सकते हैं। अन्य सेवाएं बनाते समय इस IoT हब और उसके रिसोर्स ग्रुप का नाम उपयोग करना याद रखें। 1. IoT हब में एक नया डिवाइस जोड़ें। इस डिवाइस का नाम `gps-sensor` रखें। डिवाइस के लिए कनेक्शन स्ट्रिंग प्राप्त करें। 1. अपने डिवाइस कोड को अपडेट करें ताकि GPS डेटा को नए IoT हब पर डिवाइस कनेक्शन स्ट्रिंग का उपयोग करके भेजा जा सके। > ⚠️ यदि आवश्यक हो, तो [प्रोजेक्ट 2, पाठ 4 से अपने डिवाइस को IoT से कनेक्ट करने के निर्देश](../../../2-farm/lessons/4-migrate-your-plant-to-the-cloud/README.md#connect-your-device-to-the-iot-service) देखें। 1. जब आप GPS डेटा भेजें, तो इसे निम्नलिखित JSON प्रारूप में भेजें: ```json { "gps" : { "lat" : , "lon" : } } ``` 1. GPS डेटा हर मिनट भेजें ताकि आप अपने दैनिक संदेश आवंटन का उपयोग न करें। यदि आप Wio Terminal का उपयोग कर रहे हैं, तो सभी आवश्यक लाइब्रेरी जोड़ना याद रखें और NTP सर्वर का उपयोग करके समय सेट करें। आपका कोड यह सुनिश्चित करने की आवश्यकता होगी कि GPS लोकेशन भेजने से पहले उसने सीरियल पोर्ट से सभी डेटा पढ़ लिया है, पिछले पाठ के मौजूदा कोड का उपयोग करके। JSON डॉक्यूमेंट बनाने के लिए निम्नलिखित कोड का उपयोग करें: ```cpp DynamicJsonDocument doc(1024); doc["gps"]["lat"] = gps.location.lat(); doc["gps"]["lon"] = gps.location.lng(); ``` यदि आप वर्चुअल IoT डिवाइस का उपयोग कर रहे हैं, तो वर्चुअल एनवायरनमेंट का उपयोग करके सभी आवश्यक लाइब्रेरी इंस्टॉल करना याद रखें। Raspberry Pi और वर्चुअल IoT डिवाइस दोनों के लिए, पिछले पाठ के मौजूदा कोड का उपयोग करके अक्षांश और देशांतर मान प्राप्त करें, फिर उन्हें सही JSON प्रारूप में निम्नलिखित कोड के साथ भेजें: ```python message_json = { "gps" : { "lat":lat, "lon":lon } } print("Sending telemetry", message_json) message = Message(json.dumps(message_json)) ``` > 💁 आप इस कोड को [code/wio-terminal](../../../../../3-transport/lessons/2-store-location-data/code/wio-terminal), [code/pi](../../../../../3-transport/lessons/2-store-location-data/code/pi) या [code/virtual-device](../../../../../3-transport/lessons/2-store-location-data/code/virtual-device) फ़ोल्डर में पा सकते हैं। अपने डिवाइस कोड को चलाएं और सुनिश्चित करें कि संदेश IoT हब में `az iot hub monitor-events` CLI कमांड का उपयोग करके प्रवाहित हो रहे हैं। ## हॉट, वॉर्म और कोल्ड पाथ्स IoT डिवाइस से क्लाउड तक प्रवाहित डेटा हमेशा रियल टाइम में प्रोसेस नहीं किया जाता। कुछ डेटा को रियल टाइम प्रोसेसिंग की आवश्यकता होती है, अन्य डेटा को थोड़ी देर बाद प्रोसेस किया जा सकता है, और अन्य डेटा को बहुत बाद में प्रोसेस किया जा सकता है। डेटा के प्रवाह को विभिन्न सेवाओं में जो अलग-अलग समय पर डेटा प्रोसेस करती हैं, हॉट, वॉर्म और कोल्ड पाथ्स कहा जाता है। ### हॉट पाथ हॉट पाथ उस डेटा को संदर्भित करता है जिसे रियल टाइम या लगभग रियल टाइम में प्रोसेस करने की आवश्यकता होती है। आप हॉट पाथ डेटा का उपयोग अलर्ट के लिए करेंगे, जैसे कि यह जानना कि कोई वाहन डिपो के पास पहुंच रहा है, या रेफ्रिजरेटेड ट्रक में तापमान बहुत अधिक है। हॉट पाथ डेटा का उपयोग करने के लिए, आपका कोड आपके क्लाउड सेवाओं द्वारा प्राप्त होते ही इवेंट्स पर प्रतिक्रिया देगा। ### वॉर्म पाथ वॉर्म पाथ उस डेटा को संदर्भित करता है जिसे प्राप्त होने के थोड़ी देर बाद प्रोसेस किया जा सकता है, उदाहरण के लिए रिपोर्टिंग या शॉर्ट टर्म एनालिटिक्स के लिए। आप वॉर्म पाथ डेटा का उपयोग दैनिक वाहन माइलेज रिपोर्ट के लिए करेंगे, जो पिछले दिन के डेटा का उपयोग करता है। वॉर्म पाथ डेटा को क्लाउड सेवा द्वारा प्राप्त होते ही किसी प्रकार के स्टोरेज में स्टोर किया जाता है जिसे जल्दी एक्सेस किया जा सकता है। ### कोल्ड पाथ कोल्ड पाथ ऐतिहासिक डेटा को संदर्भित करता है, लंबे समय तक डेटा को स्टोर करना ताकि इसे जब भी आवश्यक हो प्रोसेस किया जा सके। उदाहरण के लिए, आप कोल्ड पाथ का उपयोग वार्षिक वाहन माइलेज रिपोर्ट प्राप्त करने के लिए कर सकते हैं, या ईंधन लागत को कम करने के लिए सबसे अनुकूल मार्ग खोजने के लिए रूट्स पर एनालिटिक्स चला सकते हैं। कोल्ड पाथ डेटा को डेटा वेयरहाउस में स्टोर किया जाता है - बड़े पैमाने पर डेटा स्टोर करने के लिए डिज़ाइन किए गए डेटाबेस जो कभी नहीं बदलते और जिन्हें जल्दी और आसानी से क्वेरी किया जा सकता है। आमतौर पर आपके क्लाउड एप्लिकेशन में एक नियमित जॉब होती है जो हर दिन, सप्ताह, या महीने में एक नियमित समय पर चलती है ताकि डेटा को वॉर्म पाथ स्टोरेज से डेटा वेयरहाउस में स्थानांतरित किया जा सके। ✅ अब तक आपने इन पाठों में जो डेटा कैप्चर किया है, वह हॉट, वॉर्म या कोल्ड पाथ डेटा है? ## GPS इवेंट्स को सर्वरलेस कोड का उपयोग करके हैंडल करें एक बार जब डेटा आपके IoT हब में प्रवाहित हो रहा हो, तो आप कुछ सर्वरलेस कोड लिख सकते हैं जो इवेंट-हब संगत एंडपॉइंट पर प्रकाशित इवेंट्स को सुनता है। यह वॉर्म पाथ है - इस डेटा को स्टोर किया जाएगा और अगले पाठ में यात्रा की रिपोर्टिंग के लिए उपयोग किया जाएगा। ![IoT डिवाइस से IoT हब तक GPS टेलीमेट्री भेजना, फिर इवेंट हब ट्रिगर के माध्यम से Azure Functions तक](../../../../../translated_images/gps-telemetry-iot-hub-functions.24d3fa5592455e9f4e2fe73856b40c3915a292b90263c31d652acfd976cfedd8.hi.png) ### कार्य - GPS इवेंट्स को सर्वरलेस कोड का उपयोग करके हैंडल करें 1. Azure Functions CLI का उपयोग करके एक Azure Functions ऐप बनाएं। Python रनटाइम का उपयोग करें, और इसे `gps-trigger` नामक फ़ोल्डर में बनाएं, और Functions App प्रोजेक्ट नाम के लिए भी यही नाम उपयोग करें। सुनिश्चित करें कि आप इसके लिए एक वर्चुअल एनवायरमेंट बनाएं। > ⚠️ आप [Azure Functions प्रोजेक्ट बनाने के निर्देश, प्रोजेक्ट 2, पाठ 5](../../../2-farm/lessons/5-migrate-application-to-the-cloud/README.md#create-a-serverless-application) का संदर्भ ले सकते हैं यदि आवश्यक हो। 1. IoT हब के इवेंट हब संगत एंडपॉइंट का उपयोग करते हुए एक IoT हब इवेंट ट्रिगर जोड़ें। > ⚠️ यदि आवश्यक हो, तो [प्रोजेक्ट 2, पाठ 5 से IoT हब इवेंट ट्रिगर बनाने के निर्देश](../../../2-farm/lessons/5-migrate-application-to-the-cloud/README.md#create-an-iot-hub-event-trigger) देखें। 1. `local.settings.json` फ़ाइल में इवेंट हब संगत एंडपॉइंट कनेक्शन स्ट्रिंग सेट करें, और उस प्रविष्टि के लिए कुंजी का उपयोग `function.json` फ़ाइल में करें। 1. Azurite ऐप का उपयोग स्थानीय स्टोरेज एमुलेटर के रूप में करें। 1. यह सुनिश्चित करने के लिए अपने फ़ंक्शन ऐप को चलाएं कि यह आपके GPS डिवाइस से इवेंट प्राप्त कर रहा है। सुनिश्चित करें कि आपका IoT डिवाइस भी चल रहा है और GPS डेटा भेज रहा है। ```output Python EventHub trigger processed an event: {"gps": {"lat": 47.73481, "lon": -122.25701}} ``` ## Azure स्टोरेज अकाउंट्स ![Azure स्टोरेज लोगो](../../../../../translated_images/azure-storage-logo.605c0f602c640d482a80f1b35a2629a32d595711b7ab1d7ceea843250615ff32.hi.png) Azure स्टोरेज अकाउंट्स एक सामान्य उद्देश्य स्टोरेज सेवा है जो विभिन्न तरीकों से डेटा संग्रहीत कर सकती है। आप डेटा को ब्लॉब्स, कतारों, तालिकाओं, या फ़ाइलों के रूप में संग्रहीत कर सकते हैं, और यह सब एक साथ कर सकते हैं। ### ब्लॉब स्टोरेज *ब्लॉब* का अर्थ है बाइनरी बड़े ऑब्जेक्ट्स, लेकिन यह किसी भी असंरचित डेटा के लिए उपयोग किया जाने वाला शब्द बन गया है। आप ब्लॉब स्टोरेज में कोई भी डेटा संग्रहीत कर सकते हैं, जैसे IoT डेटा वाले JSON दस्तावेज़, छवि और मूवी फ़ाइलें। ब्लॉब स्टोरेज में *कंटेनर* की अवधारणा होती है, जो नामित बकेट्स होते हैं जिनमें आप डेटा संग्रहीत कर सकते हैं, जो रिलेशनल डेटाबेस में तालिकाओं के समान होते हैं। इन कंटेनरों में एक या अधिक फ़ोल्डर हो सकते हैं जिनमें ब्लॉब्स संग्रहीत होते हैं, और प्रत्येक फ़ोल्डर में अन्य फ़ोल्डर हो सकते हैं, जैसे आपकी कंप्यूटर हार्ड डिस्क पर फ़ाइलें संग्रहीत होती हैं। इस पाठ में आप IoT डेटा संग्रहीत करने के लिए ब्लॉब स्टोरेज का उपयोग करेंगे। ✅ शोध करें: [Azure Blob Storage](https://docs.microsoft.com/azure/storage/blobs/storage-blobs-overview?WT.mc_id=academic-17441-jabenn) के बारे में पढ़ें। ### टेबल स्टोरेज टेबल स्टोरेज आपको अर्ध-संरचित डेटा संग्रहीत करने की अनुमति देता है। टेबल स्टोरेज वास्तव में एक NoSQL डेटाबेस है, इसलिए इसे पहले से परिभाषित तालिकाओं के सेट की आवश्यकता नहीं होती है, लेकिन इसे एक या अधिक तालिकाओं में डेटा संग्रहीत करने के लिए डिज़ाइन किया गया है, प्रत्येक पंक्ति को परिभाषित करने के लिए अद्वितीय कुंजियों के साथ। ✅ शोध करें: [Azure Table Storage](https://docs.microsoft.com/azure/storage/tables/table-storage-overview?WT.mc_id=academic-17441-jabenn) के बारे में पढ़ें। ### कतार स्टोरेज कतार स्टोरेज आपको 64KB तक के संदेशों को एक कतार में संग्रहीत करने की अनुमति देता है। आप संदेशों को कतार के पीछे जोड़ सकते हैं, और उन्हें सामने से पढ़ सकते हैं। जब तक स्टोरेज स्पेस उपलब्ध है, कतारें संदेशों को अनिश्चित काल तक संग्रहीत करती हैं, जिससे संदेशों को लंबे समय तक संग्रहीत किया जा सकता है और आवश्यकता पड़ने पर पढ़ा जा सकता है। उदाहरण के लिए, यदि आप GPS डेटा को संसाधित करने के लिए मासिक कार्य चलाना चाहते हैं, तो आप इसे एक महीने के लिए हर दिन कतार में जोड़ सकते हैं, और फिर महीने के अंत में सभी संदेशों को कतार से संसाधित कर सकते हैं। ✅ शोध करें: [Azure Queue Storage](https://docs.microsoft.com/azure/storage/queues/storage-queues-introduction?WT.mc_id=academic-17441-jabenn) के बारे में पढ़ें। ### फ़ाइल स्टोरेज फ़ाइल स्टोरेज क्लाउड में फ़ाइलों का भंडारण है, और कोई भी ऐप्स या डिवाइस उद्योग मानक प्रोटोकॉल का उपयोग करके कनेक्ट हो सकते हैं। आप फ़ाइल स्टोरेज में फ़ाइलें लिख सकते हैं, फिर इसे अपने पीसी या मैक पर एक ड्राइव के रूप में माउंट कर सकते हैं। ✅ शोध करें: [Azure File Storage](https://docs.microsoft.com/azure/storage/files/storage-files-introduction?WT.mc_id=academic-17441-jabenn) के बारे में पढ़ें। ## अपने सर्वरलेस कोड को स्टोरेज से कनेक्ट करें अब आपके फ़ंक्शन ऐप को IoT हब से संदेशों को संग्रहीत करने के लिए ब्लॉब स्टोरेज से कनेक्ट करने की आवश्यकता है। इसे करने के 2 तरीके हैं: * फ़ंक्शन कोड के अंदर, ब्लॉब स्टोरेज Python SDK का उपयोग करके ब्लॉब्स के रूप में डेटा लिखें। * आउटपुट फ़ंक्शन बाइंडिंग का उपयोग करें ताकि फ़ंक्शन के रिटर्न वैल्यू को ब्लॉब स्टोरेज से बाइंड किया जा सके और ब्लॉब को स्वचालित रूप से सहेजा जा सके। इस पाठ में, आप Python SDK का उपयोग करके देखेंगे कि ब्लॉब स्टोरेज के साथ कैसे इंटरैक्ट किया जाए। ![IoT डिवाइस से GPS टेलीमेट्री को IoT हब, फिर इवेंट हब ट्रिगर के माध्यम से Azure Functions, और फिर ब्लॉब स्टोरेज में सहेजना](../../../../../translated_images/save-telemetry-to-storage-from-functions.ed3b1820980097f143d9f0570072da11304c2bc7906359dfa075b4d9b253c20f.hi.png) डेटा को निम्नलिखित प्रारूप में JSON ब्लॉब के रूप में सहेजा जाएगा: ```json { "device_id": , "timestamp" :