অ্যাপাচি নিফাই (Apache NiFi) একটি শক্তিশালী ডেটা ফ্লো ম্যানেজমেন্ট টুল যা ডেটা ফ্লো পরিচালনা, প্রক্রিয়া এবং রুটিংয়ের জন্য ব্যবহৃত হয়। নিফাইতে Content-based Routing বা কনটেন্ট-ভিত্তিক রাউটিং ডেটার বিষয়বস্তু বা অ্যাট্রিবিউটের ভিত্তিতে ডেটাকে বিভিন্ন রুটে পাঠানোর পদ্ধতি। এটি ডেটা ফ্লো ম্যানেজমেন্টে অত্যন্ত কার্যকরী, যেখানে নির্দিষ্ট শর্তে ডেটা একাধিক প্রোসেসরের মধ্যে রাউট করা হয়।
নিফাইয়ে RouteOnAttribute এবং RouteOnContent প্রোসেসর দুটি কনটেন্ট-ভিত্তিক রাউটিংয়ের জন্য ব্যবহৃত হয়। এগুলোর সাহায্যে ডেটার উপাদান বা অ্যাট্রিবিউটের উপর ভিত্তি করে সিদ্ধান্ত নেওয়া হয় কিভাবে ডেটাকে রাউট করা হবে।
RouteOnAttribute
প্রোসেসর ব্যবহার করে আপনি ডেটার অ্যাট্রিবিউট (যেমন ফাইলের নাম, টাইপ, সাইজ) এর ভিত্তিতে ডেটা রাউট করতে পারেন। এটি ডেটার ইনপুট অ্যাট্রিবিউটের শর্ত অনুযায়ী রাউটিং সিদ্ধান্ত নেয়।
filename matches '^.*.csv$'
(ফাইলের নাম যদি .csv
এক্সটেনশনে থাকে)contentType == 'application/json'
(যদি কনটেন্ট টাইপ JSON হয়)ধরা যাক, আপনি একটি ফাইল নামের ভিত্তিতে রাউট করতে চান, যেখানে .csv
ফাইলগুলিকে একটি রুটে এবং .json
ফাইলগুলিকে অন্য একটি রুটে পাঠাতে চান।
filename matches '^.*\.csv$'
filename matches '^.*\.json$'
এখন, .csv
ফাইলগুলি এক রুটে এবং .json
ফাইলগুলি অন্য রুটে যাবে।
RouteOnContent
প্রোসেসরটি ডেটার আসল কনটেন্ট বা বিষয়বস্তু বিশ্লেষণ করে রাউটিং সিদ্ধান্ত নেয়। এটি কনটেন্টের মধ্যে নির্দিষ্ট শব্দ বা প্যাটার্নের জন্য অনুসন্ধান করতে পারে এবং সেই অনুযায়ী ডেটা রাউট করে।
contains('error')
(যদি কনটেন্টে 'error' শব্দটি থাকে)contains('success')
(যদি কনটেন্টে 'success' শব্দটি থাকে)ধরা যাক, আপনি একটি ফাইলের কনটেন্ট বিশ্লেষণ করতে চান এবং যদি কনটেন্টে "error" থাকে, তাহলে তা একটি রুটে এবং "success" থাকলে তা অন্য একটি রুটে পাঠাতে চান।
contains('error')
contains('success')
এখন, "error" কনটেন্টযুক্ত ফাইলগুলি এক রুটে এবং "success" কনটেন্টযুক্ত ফাইলগুলি অন্য রুটে যাবে।
বৈশিষ্ট্য | RouteOnAttribute | RouteOnContent |
---|---|---|
রাউটিং শর্ত | ডেটার অ্যাট্রিবিউটের ভিত্তিতে (যেমন ফাইল নাম, কনটেন্ট টাইপ) | ডেটার কনটেন্ট বা ভেতরের বিষয়বস্তু বিশ্লেষণ করে |
শর্ত নির্ধারণ | অ্যাট্রিবিউটের মানের সাথে মিলিয়ে শর্ত দেওয়া হয় | কনটেন্টের মধ্যে প্যাটার্ন বা শব্দ খুঁজে শর্ত দেওয়া হয় |
ব্যবহার | ফাইলের নাম, সাইজ, টাইপ, অথবা মেটাডেটার ভিত্তিতে রাউটিং | ফাইল বা ডেটার মধ্যে নির্দিষ্ট প্যাটার্ন বা শব্দ খুঁজে রাউটিং |
অ্যাপাচি নিফাইতে RouteOnAttribute এবং RouteOnContent প্রোসেসর দুটি কনটেন্ট-ভিত্তিক রাউটিংয়ের জন্য ব্যবহৃত হয়। RouteOnAttribute
প্রোসেসর ডেটার অ্যাট্রিবিউটের ভিত্তিতে রাউটিং সিদ্ধান্ত নেয়, যেখানে RouteOnContent
কনটেন্টের ভিতরের তথ্য বিশ্লেষণ করে রাউটিং করে। এই দুটি প্রোসেসরের মাধ্যমে আপনি সহজেই ডেটা ফ্লোতে কনটেন্ট বা অ্যাট্রিবিউটের ভিত্তিতে শর্ত নির্ধারণ করতে পারেন এবং ডেটাকে সঠিক রুটে পাঠাতে পারেন।
common.read_more