# স্টোর লোকেশন ডেটা ![এই পাঠের একটি স্কেচনোট সংক্ষিপ্ত বিবরণ](../../../../../translated_images/lesson-12.ca7f53039712a3ec14ad6474d8445361c84adab643edc53fa6269b77895606bb.bn.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 পচases টেবিলের ইউজার ID কলামের সাথে সম্পর্কিত এবং প্রোডাক্ট টেবিলের ID পচases টেবিলের প্রোডাক্ট ID এর সাথে সম্পর্কিত](../../../../../translated_images/sql-database.be160f12bfccefd3ca718a66468c2c4c89c53e5aad4c295324d576da87f9dfdd.bn.png) #### NoSQL ডেটাবেস NoSQL ডেটাবেসকে NoSQL বলা হয় কারণ এগুলো SQL ডেটাবেসের মতো কঠোর কাঠামো নেই। এগুলোকে ডকুমেন্ট ডেটাবেসও বলা হয় কারণ এগুলো আনস্ট্রাকচার্ড ডেটা যেমন ডকুমেন্ট সংরক্ষণ করতে পারে। > 💁 নামের সত্ত্বেও, কিছু NoSQL ডেটাবেস SQL ব্যবহার করে ডেটা অনুসন্ধান করতে দেয়। ![NoSQL ডেটাবেসে ফোল্ডারে ডকুমেন্ট](../../../../../translated_images/noqsl-database.62d24ccf5b73f60d35c245a8533f1c7147c0928e955b82cb290b2e184bb434df.bn.png) NoSQL ডেটাবেসে পূর্বনির্ধারিত স্কিমা নেই যা ডেটা সংরক্ষণ সীমাবদ্ধ করে, বরং আপনি JSON ডকুমেন্ট ব্যবহার করে যেকোনো আনস্ট্রাকচার্ড ডেটা সংরক্ষণ করতে পারেন। এই পাঠে, আপনি NoSQL স্টোরেজ ব্যবহার করে IoT ডেটা সংরক্ষণ করবেন। ## GPS ডেটা IoT হাবে পাঠানো গত পাঠে আপনি GPS সেন্সর থেকে GPS ডেটা সংগ্রহ করেছিলেন। এই ডেটা ক্লাউডে সংরক্ষণ করতে হলে, এটি একটি IoT সার্ভিসে পাঠাতে হবে। আপনি আবার Azure IoT Hub ব্যবহার করবেন, যা আপনি আগের প্রকল্পে ব্যবহার করেছিলেন। ![IoT ডিভাইস থেকে IoT হাবে GPS টেলিমেট্রি পাঠানো](../../../../../translated_images/gps-telemetry-iot-hub.8115335d51cd2c1285d20e9d1b18cf685e59a8e093e7797291ef173445af6f3d.bn.png) ### কাজ - GPS ডেটা IoT হাবে পাঠানো 1. ফ্রি টিয়ার ব্যবহার করে একটি নতুন IoT Hub তৈরি করুন। > ⚠️ [প্রকল্প ২, পাঠ ৪](../../../2-farm/lessons/4-migrate-your-plant-to-the-cloud/README.md#create-an-iot-service-in-the-cloud) থেকে IoT Hub তৈরি করার নির্দেশনা প্রয়োজন হলে দেখুন। একটি নতুন রিসোর্স গ্রুপ তৈরি করুন। নতুন রিসোর্স গ্রুপের নাম দিন `gps-sensor`, এবং নতুন IoT Hub এর নাম দিন `gps-sensor-<আপনার নাম>`। > 💁 আগের প্রকল্প থেকে আপনার IoT Hub এখনও থাকলে, আপনি এটি পুনরায় ব্যবহার করতে পারেন। নতুন সার্ভিস তৈরি করার সময় এই IoT Hub এবং রিসোর্স গ্রুপের নাম ব্যবহার করুন। 1. IoT Hub-এ একটি নতুন ডিভাইস যোগ করুন। এই ডিভাইসের নাম দিন `gps-sensor`। ডিভাইসের সংযোগ স্ট্রিং সংগ্রহ করুন। 1. আপনার ডিভাইস কোড আপডেট করুন যাতে GPS ডেটা নতুন IoT Hub-এ পাঠানো যায়। > ⚠️ [প্রকল্প ২, পাঠ ৪](../../../2-farm/lessons/4-migrate-your-plant-to-the-cloud/README.md#connect-your-device-to-the-iot-service) থেকে ডিভাইসকে IoT সার্ভিসে সংযুক্ত করার নির্দেশনা প্রয়োজন হলে দেখুন। 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 ডিভাইসের জন্য, গত পাঠের কোড ব্যবহার করে latitude এবং longitude মান সংগ্রহ করুন, তারপর সঠিক 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 Hub-এ প্রবাহিত হচ্ছে `az iot hub monitor-events` CLI কমান্ড ব্যবহার করে। ## হট, ওয়ার্ম এবং কোল্ড পাথ IoT ডিভাইস থেকে ক্লাউডে প্রবাহিত ডেটা সবসময় রিয়েল টাইমে প্রক্রিয়াকৃত হয় না। কিছু ডেটা রিয়েল টাইমে প্রক্রিয়াকৃত হওয়া প্রয়োজন, অন্য ডেটা কিছু সময় পরে প্রক্রিয়াকৃত হতে পারে, এবং অন্য ডেটা অনেক পরে প্রক্রিয়াকৃত হতে পারে। ডেটা বিভিন্ন সময়ে প্রক্রিয়াকরণের জন্য বিভিন্ন সার্ভিসে প্রবাহিত হওয়ার প্রক্রিয়াকে হট, ওয়ার্ম এবং কোল্ড পাথ বলা হয়। ### হট পাথ হট পাথ হলো ডেটা যা রিয়েল টাইম বা প্রায় রিয়েল টাইমে প্রক্রিয়াকৃত হওয়া প্রয়োজন। উদাহরণস্বরূপ, একটি যানবাহন ডিপোর কাছে আসছে বা একটি রেফ্রিজারেটেড ট্রাকের তাপমাত্রা খুব বেশি হওয়ার সতর্কতা পাওয়ার জন্য হট পাথ ডেটা ব্যবহার করা হবে। ### ওয়ার্ম পাথ ওয়ার্ম পাথ হলো ডেটা যা গ্রহণের কিছু সময় পরে প্রক্রিয়াকৃত হতে পারে, যেমন রিপোর্টিং বা স্বল্পমেয়াদী বিশ্লেষণের জন্য। উদাহরণস্বরূপ, আগের দিনের ডেটা ব্যবহার করে যানবাহনের দৈনিক মাইলেজ রিপোর্ট তৈরি করা। ### কোল্ড পাথ কোল্ড পাথ হলো ঐতিহাসিক ডেটা, দীর্ঘমেয়াদী সংরক্ষণের জন্য যা প্রয়োজন হলে প্রক্রিয়াকৃত হতে পারে। উদাহরণস্বরূপ, যানবাহনের বার্ষিক মাইলেজ রিপোর্ট তৈরি করা বা জ্বালানি খরচ কমানোর জন্য রুট বিশ্লেষণ করা। ✅ এই পাঠে আপনি যে ডেটা সংগ্রহ করেছেন তা হট, ওয়ার্ম বা কোল্ড পাথ ডেটা কি? ## সার্ভারলেস কোড ব্যবহার করে GPS ইভেন্ট পরিচালনা যখন ডেটা IoT Hub-এ প্রবাহিত হয়, তখন আপনি কিছু সার্ভারলেস কোড লিখতে পারেন যা ইভেন্ট-হাব কম্প্যাটিবল এন্ডপয়েন্টে প্রকাশিত ইভেন্টগুলির জন্য শুনবে। এটি ওয়ার্ম পাথ - এই ডেটা সংরক্ষণ করা হবে এবং পরবর্তী পাঠে যাত্রার রিপোর্টিংয়ের জন্য ব্যবহার করা হবে। ![IoT ডিভাইস থেকে IoT হাবে GPS টেলিমেট্রি পাঠানো, তারপর ইভেন্ট হাব ট্রিগার ব্যবহার করে Azure Functions-এ](../../../../../translated_images/gps-telemetry-iot-hub-functions.24d3fa5592455e9f4e2fe73856b40c3915a292b90263c31d652acfd976cfedd8.bn.png) ### কাজ - সার্ভারলেস কোড ব্যবহার করে GPS ইভেন্ট পরিচালনা 1. Azure Functions CLI ব্যবহার করে একটি Azure Functions অ্যাপ তৈরি করুন। Python রানটাইম ব্যবহার করুন এবং এটি `gps-trigger` নামে একটি ফোল্ডারে তৈরি করুন। Functions App প্রকল্পের নামও `gps-trigger` দিন। নিশ্চিত করুন যে আপনি এটি ব্যবহারের জন্য একটি ভার্চুয়াল এনভায়রনমেন্ট তৈরি করেছেন। > ⚠️ আপনি যদি প্রয়োজন মনে করেন, [Azure Functions প্রকল্প তৈরি করার নির্দেশনা প্রকল্প ২, পাঠ ৫](../../../2-farm/lessons/5-migrate-application-to-the-cloud/README.md#create-a-serverless-application) থেকে দেখতে পারেন। 1. একটি IoT Hub ইভেন্ট ট্রিগার যোগ করুন যা IoT Hub-এর Event Hub সামঞ্জস্যপূর্ণ এন্ডপয়েন্ট ব্যবহার করে। > ⚠️ প্রয়োজনে [প্রজেক্ট ২, পাঠ ৫ থেকে 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 সামঞ্জস্যপূর্ণ এন্ডপয়েন্টের সংযোগ স্ট্রিং সেট করুন এবং সেই এন্ট্রির কীটি `function.json` ফাইলে ব্যবহার করুন। 1. Azurite অ্যাপটি স্থানীয় স্টোরেজ এমুলেটর হিসেবে ব্যবহার করুন। 1. আপনার ফাংশন অ্যাপ চালান এবং নিশ্চিত করুন যে এটি আপনার 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.bn.png) Azure Storage Accounts একটি সাধারণ উদ্দেশ্য স্টোরেজ পরিষেবা যা বিভিন্ন উপায়ে ডেটা সংরক্ষণ করতে পারে। আপনি ব্লব, কিউ, টেবিল বা ফাইল আকারে ডেটা সংরক্ষণ করতে পারেন এবং একই সময়ে সবকিছু করতে পারেন। ### Blob storage *Blob* শব্দটি বাইনারি বড় অবজেক্ট বোঝায়, তবে এটি এখন যেকোনো অগঠিত ডেটার জন্য ব্যবহৃত হয়। আপনি Blob স্টোরেজে যেকোনো ডেটা সংরক্ষণ করতে পারেন, যেমন IoT ডেটা সম্বলিত JSON ডকুমেন্ট, ছবি বা মুভি ফাইল। Blob স্টোরেজে *কন্টেইনার* ধারণা রয়েছে, যা নামকৃত বাক্স যেখানে আপনি ডেটা সংরক্ষণ করতে পারেন, এটি রিলেশনাল ডাটাবেসের টেবিলের মতো। এই কন্টেইনারগুলিতে এক বা একাধিক ফোল্ডার থাকতে পারে যেখানে ব্লব সংরক্ষণ করা হয়, এবং প্রতিটি ফোল্ডারে অন্যান্য ফোল্ডার থাকতে পারে, ঠিক যেমন আপনার কম্পিউটারের হার্ড ডিস্কে ফাইল সংরক্ষণ করা হয়। এই পাঠে আপনি IoT ডেটা সংরক্ষণের জন্য Blob স্টোরেজ ব্যবহার করবেন। ✅ কিছু গবেষণা করুন: [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 ডাটাবেস, তাই এটি পূর্বে সংজ্ঞায়িত টেবিলের সেট প্রয়োজন হয় না, তবে এটি এক বা একাধিক টেবিলে ডেটা সংরক্ষণের জন্য ডিজাইন করা হয়েছে, যেখানে প্রতিটি সারি নির্ধারণের জন্য ইউনিক কী থাকে। ✅ কিছু গবেষণা করুন: [Azure Table Storage](https://docs.microsoft.com/azure/storage/tables/table-storage-overview?WT.mc_id=academic-17441-jabenn) সম্পর্কে পড়ুন। ### Queue storage Queue storage আপনাকে 64KB পর্যন্ত আকারের বার্তা একটি কিউতে সংরক্ষণ করতে দেয়। আপনি বার্তাগুলি কিউয়ের পিছনে যোগ করতে পারেন এবং সামনের দিক থেকে পড়তে পারেন। কিউ বার্তাগুলি অনির্দিষ্টকালের জন্য সংরক্ষণ করে যতক্ষণ পর্যন্ত স্টোরেজ স্পেস উপলব্ধ থাকে, তাই এটি বার্তাগুলি দীর্ঘমেয়াদে সংরক্ষণ করতে দেয় এবং প্রয়োজন হলে পড়া যায়। উদাহরণস্বরূপ, যদি আপনি GPS ডেটা প্রক্রিয়া করার জন্য একটি মাসিক কাজ চালাতে চান, আপনি প্রতিদিন একটি কিউতে বার্তা যোগ করতে পারেন এবং মাসের শেষে সমস্ত বার্তা প্রক্রিয়া করতে পারেন। ✅ কিছু গবেষণা করুন: [Azure Queue Storage](https://docs.microsoft.com/azure/storage/queues/storage-queues-introduction?WT.mc_id=academic-17441-jabenn) সম্পর্কে পড়ুন। ### File storage File storage হলো ক্লাউডে ফাইল সংরক্ষণ, এবং যেকোনো অ্যাপ বা ডিভাইস শিল্প মান প্রোটোকল ব্যবহার করে সংযোগ করতে পারে। আপনি ফাইল স্টোরেজে ফাইল লিখতে পারেন, তারপর এটি আপনার PC বা Mac-এ একটি ড্রাইভ হিসেবে মাউন্ট করতে পারেন। ✅ কিছু গবেষণা করুন: [Azure File Storage](https://docs.microsoft.com/azure/storage/files/storage-files-introduction?WT.mc_id=academic-17441-jabenn) সম্পর্কে পড়ুন। ## আপনার সার্ভারলেস কোডকে স্টোরেজের সাথে সংযুক্ত করুন আপনার ফাংশন অ্যাপ এখন Blob স্টোরেজের সাথে সংযুক্ত হতে হবে যাতে IoT Hub থেকে বার্তাগুলি সংরক্ষণ করা যায়। এটি করার দুটি উপায় রয়েছে: * ফাংশন কোডের ভিতরে Blob স্টোরেজের সাথে সংযোগ করুন এবং Blob স্টোরেজ Python SDK ব্যবহার করে ডেটা লিখুন। * একটি আউটপুট ফাংশন বাইন্ডিং ব্যবহার করুন যা ফাংশনের রিটার্ন ভ্যালুকে Blob স্টোরেজের সাথে বাইন্ড করে এবং Blob স্বয়ংক্রিয়ভাবে সংরক্ষণ করে। এই পাঠে, আপনি Blob স্টোরেজের সাথে কীভাবে ইন্টারঅ্যাক্ট করবেন তা দেখতে Python SDK ব্যবহার করবেন। ![IoT ডিভাইস থেকে GPS টেলিমেট্রি IoT Hub-এ পাঠানো, তারপর Azure Functions-এ ইভেন্ট হাব ট্রিগারের মাধ্যমে, তারপর Blob স্টোরেজে সংরক্ষণ করা](../../../../../translated_images/save-telemetry-to-storage-from-functions.ed3b1820980097f143d9f0570072da11304c2bc7906359dfa075b4d9b253c20f.bn.png) ডেটা একটি JSON Blob হিসেবে নিম্নলিখিত ফরম্যাটে সংরক্ষণ করা হবে: ```json { "device_id": , "timestamp" :