Apache Avro হল একটি ডেটা সিরিয়ালাইজেশন ফ্রেমওয়ার্ক, যা ডিস্ট্রিবিউটেড সিস্টেমে ডেটা সংরক্ষণ এবং ট্রান্সফারের জন্য ব্যবহৃত হয়। Avro বিভিন্ন প্রোগ্রামিং ভাষায় উপলব্ধ, এবং এটি কমান্ড লাইন ইউটিলিটিজের মাধ্যমে ডেটা সিরিয়ালাইজেশন, ডেসিরিয়ালাইজেশন এবং স্কিমা পরিচালনা করতে সক্ষম।
Avro এর জন্য কিছু গুরুত্বপূর্ণ Command Line Utilities রয়েছে, যা ডেটা ফাইল তৈরির, স্কিমা পরীক্ষা, এবং ডেটা প্রসেসিংয়ের কাজ সহজ করে তোলে।
Avro Command Line Utilities: পরিচিতি
Avro Command Line Utilities হল একটি সিরিজ কমান্ড যা আপনাকে Avro ফাইল তৈরি, সংরক্ষণ, এবং বিভিন্ন প্রক্রিয়া পরিচালনা করতে সহায়তা করে। Avro CLI ব্যবহার করে আপনি Avro ফাইলের স্কিমা পরীক্ষা করতে পারেন, ডেটা স্ন্যাপশট দেখতে পারেন এবং ডেটা ট্রান্সফারের জন্য ফাইল তৈরি করতে পারেন।
Avro CLI টুলগুলি সাধারণত দুটি প্রধান কাজ করে:
- Avro ফাইল তৈরি: Avro ফাইল তৈরির জন্য স্কিমা এবং ডেটার সঙ্গে কাজ করা।
- Avro ফাইল বিশ্লেষণ: Avro ফাইল থেকে ডেটা অ্যাক্সেস করা এবং সেগুলিকে পরীক্ষা করা।
এছাড়া Avro CLI ব্যবহার করে বিভিন্ন schema operations এবং data serialization tasks সম্পাদন করা যায়।
1. Avro Tools Jar
Avro Tools হল একটি Java JAR file, যা Avro সম্পর্কিত বিভিন্ন কমান্ড লাইন টাস্ক পরিচালনা করার জন্য ব্যবহৃত হয়। এটি avro-tools-x.x.x.jar ফাইল হিসেবে ডাউনলোড করা যায় এবং এর মাধ্যমে Avro স্কিমা এবং ডেটা নিয়ে কাজ করা হয়।
Avro Tools জার ব্যবহার করতে আপনাকে প্রথমে Java ইনস্টল করা থাকতে হবে। তারপর, Avro Tools জার ফাইলটি ব্যবহার করা যেতে পারে।
Avro Tools চালানোর কমান্ড উদাহরণ:
java -jar avro-tools-1.11.0.jar <command> <args>
এখানে command হলো আপনি যে অপারেশনটি করতে চান এবং args হলো সংশ্লিষ্ট আর্গুমেন্ট।
2. Avro File Creation (ফাইল তৈরি)
Avro ফাইল তৈরি করার জন্য একটি স্কিমা প্রয়োজন, এবং কমান্ড লাইন ইউটিলিটি দিয়ে স্কিমার উপর ভিত্তি করে ডেটা সিরিয়ালাইজ করা হয়।
Avro ফাইল তৈরি করতে avro-tools ব্যবহার করা:
java -jar avro-tools-1.11.0.jar compile schema user.avsc .
java -jar avro-tools-1.11.0.jar fromjson user.json > user.avro
- প্রথম কমান্ডটি স্কিমা ফাইল (
user.avsc) থেকে Java ক্লাস তৈরি করবে। - দ্বিতীয় কমান্ডটি JSON ফাইল (
user.json) থেকে Avro ফাইল (user.avro) তৈরি করবে।
3. Avro Schema Validation (স্কিমা ভ্যালিডেশন)
Avro ফাইলের স্কিমা যাচাই করা অত্যন্ত গুরুত্বপূর্ণ। আপনি যেকোনো Avro JSON Schema ব্যবহার করে এই ভ্যালিডেশন করতে পারেন।
Avro স্কিমা ভ্যালিডেশন করতে avro-tools ব্যবহার করা:
java -jar avro-tools-1.11.0.jar validate user.avsc
এটি user.avsc স্কিমা ফাইলের সঠিকতা যাচাই করবে।
4. Avro File to JSON Conversion (Avro ফাইল থেকে JSON কনভার্ট করা)
Avro ফাইল থেকে JSON আউটপুট জেনারেট করতে avro-tools ব্যবহার করা হয়। এটি ডেটা ট্রান্সফার বা বিশ্লেষণের জন্য উপযোগী হতে পারে।
Avro ফাইলকে JSON-এ কনভার্ট করতে:
java -jar avro-tools-1.11.0.jar tojson user.avro
এটি user.avro ফাইলের ডেটাকে JSON আউটপুট হিসেবে কনভার্ট করে দেখাবে।
5. Avro File Splitting (ফাইল স্প্লিটিং)
Avro ফাইলকে ছোট ছোট অংশে ভাগ করা (splitting) একাধিক প্রসেসিং বা স্টোরেজ কাজে সহায়তা করতে পারে। Avro Tools দিয়ে এটি করা সম্ভব।
Avro ফাইল স্প্লিট করতে:
java -jar avro-tools-1.11.0.jar split user.avro
এই কমান্ডটি একটি বড় Avro ফাইলকে একাধিক ছোট ছোট ফাইলে বিভক্ত করবে।
6. Avro File Schema Extraction (স্কিমা এক্সট্রাকশন)
Avro ফাইল থেকে স্কিমা বের করা খুবই সহজ। Avro Tools দিয়ে আপনি ফাইল থেকে স্কিমা সহজেই বের করতে পারেন, যা ফাইলের গঠন বুঝতে সাহায্য করবে।
Avro ফাইল থেকে স্কিমা বের করতে:
java -jar avro-tools-1.11.0.jar getschema user.avro
এটি user.avro ফাইলের স্কিমা প্রদর্শন করবে।
7. Avro File Concatenation (ফাইল একত্রিত করা)
Avro ফাইলগুলিকে একত্রিত (concatenate) করা প্রয়োজন হতে পারে যখন অনেকগুলো ছোট ফাইল একত্রে ব্যবহৃত হয়। Avro Tools-এ এই কাজটি সহজে করা যায়।
Avro ফাইল একত্রিত করতে:
java -jar avro-tools-1.11.0.jar concat output.avro input1.avro input2.avro
এই কমান্ডটি input1.avro এবং input2.avro ফাইলগুলিকে একত্রিত করে output.avro ফাইল তৈরি করবে।
8. Avro File Conversion (ফাইল কনভার্সন)
Avro ফাইলকে অন্যান্য ফরম্যাটে কনভার্ট করা প্রয়োজন হলে Avro Tools ব্যবহার করা যায়। উদাহরণস্বরূপ, Avro ফাইলকে Parquet ফরম্যাটে কনভার্ট করা।
Avro ফাইলকে Parquet ফরম্যাটে কনভার্ট করা:
java -jar avro-tools-1.11.0.jar convertparquet input.avro output.parquet
সারাংশ
Avro Command Line Utilities আপনাকে Avro ফাইল তৈরি, স্কিমা পরীক্ষা, ডেটা কনভার্ট এবং অন্যান্য ডেটা পরিচালনার কাজগুলো সহজে করতে সহায়তা করে। এগুলি ডিস্ট্রিবিউটেড সিস্টেমে ডেটা পরিচালনা এবং ট্রান্সফার সহজতর করে, যা বিশেষ করে Hadoop, Kafka, এবং অন্যান্য ডেটা প্রক্রিয়াকরণ টুলসের জন্য উপকারী। Avro CLI-র মাধ্যমে ডেটা সিরিয়ালাইজেশন, ডেসিরিয়ালাইজেশন, স্কিমা পরীক্ষা, ফাইল কনভার্ট এবং আরও অনেক কাজ কার্যকরভাবে করা যায়।
Read more