অ্যাপাচি নিফাই (Apache NiFi) একটি শক্তিশালী ডেটা প্রবাহ অটোমেশন প্ল্যাটফর্ম যা ডেটার প্রোসেসিং, ফিল্টারিং, এবং রাউটিং পরিচালনা করতে সক্ষম। নিফাই তে ডেটা ফিল্টারিং এবং স্প্লিট/জয়েন প্রোসেসর ব্যবহার করে আপনি ডেটার অপ্রয়োজনীয় অংশ বাদ দিতে, ডেটা ভাগ করতে এবং একত্রিত করতে পারেন। এখানে আমরা এই প্রোসেসরগুলির কিছু গুরুত্বপূর্ণ ব্যবহার নিয়ে আলোচনা করব।
ডেটা ফিল্টারিং (Data Filtering)
ডেটা ফিল্টারিং এমন একটি প্রক্রিয়া যেখানে আপনি নির্দিষ্ট শর্তের ভিত্তিতে ডেটা ফিল্টার করে প্রয়োজনীয় অংশে সীমাবদ্ধ রাখেন। নিফাই তে কয়েকটি প্রোসেসর ব্যবহার করে আপনি ডেটা ফিল্টার করতে পারেন।
১. RouteOnAttribute
RouteOnAttribute প্রোসেসরটি ফ্লোফাইলের অ্যাট্রিবিউটের ভিত্তিতে ডেটা রাউট করে। এটি একটি গুরুত্বপূর্ণ ফিল্টারিং প্রোসেসর যা ডেটার নির্দিষ্ট অ্যাট্রিবিউট বা বৈশিষ্ট্যের উপর ভিত্তি করে ডেটার রাউটিং সিদ্ধান্ত নেয়।
- ব্যবহার: অ্যাট্রিবিউটের ভিত্তিতে ডেটা ফিল্টার বা রাউটিং।
- কনফিগারেশন: শর্ত (conditions) সেট করতে হবে, যেমন
status = successঅথবাtype = csv।
এই প্রোসেসরটি নির্দিষ্ট অ্যাট্রিবিউটের ভিত্তিতে ডেটা রাউট বা ফিল্টার করবে।
২. UpdateAttribute
UpdateAttribute প্রোসেসরটি ফ্লোফাইলের অ্যাট্রিবিউট আপডেট করার জন্য ব্যবহৃত হয়। আপনি ফিল্টার করার জন্য অ্যাট্রিবিউটের মান পরিবর্তন করতে বা নতুন অ্যাট্রিবিউট যোগ করতে পারেন।
- ব্যবহার: অ্যাট্রিবিউট আপডেট করা এবং ফিল্টারিং শর্ত অনুযায়ী মান নির্ধারণ।
- কনফিগারেশন: অ্যাট্রিবিউটের নতুন মান বা কন্ডিশন সেট করতে হবে।
এই প্রোসেসরটি ফ্লোফাইলের অ্যাট্রিবিউট আপডেট করে বা নির্দিষ্ট শর্তে ফিল্টার করে।
৩. ExecuteScript
ExecuteScript প্রোসেসরটি স্ক্রিপ্ট চালানোর জন্য ব্যবহৃত হয়, যেমন জাভাস্ক্রিপ্ট বা পাইথন। এটি কাস্টম ফিল্টারিং শর্তে ডেটা প্রোসেসিং করার জন্য উপযোগী।
- ব্যবহার: কাস্টম স্ক্রিপ্টের মাধ্যমে ডেটা ফিল্টারিং।
- কনফিগারেশন: স্ক্রিপ্ট কোড এবং শর্ত সেট করতে হবে।
এই প্রোসেসরটি কাস্টম স্ক্রিপ্ট ব্যবহার করে ডেটা ফিল্টার করার জন্য ব্যবহৃত হবে।
ডেটা স্প্লিটিং এবং জয়েনিং (Data Splitting and Joining)
নিফাই তে ডেটা স্প্লিটিং এবং জয়েনিং করা খুবই গুরুত্বপূর্ণ যখন আপনি বড় ফাইল বা ডেটা সাইজ নিয়ে কাজ করেন এবং সেগুলিকে ছোট টুকরোতে ভাগ করতে চান অথবা একাধিক টুকরা একত্রিত করতে চান।
১. SplitText
SplitText প্রোসেসরটি একটি বড় টেক্সট ফাইল বা ডেটা স্ট্রিমকে ছোট ছোট অংশে ভাগ করতে ব্যবহৃত হয়। এটি সাধারণত লাইন বা স্ট্রিংয়ের ভিত্তিতে ডেটা ভাগ করে।
- ব্যবহার: বড় টেক্সট ফাইল বা ডেটা লাইন বা ব্লকে ভাগ করা।
- কনফিগারেশন: ভাগ করার পদ্ধতি (যেমন প্রতি লাইন বা নির্দিষ্ট সাইজে ভাগ করা) নির্ধারণ করা।
এই প্রোসেসরটি একটি বড় টেক্সট ডেটা বা ফাইলকে ছোট ছোট টুকরোতে ভাগ করবে।
২. SplitContent
SplitContent প্রোসেসরটি কনটেন্ট বা ডেটা প্যাকেটকে ছোট ব্লকে ভাগ করে। এটি ফাইলের কন্টেন্টের সাইজ নির্ধারণের মাধ্যমে ডেটাকে স্প্লিট করতে সক্ষম।
- ব্যবহার: কন্টেন্ট বা ডেটা প্যাকেট ভাগ করা।
- কনফিগারেশন: প্রতিটি ব্লকের সাইজ বা সংখ্যার উপর ভিত্তি করে ডেটা ভাগ করা।
এই প্রোসেসরটি কন্টেন্টকে নির্দিষ্ট আকারের ব্লকে ভাগ করবে।
৩. MergeContent
MergeContent প্রোসেসরটি একাধিক ফ্লোফাইলকে একত্রিত করে একটি একক ফাইল বা কন্টেন্টে পরিণত করে। এটি ডেটাকে পুনঃসংকলন এবং একত্রিত করার জন্য ব্যবহৃত হয়।
- ব্যবহার: একাধিক ফ্লোফাইল বা ডেটা টুকরোকে একত্রিত করা।
- কনফিগারেশন: মার্জিং পদ্ধতি এবং শর্ত নির্বাচন করা।
এই প্রোসেসরটি একাধিক ডেটা ফ্লোকে একত্রিত করে একটি একক কন্টেন্ট তৈরি করবে।
৪. MergeRecord
MergeRecord প্রোসেসরটি রেকর্ড ডেটাকে একত্রিত করতে ব্যবহৃত হয়। এটি বিশেষভাবে বিভিন্ন ফরম্যাটে রেকর্ড ডেটা (যেমন JSON, CSV) একত্রিত করতে ব্যবহৃত হয়।
- ব্যবহার: রেকর্ড ভিত্তিক ডেটা একত্রিত করা।
- কনফিগারেশন: ইনপুট রেকর্ড ফরম্যাট এবং আউটপুট ফরম্যাট নির্ধারণ করতে হবে।
এই প্রোসেসরটি রেকর্ড ভিত্তিক ডেটাকে একত্রিত করতে ব্যবহৃত হবে।
সারাংশ
অ্যাপাচি নিফাই তে ডেটা ফিল্টারিং এবং স্প্লিট/জয়েন প্রোসেসরগুলি ডেটার কার্যকরী প্রক্রিয়া এবং ব্যবস্থাপনার জন্য অত্যন্ত গুরুত্বপূর্ণ। ডেটা ফিল্টারিংয়ের মাধ্যমে আপনি অপ্রয়োজনীয় ডেটা বাদ দিতে পারেন এবং স্প্লিট/জয়েন প্রোসেসরগুলির মাধ্যমে ডেটাকে সহজে ভাগ বা একত্রিত করতে পারেন, যা ডেটার প্রোসেসিং আরও কার্যকর এবং দক্ষ করে তোলে।
Read more