Hive Tables এ Avro Data Store এবং Query করা

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

416

Apache Hive একটি ডেটাবেস ইঞ্জিন যা Hadoop এর উপর ভিত্তি করে বড় আকারের ডেটা প্রসেসিং এবং বিশ্লেষণ করতে ব্যবহৃত হয়। Hive ব্যবহার করে SQL-এর মতো কুয়েরি ভাষায় ডেটা অ্যাক্সেস ও প্রক্রিয়াকরণ করা যায়, তবে এটি ডিস্ট্রিবিউটেড ডেটাসেট যেমন HDFS এ সংরক্ষিত ডেটা নিয়েও কাজ করতে সক্ষম।

Apache Avro একটি ডেটা সিরিয়ালাইজেশন ফরম্যাট যা ডিস্ট্রিবিউটেড সিস্টেমে ডেটা সংরক্ষণ এবং ট্রান্সফারের জন্য জনপ্রিয়। Hive এর সাথে Avro ফরম্যাটের ইন্টিগ্রেশন ব্যবহার করে HDFS এ সংরক্ষিত ডেটা সঞ্চয়, অ্যাক্সেস, এবং কুয়েরি করা সম্ভব হয়। Hive তে Avro ডেটা সংরক্ষণ এবং কুয়েরি করার মাধ্যমে উচ্চ কার্যকারিতা এবং কম স্টোরেজ স্পেস পাওয়া যায়, যা বড় ডেটাসেটের জন্য অত্যন্ত কার্যকর।


Avro Data Store in Hive

Hive তে Avro ফরম্যাটে ডেটা সংরক্ষণ করতে হলে প্রথমে Hive টেবিল তৈরি করতে হয় যেখানে ফাইল ফরম্যাট হিসেবে Avro নির্দিষ্ট করা হয়। Avro ফরম্যাটটি একটি বাইনারি ফরম্যাট হিসেবে ডেটা সংরক্ষণ করে, যা কম স্টোরেজ স্পেস নেয় এবং দ্রুত ডেটা প্রক্রিয়াকরণ নিশ্চিত করে।

১. Hive টেবিল তৈরি করা Avro ফরম্যাটে

Avro ডেটা সংরক্ষণের জন্য Hive টেবিলটি Avro ফরম্যাটে তৈরি করা হয়। Hive তে Avro ফরম্যাট ব্যবহার করার জন্য আপনাকে STORED AS AVRO নির্দেশনা ব্যবহার করতে হবে।

উদাহরণ (Hive Table Creation in Avro):

CREATE TABLE user_table (
    name STRING,
    age INT,
    emails ARRAY<STRING>
)
STORED AS AVRO;

এখানে, user_table নামক একটি Hive টেবিল তৈরি করা হয়েছে যেখানে name, age, এবং emails নামে তিনটি ফিল্ড রয়েছে, এবং ডেটা Avro ফরম্যাটে সংরক্ষিত হবে।

২. Avro ফাইল ইনসার্ট করা Hive টেবিলে

Avro ফরম্যাটে ডেটা Hive টেবিলে ইনসার্ট করতে হলে, আপনি HDFS থেকে Avro ফাইল পড়তে এবং সেটিকে Hive টেবিলে ইনসার্ট করতে পারেন। এ জন্য Hive এর LOAD DATA কমান্ড ব্যবহার করা হয়।

উদাহরণ (Load Avro File to Hive Table):

LOAD DATA INPATH 'hdfs://namenode_host:8020/user/hadoop/data.avro' INTO TABLE user_table;

এখানে, data.avro নামক একটি Avro ফাইল user_table টেবিলে লোড করা হচ্ছে।


Querying Avro Data in Hive

Avro ফরম্যাটে সংরক্ষিত ডেটা Hive এর মধ্যে কুয়েরি করা যায় এবং SQL-এর মতো কুয়েরি ভাষা ব্যবহার করে সহজেই ডেটা রিট্রিভ করা সম্ভব। Hive ব্যবহারকারীরা Avro ডেটা কুয়েরি করতে SELECT স্টেটমেন্ট ব্যবহার করে ডেটা অন্বেষণ করতে পারেন।

১. Avro ডেটা কুয়েরি করা

Avro ফরম্যাটে সংরক্ষিত ডেটার উপর কুয়েরি চালানোর জন্য Hive এর SELECT স্টেটমেন্ট ব্যবহার করা হয়।

