Schema Registry কী এবং এর ভূমিকা

Kafka এবং Schema Registry Integration - অ্যাপাচি কাফকা (Apache Kafka) - Big Data and Analytics

323

Schema Registry হল একটি কেন্দ্রীয় সার্ভিস যা মেসেজের স্কিমা সংরক্ষণ, পরিচালনা এবং ভার্সনিং-এর জন্য ব্যবহৃত হয়। এটি Apache Kafka এবং অন্যান্য স্ট্রীমিং প্রযুক্তির সঙ্গে একত্রে কাজ করে ডেটার সঠিক কাঠামো এবং ফরম্যাট নিশ্চিত করতে সাহায্য করে। Schema Registry প্রধানত Avro, JSON Schema, বা Protobuf ফরম্যাটে ডেটা স্কিমা সাপোর্ট করে এবং এটি মেসেজ প্রডিউসার এবং কনজিউমারদের মধ্যে ডেটা ফরম্যাটের সামঞ্জস্য বজায় রাখে।

Kafka-তে স্কিমা ব্যবহারের মূল উদ্দেশ্য হল, মেসেজ বা ডেটার কাঠামো প্রতিটি প্রডিউসার এবং কনজিউমার দ্বারা একইভাবে বোঝা এবং প্রক্রিয়া করা, যাতে ডেটার সংস্করণ ব্যবস্থাপনা (versioning) এবং ভাল সংজ্ঞায়িত কাঠামো নিশ্চিত করা যায়।


১. Schema Registry কী?

Schema Registry একটি সেন্ট্রাল সার্ভিস যা ডেটা স্কিমাগুলি সংরক্ষণ, পরিচালনা এবং ভাগাভাগি করতে সহায়ক। এটি প্রধানত Apache Avro ফরম্যাটে ডেটা সেরিয়ালাইজেশন এবং ডিসেরিয়ালাইজেশন জন্য ব্যবহৃত হয়। Kafka প্রডিউসার এবং কনজিউমার স্কিমা রেজিস্ট্রির মাধ্যমে স্কিমার প্রতি নির্দিষ্ট URL এর মাধ্যমে স্কিমা অঙ্গীকার করতে পারে এবং ডেটার সঠিক কাঠামো বজায় রাখতে পারে।

Kafka এবং Schema Registry একসাথে কাজ করলে, স্কিমাগুলির ইভোলিউশন (evolution) বা পরিবর্তন করতে হয় না, বরং পুরানো এবং নতুন স্কিমার মধ্যে কমপ্যাটিবিলিটি (compatibility) রক্ষা করা হয়।


২. Schema Registry এর ভূমিকা

Schema Registry এর কয়েকটি গুরুত্বপূর্ণ ভূমিকা রয়েছে, যা Kafka ক্লাস্টারের কার্যকারিতা এবং ডেটার আস্থেয়তা নিশ্চিত করে।

২.১. ডেটার কাঠামো নিশ্চিত করা

Schema Registry প্রডিউসার এবং কনজিউমারদের মধ্যে ডেটা কাঠামো নির্ধারণ করে। এটি নিশ্চিত করে যে পাঠানো এবং গ্রহণ করা মেসেজগুলির কাঠামো সঠিক এবং অভ্যন্তরীণভাবে মিল রয়েছে। Schema Registry মেসেজ পাঠানোর সময় স্কিমা চেক করে এবং নিশ্চিত করে যে প্রডিউসার এবং কনজিউমার উভয়ই একই স্কিমা অনুসরণ করছে।

২.২. স্কিমা ভার্সনিং এবং ইভোলিউশন

Schema Registry বিভিন্ন স্কিমা ভার্সন পরিচালনা করতে সহায়তা করে। ডেটার কাঠামোতে কোনো পরিবর্তন আসলে তা Schema Registry-তে সংরক্ষিত থাকে এবং পরিবর্তনগুলো কনজিউমারদের কাছে উপযুক্তভাবে পৌঁছানো হয়। এটি Backward compatibility, Forward compatibility, এবং Full compatibility নিশ্চিত করে, যার মাধ্যমে পুরানো স্কিমা এবং নতুন স্কিমার মধ্যে সঠিক ইন্টারঅ্যাকশন ঘটে।

  • Backward Compatibility: নতুন স্কিমা পুরোনো স্কিমার সাথে সঙ্গতিপূর্ণ।
  • Forward Compatibility: পুরোনো স্কিমা নতুন স্কিমার সাথে সঙ্গতিপূর্ণ।
  • Full Compatibility: উভয় স্কিমা একে অপরের সাথে সঙ্গতিপূর্ণ।

২.৩. স্কিমা স্টোরেজ এবং রেজিস্ট্রেশন

Schema Registry একটি কেন্দ্রীয় রেপোজিটরি হিসেবে কাজ করে, যেখানে সমস্ত স্কিমা সংরক্ষিত হয়। এটি স্কিমা রেজিস্ট্রেশন করতে এবং ম্যানেজ করতে সাহায্য করে, যাতে প্রডিউসার এবং কনজিউমাররা একে অপরের স্কিমা ব্যবহার করতে পারে। Schema Registry সংরক্ষিত স্কিমার মধ্যে ভার্সন আপডেট বা পরিবর্তনও করতে পারে।

২.৪. ডেটা সেরিয়ালাইজেশন এবং ডিসেরিয়ালাইজেশন

Schema Registry-এর মাধ্যমে Avro, JSON Schema, এবং Protobuf সেরিয়ালাইজেশন এবং ডিসেরিয়ালাইজেশন করা হয়। এটি নিশ্চিত করে যে ডেটা পাঠানো এবং গ্রহণ করা সঠিক ফরম্যাটে হচ্ছে এবং ডেটার অখণ্ডতা বজায় থাকে।

