# स्टोअर स्थान डेटा ![या धड्याचा स्केच नोट आढावा](../../../../../translated_images/lesson-12.ca7f53039712a3ec14ad6474d8445361c84adab643edc53fa6269b77895606bb.mr.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 डेटाबेस असेही म्हणतात कारण त्यांना Structured Query Language (SQL) वापरून डेटा जोडणे, काढणे, अद्यतनित करणे किंवा क्वेरी करणे शक्य होते. हे डेटाबेस एका स्कीमामध्ये असतात - डेटा टेबल्सचा चांगल्या प्रकारे परिभाषित संच, जो स्प्रेडशीटसारखा असतो. प्रत्येक टेबलमध्ये अनेक नाव असलेले कॉलम असतात. डेटा समाविष्ट करताना, तुम्ही टेबलमध्ये एक पंक्ती जोडता, प्रत्येक कॉलममध्ये मूल्ये ठेवता. हे डेटाला खूप कठोर संरचनेत ठेवते - जरी तुम्ही कॉलम रिकामे ठेवू शकता, तरी नवीन कॉलम जोडायचा असल्यास तुम्हाला डेटाबेसवर हे करावे लागते, विद्यमान पंक्त्यांसाठी मूल्ये भरावी लागतात. हे डेटाबेस रिलेशनल असतात - म्हणजे एका टेबलचा दुसऱ्या टेबलशी संबंध असतो. ![रिलेशनल डेटाबेस ज्यामध्ये युजर टेबलमधील ID खरेदी टेबलमधील युजर ID कॉलमशी संबंधित आहे, आणि प्रॉडक्ट्स टेबलमधील ID खरेदी टेबलमधील प्रॉडक्ट ID शी संबंधित आहे](../../../../../translated_images/sql-database.be160f12bfccefd3ca718a66468c2c4c89c53e5aad4c295324d576da87f9dfdd.mr.png) उदाहरणार्थ, जर तुम्ही युजरचे वैयक्तिक तपशील एका टेबलमध्ये साठवले, तर त्या युजरसाठी काही प्रकारचा अंतर्गत अद्वितीय ID असेल जो त्या युजरचे नाव आणि पत्ता असलेल्या टेबलमधील पंक्तीमध्ये वापरला जाईल. जर तुम्हाला त्या युजरबद्दल इतर तपशील, जसे की त्याच्या खरेदी, दुसऱ्या टेबलमध्ये साठवायचे असतील, तर नवीन टेबलमध्ये त्या युजरच्या ID साठी एक कॉलम असेल. जेव्हा तुम्ही युजर शोधता, तेव्हा तुम्ही त्यांच्या ID चा वापर करून एका टेबलमधून त्यांचे वैयक्तिक तपशील मिळवू शकता आणि दुसऱ्या टेबलमधून त्यांची खरेदी मिळवू शकता. SQL डेटाबेस संरचित डेटा साठवण्यासाठी आणि तुमचा डेटा तुमच्या स्कीमाशी जुळत असल्याची खात्री करण्यासाठी आदर्श आहेत. ✅ जर तुम्ही SQL वापरले नसेल, तर [SQL पृष्ठ Wikipedia वर](https://wikipedia.org/wiki/SQL) वाचून घ्या. मायक्रोसॉफ्ट SQL सर्व्हर, MySQL, आणि PostgreSQL हे काही प्रसिद्ध SQL डेटाबेस आहेत. ✅ संशोधन करा: या SQL डेटाबेस आणि त्यांच्या क्षमतांबद्दल वाचा. #### NoSQL डेटाबेस NoSQL डेटाबेस यांना NoSQL असे म्हणतात कारण त्यांच्याकडे SQL डेटाबेससारखी कठोर संरचना नसते. त्यांना डॉक्युमेंट डेटाबेस असेही म्हणतात कारण ते असंरचित डेटा जसे की दस्तऐवज साठवू शकतात. > 💁 त्यांच्या नावाच्या विरोधात, काही NoSQL डेटाबेस तुम्हाला डेटा क्वेरी करण्यासाठी SQL वापरण्याची परवानगी देतात. ![NoSQL डेटाबेसमधील फोल्डर्समधील दस्तऐवज](../../../../../translated_images/noqsl-database.62d24ccf5b73f60d35c245a8533f1c7147c0928e955b82cb290b2e184bb434df.mr.png) NoSQL डेटाबेसमध्ये पूर्वनिर्धारित स्कीमा नसते जी डेटा साठवण्यावर मर्यादा घालते, त्याऐवजी तुम्ही कोणताही असंरचित डेटा समाविष्ट करू शकता, सामान्यतः JSON दस्तऐवज वापरून. हे दस्तऐवज फोल्डर्समध्ये आयोजित केले जाऊ शकतात, जसे की तुमच्या संगणकावरील फायली. प्रत्येक दस्तऐवज इतर दस्तऐवजांपेक्षा वेगळे फील्ड असू शकते - उदाहरणार्थ, जर तुम्ही तुमच्या शेतातील वाहनांमधून IoT डेटा साठवत असाल, तर काहींमध्ये अॅक्सेलरोमीटर आणि वेग डेटा फील्ड असतील, तर इतरांमध्ये ट्रेलरमधील तापमानासाठी फील्ड असतील. जर तुम्ही नवीन प्रकारचा ट्रक जोडला, जसे की वजन मोजण्यासाठी अंगभूत स्केल असलेला ट्रक, तर तुमचे IoT डिव्हाइस हे नवीन फील्ड जोडू शकते आणि ते डेटाबेसमध्ये कोणत्याही बदलांशिवाय साठवले जाऊ शकते. Azure CosmosDB, MongoDB, आणि CouchDB हे काही प्रसिद्ध NoSQL डेटाबेस आहेत. ✅ संशोधन करा: या NoSQL डेटाबेस आणि त्यांच्या क्षमतांबद्दल वाचा. या धड्यात, तुम्ही IoT डेटा साठवण्यासाठी NoSQL स्टोरेज वापरणार आहात. ## GPS डेटा IoT हबला पाठवा मागील धड्यात तुम्ही तुमच्या IoT डिव्हाइसशी जोडलेल्या GPS सेन्सरमधून GPS डेटा कॅप्चर केला. हा IoT डेटा क्लाउडमध्ये साठवण्यासाठी, तुम्हाला तो IoT सेवेला पाठवावा लागेल. पुन्हा एकदा, तुम्ही Azure IoT Hub वापरणार आहात, जो तुम्ही मागील प्रकल्पात वापरला होता. ![IoT डिव्हाइसवरून IoT हबला GPS टेलिमेट्री पाठवणे](../../../../../translated_images/gps-telemetry-iot-hub.8115335d51cd2c1285d20e9d1b18cf685e59a8e093e7797291ef173445af6f3d.mr.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. तुमचा डिव्हाइस कोड अद्यतनित करा आणि नवीन IoT हबला GPS डेटा पाठवा, मागील टप्प्यातील डिव्हाइस कनेक्शन स्ट्रिंग वापरून. > ⚠️ [प्रकल्प 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) फोल्डरमध्ये सापडेल. तुमचा डिव्हाइस कोड चालवा आणि `az iot hub monitor-events` CLI कमांड वापरून IoT हबमध्ये संदेश प्रवाहित होत आहेत याची खात्री करा. ## हॉट, वॉर्म, आणि कोल्ड पाथ्स IoT डिव्हाइसवरून क्लाउडमध्ये डेटा प्रवाहित होतो, तो नेहमीच रिअल टाइममध्ये प्रक्रिया केला जात नाही. काही डेटा रिअल टाइममध्ये प्रक्रिया करणे आवश्यक असते, तर काही डेटा थोड्या वेळाने प्रक्रिया केला जाऊ शकतो, आणि काही डेटा खूप उशिरा प्रक्रिया केला जाऊ शकतो. डेटा वेगवेगळ्या सेवांमध्ये प्रवाहित होतो, ज्या वेगवेगळ्या वेळेस डेटा प्रक्रिया करतात, याला हॉट, वॉर्म आणि कोल्ड पाथ्स म्हणतात. ### हॉट पाथ हॉट पाथ म्हणजे डेटा जो रिअल टाइम किंवा जवळपास रिअल टाइममध्ये प्रक्रिया करणे आवश्यक असते. तुम्ही हॉट पाथ डेटा अलर्टसाठी वापराल, जसे की वाहन डेपोकडे येत आहे किंवा रेफ्रिजरेटेड ट्रकमधील तापमान खूप जास्त आहे याबद्दल अलर्ट मिळवणे. हॉट पाथ डेटा वापरण्यासाठी, तुमचा कोड तुमच्या क्लाउड सेवांद्वारे प्राप्त झालेल्या इव्हेंट्सना त्वरित प्रतिसाद देईल. ### वॉर्म पाथ वॉर्म पाथ म्हणजे डेटा जो प्राप्त झाल्यानंतर थोड्या वेळाने प्रक्रिया केला जाऊ शकतो, उदाहरणार्थ रिपोर्टिंग किंवा अल्पकालीन विश्लेषणासाठी. तुम्ही वॉर्म पाथ डेटा दररोजच्या वाहनांच्या मायलेज रिपोर्टसाठी वापराल, जो मागील दिवशी गोळा केलेल्या डेटाचा वापर करतो. वॉर्म पाथ डेटा क्लाउड सेवेद्वारे प्राप्त झाल्यानंतर अशा प्रकारच्या स्टोरेजमध्ये साठवला जातो, जो पटकन प्रवेशयोग्य असतो. ### कोल्ड पाथ कोल्ड पाथ म्हणजे ऐतिहासिक डेटा, दीर्घकालीन साठवलेला डेटा जो आवश्यकतेनुसार प्रक्रिया केला जाऊ शकतो. उदाहरणार्थ, तुम्ही कोल्ड पाथ डेटा वार्षिक वाहन मायलेज रिपोर्ट मिळवण्यासाठी किंवा इंधन खर्च कमी करण्यासाठी सर्वात योग्य मार्ग शोधण्यासाठी विश्लेषण चालवण्यासाठी वापरू शकता. कोल्ड पाथ डेटा डेटा वेअरहाऊसेसमध्ये साठवला जातो - मोठ्या प्रमाणात डेटा साठवण्यासाठी डिझाइन केलेले डेटाबेस, जो कधीही बदलत नाही आणि पटकन क्वेरी केला जाऊ शकतो. तुमच्या क्लाउड अॅप्लिकेशनमध्ये नियमित वेळेवर, दररोज, आठवड्याला किंवा महिन्याला वॉर्म पाथ स्टोरेजमधून डेटा डेटा वेअरहाऊसमध्ये हलवण्यासाठी नियमित जॉब चालवला जातो. ✅ या धड्यांमध्ये तुम्ही आतापर्यंत कॅप्चर केलेल्या डेटाचा विचार करा. तो हॉट, वॉर्म किंवा कोल्ड पाथ डेटा आहे का? ## सर्व्हरलेस कोड वापरून GPS इव्हेंट्स हाताळा एकदा डेटा तुमच्या IoT हबमध्ये प्रवाहित होऊ लागला की, तुम्ही काही सर्व्हरलेस कोड लिहू शकता जो इव्हेंट-हब सुसंगत एंडपॉइंटवर प्रकाशित झालेल्या इव्हेंट्ससाठी ऐकतो. हा वॉर्म पाथ आहे - हा डेटा साठवला जाईल आणि पुढील धड्यात प्रवासाच्या रिपोर्टिंगसाठी वापरला जाईल. ![IoT डिव्हाइसवरून IoT हबला GPS टेलिमेट्री पाठवणे, नंतर इव्हेंट हब ट्रिगरद्वारे Azure Functions कडे](../../../../../translated_images/gps-telemetry-iot-hub-functions.24d3fa5592455e9f4e2fe73856b40c3915a292b90263c31d652acfd976cfedd8.mr.png) ### कार्य - सर्व्हरलेस कोड वापरून GPS इव्हेंट्स हाताळा 1. Azure Functions CLI वापरून Azure Functions अॅप तयार करा. Python रनटाइम वापरा, आणि `gps-trigger` नावाच्या फोल्डरमध्ये तयार करा, आणि Functions App प्रकल्पाचे नाव देखील `gps-trigger` ठेवा. यासाठी व्हर्च्युअल वातावरण तयार करण्याचे लक्षात ठेवा. > ⚠️ तुम्ही [Azure Functions प्रोजेक्ट तयार करण्याच्या सूचना प्रोजेक्ट 2, धडा 5](../../../2-farm/lessons/5-migrate-application-to-the-cloud/README.md#create-a-serverless-application) येथे पाहू शकता, जर आवश्यक असेल. 1. IoT Hub च्या Event Hub सुसंगत endpoint वापरणारा IoT Hub इव्हेंट ट्रिगर जोडा. > ⚠️ गरज असल्यास [प्रोजेक्ट 2, धडा 5 मधील IoT Hub इव्हेंट ट्रिगर तयार करण्याच्या सूचना](../../../2-farm/lessons/5-migrate-application-to-the-cloud/README.md#create-an-iot-hub-event-trigger) पाहू शकता. 1. `local.settings.json` फाइलमध्ये Event Hub सुसंगत endpoint कनेक्शन स्ट्रिंग सेट करा आणि त्या एंट्रीसाठी की `function.json` फाइलमध्ये वापरा. 1. Azurite अॅप स्थानिक स्टोरेज एम्युलेटर म्हणून वापरा. 1. तुमचे functions app चालवा आणि खात्री करा की ते तुमच्या GPS डिव्हाइसकडून इव्हेंट्स प्राप्त करत आहे. तुमचे IoT डिव्हाइस चालू आहे आणि GPS डेटा पाठवत आहे याची खात्री करा. ```output Python EventHub trigger processed an event: {"gps": {"lat": 47.73481, "lon": -122.25701}} ``` ## Azure Storage Accounts ![Azure Storage लोगो](../../../../../translated_images/azure-storage-logo.605c0f602c640d482a80f1b35a2629a32d595711b7ab1d7ceea843250615ff32.mr.png) Azure Storage Accounts ही एक सामान्य उद्देशाची स्टोरेज सेवा आहे जी विविध प्रकारे डेटा संग्रहित करू शकते. तुम्ही डेटा blobs, queues, tables किंवा files म्हणून संग्रहित करू शकता, आणि हे सर्व एकाच वेळी करू शकता. ### Blob storage *Blob* म्हणजे binary large objects, परंतु हे कोणत्याही असंरचित डेटासाठी वापरले जाणारे शब्द बनले आहे. तुम्ही blob storage मध्ये कोणताही डेटा संग्रहित करू शकता, जसे की IoT डेटा असलेले JSON दस्तऐवज, प्रतिमा आणि चित्रपट फाइल्स. Blob storage मध्ये *containers* ही संकल्पना असते, ज्याला buckets म्हणतात, ज्यामध्ये तुम्ही डेटा संग्रहित करू शकता, relational database मधील tables प्रमाणे. या containers मध्ये एक किंवा अधिक फोल्डर्स असू शकतात ज्यामध्ये blobs संग्रहित केले जातात, आणि प्रत्येक फोल्डरमध्ये इतर फोल्डर्स असू शकतात, जसे की तुमच्या संगणकाच्या हार्ड डिस्कवर फाइल्स संग्रहित केल्या जातात. या धड्यात तुम्ही IoT डेटा संग्रहित करण्यासाठी blob storage वापरणार आहात. ✅ संशोधन करा: [Azure Blob Storage](https://docs.microsoft.com/azure/storage/blobs/storage-blobs-overview?WT.mc_id=academic-17441-jabenn) बद्दल वाचा. ### Table storage Table storage तुम्हाला अर्ध-संरचित डेटा संग्रहित करण्याची परवानगी देते. Table storage प्रत्यक्षात एक NoSQL डेटाबेस आहे, त्यामुळे यासाठी आधीच परिभाषित केलेल्या tables ची आवश्यकता नसते, परंतु हे डेटा एक किंवा अधिक tables मध्ये संग्रहित करण्यासाठी डिझाइन केलेले आहे, प्रत्येक ओळ परिभाषित करण्यासाठी unique keys सह. ✅ संशोधन करा: [Azure Table Storage](https://docs.microsoft.com/azure/storage/tables/table-storage-overview?WT.mc_id=academic-17441-jabenn) बद्दल वाचा. ### Queue storage Queue storage तुम्हाला 64KB पर्यंत आकाराचे संदेश एका queue मध्ये संग्रहित करण्याची परवानगी देते. तुम्ही संदेश queue च्या मागील बाजूस जोडू शकता आणि ते पुढील बाजूस वाचू शकता. Queue मध्ये संदेश अनिश्चित काळासाठी संग्रहित केले जातात जोपर्यंत स्टोरेज स्पेस उपलब्ध आहे, त्यामुळे संदेश दीर्घकालीन संग्रहित करण्याची परवानगी मिळते आणि आवश्यकतेनुसार वाचले जाऊ शकते. उदाहरणार्थ, जर तुम्हाला GPS डेटा प्रक्रिया करण्यासाठी मासिक काम चालवायचे असेल तर तुम्ही ते दररोज एका महिन्यासाठी queue मध्ये जोडू शकता आणि नंतर महिन्याच्या शेवटी queue मधून सर्व संदेश प्रक्रिया करू शकता. ✅ संशोधन करा: [Azure Queue Storage](https://docs.microsoft.com/azure/storage/queues/storage-queues-introduction?WT.mc_id=academic-17441-jabenn) बद्दल वाचा. ### File storage File storage म्हणजे क्लाउडमध्ये फाइल्स संग्रहित करणे, आणि कोणतेही अॅप्स किंवा डिव्हाइस industry standard protocols वापरून कनेक्ट होऊ शकतात. तुम्ही फाइल्स file storage मध्ये लिहू शकता, आणि नंतर तुमच्या PC किंवा Mac वर ड्राइव्ह म्हणून mount करू शकता. ✅ संशोधन करा: [Azure File Storage](https://docs.microsoft.com/azure/storage/files/storage-files-introduction?WT.mc_id=academic-17441-jabenn) बद्दल वाचा. ## तुमच्या serverless कोडला स्टोरेजशी कनेक्ट करा तुमच्या function app ला आता IoT Hub मधून संदेश blob storage मध्ये संग्रहित करण्यासाठी कनेक्ट करणे आवश्यक आहे. हे करण्याचे 2 मार्ग आहेत: * function कोडमध्ये, blob storage कनेक्ट करण्यासाठी blob storage Python SDK वापरा आणि डेटा blobs म्हणून लिहा. * output function binding वापरा ज्यामुळे function च्या return value ला blob storage शी bind केले जाईल आणि blob आपोआप संग्रहित होईल. या धड्यात, तुम्ही blob storage शी संवाद साधण्यासाठी Python SDK वापरणार आहात. ![IoT डिव्हाइसकडून GPS टेलीमेट्री IoT Hub मध्ये पाठवणे, नंतर Azure Functions मध्ये event hub ट्रिगरद्वारे, आणि नंतर blob storage मध्ये संग्रहित करणे](../../../../../translated_images/save-telemetry-to-storage-from-functions.ed3b1820980097f143d9f0570072da11304c2bc7906359dfa075b4d9b253c20f.mr.png) डेटा खालील स्वरूपात JSON blob म्हणून संग्रहित केला जाईल: ```json { "device_id": , "timestamp" :