অ্যাপাচি নিফাই (Apache NiFi) একটি শক্তিশালী ডেটা ফ্লো ব্যবস্থাপনা প্ল্যাটফর্ম যা ডেটা সংগ্রহ, প্রক্রিয়াকরণ এবং বিতরণ করতে ব্যবহৃত হয়। NiFi এর অন্যতম গুরুত্বপূর্ণ বৈশিষ্ট্য হল কনটেন্ট-বেসড রাউটিং (Content-based Routing) এবং ফিল্টারিং (Filtering), যা ডেটা ফ্লো পরিচালনা এবং কাস্টম লজিক অনুযায়ী ডেটার ট্রান্সফরমেশন এবং বিতরণে সহায়ক। কনটেন্ট-বেসড রাউটিং এবং ফিল্টারিং ব্যবস্থাপনা মেথডগুলি একটি ডেটা ফ্লো ডিজাইনকে আরও নমনীয় এবং কার্যকরী করে তোলে।
কনটেন্ট-বেসড রাউটিং হল একটি পদ্ধতি যেখানে ডেটার কন্টেন্ট (যেমন, ডেটার বিষয়বস্তু বা মান) এর ভিত্তিতে ডেটাকে বিভিন্ন রুটে পরিচালনা করা হয়। এটি বিশেষত ব্যবহারী এবং অ্যাপ্লিকেশনের চাহিদা অনুযায়ী ডেটা সেগমেন্টেশন, ট্রান্সফরমেশন, বা বিতরণ করতে ব্যবহৃত হয়। NiFi তে, কনটেন্ট-বেসড রাউটিং করার জন্য বিভিন্ন প্রসেসর উপলব্ধ রয়েছে।
ধরা যাক, আপনার কাছে JSON ডেটা রয়েছে এবং আপনি নির্দিষ্ট একটি ফিল্ডের মানের উপর ভিত্তি করে ডেটা দুটি আলাদা রুটে পাঠাতে চান। উদাহরণস্বরূপ, একটি status
ফিল্ডে যদি "success" থাকে, তবে ডেটা একটি নির্দিষ্ট ডেস্টিনেশনে যাবে, এবং যদি "failure" থাকে, তবে তা অন্য ডেস্টিনেশনে যাবে।
এই রাউটিংটি NiFi এর RouteOnAttribute
প্রসেসর ব্যবহার করে করা যেতে পারে, যেখানে আপনি একটি এক্সপ্রেশন লিখে কন্টেন্টের ভিত্তিতে ডেটাকে আলাদা রুটে পাঠাতে পারেন।
ফিল্টারিং হল ডেটার কিছু অংশ বাদ দেওয়া বা নির্বাচিত করা। NiFi তে, ফিল্টারিংয়ের মাধ্যমে আপনি ডেটার নির্দিষ্ট অংশ নির্বাচন করতে পারেন যা আপনার প্রয়োজনের জন্য প্রাসঙ্গিক। এটি বিশেষভাবে ডেটা বিশ্লেষণ এবং কাস্টম প্রসেসিংয়ের জন্য গুরুত্বপূর্ণ, যেখানে কেবলমাত্র প্রয়োজনীয় ডেটা প্রক্রিয়া করা হয় এবং অবাঞ্ছিত ডেটা ফিল্টার করা হয়।
status
ফিল্ড যদি "success" হয়, তবে ডেটাটি ফিল্টার হবে, অন্যথায় বাদ পড়বে।RouteOnAttribute
বা EvaluateJsonPath
প্রসেসর ব্যবহার করে নির্দিষ্ট শর্ত অনুযায়ী ডেটা ফিল্টার করা যেতে পারে।ধরা যাক, আপনি একটি JSON ফাইল থেকে এমন রেকর্ডগুলি আলাদা করতে চান যেখানে status
ফিল্ডের মান "active"। এই কাজটি NiFi এর RouteOnAttribute
প্রসেসর ব্যবহার করে করা যাবে, যেখানে শর্ত থাকবে:
status == "active"
এটি ফিল্টার করবে এবং শুধুমাত্র status
"active" যেগুলি তাদের পাঠাবে।
RouteOnAttribute
প্রসেসর ব্যবহার করে আপনি একটি বা একাধিক ডেটা অ্যাট্রিবিউটের ভিত্তিতে রাউটিং এবং ফিল্টারিং করতে পারেন। এটি সবচেয়ে বেশি ব্যবহৃত প্রসেসরগুলোর একটি, যা অ্যাট্রিবিউটের মানের উপর ভিত্তি করে ডেটাকে আলাদা রুটে প্রেরণ করতে সহায়ক।
এই প্রসেসরটি JSON ডেটার পাথ বিশ্লেষণ করতে ব্যবহৃত হয় এবং নির্দিষ্ট পাথ থেকে মান নির্বাচন করতে সাহায্য করে। এটি ফিল্টারিং এবং কনটেন্ট-ভিত্তিক রাউটিংয়ের জন্য উপযুক্ত।
ExtractText
প্রসেসরটি সাধারণত টেক্সট ফাইল বা অন্যান্য ডেটা থেকে নির্দিষ্ট তথ্য বের করতে ব্যবহৃত হয়। এটি ফিল্টারিং এবং রাউটিং কনফিগারেশনের জন্য বেশ কার্যকরী।
UpdateAttribute
প্রসেসর ডেটার অ্যাট্রিবিউট পরিবর্তন করতে ব্যবহৃত হয়। এটি রাউটিং বা ফিল্টারিংয়ের সময় ডেটার অ্যাট্রিবিউট আপডেট করতে সাহায্য করে।
অ্যাপাচি নিফাই (Apache NiFi) কনটেন্ট-বেসড রাউটিং এবং ফিল্টারিং এর মাধ্যমে ডেটা ফ্লোতে অত্যন্ত নমনীয়তা প্রদান করে। ডেটার কন্টেন্ট বা অ্যাট্রিবিউটের ভিত্তিতে রাউটিং এবং ফিল্টারিং নিশ্চিত করে যে আপনি কেবলমাত্র প্রাসঙ্গিক ডেটা প্রক্রিয়া করবেন এবং তা যথাযথ গন্তব্যে পাঠাবেন। NiFi এর গ্রাফিক্যাল ইউজার ইন্টারফেসের মাধ্যমে এই প্রক্রিয়াগুলি সহজেই কনফিগার করা যায়, যা ডেটা ইন্টিগ্রেশন এবং প্রক্রিয়াকরণকে আরও সহজ এবং কার্যকরী করে তোলে।
common.read_more