Streams Filter করা এবং Split করা

Data Streams এবং Tuple Processing - অ্যাপাচি স্টর্ম (Apache Storm) - Big Data and Analytics

386

Apache Storm একটি রিয়েল-টাইম ডেটা প্রসেসিং সিস্টেম, যা ডেটা স্ট্রিমগুলির উপর বিভিন্ন কার্যকলাপ সম্পাদন করতে সক্ষম। Storm টপোলজিতে Stream হলো ডেটার প্রবাহ, যা এক স্পাউট (Spout) থেকে শুরু হয়ে এক বা একাধিক বোল্ট (Bolt) এর মাধ্যমে প্রক্রিয়া করা হয়। Storm-এ Streams Filter করা এবং Streams Split করা দুটি গুরুত্বপূর্ণ কৌশল, যার মাধ্যমে ডেটা স্ট্রিমের উপর নির্দিষ্ট শর্ত প্রয়োগ করে ডেটার প্রবাহ নিয়ন্ত্রণ করা হয়।


Streams Filter করা

Stream Filtering হলো একটি প্রক্রিয়া, যেখানে ডেটার নির্দিষ্ট বৈশিষ্ট্য অনুসারে অপ্রয়োজনীয় ডেটা বাদ দেওয়া হয় এবং শুধুমাত্র প্রাসঙ্গিক ডেটা পরবর্তী প্রসেসিংয়ের জন্য পাঠানো হয়। Storm-এ এটি সাধারণত Bolt দ্বারা করা হয়, যেখানে একটি নির্দিষ্ট শর্ত বা লজিক প্রয়োগ করা হয় এবং সেই অনুযায়ী ডেটা ফিল্টার করা হয়।

উদাহরণ: Stream Filtering এর প্রক্রিয়া

ধরা যাক, একটি Storm টপোলজিতে আমরা একটি ফিল্টার বোল্ট (Bolt) ব্যবহার করতে চাই, যা শুধু পজিটিভ রেটিং সংক্রান্ত ডেটা গ্রহণ করবে এবং নেগেটিভ রেটিং বাদ দেবে।

public class FilterBolt extends BaseBasicBolt {

    @Override
    public void execute(Tuple input, BasicOutputCollector collector) {
        // ডেটা প্রাপ্তি
        int rating = input.getIntegerByField("rating");

        // ফিল্টার শর্ত
        if (rating > 0) {
            // পজিটিভ রেটিং হলে ডেটা পরবর্তী বোল্টে পাঠানো
            collector.emit(input.getValues());
        }
    }
}

এখানে FilterBolt ডেটার রেটিং ফিল্টার করে শুধু পজিটিভ রেটিং থাকা ডেটা পরবর্তী প্রসেসিংয়ের জন্য পাঠিয়ে দেবে।

Streams Filter এর সুবিধা:

  • ডেটা কমপ্লেক্সিটি হ্রাস: অপ্রয়োজনীয় ডেটা ফিল্টার করে সিস্টেমের পারফরম্যান্স উন্নত করা।
  • উন্নত কার্যকারিতা: Storm টপোলজিতে ফিল্টারিং করে শুধুমাত্র প্রাসঙ্গিক ডেটা প্রক্রিয়া করা, যা দ্রুত ফলাফল প্রদান করতে সহায়ক।

Streams Split করা

Stream Splitting একটি কৌশল, যেখানে একটি ইনপুট স্ট্রিমকে একাধিক আউটপুট স্ট্রিমে ভাগ করা হয়। Storm টপোলজিতে, Split করার মাধ্যমে এক স্ট্রিমকে একাধিক বোল্টে পাঠানো হয়, যা একই ডেটার উপর বিভিন্ন কার্যকলাপ সম্পাদন করতে পারে। এটি সাধারণত FieldsGrouping বা GlobalGrouping ব্যবহার করে করা হয়, যেখানে একাধিক বোল্টে ডেটা শেয়ার করা হয়।

উদাহরণ: Stream Splitting এর প্রক্রিয়া

ধরা যাক, একটি Storm টপোলজিতে আমরা একটি স্পাউট থেকে প্রাপ্ত ডেটাকে দুটি আলাদা বোল্টে ভাগ করতে চাই, একটি বোল্টে শুধুমাত্র error টাইপের ডেটা এবং আরেকটি বোল্টে বাকি সমস্ত ডেটা যাবে।

public class SplitBolt extends BaseBasicBolt {

    @Override
    public void execute(Tuple input, BasicOutputCollector collector) {
        String message = input.getStringByField("message");

        if (message.contains("error")) {
            // যদি error হয়, তাহলে একটি আলাদা আউটপুট স্ট্রিমে পাঠানো
            collector.emit(new Values("error", message));
        } else {
            // বাকি ডেটা অন্য স্ট্রিমে পাঠানো
            collector.emit(new Values("normal", message));
        }
    }
}

এখানে SplitBolt একটি স্ট্রিমের ডেটাকে দুইটি ভাগে ভাগ করে, একটি error ডেটার জন্য এবং অন্যটি normal ডেটার জন্য।

Streams Split এর সুবিধা:

  • বিভিন্ন ডেটা প্রসেসিং: একে একাধিক বোল্টে ভাগ করে বিভিন্ন প্রক্রিয়াকরণ করা, যেমন একটি বোল্টে ফিল্টারিং, অন্য বোল্টে অ্যাগ্রিগেশন ইত্যাদি।
  • স্কেলেবিলিটি বৃদ্ধি: বিভিন্ন আউটপুট স্ট্রিমে ডেটা ভাগ করে একই সময়ে একাধিক কাজ সম্পন্ন করা যায়।

Streams Filter এবং Split এর মধ্যে পার্থক্য

বৈশিষ্ট্যStreams FilterStreams Split
মূল কাজডেটার নির্দিষ্ট অংশ ফিল্টার করাডেটাকে একাধিক আউটপুট স্ট্রিমে ভাগ করা
আউটপুট স্ট্রিমএকটি স্ট্রিমে ডেটা প্রক্রিয়া করাএকাধিক স্ট্রিমে ডেটা পাঠানো
ব্যবহার ক্ষেত্রঅপ্রয়োজনীয় ডেটা বাদ দেওয়াডেটাকে বিভিন্ন প্রসেসিং স্ট্রিমে ভাগ করা
ফলাফলফিল্টার করা ডেটাবিভিন্ন ধরণের প্রসেসিংয়ের জন্য ভাগ করা ডেটা

উপসংহার

Streams Filter এবং Streams Split দুটি গুরুত্বপূর্ণ কৌশল যা Apache Storm এর মাধ্যমে ডেটা স্ট্রিমের উপর কার্যকরভাবে কাজ করতে সহায়ক। Filter দ্বারা আপনি ডেটার নির্দিষ্ট অংশ ফিল্টার করতে পারেন, যা সিস্টেমের পারফরম্যান্স উন্নত করে। Split দ্বারা আপনি একটি ডেটা স্ট্রিমকে একাধিক স্ট্রিমে ভাগ করতে পারেন, যা একাধিক প্রসেসিং লজিক ব্যবহারের সুযোগ প্রদান করে। Storm টপোলজির এই কৌশলগুলি বড় ডেটা প্রক্রিয়াকরণের জন্য অত্যন্ত কার্যকরী এবং স্কেলেবল সমাধান প্রদান করে।

Content added By
Promotion

Are you sure to start over?

Loading...