Complex Data Types (record, enum, array, map, union)

Avro Schema Design এবং Data Types - অ্যাপাচি অভ্র (Avro) - Big Data and Analytics

371

Avro হল একটি স্কিমা-ভিত্তিক ডেটা সিরিয়ালাইজেশন সিস্টেম, যা বিভিন্ন ধরনের ডেটা স্ট্রাকচার এবং টাইপ সাপোর্ট করে। Avro ডেটা স্টোরেজ এবং ট্রান্সফারের জন্য কয়েকটি complex data types ব্যবহার করে, যেমন record, enum, array, map, এবং union। এগুলি ডেটার গঠন নির্ধারণ করে এবং স্কিমার মাধ্যমে ডেটাকে সঠিকভাবে সিরিয়ালাইজ এবং ডেসিরিয়ালাইজ করা সম্ভব করে।

এই সমস্ত ডেটা টাইপগুলি ব্যবহার করার মাধ্যমে আমরা জটিল ডেটা গঠন তৈরি করতে পারি, যা ডিস্ট্রিবিউটেড সিস্টেমে কার্যকরীভাবে ব্যবহার করা যায়।


১. Record (রেকর্ড)

Record হল একটি কমপ্লেক্স ডেটা টাইপ যা বিভিন্ন fields বা attributes ধারণ করে। এটি একটি অবজেক্টের মতো কাজ করে, যেখানে প্রতিটি ফিল্ডের নাম এবং ডেটা টাইপ উল্লেখ করা থাকে। Avro তে record টাইপের মাধ্যমে একটি গঠনগত (structured) ডেটা তৈরি করা হয়, যা নির্দিষ্ট স্কিমার মাধ্যমে নির্ধারিত।

স্কিমা উদাহরণ:

{
  "type": "record",
  "name": "Person",
  "fields": [
    {"name": "name", "type": "string"},
    {"name": "age", "type": "int"},
    {"name": "email", "type": "string"}
  ]
}

এখানে, Person নামে একটি রেকর্ড তৈরি করা হয়েছে, যেখানে তিনটি ফিল্ড রয়েছে: name, age, এবং email

ব্যবহার:

  • Record ব্যবহার করে ডেটা স্ট্রাকচার তৈরি করা হয় যেখানে একাধিক ফিল্ড থাকে।
  • এটি সাধারণত অবজেক্টের গঠন সংজ্ঞায়িত করতে ব্যবহৃত হয়।

২. Enum (এনাম)

Enum হল একটি ডেটা টাইপ যা একাধিক নির্ধারিত মানের মধ্যে একটি মান নির্বাচন করতে ব্যবহৃত হয়। এটি সাধারণত একটি তালিকা বা কনস্ট্যান্টের সেট তৈরি করতে ব্যবহৃত হয়। Avro তে enum ব্যবহার করে আপনি নির্দিষ্ট ভ্যালুগুলির একটি সেট তৈরি করতে পারেন, যেগুলি ডেটা ভ্যালু হিসেবে ব্যবহার করা হবে।

স্কিমা উদাহরণ:

{
  "type": "enum",
  "name": "Status",
  "symbols": ["ACTIVE", "INACTIVE", "PENDING"]
}

এখানে, Status নামে একটি এনাম ডিফাইন করা হয়েছে, যার তিনটি মান আছে: ACTIVE, INACTIVE, এবং PENDING

ব্যবহার:

  • Enum ব্যবহার করে নির্দিষ্ট মানের সেট তৈরি করা হয়, যেগুলির মধ্যে থেকে একটি নির্বাচন করা হয়।
  • সাধারণত, স্থির কনস্ট্যান্ট বা স্টেটস (যেমন: ACTIVE, INACTIVE) মডেল করার জন্য ব্যবহার হয়।

৩. Array (এরে)

Array হল একটি ডেটা টাইপ যা একাধিক মান ধারণ করে, যেখানে সব মান একই ডেটা টাইপের হয়। Avro তে array ব্যবহার করে একই ধরনের ডেটা একটি লিস্ট বা অ্যারে আকারে ধারণ করা হয়।

স্কিমা উদাহরণ:

{
  "type": "record",
  "name": "User",
  "fields": [
    {"name": "name", "type": "string"},
    {"name": "emails", "type": {"type": "array", "items": "string"}}
  ]
}

