Avro একটি স্কিমা-ভিত্তিক ডেটা সিরিয়ালাইজেশন ফরম্যাট যা মূলত বিভিন্ন ধরনের ডেটা সিরিয়ালাইজ করার জন্য ব্যবহৃত হয়। Avro-এর প্রাইমিটিভ ডেটা টাইপগুলি হল সেই মৌলিক ডেটা ধরনের যা ডেটার সহজ এবং সরল গঠন সংরক্ষণ করে। এই টাইপগুলো প্রাথমিকভাবে ডেটার বিভিন্ন ধরণ এবং তার মান নির্ধারণ করে, এবং এগুলো Avro স্কিমায় ডেটা স্টোরেজ এবং ট্রান্সফার কার্যক্রমকে সহজ করে তোলে।
Avro-তে কয়েকটি Primitive Data Types রয়েছে, যেমন int, long, string, boolean, ইত্যাদি, যা ডেটা কাঠামোতে ব্যবহৃত হয়।
Avro Primitive Data Types
১. null
- null ডেটা টাইপের মান কিছুই হতে পারে না।
- এটি সাধারণত ডেটার উপস্থিতি চিহ্নিত করার জন্য ব্যবহার করা হয়, যেমন এক্ষেত্রে ডেটা গায়েব বা অনুপস্থিত।
- ব্যবহার: যখন কোনো ফিল্ডের মান না থাকার প্রয়োজন হয়, তখন null ব্যবহৃত হয়।
উদাহরণ:
{
"type": "record",
"name": "Person",
"fields": [
{
"name": "middleName",
"type": "null"
}
]
}
২. boolean
- boolean ডেটা টাইপ দুটি মানে থাকতে পারে:
trueবাfalse। - এটি সাধারণত যে কোনো ধরনের দুটি বিকল্পের মধ্যে নির্বাচন করতে ব্যবহৃত হয়, যেমন সক্রিয় বা নিষ্ক্রিয়।
উদাহরণ:
{
"type": "record",
"name": "User",
"fields": [
{
"name": "isActive",
"type": "boolean"
}
]
}
৩. int
- int ডেটা টাইপ 32-বিট সইযুক্ত পূর্ণসংখ্যা (signed integer) হিসেবে কাজ করে।
- এটি সাধারণত ছোট সংখ্যাগুলির জন্য ব্যবহৃত হয়, যেমন 0 থেকে ২ বিলিয়ন পর্যন্ত।
উদাহরণ:
{
"type": "record",
"name": "Item",
"fields": [
{
"name": "quantity",
"type": "int"
}
]
}
৪. long
- long ডেটা টাইপ 64-বিট সইযুক্ত পূর্ণসংখ্যা (signed integer)।
- এটি বড় সংখ্যাগুলির জন্য ব্যবহৃত হয়, যেমন ২ বিলিয়ন থেকে ৯৪০ একত্রিত ত্রিশ হাজার কোটি পর্যন্ত।
উদাহরণ:
{
"type": "record",
"name": "Transaction",
"fields": [
{
"name": "transactionId",
"type": "long"
}
]
}
৫. float
- float ডেটা টাইপ 32-বিট ভাসমান দশমিক সংখ্যা (floating-point number)।
- এটি সাধারণত গাণিতিক হিসাবের জন্য ব্যবহৃত হয়, যেখানে কম সংবেদনশীলতা প্রয়োজন হয়।
উদাহরণ:
{
"type": "record",
"name": "Product",
"fields": [
{
"name": "price",
"type": "float"
}
]
}
৬. double
- double ডেটা টাইপ 64-বিট ভাসমান দশমিক সংখ্যা (floating-point number)।
- এটি float এর তুলনায় আরও সুনির্দিষ্ট এবং বড় দশমিক সংখ্যা ধারণ করতে পারে।
উদাহরণ:
{
"type": "record",
"name": "Measurement",
"fields": [
{
"name": "height",
"type": "double"
}
]
}
৭. bytes
- bytes ডেটা টাইপ বাইনারি ডেটা বা বাইটের স্ট্রিং সংরক্ষণ করে। এটি সাধারণত ছবি, অডিও, ভিডিও, বা অন্য যেকোনো বাইনারি ফাইল সংরক্ষণ করতে ব্যবহৃত হয়।
- এটি কোনও অক্ষর বা স্ট্রিং হিসেবে ডেটা রাখার পরিবর্তে বাইনারি কোড হিসেবে ডেটা ধারণ করে।
উদাহরণ:
{
"type": "record",
"name": "Media",
"fields": [
{
"name": "imageData",
"type": "bytes"
}
]
}
৮. string
- string ডেটা টাইপ পাঠ্য বা টেক্সট ডেটা সংরক্ষণের জন্য ব্যবহৃত হয়।
- এটি Unicode স্ট্রিং ধারণ করে, যা বিভিন্ন ভাষার ক্যারেক্টার সাপোর্ট করে।
উদাহরণ:
{
"type": "record",
"name": "Customer",
"fields": [
{
"name": "name",
"type": "string"
}
]
}
সারাংশ
Avro-তে Primitive Data Types বিভিন্ন মৌলিক ডেটা ধরনের সমর্থন করে, যেমন null, boolean, int, long, float, double, bytes, এবং string। এগুলো ডেটার গঠন এবং স্ট্রাকচার নির্ধারণে সহায়তা করে এবং ডেটা সিরিয়ালাইজেশনের ক্ষেত্রে সহজতা ও কার্যকারিতা প্রদান করে। প্রতিটি প্রাইমিটিভ টাইপ ডেটার ধরন এবং গঠন স্পষ্টভাবে চিহ্নিত করে, যা ডেটা প্রসেসিং এবং ট্রান্সফারের জন্য অত্যন্ত গুরুত্বপূর্ণ।
Read more