# സ്ഥലം വിവരങ്ങൾ സംഭരിക്കുക ![ഈ പാഠത്തിന്റെ സ്കെച്ച്നോട്ട് അവലോകനം](../../../../../translated_images/ml/lesson-12.ca7f53039712a3ec.webp) > സ്കെച്ച്നോട് [നിത്യ നരസ്പേഹൻ](https://github.com/nitya) എഴുതിയതാണ്. കൂടുതൽ വലുതായ വർഗ്ഗം കാണാൻ ചിത്രം ക്ലിക്കുചെയ്യുക. ## പ്രീ-ലക്ചർ ക്വിസ് [പ്രീ-ലക്ചർ ക്വിസ്](https://black-meadow-040d15503.1.azurestaticapps.net/quiz/23) ## പരിചയം അവസാന പാഠത്തിൽ, നിങ്ങൾ ജിപിഎസ് സെൻസർ ഉപയോഗിച്ച് സ്ഥലം വിവരങ്ങൾ എടുക്കുന്നത് പഠിച്ചു. ഭക്ഷണം നിറച്ച ഒരു ട്രക്കിൻ്റെ സ്ഥലം, അതിന്റെ യാത്ര എന്നിവ ഭാവ്യ രൂപത്തിൽ കാണിക്കാൻ ഈ ഡാറ്റ ക്ലൗഡിലെ ഒരു ഐഒടി സർവീസിലേക്ക് അയച്ച് അവിടെ സംഭരിച്ചു വെക്കേണ്ടതുണ്ട്. ഈ പാഠത്തിൽ, ഐഒടി ഡാറ്റ സംഭരിക്കുന്ന വിവിധ മാർഗ്ഗങ്ങൾ നിങ്ങൾക്കു പഠിപ്പിക്കും, സെർവർലെസ് കോഡ് ഉപയോഗിച്ച് ഐഒടി സർവീസിൽ നിന്നുള്ള ഡാറ്റ എങ്ങനെ സംഭരിക്കാമെന്ന് പഠിക്കും. ഈ പാഠത്തിൽ നാം ചർച്ച ചെയ്യുന്നതൊക്കെ: * [സംരചിതവും അസംരചിതവുമായ ഡാറ്റ](../../../../../3-transport/lessons/2-store-location-data) * [ഐഒടി ഹബിലേക്ക് ജിപിഎസ് ഡാറ്റ അയക്കുക](../../../../../3-transport/lessons/2-store-location-data) * [ഹോട്ട്, വാം, കൊൾഡ് പാത്തുകൾ](../../../../../3-transport/lessons/2-store-location-data) * [സെർവർലെസ് കോഡ് ഉപയോഗിച്ച് ജിപിഎസ് ഇവന്റുകൾ കൈകാര്യം ചെയ്യുക](../../../../../3-transport/lessons/2-store-location-data) * [ആസ്യൂർ സ്റ്റോറേജ് അക്കൗണ്ടുകൾ](../../../../../3-transport/lessons/2-store-location-data) * [നിങ്ങളുടെ സെർവർലെസ് കോഡ് സ്റ്റോറേജുമായി കണക്‌ടുചെയ്യുക](../../../../../3-transport/lessons/2-store-location-data) ## സംരചിതവും അസംരചിതവുമായ ഡാറ്റ കമ്പ്യൂട്ടർ സിസ്റ്റങ്ങൾ ഡാറ്റ കൈകാര്യം ചെയ്യുന്നു, ഈ ഡാറ്റ വിവിധ രൂപങ്ങളിലായി ലഭ്യമാണ്. ഒരേ നമ്പറുകളായിരിക്കാം, വലുതായ വാക്കുകൾ, വീഡിയോകൾ, ചിത്രങ്ങൾ, ഒപ്പം ഐഒടി ഡാറ്റയും. സാധാരണയായി ഡാറ്റ രണ്ട് വിഭാഗങ്ങളായി തിരിയപ്പെടുന്നു - *സംരചിത* ഡാറ്റയും *അസംരചിത* ഡാറ്റയും. * **സംരചിത ഡാറ്റ** എന്ന് പറയുന്നത് നന്നായി നിർവചിച്ചും, കഠിനമായ ഘടനയുള്ളതും, സാധാരണയായി ഡാറ്റയുടെ പട്ടികകളിലേക്ക് മാപ്പ് ചെയ്യുന്ന ഡാറ്റയാണ്. ഉദാഹരണമായി, ഒരാളുടെ പേര്, ജനനത്തിയതി, വിലാസം എന്നിവ ഉൾക്കൊള്ളുന്നു. * **അസംരചിത ഡാറ്റ** എന്ന് പറയുന്നത് നിശ്ചിത ഘടനയില്ലാത്ത, ഒരുപാട് മാറുന്ന ഘടനയുള്ള ഡാറ്റയാണ്. ഉദാഹരണമായി, എഴുത്തുകൊണ്ടുള്ള രേഖകൾ അല്ലെങ്കിൽ സ്പ്രെഡ്ഷീറ്റുകൾ. ✅ കുറച്ച് ഗവേഷണം ചെയ്യൂ: നിങ്ങൾക്ക് മറ്റു സംരചിതവും അസംരചിതവുമായ ഡാറ്റയുടെ ഉദാഹരണങ്ങൾ എന്തെന്തൊക്കെയാണെന്ന് ചിന്തിക്കൂ? > 💁 അർദ്ധസംരചിത ഡാറ്റയും ഉണ്ട്, അത് ഘടനയുള്ളതാണ്, പക്ഷേ നിശ്ചിത പട്ടികകളിൽ ഉൾപ്പെടുന്നില്ല ഐഒടി ഡാറ്റ സാധാരണയായി അസംരചിത ഡാറ്റയായി കണക്കാക്കുന്നു. ഗവൃഹ കർഷക തോട്ടത്തിന് വലിയ കാറുകൂട്ടിൽ ഐഒടി ഉപകരണങ്ങൾ ചേർക്കുന്നുവെന്ന് കൽപ്പന ചെയ്യുക. വ്യത്യസ്ത വാഹനങ്ങളിലാകും വ്യത്യസ്ത ഉപകരണങ്ങൾ ഉപയോഗിക്കാൻ ആഗ്രഹിക്കുക. ഉദാഹരണത്തിന്: * ട്രാക്ടറുകൾ പോലുള്ള കർഷക വാഹനങ്ങൾക്ക് ശരിയായ നിലമേഖലയിൽ പ്രവർത്തിക്കുന്നുണ്ടെന്ന് ഉറപ്പുവരുത്താൻ ജിപിഎസ് ഡാറ്റ വേണം * ഭക്ഷണം വെയർഹൗസിലേക്ക് കൊണ്ടുപോകുന്ന ഡെലിവറി ട്രക്കുകൾക്ക് ജിപിഎസ് ഡാറ്റ കൂടാതെ വേഗതയും ആക്സിലറേഷൻ ഡാറ്റയും വേണം; സഞ്ചാര യാത്രാമുറി തിരിച്ചറിയലും ആരംഭ/അവസാന വിവരങ്ങളും വേണം; ഇത് ഡ്രൈവർ നിയമാനുസൃതം ജോലി സമയങ്ങൾ പാലിക്കുന്നുണ്ടെന്ന് ഉറപ്പാക്കാൻ * റഫ്രിഡ്ജറേറ്റഡ് ട്രക്കുകൾക്ക് അധികമായി താപനില ഡാറ്റ വേണം, ഭക്ഷണം ഗതാഗതത്തിൽ നാശം ചെയ്യാതിരിക്കാൻ ഉഷ്ണം കൂടാതിരിക്കാനും തണുപ്പിക്കാതിരിക്കാനും ഈ ഡാറ്റ സ്ഥിരമായി മാറുന്നുണ്ടാകാം. ഉദാഹരണത്തിന്, ഐഒടി ഉപകരണം ട്രക്ക് കാബിൽ ഉണ്ടെങ്കിൽ, ട്രെയിലർ മാറുമ്പോൾ അയക്കുന്ന ഡാറ്റ മാറ്റപ്പെടാം. ഉദാഹരണമായി, റഫ്രിഡ്ജറേറ്റഡ് ട്രെയിലർ ഉപയോഗിക്കുമ്പോൾ മാത്രമേ താപനിലയുടെ വിവരങ്ങൾ അയക്കൂ. ✅ മറ്റ് ഏത് ഐഒടി ഡാറ്റ ശേഖരിക്കാമെന്ന് ചിന്തിക്കൂ? ട്രക്കുകൾ ഏതു തരം ചരക്കുകൾ പ്രചരിപ്പിക്കാവുന്നതാണെന്ന്, കൂടാതെ പരിപാലന ഡാറ്റയും പരിഗണിക്കൂ. വാഹനം അടിസ്ഥാനമാക്കിയുള്ള ഡാറ്റ വ്യത്യസ്തമായിരിക്കാം, പക്ഷേ എല്ലാമേലെ ഒരേ ഐഒടി സർവീസിലേക്ക് അയയ്ക്കുന്നു. ഐഒടി സർവീസ് ഈ അസംരചിത ഡാറ്റ പ്രോസസ് ചെയ്‌തുതന്നെ, ഇത് തിരയാനും വിശകലനം ചെയ്യാനും കഴിയുന്ന വിധത്തിൽ സംഭരിച്ചു വേണം, വ്യത്യസ്ത ഘടനകൾ കൈകാര്യം ചെയ്യാൻ കഴിയണം. ### SQL vs NoSQL സംഭരണം ഡാറ്റാബേസുകൾ ഡാറ്റാ സംഭരിക്കാൻ, ചോദ്യം ചെയ്യാൻ സഹായിക്കുന്ന സേവനങ്ങളാണ്. ഡാറ്റാബേസുകൾ രണ്ട് തരങ്ങളുണ്ട് - SQL, NoSQL #### SQL ഡാറ്റാബേസുകൾ ആദ്യത്തെ ഡാറ്റാബേസുകൾ റിലേഷണൽ ഡാറ്റാബേസ് മാനേജ്മെന്റ് സിസ്റ്റങ്ങൾ (RDBMS) അല്ലെങ്കിൽ റിലേഷൻഷിപ്പുള്ള ഡാറ്റാബേസുകളാണ്. അവ SQL ഡാറ്റാബേസുകൾ എന്നും അറിയപ്പെടുന്നു, കാരണം അവയുമായി ഇടപഴകാൻ ഉപയോഗിക്കുന്ന ഭാഷ Structured Query Language (SQL) ആണ്. ഈ ഡാറ്റാബേസുകൾ ഒരിടത്തുള്ള നിശ്ചിത പട്ടികകളുള്ള ഒരു സ്കീമയാണ് ആശ്രയം, സ്പ്രെഡ്ഷീറ്റുപോലെയാണ്. ഓരോ പട്ടികക്കും നിരവധി പേരിട്ട കോളങ്ങൾ ഉണ്ട്. ഡാറ്റ ചേർക്കുമ്പോൾ, പട്ടികയിലൊരു പത്തിൽ ഒരു വരി ചേർക്കുന്നു, ഓരോ കോളത്തിനും മൂല്യങ്ങൾ നൽകുന്നു. ഈ ഘടന കഠിനമാണ് — ചില കോളങ്ങൾ ഒഴുക്കാം, പക്ഷേ പുതിയ കോളം കൂട്ടണമെങ്കിൽ ഡാറ്റാബേസിൽ മാറ്റം വരുത്തി നിലവിലുള്ള വരികൾക്ക് മൂല്യം നൽകണം. ഈ ഡാറ്റാബേസുകൾ റിലേഷണൽ ആണ് — ഒരു പട്ടിക മറ്റൊന്നുമായി ബന്ധമുള്ളതാണെന്നും. ![ഉപയോക്തൃ പട്ടികയുടെ ഐഡിയ്ക്ക് പർച്ചേസസ് പട്ടികയിലുള്ള ഉപയോക്തൃ ഐഡി കോളത്തെ ബന്ധിപ്പിക്കുന്നത്, ഉൽപ്പന്നങ്ങൾ പട്ടികയുടെ ഐഡിയ്ക്ക് പർച്ചേസസ് പട്ടികയിലെ ഉൽപ്പന്ന ഐഡിക്കുമായി ബന്ധിപ്പിക്കുന്നത് കാണിക്കുന്ന ഒരു റിലേഷണൽ ഡാറ്റാബേസ്](../../../../../translated_images/ml/sql-database.be160f12bfccefd3.webp) ഉദാഹരണത്തിന്, ഒരു ഉപയോക്താവിന്റെ വ്യക്തിഗത വിവരങ്ങൾ ഒരു പട്ടികയിൽ സൂക്ഷിക്കുന്നുവെങ്കിൽ, ഓരോ ഉപയോക്താവിനും ഒരു അകത്ത് യുണീക്ക് ഐഡി ഉണ്ടാകും, അത് ഉപയോക്താവിന്റെ പേര് വിലാസം എന്നിവ അടങ്ങിയ പട്ടികയിൽ ഉപയോഗിക്കും. പിന്നീട് ആ ഉപയോക്താവിന്റെ മറ്റു വിവരങ്ങൾ, ഉദാ. അവർ നടത്തിയ വാങ്ങലുകൾ വേണമെന്ന് മറ്റൊരു പട്ടികയിൽ സൂക്ഷിക്കേണ്ടുണ്ടെങ്കിൽ, പുതിയ പട്ടികയിൽ ആ ഉപയോക്താവിന്റെ ID ഉള്ളൊരു കോളം ഉണ്ടാകും. ഉപയോക്താവിന്റെ വ്യക്തിഗത വിവരങ്ങൾ ഒരേ പട്ടികയിൽ നിന്നും വാങ്ങലുകൾ മറ്റൊരു പട്ടികയിൽ നിന്നും ഈ ID ഉപയോഗിച്ച് കണ്ടെത്തിക്കാം. SQL ഡാറ്റാബേസുകൾ സംരചിത ഡാറ്റ സംഭരിക്കാനും നിങ്ങളുടെ സ്കീമയുമായി ഡാറ്റ പൊരുത്തപ്പെടാൻ ഉറപ്പുവരുത്താനും അനുയോജ്യമാണ്. ✅ നിങ്ങൾക്ക് SQL ഉപയോഗിച്ചിട്ടില്ലെങ്കിൽ, [വിഖിപീഡിയയിലെ SQL പേജ്](https://wikipedia.org/wiki/SQL) വായിക്കാൻ ഒരു പക്ഷേ സമയം എടുക്കൂ. മൈക്രോസോഫ്റ്റ് SQL സർവർ, MySQL, PostgreSQL എന്നിവ ഭരണപരമായി അറിയപെടുന്നു. ✅ കുറച്ച് ഗവേഷണം ചെയ്യൂ: ഈ SQL ഡാറ്റാബേസുകളെയും അവയുടെ കഴിവുകളെയും കുറിച്ച് പഠിക്കൂ. #### NoSQL ഡാറ്റാബേസ് NoSQL ഡാറ്റാബേസുകൾ SQL ഡാറ്റാബേസുകളുടേതുപോലെ കഠിന ഘടന ഇല്ലാത്തതിനാൽ NoSQL എന്നാണ് വിളിക്കുന്നത്. അവ ഡോക്യുമെന്റ് ഡാറ്റാബേസുകൾ എന്നും അറിയപ്പെടുന്നു, കാരണം രേഖകളും അസംരചിത ഡാറ്റയും സംഭരിക്കാൻ ഇറങ്ങിയിരിക്കുന്നു. > 💁 അവർക്ക് അവരുടെ പേരിനുപറ kontravrsiesേ, ചില NoSQL ഡാറ്റാബേസുകൾ SQL ഉപയോഗിച്ച് ഡാറ്റ ചോദ്യം ചെയ്യാൻ അനുവദിക്കുന്നു. ![ഒരിടത്തുള്ള ഫോൾഡറുകളിൽ രേഖകൾ കാണിക്കുന്ന NoSQL ഡാറ്റാബേസ്](../../../../../translated_images/ml/noqsl-database.62d24ccf5b73f60d.webp) NoSQL ഡാറ്റാബേസുകൾക്ക് ഡാറ്റ സൂക്ഷിക്കുന്നതിന് മുമ്പ് നിശ്ചിത സ്കീമയുണ്ടെങ്കിൽ അതിൽ ബദ്ധപ്പെടേണ്ടതില്ല, തൽസമയത്ത് നിങ്ങൾക്ക് JSON രേഖകൾ ഉപയോഗിച്ച് ഏതും അസംരചിത ഡാറ്റ ചേർക്കാം. ഈ രേഖകൾ നിങ്ങളുടെ കമ്പ്യൂട്ടറിലുള്ള ഫയലുകളെപ്പോലെ ഫോൾഡറങ്ങളായി ക്രമീകരിക്കാം. ഓരോ രേഖക്കും മറ്റ് രേഖകളിൽ നിന്നും വ്യത്യസ്ത ഫീൽഡുകൾ ഉണ്ടാകാം - ഉദാഹരണത്തിന്, നിങ്ങളുടെ കർഷക വാഹനങ്ങളിൽ നിന്നുള്ള ഐഒടി ഡാറ്റ സൂക്ഷിക്കുന്നുവെങ്കിൽ, ചില രേഖകൾക്ക് ആക്സിലറോമീറ്റർ, വേഗത സംബന്ധിച്ച ഫീൽഡുകൾ ഉണ്ടാകാം, മറ്റ് ചിലത് ട്രെയിലറിലെ താപനില ഫീൽഡുകൾ ഉള്ളത്. പുതിയ ഒരു ട്രക്ക് തരം ചേർക്കേണ്ടിവന്നാൽ - ഉദാഹരണത്തിന്, കാഴ്ചയിൽ ഉൽപ്പന്ന ഭാരമിതിക്ക് സ്കെയിലുകൾ ഉള്ളത് - നിങ്ങളുടെ ഐഒടി ഉപകരണം പുതിയ ഫീൽഡ് ചേർക്കാം, ഡാറ്റാബേസ് മാറ്റക്കേണ്ടാവില്ല തന്നെ അത് സൂക്ഷിക്കും. മനസ്സിലാക്കപ്പെടുന്ന NoSQL ഡാറ്റാബേസുകളിൽ Azure CosmosDB, MongoDB, CouchDB എന്നിവ ഉൾപ്പെടുന്നു. ✅ കുറച്ച് ഗവേഷണം ചെയ്യൂ: ഈ NoSQL ഡാറ്റാബേസുകളും അവയുടെ കഴിവുകളും പഠിക്കൂ. ഈ പാഠത്തിൽ, നിങ്ങൾ NoSQL സംഭരണം ഉപയോഗിച്ച് ഐഒടി ഡാറ്റ സംഭരിക്കും. ## GPS ഡാറ്റ ഒരു IoT ഹബിലേക്ക് അയക്കുക അവസാന പാഠത്തിൽ, നിങ്ങൾ GPS സെൻസറിൽ നിന്നുള്ള GPS ഡാറ്റ പിടിച്ച് ഒരു ഐഒടി ഉപകരണത്തിൽ നിന്ന് പിടിച്ചു. ഈ ഐഒടി ഡാറ്റ ക്ലൗഡിൽ സംഭരിക്കാൻ, നിങ്ങൾക്ക് അത് ഒരു ഐഒടി സർവീസിലേക്ക് അയക്കണം. വീണ്ടും, നിങ്ങൾക്ക് മുമ്പത്തെ പ്രൊജക്റ്റിൽ ഉപയോഗിച്ച ഇറങ്ങിയ അയതേയുള്ള ആസ്യൂർ ഐഒടി ഹബ്ലെയും ഉപയോഗിക്കും. ![ഐഒടി ഉപകരണത്തിൽ നിന്നുള്ള GPS ടെലിമെട്രി ഐഒടി ഹബിലിലേക്ക് അയയ്ക്കുന്നു](../../../../../translated_images/ml/gps-telemetry-iot-hub.8115335d51cd2c12.webp) ### ടാസ്‌ക് - GPS ഡാറ്റ ഒരു IoT ഹബിലേക്ക് അയയ്ക്കുക 1. സൗജന്യ തരത്തിൽ ഒരു പുതിയ ഐഒടി ഹബ് സൃഷ്ടിക്കുക. > ⚠️ ആവശ്യമെങ്കിൽ [പ്രൊജക്റ്റ് 2, പാഠം 4 ൽ നിന്ന് ഒരു ഐഒടി ഹബ് എങ്ങിനെ സൃഷ്ടിക്കാമെന്ന്](../../../2-farm/lessons/4-migrate-your-plant-to-the-cloud/README.md#create-an-iot-service-in-the-cloud) കാണാം. പുതിയ Resource Group സൃഷ്ടിക്കുക. Resource Group നാമം `gps-sensor` വയ്ക്കുക, പുതിയ IoT Hub നാമം `gps-sensor-<നിങ്ങളുടെ പേര്>` പോലെയാണ് ആക്കുക. > 💁 മുമ്പത്തെ പ്രൊജക്റ്റിൽ നിന്നുള്ള നിങ്ങളുടെ IoT Hub ഇപ്പോഴും ഉണ്ടെങ്കിൽ, അതേ ഉപയോഗിക്കാം. മറ്റ് സേവനങ്ങൾ സൃഷ്ടിക്കുമ്പോൾ ഈ IoT Hub നാമവും Resource Group നാമവും ഉപയോഗിക്കാൻ ഓർമപ്പെടുത്തുക. 1. ഒരു പുതിയ ഉപകരണം IoT Hub ൽ ചേർക്കുക. ഈ ഉപകരണത്തിൻറെ പേര് `gps-sensor` ഇടുക. ഉപകരണത്തിന്റെ കണക്ഷൻ സ്ട്രിംഗ് എടുക്കുക. 1. ഉപകരണ കോഡ് അപ്ഡേറ്റ് ചെയ്ത് മുൻപത്തെ ഘട്ടത്തിൽ നിന്നുള്ള ഉപകരണ കണക്ഷൻ സ്ട്രിംഗ് ഉപയോഗിച്ച് GPS ഡാറ്റ പുതിയ IoT Hub ൽ അയയ്ക്കുക. > ⚠️ ആവശ്യമെങ്കിൽ [പ്രൊജക്റ്റ് 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(); ``` Virtual IoT ഉപകരണം ഉപയോഗിക്കുകയാണെങ്കിൽ, വരികചിത്രമായ അന്തരീക്ഷത്തിലൂടെ എല്ലാ ലൈബ്രറികളും ഇൻസ്റ്റാൾ ചെയ്യുക. Raspberry Pi, Virtual 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 Hub ൽ എത്തിക്കുകയാണെന്ന് ഉറപ്പാക്കുക. ## ഹോട്ട്, വാം, കൊൾഡ് പാത്തുകൾ ഐഒടി ഉപകരണത്തിൽ നിന്നുള്ള ഡാറ്റ ക്ലൗഡിലേക്ക് ശക്തിപ്രാപിക്കുമ്പോൾ എല്ലാ ഡാറ്റയും യഥാസമയം പ്രോസസ് ചെയ്യുന്നതല്ല. ചില ഡാറ്റയ്ക്ക് യഥാസമയം പ്രോസസ്സിംഗ് വേണം, ചില ഡാറ്റയ്ക്ക് മാറ്റാനലേക്ക്מעט നേരം കഴിഞ്ഞ് പ്രോസസ് ചെയ്യാം, ചില ഡാറ്റ പിന്നീട് വളരെ താഴെ പ്രോസസ് ചെയ്യാം. ഡാറ്റ വ്യത്യസ്ത സമയങ്ങളിൽ പ്രോസസ് ചെയ്യുന്ന വിവിധ സേവനങ്ങളിലേക്കുള്ള പ്രവാഹം ഹോട്ട്, വാം, കൊൾഡ് പാത്തുകൾ എന്നാണ് അറിയപ്പെടുന്നത്. ### ഹോട്ട് പാത ഹോട്ട് പാതയെന്നുപറയുന്നത് യഥാസമയം അല്ലെങ്കിൽ അതിനടുത്ത് ഡാറ്റ പ്രോസസ് ചെയ്യേണ്ടതാണെങ്കിൽ. നിങ്ങൾക്ക് അലേർട്ടുകൾക്കായാണ് ഹോട്ട് പാത ഡാറ്റ ഉപയോഗിക്കുക, ഉദാഹരണത്തിന് ഒരു വാഹനം ഡിപ്പോയിൽ എത്തുന്നു എന്നറിയിച്ചിരിക്കുവാൻ, അല്ലെങ്കിൽ റഫ്രിഡ്ജറേറ്റഡ് ട്രക്കിൽ താപനില വളരെ ഉയർന്നതാണെന്നറിയാൻ. ഹോട്ട് പാത്ത് ഡാറ്റ ഉപയോഗിക്കാൻ, നിങ്ങളുടെ കോഡ് ഇവന്റുകൾ ലഭിക്കുമ്പോൾ ഉടനെ പ്രതികരിക്കും. ### വാം പാത വാം പാതയെന്നത് ഡാറ്റ കിട്ടിവെച്ചു കുറേ നേരം കഴിഞ്ഞ് പ്രോസസ് ചെയ്യാവുന്നവയാണ്, ഉദാഹരണത്തിന് റിപ്പോർട്ടുകൾക്കും ക്രമേണ പ്രവർത്തന വിശകലനത്തിനും. നിങ്ങളുടെ ദൈനംദിന വാഹന മൈലേജ് റിപ്പോർട്ടുകൾക്ക് മുൻവേദന വരെയുള്ള ഡാറ്റ വാം പാതയിൽ ഉപയോഗിക്കാം. വാം പാത ഡാറ്റ ക്ലൗഡിലെ ഒരു വേഗം ആക്സസ് ചെയ്യാവുന്ന സംഭരണത്തിൽ സൂക്ഷിക്കുന്നു. ### കൊൾഡ് പാത കൊൾഡ് പാത പഴയ ഡാറ്റയെ സൂക്ഷിക്കുകയും അതെടുത്ത് വച്ചാൽ ആവശ്യത്തിൽപ്രകാരം പ്രോസസ് ചെയ്യാവുന്നതാണ്. ഉദാഹരണത്തിന്, വാഹങ്ങളുടെ വാർഷിക മൈലേജ് റിപ്പോർട്ടുകൾക്ക്, എത്രത്തോളം ഇന്ധന ചെലവ് കുറയ്ക്കാൻ ഏറ്റവും മികച്ച പാത കണ്ടെത്താൻ വിശകലനം നടത്താൻ കൊൾഡ് പാത ഉപയോഗിക്കാം. കൊൾഡ് പാത ഡാറ്റ ഡാറ്റ വെയർഹൗസ്‌സുകളിൽ സൂക്ഷിക്കുന്നു - വലുതും മാറ്റം വരാത്തതുമായ ഡാറ്റ സംഭരിക്കാൻ രൂപകൽപ്പന ചെയ്ത ഡാറ്റാബേസുകൾ, എളുപ്പത്തിൽ ചോദ്യം ചെയ്യാവുന്നതും. സാധാരണയായി, നിങ്ങളുടെ ക്ലൗഡ് ആപ്ലിക്കേഷനിൽ നിശ്ചിത സമയത്ത് (ദിവസം, ആഴ്‌ച, മാസം) ഒരു ജോബ് ഓടിച്ച് വാം പാത സംഭരിച്ച ഡാറ്റ ഡാറ്റ വെയർഹൗസിലേക്ക് മാറ്റിവിടും. ✅ ഈ പാഠങ്ങളിൽ ഇതുവരെ നിങ്ങൾ ശേഖരിച്ച ഡാറ്റ ഹോട്ട്, വാം, അല്ലെങ്കിൽ കൊൾഡ് പാത ഡാറ്റയാണോ എന്ന് ചിന്തിക്കുക. ## സെർവർലെസ് കോഡ് ഉപയോഗിച്ച് ജിപിഎസ് ഇവന്റുകൾ കൈകാര്യം ചെയ്യുക ഡാറ്റ നിങ്ങളുടെ IoT Hub ൽ എത്തുമ്പോൾ, Event Hub അനുകൂലമായ എൻഡ്‌പോയിന്റിലേക്കുള്ള ഇവന്റുകൾ കേൾക്കാൻ നിങ്ങൾക്ക് സെർവർലെസ് കോഡ് എഴുതാവുന്നതാണ്. ഇത് വാം പാതയായാണ് - ഈ ഡാറ്റ അടുത്ത പാഠത്തിൽ യാത്ര കുറിച്ചറിയിക്കുന്നതിനായി സംഭരിക്കും. ![ഐഒടി ഉപകരണത്തിൽ നിന്നുള്ള GPS ടെലിമെട്രി ഐഒടി ഹബിലേക്കും ശേഷം ഒരു ഇവന്റ് ഹബ് ട്രിഗർ വഴി ആസ്യൂർ ഫംഗ്ഷൻസ് ဆേസിലേക്ക് അയക്കുന്നു](../../../../../translated_images/ml/gps-telemetry-iot-hub-functions.24d3fa5592455e9f.webp) ### ടാസ്‌ക് - സെർവർലെസ് കോഡ് ഉപയോഗിച്ച് ജിപിഎസ് ഇവന്റുകൾ കൈകാര്യം ചെയ്യുക 1. ആസ്യൂർ ഫംഗ്ഷൻസ് CLI ഉപയോഗിച്ച് ഒരു ആസ്യൂർ ഫംഗ്ഷൻസ് ആപ്പ് സൃഷ്ടിക്കുക. Python റൺടൈം ഉപയോഗിക്കുക, `gps-trigger` എന്ന ഫോൾഡറിലാക്കി സൃഷ്ടിക്കുക, ഫംഗ്ഷൻസ് ആപ്പ് പ്രോജെക്ടിന് അതേ പേര് നല്‍കുക. ഒരു ವರ್ಚ്വൽ പരിതസ്ഥിതിയും ഉപയോഗിക്കുക. > ⚠️ ആവശ്യമെങ്കിൽ [പ്രൊജക്റ്റ് 2, പാഠം 5 ൽ നിന്ന് ആസ്യൂർ ഫംഗ്ഷൻസ് പ്രോജക്ട് എങ്ങനെ സൃഷ്ടിക്കാമെന്ന്](../../../2-farm/lessons/5-migrate-application-to-the-cloud/README.md#create-a-serverless-application) കാണുക. 1. IoT ഹബിൽ Event Hub അനുയോജ്യമായ എൻഡ്‌പോയിന്റ് ഉപയോഗിക്കുന്ന ഒരു IoT ഹബ് ഇവന്റ് ട്രിഗർ ചേർക്കുക. > ⚠️ നിങ്ങള്‍ക്ക് ആവശ്യമുണ്ടെങ്കില്‍ [പ്രോജക്ട് 2, പഠനം 5-ല്‍ നിന്നുള്ള ഒരു ഐ.ഒ.ടി ഹബ് ഇവന്റ് ട്രിഗ്ഗര്‍ സൃഷ്ടിക്കുന്നതിന്‍റെ നിര്‍ദ്ദേശങ്ങള്‍](../../../2-farm/lessons/5-migrate-application-to-the-cloud/README.md#create-an-iot-hub-event-trigger) കാണാവുന്നതാണ്. 1. `local.settings.json` ഫയലിൽ ഇവന്റ് ഹബ് അനുയോജ്യമായ endpoint കണക്ഷൻ സ്ട്രിംഗ് സജ്ജമാക്കി, ആ എൻട്രിക്ക് വേണ്ടി കി `function.json` ഫയലിൽ ഉപയോഗിക്കുക. 1. Azurite ആപ്പ് ഒരു ലോക്കൽ സ്റ്റോറേജ് എമുലേറ്ററായി ഉപയോഗിക്കുക 1. നിങ്ങളുടെ functions ആപ്പ് പ്രവർത്തിപ്പിച്ച് നിങ്ങളുടെ GPS ഉപകരണം ഇവന്റുകൾ സ്വീകരിക്കുകയാണെന്ന് ഉറപ്പാക്കുക. നിങ്ങളുടെ IoT ഡിവൈസ് പ്രവർത്തിക്കുന്നുവും GPS ഡാറ്റ അയയ്ക്കുകയുമാണ് ഉറപ്പാക്കുക. ```output Python EventHub trigger processed an event: {"gps": {"lat": 47.73481, "lon": -122.25701}} ``` ## Azure സ്റ്റോറേജ് അക്കൗണ്ടുകൾ ![Azure സ്റ്റോറേജ് ലോഗോ](../../../../../translated_images/ml/azure-storage-logo.605c0f602c640d48.webp) Azure സ്റ്റോറേജ് അക്കൗണ്ട്‌സ് ഒരു പൊതുവായ ഉദ്ദേശത്തിലുള്ള സ്റ്റോറേജ് സേവനമാണ്, ഇത് വിവിധവിധത്തിൽ ഡാറ്റ സംഭരിക്കാൻ സഹായിക്കുന്നു. നിങ്ങൾക്ക് blob-കൾ, queue-കൾ, table-കൾ, അല്ലെങ്കിൽ ഫയലുകളായി ഒരേസമയം ഡാറ്റ സംഭരിക്കാൻ കഴിയും. ### Blob സ്റ്റോറേജ് *Blob* എന്ന പദം binary large objects എന്നതിന് അർത്ഥമുണ്ടെങ്കിലും, യാതൊരു ഘടനയില്ലാത്ത ഏതൊരു ഡാറ്റയെയും സൂചിപ്പിക്കാൻ ഉപയോഗിക്കുന്നു. IoT ഡാറ്റ ഉള്ള JSON ഡോക്യുമെന്റുകളും, ചിത്രം, ചലച്ചിത്ര ഫയലുകളും Blob സ്റ്റോറേജിൽ സहेജിക്കാം. Blob സ്റ്റോറേജിന് *containers* എന്ന ആശയം ഉണ്ട്, relational ഡാറ്റാബേസ്中的 tables-നെപ്പോലെ നാം ഡാറ്റ പകരുന്ന നാമമുള്ള ബക്കറ്റുകൾ. ഈ കൺറ്റെയ്‌നറുകൾക്ക് ഒരു അല്ലെങ്കിൽ അതിലധികം ഫോൾഡറുകൾ ഉണ്ടാകാം blobs സൂക്ഷിക്കാൻ, ഓരോ ഫോൾഡറിലും മറ്റ് ഫോൾഡറുകൾ ഉണ്ടായിരിക്കും, കമ്പ്യൂട്ടറിലെ ഹാർഡ് ഡിസ്കിൽ ഫയലുകൾ സൂക്ഷിക്കുന്നത് പോലെ. ഈ പാഠത്തിൽ അവിടെനుండെ IoT ഡാറ്റ blobs ആയി സൂക്ഷിക്കാൻ Blob സ്റ്റോറേജ് ഉപയോഗിക്കും. ✅ കുറച്ച് പഠനം: [Azure Blob Storage](https://docs.microsoft.com/azure/storage/blobs/storage-blobs-overview?WT.mc_id=academic-17441-jabenn) വായിക്കുക ### Table സ്റ്റോറേജ് Table സ്റ്റോറേജ് അർദ്ധഘടനയുള്ള ഡാറ്റ സൂക്ഷിക്കാൻ അനുവദിക്കുന്നു. ഇത് വാസ്തവത്തിൽ ഒരു NoSQL ഡാറ്റാബേസ് ആണ്, അതിനാൽ നേരത്തെ നിർവ്വചിച്ച ടേബിൾ സെറ്റ് ആവശ്യമില്ല, എന്നാൽ ഒരോ വരിയെയും അവലംബിക്കാനും വിശിഷ്ട കീകൾ ഉപയോഗിച്ച് ഒരോ ടേബിളിലോ അതിലധികത്തിലോ ഡാറ്റ സൂക്ഷിക്കാൻ രൂപകൽപ്പന ചെയ്തതാണ്. ✅ കുറച്ച് പഠനം: [Azure Table Storage](https://docs.microsoft.com/azure/storage/tables/table-storage-overview?WT.mc_id=academic-17441-jabenn) വായിക്കുക ### Queue സ്റ്റോറേജ് Queue സ്റ്റോറേജ് ഏറ്റവും 64KB വലുപ്പമുള്ള സന്ദേശങ്ങൾ ഒരു നിരയിലാക്കി സൂക്ഷിക്കാൻ സഹായിക്കുന്നു. നിങ്ങൾക്ക് സന്ദേശങ്ങൾ നിരയുടെ പിന്നിലേക്ക് ചേർക്കാം, മുന്നില്‍ നിന്നും വായിക്കാം. Queue-കളിൽ സംഭരിച്ച സന്ദേശങ്ങൾ സ്റ്റോറേജ് സ്ഥലമുണ്ടെങ്കിൽ നിരന്തരം സൂക്ഷിക്കപ്പെടുന്നു, അതിനാൽ സന്ദേശങ്ങൾ ദീർഘകാലം സൂക്ഷിക്കാനും ആവശ്യപ്പെട്ടപ്പോള്‍ വായിക്കാനുമാകും. ഉദാഹരണത്തിന്, നിങ്ങൾ ഒരു മാസത്തെ GPS ഡാറ്റ പ്രവൃത്തി നടത്തണമെന്ന് ആഗ്രഹിക്കുന്നുവെങ്കിൽ, ആ മാസംതോറും ദിവസവും അത് നിർത്തിവെച്ച് മാസാവസാനത്തിൽ എല്ലാ സന്ദേശങ്ങളും പ്രോസസ്സ് ചെയ്യാവുന്നതാണ്. ✅ കുറച്ച് പഠനം: [Azure Queue Storage](https://docs.microsoft.com/azure/storage/queues/storage-queues-introduction?WT.mc_id=academic-17441-jabenn) വായിക്കുക ### ഫയൽ സ്റ്റോറേജ് Cloud-ൽ ഫയലുകൾ സൂക്ഷിക്കുന്നതാണ് ഫയൽ സ്റ്റോറേജ്, ഏതൊരു ആപ്പും ഉപകരണം ഇൻഡസ്ട്രി സ്റ്റാൻഡേർഡ് പ്രോട്ടോകോളുകൾ ഉപയോഗിച്ച് കണക്ട് ചെയ്യാവുന്നതാണ്. ഫയലുകൾ ഫയൽ സ്റ്റോറേജിൽ എഴുതാം, ശേഷം നിങ്ങളുടെ പി.സി. അല്ലെങ്കിൽ മാക്കിൽ ഡ്രൈവായി മൗണ്ട് ചെയ്യാം. ✅ കുറച്ച് പഠനം: [Azure File Storage](https://docs.microsoft.com/azure/storage/files/storage-files-introduction?WT.mc_id=academic-17441-jabenn) വായിക്കുക ## നിങ്ങളുടെ സർവർലെസ് കോഡ് സ്റ്റോറേജുമായി ബന്ധിപ്പിക്കുക നിങ്ങളുടെ ഫങ്ഷൻസ് ആപ്പ് ఇప్పుడు blob സ്റ്റോറേജുമായി കണക്ട് ചെയ്ത് IoT ഹബ് സന്ദേശങ്ങൾ സൂക്ഷിക്കണം. ഇത് ചെയ്യാൻ 2 മാർഗ്ഗങ്ങളുണ്ട്: * ഫങ്ഷൻ കോഡിനുള്ളിൽ Python SDK ഉപയോഗിച്ച് blob സ്റ്റോറേജുമായി കണക്ട് ചെയ്ത് ഡാറ്റ blob-കളായി എഴുതുക * output ഫങ്ഷൻ ബൈൻഡിംഗ് ഉപയോഗിച്ച് ഫങ്ഷന്റെ റിട്ടേൺ വാല്യു blob സ്റ്റോറേജുമായി ബന്ധിപ്പിച്ച് ഓട്ടോമാറ്റിക്കായി blob സംരക്ഷിക്കുക ഈ പാഠത്തിൽ നിങ്ങൾ Python SDK ഉപയോഗിച്ച് blob സ്റ്റോറേജുമായി എങ്ങനെ പ്രവർത്തിക്കാമെന്ന് കാണും. ![IoT ഡിവൈസിൽ നിന്നുള്ള GPS ടെലിമെട്രി IoT ഹബിലേക്ക്, പിന്നീട് ഇവന്റ് ഹബ് ട്രിഗ്ഗർ വഴി Azure Functions-ലേക്ക് അയയ്ക്കുന്നു, പിന്നെ അത് blob സ്റ്റോറേജിലേയ്ക്കുമാറ്റുന്നു](../../../../../translated_images/ml/save-telemetry-to-storage-from-functions.ed3b1820980097f1.webp) ഡാറ്റ താഴെപ്പറയുന്ന ഫോർമാറ്റിൽ JSON blob ആയി സൂക്ഷിക്കും: ```json { "device_id": , "timestamp" :