২.৫. মেসেজ ভ্যালিডেশন

Schema Registry প্রডিউসার এবং কনজিউমারদের মেসেজের কাঠামো ভ্যালিডেট করতে সহায়ক। এটি নিশ্চিত করে যে মেসেজ প্রেরণের সময় স্কিমা সঠিকভাবে ব্যবহার হচ্ছে এবং কোনো ডেটা অসামঞ্জস্যপূর্ণ নয়। স্কিমা ভ্যালিডেশন প্রক্রিয়ার মাধ্যমে ডেটার সামঞ্জস্য এবং সঠিকতা যাচাই করা যায়।


৩. Schema Registry এর ফিচারসমূহ

Schema Registry এর কিছু গুরুত্বপূর্ণ ফিচার:

৩.১. স্কিমার জন্য REST API

Schema Registry একটি REST API প্রদান করে যার মাধ্যমে স্কিমা রেজিস্টার, আপডেট, বা ভ্যালিডেট করা যেতে পারে। এটি স্কিমার সেন্ট্রালাইজড ম্যানেজমেন্ট সক্ষম করে এবং Kafka প্রডিউসার ও কনজিউমারকে সহজভাবে স্কিমার সঙ্গে কাজ করতে সহায়তা করে।

৩.২. স্কিমা রিভিশন ম্যানেজমেন্ট

Schema Registry স্কিমার রিভিশন ট্র্যাক করে এবং নতুন রিভিশন যোগ করার জন্য স্কিমা পরিচালনার সুবিধা প্রদান করে। এটি রিভিশন ইতিহাস দেখার এবং প্রয়োজনীয় স্কিমা সংস্করণ অনুসন্ধানের জন্য সহায়ক।

৩.৩. কমপ্যাটিবিলিটি পলিসি

Schema Registry স্কিমার মধ্যে কমপ্যাটিবিলিটি নিশ্চিত করার জন্য বিভিন্ন পলিসি সাপোর্ট করে, যেমন BACKWARD, FORWARD, এবং FULL কমপ্যাটিবিলিটি। এই পলিসিগুলোর মাধ্যমে ডেটা রিভিশন এবং পরিবর্তন সঠিকভাবে ম্যানেজ করা যায়।


৪. Kafka এবং Schema Registry এর মধ্যে ইন্টিগ্রেশন

Kafka এবং Schema Registry একত্রে কাজ করার জন্য Schema Registry এর URL এবং সঠিক সেরিয়ালাইজেশন কনফিগারেশন করতে হয়। সাধারণত Kafka প্রডিউসার এবং কনজিউমারদের মধ্যে AvroSerializer এবং AvroDeserializer ব্যবহার করা হয়, যেগুলি Schema Registry এর সাথে ইন্টিগ্রেটেড থাকে।

৪.১. Kafka Producer এবং Schema Registry Integration

Kafka প্রডিউসারকে Schema Registry এর সাথে সংযোগ করতে হলে, Schema Registry URL এবং Avro সেরিয়ালাইজার কনফিগার করতে হবে। এই কনফিগারেশন Kafka প্রডিউসারকে Avro ফরম্যাটে ডেটা পাঠানোর অনুমতি দেয়।

প্রডিউসার কনফিগারেশন উদাহরণ (Java):

Properties props = new Properties();
props.put("bootstrap.servers", "localhost:9092");
props.put("key.serializer", StringSerializer.class.getName());
props.put("value.serializer", KafkaAvroSerializer.class.getName());
props.put("schema.registry.url", "http://localhost:8081");

KafkaProducer<String, Object> producer = new KafkaProducer<>(props);

৪.২. Kafka Consumer এবং Schema Registry Integration

Kafka কনজিউমারের ক্ষেত্রে, AvroDeserializer ব্যবহার করে ডেটা ডিসেরিয়ালাইজ করা হয়। Schema Registry এর মাধ্যমে ডেটা ডিসেরিয়ালাইজেশন প্রক্রিয়া সঠিকভাবে সম্পন্ন হয়।

কনজিউমার কনফিগারেশন উদাহরণ (Java):

Properties props = new Properties();
props.put("bootstrap.servers", "localhost:9092");
props.put("group.id", "test");
props.put("key.deserializer", StringDeserializer.class.getName());
props.put("value.deserializer", KafkaAvroDeserializer.class.getName());
props.put("schema.registry.url", "http://localhost:8081");

KafkaConsumer<String, Object> consumer = new KafkaConsumer<>(props);
consumer.subscribe(List.of("my_topic"));

সারাংশ

Schema Registry Apache Kafka-এর একটি গুরুত্বপূর্ণ উপাদান যা মেসেজ প্রডিউসার এবং কনজিউমারদের মধ্যে ডেটা স্কিমার সঠিকতা এবং সামঞ্জস্য বজায় রাখে। এটি ডেটার সেরিয়ালাইজেশন এবং ডিসেরিয়ালাইজেশন প্রক্রিয়া সহজ করে এবং স্কিমার ইভোলিউশন ম্যানেজ করতে সহায়ক। Schema Registry-র মাধ্যমে কাফকা ক্লাস্টারে ডেটার সঠিক কাঠামো এবং সংস্করণ বজায় রাখা সম্ভব হয়, যা মেসেজ ভ্যালিডেশন এবং ডেটা সঠিকতার জন্য অত্যন্ত গুরুত্বপূর্ণ।

Content added By
Promotion

Are you sure to start over?

Loading...