অ্যাপাচি নিফাই (Apache NiFi) একটি শক্তিশালী ডেটা ফ্লো ব্যবস্থাপনা প্ল্যাটফর্ম যা ডেটার প্রক্রিয়া এবং স্থানান্তরের জন্য ব্যবহৃত হয়। NiFi-তে Attribute Modification Processors ব্যবহার করে ডেটার attributes (অথবা মেটাডেটা) পরিবর্তন করা যায়, যা ডেটার সাথে সম্পর্কিত অতিরিক্ত তথ্য যেমন ফাইল নাম, টাইপ, সাইজ, সময় ইত্যাদি। এই প্রোসেসরগুলি ডেটার কন্টেন্ট বা ফরম্যাট পরিবর্তন না করে শুধুমাত্র এর মেটাডেটা (attributes) পরিবর্তন করতে ব্যবহৃত হয়।
এই প্রোসেসরগুলির মধ্যে দুটি গুরুত্বপূর্ণ প্রোসেসর হল: UpdateAttribute এবং ReplaceText।
UpdateAttribute প্রোসেসর
UpdateAttribute কি?
UpdateAttribute প্রোসেসরটি NiFi-তে একটি শক্তিশালী টুল যা FlowFile-এর attributes পরিবর্তন করতে ব্যবহৃত হয়। আপনি এটি ব্যবহার করে FlowFile-এর মেটাডেটা (যেমন নাম, টাইপ, সময়, এবং অন্যান্য কাস্টম অ্যাট্রিবিউট) আপডেট করতে পারেন।
ব্যবহার কিভাবে করবেন?
এটি সাধারণত তখন ব্যবহার করা হয় যখন আপনি FlowFile-এর attributes অনুযায়ী পরবর্তী প্রোসেসর বা ডেটাবেসের জন্য কিছু কাস্টম মেটাডেটা তৈরি করতে চান। উদাহরণস্বরূপ, ফাইলের নাম পরিবর্তন করা, টাইমস্ট্যাম্প অ্যাড করা, বা কোন নির্দিষ্ট attribute ভিত্তিক কন্ডিশন তৈরি করা।
কনফিগারেশন:
- Attributes to Update: আপনি যে অ্যাট্রিবিউটগুলো আপডেট করতে চান, সেগুলি এখানে উল্লেখ করতে হবে। যেমন
filename,mime.type,last_modifiedইত্যাদি। - Value to Set: এখানে আপনি নতুন ভ্যালু উল্লেখ করতে পারবেন। এটা কাস্টম ভ্যালু অথবা NiFi-এর Expression Language ব্যবহার করতে পারে, যেমন
${filename:toLower()}(ফাইলনেমকে লোয়ারকেসে কনভার্ট করা)। - Add or Replace: এখানে আপনি সিদ্ধান্ত নিতে পারবেন অ্যাট্রিবিউটটি নতুনভাবে যোগ করবেন নাকি পূর্বের মান প্রতিস্থাপন করবেন।
উদাহরণ:
- ফাইলের নামের শেষে টাইমস্ট্যাম্প যোগ করা:
- Attribute:
filename - Value to Set:
${filename}-${now()}(ফাইল নামের সাথে বর্তমান সময়ের টাইমস্ট্যাম্প যুক্ত হবে)
- Attribute:
- ফাইলের টাইপ পরিবর্তন করা:
- Attribute:
mime.type - Value to Set:
application/json(এটি FlowFile-এর MIME টাইপ পরিবর্তন করবে)
- Attribute:
ReplaceText প্রোসেসর
ReplaceText কি?
ReplaceText প্রোসেসরটি FlowFile-এর কন্টেন্টের মধ্যে টেক্সট পরিবর্তন করতে ব্যবহৃত হয়। এটি সাধারণত ডেটার মধ্যে নির্দিষ্ট টেক্সট বা প্যাটার্ন খুঁজে বের করে এবং সেটি পরিবর্তন করার জন্য ব্যবহার করা হয়। আপনি এটি ব্যবহার করে ডেটার কন্টেন্টের কোনো অংশের পরিবর্তন, প্রক্রিয়াকরণ বা পুনরাবৃত্তি করতে পারেন।
ব্যবহার কিভাবে করবেন?
এটি সাধারণত তখন ব্যবহৃত হয় যখন আপনাকে FlowFile-এর কন্টেন্টের মধ্যে কোনো নির্দিষ্ট টেক্সট অনুসন্ধান করে সেটি প্রতিস্থাপন করতে হয়। উদাহরণস্বরূপ, একটি ফাইলের মধ্যে কিছু নির্দিষ্ট শব্দ খুঁজে বের করা এবং তা অন্য শব্দে প্রতিস্থাপন করা।
কনফিগারেশন:
- Search Value: এখানে আপনি যে টেক্সট বা রেগুলার এক্সপ্রেশন খুঁজে পেতে চান তা উল্লেখ করবেন। উদাহরণস্বরূপ,
{{old_value}}। - Replacement Value: এখানে আপনি সেই টেক্সট বা প্যাটার্নটি প্রতিস্থাপন করবেন। উদাহরণস্বরূপ,
{{new_value}}। - Replacement Strategy: এটি নির্ধারণ করবে কিভাবে প্রতিস্থাপন হবে (যেমন, "Literal Value", "Regular Expression", ইত্যাদি)।
উদাহরণ:
একটি নির্দিষ্ট শব্দ প্রতিস্থাপন:
- Search Value:
{{old_value}} - Replacement Value:
{{new_value}}
এটি FlowFile-এর কন্টেন্টে
old_valueখুঁজে পাবে এবং সেটিnew_valueদিয়ে প্রতিস্থাপন করবে।- Search Value:
JSON ডেটার মধ্যে কীগুলোর নাম পরিবর্তন:
- Search Value:
"name": ".*" - Replacement Value:
"full_name": "$1"
এটি JSON কন্টেন্টের মধ্যে
"name"কীগুলোর নাম"full_name"এ পরিবর্তন করবে।- Search Value:
UpdateAttribute এবং ReplaceText এর মধ্যে পার্থক্য
| বৈশিষ্ট্য | UpdateAttribute | ReplaceText |
|---|---|---|
| কাজের ধরন | FlowFile-এর মেটাডেটা বা attributes পরিবর্তন | FlowFile-এর কন্টেন্টের মধ্যে টেক্সট বা প্যাটার্ন প্রতিস্থাপন |
| প্রতিস্থাপন করা হয় | শুধুমাত্র attributes বা মেটাডেটা | কন্টেন্টের টেক্সট (যেমন ফাইলের ভ্যালু বা ডেটা) |
| ব্যবহার | FlowFile-এর নাম, টাইপ, সময় বা কাস্টম attribute পরিবর্তন | কন্টেন্টের মধ্যে নির্দিষ্ট শব্দ বা প্যাটার্ন প্রতিস্থাপন |
| ভ্যালু | Expression Language বা কাস্টম ভ্যালু নির্ধারণ করা যায় | রেগুলার এক্সপ্রেশন বা নির্দিষ্ট টেক্সট ব্যবহার করা যায় |
সারাংশ
অ্যাপাচি নিফাই (Apache NiFi)-তে Attribute Modification Processors ব্যবহার করে আপনি FlowFile-এর attributes বা মেটাডেটা পরিবর্তন করতে পারেন। UpdateAttribute প্রোসেসরটি FlowFile-এর attributes পরিবর্তন করতে ব্যবহৃত হয়, যেমন ফাইলের নাম বা টাইপ, এবং ReplaceText প্রোসেসরটি FlowFile-এর কন্টেন্টের মধ্যে টেক্সট বা প্যাটার্ন পরিবর্তন করার জন্য ব্যবহৃত হয়। এগুলি NiFi ডেটা ফ্লো প্রক্রিয়াকরণে অত্যন্ত গুরুত্বপূর্ণ টুল যা ডেটার মেটাডেটা এবং কন্টেন্টে পরিবর্তন করতে সহায়ক।
Read more