Apache Storm হলো একটি রিয়েল-টাইম ডেটা প্রসেসিং সিস্টেম যা ডেটা স্ট্রিমিং এবং বিশ্লেষণের জন্য ব্যবহৃত হয়। Storm-এর কার্যক্রম মূলত Stream এবং Tuple নামক দুটি মৌলিক উপাদানের উপর ভিত্তি করে পরিচালিত হয়। এগুলি Storm-এ ডেটা প্রবাহের মূল কাঠামো প্রদান করে এবং ডেটা প্রসেসিংয়ের প্রক্রিয়া সহজ করে তোলে।
Stream (স্ট্রিম)
Stream হলো ডেটার ধারাবাহিক প্রবাহ বা স্রোত যা Storm টপোলজির মাধ্যমে প্রবাহিত হয়। এটি একটি অবিরত ডেটা ফিড যা একাধিক ডেটা আইটেম (Data Items) নিয়ে তৈরি হয় এবং একে একে Storm সিস্টেমে প্রবাহিত হয়। Storm-এ Stream হলো একটি কন্টেইনার, যা ডেটা টিউপল (Tuple) ধারণ করে এবং এই টিউপলগুলি টপোলজির স্পাউট এবং বোল্টে প্রেরিত হয়।
Stream এর মূল বৈশিষ্ট্য:
- অবিরত ডেটা ফ্লো: Stream ডেটার ধারাবাহিক প্রবাহের প্রতিনিধিত্ব করে, যা প্রতি মুহূর্তে নতুন টিউপল পাঠায়।
- রিয়েল-টাইম প্রক্রিয়াকরণ: এটি রিয়েল-টাইম ডেটা প্রসেসিংয়ের জন্য ডিজাইন করা হয়েছে, যেখানে ডেটা দ্রুত প্রবাহিত হয় এবং স্বল্প সময়ের মধ্যে প্রক্রিয়া করা হয়।
- একাধিক প্রক্রিয়াকরণ পয়েন্ট: Stream একাধিক স্পাউট বা বোল্টে পৌঁছাতে পারে এবং প্রতিটি পয়েন্টে ডেটা আলাদাভাবে প্রক্রিয়া হতে পারে।
Storm-এর Stream এক ধরনের "Data Channel" হিসেবে কাজ করে, যা টপোলজির মধ্যে ডেটার সঠিক প্রবাহ নিশ্চিত করে।
Tuple (টিউপল)
Tuple হলো Storm এর ডেটা একক ইউনিট, যা একটি নন-সামাজিক, অপরিবর্তনীয় (Immutable) ডেটা আইটেম। এটি ডেটার একটি রেকর্ড বা রো-র মতো, যা এক বা একাধিক ভ্যালু ধারণ করতে পারে। Tuple সাধারণত স্পাউট থেকে শুরু হয় এবং বোল্ট পর্যন্ত প্রেরিত হয়, যেখানে ডেটার উপর বিভিন্ন প্রসেসিং কার্যক্রম সম্পাদিত হয়।
Tuple এর মূল বৈশিষ্ট্য:
- ডেটার ইউনিট: Tuple একটি নির্দিষ্ট ডেটা ইউনিট, যেমন একটি মেসেজ বা রেকর্ড, যা Storm এর মধ্যে এক স্থান থেকে অন্য স্থানে প্রেরিত হয়।
- অপরিবর্তনীয়: একবার Tuple তৈরি হলে, এটি পরিবর্তনযোগ্য নয়। এর মান বা কন্টেন্ট পরিবর্তন করা যায় না।
- ডেটা উপাদান: Tuple একাধিক ডেটা উপাদান ধারণ করতে পারে, যা বিভিন্ন প্রকারের ডেটা টাইপ হতে পারে, যেমন String, Integer, Float, List ইত্যাদি।
উদাহরণস্বরূপ, একটি Tuple ধারণ করতে পারে একটি পণ্যের নাম, দাম এবং পরিমাণ। এই Tuple Storm এর মাধ্যমে টপোলজির মধ্যে বিভিন্ন কম্পোনেন্টে প্রেরিত হতে পারে।
Stream এবং Tuple এর সম্পর্ক
Storm-এ Stream এবং Tuple একে অপরের সাথে গভীরভাবে সম্পর্কিত। যেখানে Stream হলো ডেটার প্রবাহ, Tuple হলো সেই প্রবাহের একক অংশ। Stream একাধিক Tuple ধারণ করে এবং সেগুলোকে স্পাউট বা বোল্টে প্রেরণ করে।
- Stream: এটি ডেটার একটি ধারাবাহিক প্রবাহ। একাধিক Tuple একটি Stream এর অংশ হতে পারে, এবং Stream ডেটার প্রক্রিয়াকরণ প্রক্রিয়ায় সহায়ক ভূমিকা পালন করে।
- Tuple: একটি একক ডেটা আইটেম, যা Stream এর মাধ্যমে প্রসেসিংয়ের জন্য প্রেরিত হয়।
এভাবে, Storm-এ Stream এবং Tuple এর মাধ্যমে ডেটা প্রবাহিত এবং প্রক্রিয়া হয়।
Stream এবং Tuple হল Apache Storm এর দুটি মৌলিক উপাদান, যা রিয়েল-টাইম ডেটা স্ট্রিমিং এবং প্রসেসিংয়ের প্রক্রিয়া চালায়। Stream হলো ডেটার ধারাবাহিক প্রবাহ, যা একাধিক Tuple ধারণ করে। Tuple হলো Storm এর ডেটা একক ইউনিট, যা রিয়েল-টাইম ডেটা প্রক্রিয়াকরণে ব্যবহৃত হয়। Storm এর এই দুটি উপাদান একে অপরকে সমর্থন করে এবং Storm-কে ডিস্ট্রিবিউটেড এবং স্কেলেবল রিয়েল-টাইম ডেটা প্রসেসিং সিস্টেমে পরিণত করে।
Read more