উদাহরণ (Query Avro Data in Hive):

SELECT name, age, emails FROM user_table WHERE age > 30;

এই কুয়েরি Hive টেবিল user_table থেকে name, age, এবং emails ফিল্ডগুলি রিট্রিভ করবে যেখানে age > 30

২. Avro ফিল্ডের উপর অ্যাগ্রিগেট কুয়েরি করা

Avro ডেটাতে বিভিন্ন অ্যাগ্রিগেট ফাংশন যেমন COUNT, SUM, AVG, MIN, MAX ইত্যাদি ব্যবহার করা যেতে পারে।

উদাহরণ (Aggregate Query on Avro Data):

SELECT COUNT(*) FROM user_table WHERE age > 30;

এই কুয়েরি age > 30 শর্ত অনুযায়ী user_table টেবিলের রেকর্ডের সংখ্যা গণনা করবে।


Avro ফাইলের সাথে Hive Data Types এর মেলবন্ধন

Avro এবং Hive এর মধ্যে ডেটার টাইপের মেলবন্ধন খুবই গুরুত্বপূর্ণ। Hive তে ব্যবহৃত ডেটা টাইপ এবং Avro এর মধ্যে কিছু সমতা ও পার্থক্য রয়েছে। Avro এবং Hive ডেটা টাইপের মধ্যে কিছু সাধারণ সম্পর্ক রয়েছে যেমন:

Hive Data TypeAvro Data Type
STRINGstring
INTint
BIGINTlong
DOUBLEdouble
ARRAYarray
MAP<STRING, STRING>map

এটি নিশ্চিত করে যে Hive এবং Avro এর মধ্যে ডেটা স্থানান্তর বা এক্সচেঞ্জ সহজ হয় এবং সঠিকভাবে প্রক্রিয়াকৃত হয়।


Avro Data Exporting from Hive

Hive এর মাধ্যমে Avro ডেটা এক্সপোর্ট করা সম্ভব। Avro ফরম্যাটে ডেটা এক্সপোর্ট করার জন্য Hive-এর INSERT OVERWRITE কমান্ড ব্যবহার করা হয়।

উদাহরণ (Export Avro Data from Hive):

INSERT OVERWRITE DIRECTORY 'hdfs://namenode_host:8020/user/hadoop/output_avro'
STORED AS AVRO
SELECT * FROM user_table;

এখানে, user_table এর সমস্ত ডেটা Avro ফরম্যাটে HDFSoutput_avro ডিরেক্টরিতে এক্সপোর্ট করা হচ্ছে।


Avro Data Compression in Hive

Avro ফরম্যাটের সাথে ডেটা কম্প্রেশন ব্যবহারের মাধ্যমে স্টোরেজ স্পেস আরও কমানো যায় এবং ডেটা দ্রুত ট্রান্সফার করা সম্ভব হয়। Hive-এ Avro ফরম্যাটের সাথে কম্প্রেশন ব্যবহারের জন্য AVROCOMPRESSION প্রপার্টি নির্ধারণ করা যায়।

উদাহরণ (Avro Data Compression in Hive):

SET hive.exec.compress.output=true;
SET hive.avro.compression.codec=snappy;

এখানে, Snappy কম্প্রেশন কোডেক ব্যবহার করা হয়েছে যাতে Avro ডেটা কম্প্রেসড আকারে সংরক্ষিত হয়।


সারাংশ

Apache Hive তে Avro ফরম্যাটে ডেটা সংরক্ষণ এবং কুয়েরি করা সহজ এবং কার্যকরী। Hive টেবিল তৈরি করে এবং STORED AS AVRO নির্দেশনা ব্যবহার করে Avro ডেটা সঞ্চয় করা যায়। Hive ব্যবহারকারীরা SQL কুয়েরি ভাষা ব্যবহার করে Avro ডেটা কুয়েরি করতে পারেন, যা ডিস্ট্রিবিউটেড সিস্টেমে ডেটা অ্যাক্সেস ও প্রক্রিয়াকরণের জন্য উপযুক্ত। Avro এর সাথে Hive ইন্টিগ্রেশন দ্রুত ডেটা প্রক্রিয়াকরণ, কম স্টোরেজ খরচ, এবং কার্যকরী ডেটা ট্রান্সফার নিশ্চিত করে।

Content added By
Promotion

Are you sure to start over?

Loading...