Avro Data Deserialization এর জন্য API ব্যবহার

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

382

Avro Data Deserialization হল একটি প্রক্রিয়া যার মাধ্যমে বাইনারি ফরম্যাটে সংরক্ষিত ডেটাকে তার আসল ফর্ম্যাটে (যেমন JSON বা অ্যাপ্লিকেশনের কাঠামো) পুনরুদ্ধার করা হয়। Apache Avro তে ডেটা সেভ এবং এক্সচেঞ্জ করার সময় সাধারণত Serialization এবং Deserialization প্রক্রিয়া ব্যবহৃত হয়। এই প্রক্রিয়া গুলি Avro API এর মাধ্যমে সহজে পরিচালিত করা যায়।

Avro Deserialization এর মাধ্যমে আমরা বাইনারি ফরম্যাট থেকে ডেটা পুনরুদ্ধার করতে পারি এবং সেই ডেটার উপর অ্যাপ্লিকেশন লজিক প্রয়োগ করতে পারি। Avro ডেটার Schema (যেমন JSON স্কিমা) ব্যবহার করে এটি সঠিকভাবে ডিকোড করা সম্ভব হয়।


Avro Data Deserialization এর জন্য API ব্যবহার

Avro-তে ডেটা ডেসিরিয়ালাইজ করার জন্য আমরা সাধারণত Java বা অন্যান্য প্রোগ্রামিং ভাষার Avro লাইব্রেরি ব্যবহার করি। Avro Java API তে DatumReader এবং DataFileReader এর মতো ক্লাস এবং ইন্টারফেস ব্যবহার করা হয় ডেটা ডেসিরিয়ালাইজ করার জন্য।

নিচে Avro ডেটা ডেসিরিয়ালাইজ করার জন্য একটি সাধারণ উদাহরণ দেওয়া হলো, যেখানে Java প্রোগ্রাম ব্যবহার করা হয়েছে।


Avro Data Deserialization এর উদাহরণ (Java)

১. Avro Dependency যোগ করা (Maven)

প্রথমে, আপনার প্রোজেক্টে Avro-এর প্রয়োজনীয় dependency যোগ করুন। যদি আপনি Maven ব্যবহার করেন, তাহলে pom.xml ফাইলে নিম্নলিখিত কোডটি যুক্ত করুন:

<dependency>
   <groupId>org.apache.avro</groupId>
   <artifactId>avro</artifactId>
   <version>1.11.0</version>
</dependency>

২. Avro Schema তৈরি করা

Avro ডেটা ডেসিরিয়ালাইজেশনের জন্য, প্রথমে ডেটার Schema তৈরি করতে হবে। এই স্কিমাটি JSON ফরম্যাটে হবে এবং এতে ডেটার গঠন বর্ণনা করা হবে। উদাহরণস্বরূপ:

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

৩. Java কোডে Avro Data Deserialization

Avro ডেটাকে binary ফরম্যাট থেকে Java Object-এ রূপান্তরিত করার জন্য আপনাকে DatumReader এবং DataFileReader ব্যবহার করতে হবে। নিচে একটি সাধারণ উদাহরণ দেওয়া হলো, যেখানে বাইনারি ফাইল থেকে ডেটা ডেসিরিয়ালাইজ করা হচ্ছে:

import org.apache.avro.file.DataFileReader;
import org.apache.avro.file.DataFileWriter;
import org.apache.avro.generic.GenericDatumReader;
import org.apache.avro.generic.GenericRecord;
import org.apache.avro.Schema;
import org.apache.avro.io.DatumReader;
import org.apache.avro.io.DecoderFactory;

import java.io.File;
import java.io.IOException;

public class AvroDeserializationExample {

    public static void main(String[] args) throws IOException {
        // Avro স্কিমা লোড করুন
        Schema schema = new Schema.Parser().parse(new File("user.avsc"));

        // DatumReader তৈরি করুন
        DatumReader<GenericRecord> datumReader = new GenericDatumReader<>(schema);
        
        // DataFileReader তৈরি করুন
        DataFileReader<GenericRecord> dataFileReader = new DataFileReader<>(new File("user_data.avro"), datumReader);

        // প্রতিটি রেকর্ড পড়ুন
        while (dataFileReader.hasNext()) {
            GenericRecord record = dataFileReader.next();

            // ডেটা প্রিন্ট করুন
            System.out.println("Name: " + record.get("name"));
            System.out.println("Age: " + record.get("age"));
            System.out.println("Emails: " + record.get("emails"));
        }

        // DataFileReader বন্ধ করুন
        dataFileReader.close();
    }
}

৪. ব্যাখ্যা:

  • Schema: প্রথমে স্কিমা লোড করা হয়, যা ডেটার গঠন নির্ধারণ করে।
  • DatumReader: এটি একটি অবজেক্ট যা ডেটা রিডার হিসাবে কাজ করে। এটি ডেটা ফরম্যাট থেকে Java অবজেক্টে রূপান্তরিত করতে সাহায্য করে।
  • DataFileReader: এটি একটি ক্লাস যা ফাইল থেকে ডেটা পড়তে ব্যবহৃত হয়।
  • GenericRecord: এটি একটি জেনেরিক ডেটা অবজেক্ট, যা ডেটার মান ধারণ করে। প্রতিটি ফিল্ডের জন্য নামের মাধ্যমে অ্যাক্সেস করা হয়।

Avro Data Deserialization in Other Languages

Avro API শুধুমাত্র Java এর জন্য নয়, অন্যান্য প্রোগ্রামিং ভাষাতেও Avro ডেটা ডেসিরিয়ালাইজেশন করার জন্য লাইব্রেরি রয়েছে। যেমন:

  • Python: Python তে fastavro বা avro-python3 প্যাকেজ ব্যবহার করে Avro ডেটা ডেসিরিয়ালাইজ করা যায়।
  • C: C প্রোগ্রামিং ভাষায় Avro ডেটা ডেসিরিয়ালাইজ করতে avro-c লাইব্রেরি ব্যবহার করা হয়।
  • Go: Go প্রোগ্রামিং ভাষায় Avro ডেটা ডেসিরিয়ালাইজ করতে go-avro লাইব্রেরি ব্যবহার করা হয়।

সারাংশ

Avro Data Deserialization হল Avro ফরম্যাটে সংরক্ষিত বাইনারি ডেটাকে মানব-পাঠযোগ্য ফর্ম্যাট বা Java অবজেক্টে রূপান্তর করার প্রক্রিয়া। এটি করার জন্য DatumReader, DataFileReader এবং Schema ব্যবহার করা হয়। Java সহ অন্যান্য প্রোগ্রামিং ভাষায় Avro লাইব্রেরি ব্যবহার করে এই প্রক্রিয়া সহজেই করা সম্ভব। Avro ডেটা ডেসিরিয়ালাইজেশন ডেটা এক্সচেঞ্জ, ফাইল থেকে ডেটা রিডিং এবং বিভিন্ন ডিস্ট্রিবিউটেড সিস্টেমে ডেটা প্রসেসিংয়ের জন্য একটি অপরিহার্য টুল।

Content added By
Promotion

Are you sure to start over?

Loading...