এখানে, emails একটি অ্যারে যা string ধরনের একাধিক ইমেইল ধারণ করতে পারে।

ব্যবহার:

  • Array ব্যবহার করে একাধিক একই ধরনের ডেটা একত্রে ধারণ করা যায়। এটি তালিকা বা সংগ্রহের (collection) জন্য উপযুক্ত।
  • এটি ডেটার ভ্যারিয়েন্ট বা সংখ্যা অনুযায়ী ডেটা উপস্থাপন করতে ব্যবহৃত হয়।

৪. Map (ম্যাপ)

Map হল একটি ডেটা টাইপ যা কীগুলোর সাথে মান সংরক্ষণ করে। এটি একটি মানচিত্রের মতো কাজ করে যেখানে প্রতিটি কীগুলির সাথে সম্পর্কিত একটি মান থাকে। Avro তে map ব্যবহার করে আমরা কীগুলির সাথে মান সংরক্ষণ করতে পারি, যেগুলি নির্দিষ্ট টাইপের।

স্কিমা উদাহরণ:

{
  "type": "record",
  "name": "Config",
  "fields": [
    {"name": "settings", "type": {"type": "map", "values": "string"}}
  ]
}

এখানে, settings নামক একটি map তৈরি করা হয়েছে, যার মান string টাইপের। এতে কীগুলির সাথে মান সংরক্ষণ করা হবে।

ব্যবহার:

  • Map ব্যবহার করে কীগুলির সাথে মান সংরক্ষণ করা হয়, যা ডাইনামিক ডেটা গঠনের জন্য উপযুক্ত।
  • এটি একাধিক কীগুলির মান সংরক্ষণ করতে ব্যবহৃত হয়, যেখানে কীগুলি নির্দিষ্ট হতে পারে এবং মান পরিবর্তনশীল।

৫. Union (ইউনিয়ন)

Union হল একটি ডেটা টাইপ যা একাধিক টাইপের মধ্যে যেকোনো একটি মান গ্রহণ করতে পারে। এটি একটি প্রকারের মধ্যে একাধিক মান হতে পারে। Avro তে union ব্যবহার করা হয় যখন একাধিক ডেটা টাইপের মধ্যে কোনো একটি টাইপ হতে পারে।

স্কিমা উদাহরণ:

{
  "type": "record",
  "name": "Item",
  "fields": [
    {"name": "value", "type": ["string", "int"]}
  ]
}

এখানে, value ফিল্ডটি string অথবা int হতে পারে, অর্থাৎ এটি union টাইপ ব্যবহার করেছে, যা একাধিক টাইপের মান গ্রহণ করতে পারে।

ব্যবহার:

  • Union ব্যবহার করে একাধিক ডেটা টাইপের মধ্যে যেকোনো একটি টাইপ সংরক্ষণ করা হয়।
  • এটি এমন ক্ষেত্রের জন্য উপযুক্ত যেখানে ডেটা ভ্যালু বিভিন্ন টাইপের মধ্যে হতে পারে।

সারাংশ

Avro তে complex data types যেমন record, enum, array, map, এবং union ডেটার গঠন এবং ভ্যারিয়েশন তৈরি করতে ব্যবহৃত হয়। এগুলির মাধ্যমে আমরা ডেটাকে আরও শক্তিশালী এবং নমনীয়ভাবে ডিজাইন করতে পারি, যা ডিস্ট্রিবিউটেড সিস্টেমে এবং বড় ডেটা প্রক্রিয়াকরণের জন্য খুবই কার্যকরী। প্রতিটি টাইপ আলাদা আলাদা প্রয়োজনে ব্যবহার করা হয়, যেমন:

  • Record: গঠনমূলক ডেটার জন্য।
  • Enum: সীমিত মানের সেটের জন্য।
  • Array: একাধিক সমান টাইপের মান ধারণ করার জন্য।
  • Map: কীগুলির সাথে মান সংরক্ষণের জন্য।
  • Union: একাধিক ডেটা টাইপের মধ্যে যেকোনো একটি টাইপ ধারণ করার জন্য।

Avro এর মাধ্যমে এইসব কমপ্লেক্স ডেটা টাইপ ব্যবহারে ডেটার গঠন অনেক বেশি নমনীয় ও সুষম হয়।

Content added By
Promotion

Are you sure to start over?

Loading...