# स्टोर लोकेशन डेटा ![यस पाठको स्केच नोटको अवलोकन](../../../../../translated_images/lesson-12.ca7f53039712a3ec14ad6474d8445361c84adab643edc53fa6269b77895606bb.ne.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) प्रयोग गरिन्छ। SQL डाटाबेसमा स्कीमा हुन्छ - राम्रोसँग परिभाषित तालिकाहरूको सेट, स्प्रेडशीट जस्तै। प्रत्येक तालिकामा धेरै नामित स्तम्भहरू हुन्छन्। जब तपाईं डेटा थप्नुहुन्छ, तपाईं तालिकामा पङ्क्ति थप्नुहुन्छ, प्रत्येक स्तम्भमा मानहरू राख्दै। यसले डेटा कडा संरचनामा राख्छ - यद्यपि तपाईं स्तम्भहरू खाली छोड्न सक्नुहुन्छ, यदि तपाईं नयाँ स्तम्भ थप्न चाहनुहुन्छ भने तपाईंले डाटाबेसमा यो गर्नुपर्छ। ![रिलेशनल डाटाबेसमा तालिकाहरूको सम्बन्ध](../../../../../translated_images/sql-database.be160f12bfccefd3ca718a66468c2c4c89c53e5aad4c295324d576da87f9dfdd.ne.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.ne.png) NoSQL डाटाबेसमा पूर्व-परिभाषित स्कीमा हुँदैन जसले डेटा स्टोर गर्ने तरिकालाई सीमित गर्छ। तपाईं कुनै पनि असंरचित डेटा, सामान्यतया JSON डकुमेन्टहरू, स्टोर गर्न सक्नुहुन्छ। यी डकुमेन्टहरू फोल्डरहरूमा व्यवस्थित गर्न सकिन्छ। प्रत्येक डकुमेन्टमा अन्य डकुमेन्टहरू भन्दा फरक क्षेत्रहरू हुन सक्छ। उदाहरणका लागि, यदि तपाईंले फार्म सवारी साधनहरूको IoT डेटा स्टोर गर्नुभयो भने, केहीमा एक्सेलेरोमिटर र गति डेटा क्षेत्रहरू हुन सक्छ, अन्यमा ट्रेलरको तापक्रम क्षेत्रहरू हुन सक्छ। यदि तपाईंले नयाँ ट्रक प्रकार थप्नुभयो भने, जस्तै तौल ट्र्याक गर्ने स्केलहरू भएको ट्रक, तपाईंको IoT उपकरणले नयाँ क्षेत्र थप्न सक्छ र यो डाटाबेसमा कुनै परिवर्तन बिना स्टोर गर्न सकिन्छ। केही प्रख्यात NoSQL डाटाबेसहरू Azure CosmosDB, MongoDB, र CouchDB हुन्। ✅ अनुसन्धान गर्नुहोस्: यी NoSQL डाटाबेसहरू र तिनीहरूको क्षमताहरूको बारेमा पढ्नुहोस्। यस पाठमा, तपाईं IoT डेटा स्टोर गर्न NoSQL स्टोरेज प्रयोग गर्नुहुनेछ। ## GPS डेटा IoT हबमा पठाउनुहोस् अघिल्लो पाठमा तपाईंले GPS सेन्सरबाट GPS डेटा क्याप्चर गर्नुभयो। यो IoT डेटा क्लाउडमा स्टोर गर्न, तपाईंले यसलाई IoT सेवामा पठाउनुपर्छ। फेरि, तपाईंले Azure IoT Hub प्रयोग गर्नुहुनेछ, जुन तपाईंले अघिल्लो परियोजनामा प्रयोग गर्नुभएको IoT क्लाउड सेवा हो। ![IoT उपकरणबाट IoT हबमा GPS टेलिमेट्री पठाउँदै](../../../../../translated_images/gps-telemetry-iot-hub.8115335d51cd2c1285d20e9d1b18cf685e59a8e093e7797291ef173445af6f3d.ne.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) फोल्डरमा पाउन सक्नुहुन्छ। तपाईंको उपकरणको कोड चलाउनुहोस् र `az iot hub monitor-events` CLI कमाण्ड प्रयोग गरेर IoT हबमा सन्देशहरू प्रवाहित भइरहेको सुनिश्चित गर्नुहोस्। ## हट, वार्म, र कोल्ड पाथहरू IoT उपकरणबाट क्लाउडमा प्रवाहित हुने डेटा सधैं वास्तविक समयमा प्रशोधन गरिँदैन। केही डेटा वास्तविक समयमा प्रशोधन गर्न आवश्यक छ, अन्य डेटा केही समय पछि प्रशोधन गर्न सकिन्छ, र अन्य डेटा धेरै पछि प्रशोधन गर्न सकिन्छ। डेटा विभिन्न सेवाहरूमा प्रवाहित हुने प्रक्रिया, जुन विभिन्न समयमा डेटा प्रशोधन गर्छ, हट, वार्म, र कोल्ड पाथहरू भनेर चिनिन्छ। ### हट पाथ हट पाथले वास्तविक समय वा नजिकको वास्तविक समयमा प्रशोधन गर्न आवश्यक डेटा जनाउँछ। तपाईं हट पाथ डेटा अलर्टहरूको लागि प्रयोग गर्नुहुन्छ, जस्तै कुनै सवारी साधन डिपो नजिक आइरहेको छ वा रेफ्रिजेरेटेड ट्रकको तापक्रम धेरै उच्च छ भन्ने अलर्ट प्राप्त गर्न। हट पाथ डेटा प्रयोग गर्न, तपाईंको कोडले क्लाउड सेवाहरूले प्राप्त गरेपछि तुरुन्तै घटनाहरूमा प्रतिक्रिया दिनुपर्छ। ### वार्म पाथ वार्म पाथले डेटा प्राप्त भएको केही समय पछि प्रशोधन गर्न सकिने डेटा जनाउँछ, उदाहरणका लागि रिपोर्टिङ वा छोटो समयको एनालिटिक्सका लागि। तपाईं वार्म पाथ डेटा दैनिक रिपोर्टहरूको लागि प्रयोग गर्नुहुन्छ, जस्तै अघिल्लो दिनको सवारी साधनको माइलेज डेटा प्रयोग गरेर। वार्म पाथ डेटा क्लाउड सेवाले प्राप्त गरेपछि छिटो पहुँच गर्न सकिने स्टोरेजमा स्टोर गरिन्छ। ### कोल्ड पाथ कोल्ड पाथले ऐतिहासिक डेटा जनाउँछ, दीर्घकालीनका लागि डेटा स्टोर गर्ने र आवश्यक पर्दा प्रशोधन गर्ने। उदाहरणका लागि, तपाईं वार्षिक माइलेज रिपोर्टहरू प्राप्त गर्न वा इन्धन लागत घटाउन सबैभन्दा उपयुक्त मार्ग पत्ता लगाउन कोल्ड पाथ प्रयोग गर्न सक्नुहुन्छ। कोल्ड पाथ डेटा डेटा वेयरहाउसहरूमा स्टोर गरिन्छ - ठूलो मात्रामा डेटा स्टोर गर्न डिजाइन गरिएका डाटाबेसहरू जसले कहिल्यै परिवर्तन गर्दैन र छिटो र सजिलै सोधपुछ गर्न सकिन्छ। तपाईंको क्लाउड एप्लिकेसनमा नियमित रूपमा चल्ने कामले वार्म पाथ स्टोरेजबाट डेटा वेयरहाउसमा डेटा सार्ने काम गर्छ। ✅ तपाईंले यी पाठहरूमा अहिलेसम्म क्याप्चर गर्नुभएको डेटा बारे सोच्नुहोस्। यो हट, वार्म, वा कोल्ड पाथ डेटा हो? ## GPS घटनाहरूलाई सर्वरलेस कोड प्रयोग गरेर ह्यान्डल गर्नुहोस् एकपटक डेटा तपाईंको IoT हबमा प्रवाहित भएपछि, तपाईंले केही सर्वरलेस कोड लेख्न सक्नुहुन्छ जसले इभेन्ट-हब कम्प्याटिबल एन्डप्वाइन्टमा प्रकाशित घटनाहरूको लागि सुन्छ। यो वार्म पाथ हो - यो डेटा स्टोर गरिनेछ र अर्को पाठमा यात्रा रिपोर्टिङका लागि प्रयोग गरिनेछ। ![IoT उपकरणबाट IoT हबमा GPS टेलिमेट्री पठाउँदै, त्यसपछि इभेन्ट हब ट्रिगर मार्फत Azure Functions मा](../../../../../translated_images/gps-telemetry-iot-hub-functions.24d3fa5592455e9f4e2fe73856b40c3915a292b90263c31d652acfd976cfedd8.ne.png) ### कार्य - GPS घटनाहरूलाई सर्वरलेस कोड प्रयोग गरेर ह्यान्डल गर्नुहोस् 1. Azure Functions CLI प्रयोग गरेर Azure Functions एप सिर्जना गर्नुहोस्। Python रनटाइम प्रयोग गर्नुहोस्, र यसलाई `gps-trigger` नामक फोल्डरमा सिर्जना गर्नुहोस्, र Functions App प्रोजेक्ट नाम पनि `gps-trigger` राख्नुहोस्। यसका लागि भर्चुअल वातावरण सिर्जना गर्न सुनिश्चित गर्नुहोस्। > ⚠️ तपाईंले आवश्यक परेमा [Azure Functions Project बनाउनको लागि परियोजना २, पाठ ५ को निर्देशनहरू](../../../2-farm/lessons/5-migrate-application-to-the-cloud/README.md#create-a-serverless-application) हेर्न सक्नुहुन्छ। 1. IoT हबको इभेन्ट हब अनुकूल अन्तर्क्रियात्मक अन्त बिन्दु प्रयोग गर्ने IoT हब इभेन्ट ट्रिगर थप्नुहोस्। > ⚠️ आवश्यक परेमा [प्रोजेक्ट २, पाठ ५ बाट 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.ne.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 हबबाट सन्देशहरू भण्डारण गर्न ब्लब भण्डारणसँग जडान गर्न आवश्यक छ। यो गर्नका लागि दुई तरिकाहरू छन्: * फङ्क्सन कोडभित्र, ब्लब भण्डारणसँग जडान गर्न ब्लब भण्डारणको Python SDK प्रयोग गर्नुहोस् र डाटालाई ब्लबको रूपमा लेख्नुहोस्। * आउटपुट फङ्क्सन बाइन्डिङ प्रयोग गर्नुहोस् र फङ्क्सनको रिटर्न मानलाई ब्लब भण्डारणसँग बाइन्ड गर्नुहोस्, जसले ब्लबलाई स्वचालित रूपमा सुरक्षित गर्दछ। यस पाठमा, तपाईं ब्लब भण्डारणसँग अन्तरक्रिया गर्न Python SDK प्रयोग गर्नुहुनेछ। ![IoT उपकरणबाट GPS टेलिमेट्री IoT हबमा पठाउने, त्यसपछि Azure Functions मा इभेन्ट हब ट्रिगर मार्फत, र अन्ततः ब्लब भण्डारणमा सुरक्षित गर्ने](../../../../../translated_images/save-telemetry-to-storage-from-functions.ed3b1820980097f143d9f0570072da11304c2bc7906359dfa075b4d9b253c20f.ne.png) डाटा निम्न ढाँचामा JSON ब्लबको रूपमा सुरक्षित हुनेछ: ```json { "device_id": , "timestamp" :