ডেটা প্রক্রিয়াকরণে সঠিক ডেটার গঠন বা schema বজায় রাখা অত্যন্ত গুরুত্বপূর্ণ। কাফকা ব্যবহারকারীরা যখন বিভিন্ন ধরনের ডেটা স্ট্রিম পাঠান, তখন ডেটার গঠন (যেমন JSON, Avro, বা Protobuf) সঠিকভাবে ফলো করা নিশ্চিত করতে Schema Registry ব্যবহার করা হয়। Schema Registry অ্যাপাচি কাফকা ইকোসিস্টেমের একটি অপরিহার্য অংশ, যা ডেটার গঠন বা schema সংরক্ষণ এবং যাচাই করার কাজ করে।
এই পর্বে আমরা জানবো কীভাবে Schema Registry দিয়ে কাফকা মেসেজগুলোর ডেটা ভ্যালিডেশন করা যায় এবং এর মাধ্যমে ডেটার সঠিক গঠন নিশ্চিত করা যায়।
Schema Registry কী?
Schema Registry একটি সার্ভিস, যা Apache Avro বা অন্যান্য সিরিয়ালাইজেশন ফরম্যাটের জন্য স্কিমা (schema) সংরক্ষণ এবং পরিচালনা করে। এটি একটি centralized repository হিসেবে কাজ করে, যেখানে কাফকা টপিকের জন্য ব্যবহৃত স্কিমাগুলি সংরক্ষিত থাকে। এতে ডেটার কাঠামো (structure) সঠিক কিনা তা যাচাই করার জন্য schema validation কার্যক্রম চালানো হয়।
Schema Registry এর উদ্দেশ্য:
- Schema Evolution: স্কিমা পরিবর্তন করার জন্য কাফকা মেসেজগুলির সাথে সামঞ্জস্য রাখা।
- Data Integrity: ডেটার সঠিক গঠন নিশ্চিত করা এবং ডুপ্লিকেট ডেটা বা ভুল ফরম্যাট ব্লক করা।
- Version Control: স্কিমার বিভিন্ন সংস্করণ সংরক্ষণ করা এবং সঠিক সংস্করণ ব্যবহার নিশ্চিত করা।
Schema Registry এর কাজ কিভাবে হয়?
Schema Registry একটি RESTful API প্রদান করে, যার মাধ্যমে ব্যবহারকারীরা স্কিমা রেজিস্টার করতে, স্কিমার সংস্করণ পরিচালনা করতে এবং যাচাই করতে পারেন। কাফকা মেসেজ প্রেরণ করার সময়, প্রযোজক (producer) এবং গ্রাহক (consumer) উভয়কেই সঠিক স্কিমা অনুসরণ করতে হয়। সঠিক স্কিমা মেনে না চললে, ডেটা পাঠানো বা গ্রহণ করা সম্ভব হয় না।
Schema Registry এর প্রধান কার্যাবলী:
- Schema Registration: প্রযোজকরা যখন নতুন স্কিমা তৈরি করেন, তখন এটি Schema Registry তে নিবন্ধিত হয়।
- Schema Validation: ডেটা পাঠানোর আগে, স্কিমা যাচাই করা হয় যাতে এটি স্কিমা রেজিস্ট্রিতে সংরক্ষিত স্কিমার সাথে মিলে।
- Schema Evolution: স্কিমা পরিবর্তন হলে, পুরনো ডেটার সাথে সামঞ্জস্য বজায় রাখতে Schema Registry সংস্করণ ব্যবস্থাপনা করে। এটি নতুন স্কিমা সংস্করণকে পুরনো সংস্করণের সাথে সামঞ্জস্যপূর্ণ রাখার জন্য বৈধতা পরীক্ষা করে।
Schema Registry Integration এর মাধ্যমে Data Validation
Data Validation একাধিক স্তরে কাজ করে, যা নিশ্চিত করে যে শুধুমাত্র সঠিক এবং নির্ধারিত কাঠামো অনুসরণকারী ডেটাই কাফকা টপিকের মাধ্যমে প্রবাহিত হবে। এ জন্য Schema Registry ব্যবহার করে ডেটা যাচাই করা হয়।
১. Producer Side Validation
প্রযোজক (Producer) ডেটা প্রেরণের আগে, Schema Registry তে সংরক্ষিত স্কিমার সাথে ডেটার গঠন যাচাই করে। যদি প্রযোজক ডেটা প্রেরণের জন্য ভুল স্কিমা ব্যবহার করে, তাহলে স্কিমা রেজিস্ট্রির মাধ্যমে একটি ত্রুটি (error) প্রাপ্ত হবে এবং ডেটা প্রেরণ ব্লক হবে।
উদাহরণস্বরূপ, যখন একটি প্রযোজক অ্যাভ্রো (Avro) ফরম্যাটে ডেটা পাঠায়, তখন এই ফরম্যাটের সাথে সংশ্লিষ্ট স্কিমাটি Schema Registry থেকে যাচাই করা হয়। যদি ডেটা স্কিমার সাথে মিল না খায়, তবে এটি স্বীকৃত হবে না এবং একটি ত্রুটি (error) হবে।
ProducerRecord<String, GenericRecord> record = new ProducerRecord<>(topic, key, value);
producer.send(record);
যতক্ষণ না ডেটার স্কিমা Schema Registry এর সাথে মিলে, ততক্ষণ ডেটা পাঠানো সম্ভব হবে না।
২. Consumer Side Validation
কনসিউমার (Consumer) ডেটা গ্রহণ করার সময়, এটি স্কিমা রেজিস্ট্রির সাথে সংযুক্ত স্কিমার যাচাই করে। কনসিউমারের মধ্যে কোনো অসামঞ্জস্য হলে, ডেটা গ্রহণ করা যাবে না। এটি নিশ্চিত করে যে কনসিউমার শুধুমাত্র সঠিক স্কিমা অনুসরণকারী ডেটা গ্রহণ করছে।
৩. Schema Compatibility Check
Schema Registry স্কিমার সামঞ্জস্য বা compatibility যাচাই করার জন্য দুটি প্রধান পদ্ধতি ব্যবহার করে:
- Backward Compatibility: নতুন স্কিমা পুরনো স্কিমার সাথে সঙ্গতিপূর্ণ কিনা তা যাচাই করা। এতে আগের মেসেজগুলো নতুন স্কিমার দ্বারা পাঠানো ডেটার সাথে সুসংগত থাকবে।
- Forward Compatibility: পুরনো স্কিমা নতুন স্কিমার সাথে সঙ্গতিপূর্ণ কিনা তা যাচাই করা। এর মাধ্যমে পুরনো মেসেজগুলো নতুন স্কিমার দ্বারা প্রক্রিয়া করা সম্ভব হবে।
এভাবে, Schema Registry স্ট্রিম ডেটার কাঠামো নিশ্চিত করে এবং সামঞ্জস্যপূর্ণ স্কিমা বজায় রাখে।
Schema Registry ব্যবহার করে Data Validation এর সুবিধা
- Data Consistency: ডেটা প্রক্রিয়াকরণের প্রতিটি পর্যায়ে কাঠামোর সঠিকতা নিশ্চিত করা, যা ডেটা অখণ্ডতা এবং ধারাবাহিকতা বজায় রাখে।
- Error Prevention: ভুল বা অসম্পূর্ণ ডেটা স্কিমা ব্লক করা, যার ফলে সিস্টেমে ত্রুটি সৃষ্টি হওয়া রোধ করা হয়।
- Schema Evolution Management: যখন স্কিমার আপডেট বা পরিবর্তন হয়, তখন নতুন স্কিমা এবং পুরনো স্কিমার মধ্যে সামঞ্জস্য বজায় রাখা যায়।
- Enhanced Data Quality: কেবলমাত্র সঠিক কাঠামো অনুসরণকারী ডেটা প্রক্রিয়া করা হয়, ফলে ডেটার গুণগত মান বজায় থাকে।
- Reduced Complexity: প্রযোজক এবং কনসিউমারের জন্য স্কিমা ব্যবস্থাপনা সহজ করে, কারণ স্কিমার পরিবর্তন বা আপডেটের সময় এতে কোনো ঝামেলা থাকে না।
সারাংশ
Schema Registry কাফকা ইকোসিস্টেমের গুরুত্বপূর্ণ অংশ, যা ডেটার গঠন (schema) সংরক্ষণ, যাচাই এবং সংস্করণ ব্যবস্থাপনা নিশ্চিত করে। এটি data validation প্রক্রিয়াকে সহজতর করে এবং ডেটার সঠিকতা ও ধারাবাহিকতা বজায় রাখে। প্রযোজকরা যখন ডেটা পাঠান, তখন স্কিমা রেজিস্ট্রির মাধ্যমে স্কিমার সাথে মিলিয়ে যাচাই করা হয় এবং কনসিউমাররা স্কিমার ভিত্তিতে ডেটা গ্রহণ করে। স্কিমা ইভোলিউশন এবং সামঞ্জস্য নিশ্চিত করার মাধ্যমে Schema Registry কাফকা সিস্টেমে ডেটা প্রক্রিয়া করার গুণগত মান ও নির্ভরযোগ্যতা বাড়ায়।
Read more