অ্যাপাচি নিফাই (Apache NiFi) একটি শক্তিশালী ডেটা ইন্টিগ্রেশন টুল, যা ডেটা ফ্লো তৈরি, প্রক্রিয়া এবং পরিচালনা করার জন্য বিভিন্ন প্রোসেসরের মাধ্যমে কাজ করে। ডেটা এনরিচমেন্ট (Data Enrichment) এবং লুকআপ (Lookup) প্রোসেসরগুলি বিশেষভাবে ডেটার মান বৃদ্ধি বা অন্যান্য উৎস থেকে অতিরিক্ত তথ্য যোগ করার জন্য ব্যবহৃত হয়। এগুলি বড় আকারের ডেটা ইন্টিগ্রেশন এবং ট্রান্সফরমেশন কাজে সহায়ক।
ডেটা এনরিচমেন্ট হল একটি প্রক্রিয়া যেখানে একটি ডেটাসেটকে অতিরিক্ত তথ্য দিয়ে সমৃদ্ধ করা হয়, যা মূল ডেটাসেটের মান বৃদ্ধি করে। নিফাইতে ডেটা এনরিচমেন্ট সাধারণত অন্য ডেটা উৎস থেকে তথ্য সংগ্রহের মাধ্যমে করা হয়। উদাহরণস্বরূপ, একটি CSV বা ডাটাবেস থেকে তথ্য লুকআপ করে ফিচার যুক্ত করা।
LookupRecordProcessorLookupRecordProcessor
নিফাইয়ের একটি শক্তিশালী প্রোসেসর যা বিভিন্ন ডেটা উৎস (যেমন ডাটাবেস, হ্যাশম্যাপ, CSV) থেকে তথ্য লুকআপ করে। এটি বিশেষভাবে ব্যবহৃত হয় যখন ডেটার সাথে অন্যান্য সোর্স থেকে মান যুক্ত করতে হয়।
উদাহরণ:
LookupRecordProcessor lookupProcessor = new LookupRecordProcessor();
lookupProcessor.setLookupService(myLookupService); // Lookup service সংযোগ
lookupProcessor.onTrigger(context, session); // Trigger method কল
UpdateRecordProcessorUpdateRecordProcessor
একটি অপরিহার্য প্রোসেসর যা ডেটার মধ্যে পরিবর্তন করে নতুন ফিল্ড বা মান যোগ করতে পারে। এটি প্রক্রিয়া করা রেকর্ডের মধ্যে এনরিচমেন্ট করতে সহায়ক।
উদাহরণ:
UpdateRecordProcessor updateProcessor = new UpdateRecordProcessor();
updateProcessor.addReplacement("fieldName", "newValue"); // নির্দিষ্ট ফিল্ডে মান যোগ করা
লুকআপ প্রোসেসরগুলি নিফাইয়ের এমন প্রোসেসর যা ইনপুট ডেটার জন্য অতিরিক্ত তথ্য সংগ্রহ করে এবং তা আউটপুট ডেটাতে যোগ করে। এই প্রোসেসরগুলির মাধ্যমে আপনি একটি ডেটা উৎস (যেমন ডাটাবেস, ফাইল, API) থেকে ডেটা সংগ্রহ করে ফিল্টার বা প্রক্রিয়া করতে পারেন।
LookupServiceLookupService
একটি ইন্টারফেস যা নিফাইয়ে লুকআপ প্রোসেসরের জন্য কাস্টম লুকআপ সার্ভিস তৈরি করার সুযোগ প্রদান করে। এই সার্ভিসটি লুকআপের জন্য বিভিন্ন প্রকার কনফিগারেশন যেমন ডেটাবেস, ক্যাশিং সার্ভিস বা এক্সটার্নাল API ব্যবহার করতে পারে।
উদাহরণ:
LookupService
ইন্টারফেস ব্যবহার করতে পারেন।LookupService dbLookupService = new DatabaseLookupService();
ExecuteSQLProcessorExecuteSQLProcessor
প্রোসেসরটি একটি SQL কুয়েরি চালাতে সক্ষম, যা ডেটাবেসে তথ্য অনুসন্ধান করে এবং ডেটাবেস থেকে প্রাপ্ত ডেটা নিফাই ফ্লোতে যোগ করে। এটি লুকআপ অপারেশন হিসেবে ব্যবহার করা যায় যখন ডেটাবেস থেকে তথ্য যোগ করার প্রয়োজন হয়।
উদাহরণ:
ExecuteSQLProcessor sqlProcessor = new ExecuteSQLProcessor();
sqlProcessor.setSqlQuery("SELECT * FROM users WHERE email = :email");
GetFileProcessorGetFileProcessor
ফাইল সিস্টেম থেকে ডেটা পেতে ব্যবহার করা হয়, এবং এটি লুকআপ অপারেশন হিসেবে কাজ করতে পারে যখন ফাইল থেকে কিছু তথ্য সংগ্রহ করতে হয়।
উদাহরণ:
GetFileProcessor fileProcessor = new GetFileProcessor();
fileProcessor.setDirectory("/path/to/directory");
LookupService Configuration
যদি আপনি LookupRecordProcessor
ব্যবহার করছেন, তাহলে আপনাকে একটি LookupService
কনফিগার করতে হবে যা নির্দিষ্ট ডেটাবেস বা ফাইল থেকে তথ্য লুকআপ করবে। এটির জন্য একটি কনফিগারেশন ফাইল তৈরি করতে হবে যা ডেটাবেস কানেকশন স্ট্রিং, ইউজারনেম, পাসওয়ার্ড ইত্যাদি অন্তর্ভুক্ত করবে।
উদাহরণ:
DatabaseLookupService
কনফিগার করা।lookupService = org.apache.nifi.lookup.DatabaseLookupService
database.connection.url = jdbc:mysql://localhost:3306/mydb
Custom LookupProcessor
কাস্টম লুকআপ প্রোসেসর তৈরি করার সময়, আপনাকে এই প্রোসেসরটির জন্য ইনপুট এবং আউটপুট ফিল্ডগুলির মধ্যে সম্পর্ক এবং লুকআপ অপারেশন কনফিগার করতে হবে।
public class CustomLookupProcessor extends AbstractProcessor {
@Override
public void onTrigger(ProcessContext context, ProcessSession session) throws ProcessException {
// লুকআপ সার্ভিস ব্যবহার করে লুকআপ প্রক্রিয়া
String lookupValue = context.getProperty("lookupField").getValue();
String result = myLookupService.lookup(lookupValue);
// আউটপুটে প্রক্রিয়াকৃত মান সংযুক্ত করা
FlowFile flowFile = session.get();
session.putAttribute(flowFile, "lookupResult", result);
session.transfer(flowFile, SUCCESS);
}
}
অ্যাপাচি নিফাইতে ডেটা এনরিচমেন্ট এবং লুকআপ প্রোসেসরগুলি বিশেষভাবে ডেটা ফ্লোতে অতিরিক্ত তথ্য যোগ করার জন্য ব্যবহৃত হয়। LookupRecordProcessor
এবং UpdateRecordProcessor
ডেটার মান উন্নত করার জন্য ব্যবহৃত হয়, যখন ExecuteSQLProcessor
এবং GetFileProcessor
লুকআপ অপারেশন সম্পন্ন করতে সাহায্য করে। এই প্রোসেসরগুলি বিভিন্ন সোর্স যেমন ডাটাবেস, CSV ফাইল বা API থেকে তথ্য সংগ্রহ করে এবং ডেটা ফ্লোতে সেই তথ্য সংযুক্ত করে। নিফাইতে এই প্রোসেসরগুলির সঠিক কনফিগারেশন ও ব্যবহারে ডেটা প্রক্রিয়া ও ট্রান্সফরমেশন সহজ এবং কার্যকরী হয়ে ওঠে।
common.read_more