Hive ডেটা বিশ্লেষণের জন্য বিভিন্ন ফাইল ফরম্যাট সমর্থন করে, যার মধ্যে TEXT, ORC, PARQUET, এবং AVRO অন্যতম। প্রতিটি ফাইল ফরম্যাটের নিজস্ব সুবিধা এবং ব্যবহার ক্ষেত্র রয়েছে, এবং এগুলি Hadoop ইকোসিস্টেমে বিভিন্ন ডেটা প্রক্রিয়াকরণের জন্য উপযোগী।
এখানে এই ফাইল ফরম্যাটগুলো সম্পর্কে বিস্তারিত আলোচনা করা হলো।
1. TEXT FILE
TEXTFILE হল Hive এর প্রাথমিক ডেটা ফরম্যাট এবং এটি Hadoop এর HDFS-এ সঞ্চিত সাধারণ টেক্সট ফাইল হিসেবে ডেটা ধারণ করে। এটি কমপ্লেক্স নয় এবং সাধারণ ডেটা সঞ্চয় করার জন্য ব্যবহৃত হয়।
বিশেষত্ব:
- সহজ এবং প্রাথমিক: সাধারণ টেক্সট ফাইল হিসাবে ডেটা সঞ্চিত হয়, যেখানে প্রতিটি রেকর্ড একটি নতুন লাইন হিসাবে রাখা হয়।
- কোনো স্কিমা নেই: ডেটা সঞ্চয় করার জন্য কোন স্কিমা নির্ধারণ করা হয় না, তাই এটি স্কিমা-লেস।
- পারফরম্যান্স: অন্যান্য ফরম্যাটের তুলনায় পারফরম্যান্স তুলনামূলকভাবে কম হতে পারে, বিশেষ করে বড় ডেটাসেটের ক্ষেত্রে।
কোড উদাহরণ:
CREATE TABLE employee (
id INT,
name STRING,
salary FLOAT
)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY ','
STORED AS TEXTFILE;
2. ORC (Optimized Row Columnar)
ORC (Optimized Row Columnar) একটি Columnar Storage ফরম্যাট যা বড় ডেটাসেটের জন্য বিশেষভাবে ডিজাইন করা হয়েছে। এটি মূলত পারফরম্যান্স এবং সঞ্চয় উন্নত করতে ব্যবহৃত হয়।
বিশেষত্ব:
- Columnar ফরম্যাট: ডেটা কলামের ভিত্তিতে সঞ্চিত হয়, যা টেবিলের শুধুমাত্র প্রয়োজনীয় কলাম পড়ার মাধ্যমে পারফরম্যান্স বৃদ্ধি করে।
- কমপ্যাক্ট স্টোরেজ: ORC ফাইল ফরম্যাট ডেটাকে সঙ্কুচিত করে, ফলে ডিস্ক স্পেস কম লাগে এবং ডেটা দ্রুত লোড হয়।
- ACID সাপোর্ট: এটি ACID ট্রানজেকশন সমর্থন করে এবং হাইভের মধ্যে ডেটা আপডেট, ডিলিট এবং ইনসার্ট পরিচালনা করতে সাহায্য করে।
কোড উদাহরণ:
CREATE TABLE employee (
id INT,
name STRING,
salary FLOAT
)
STORED AS ORC;
3. PARQUET
PARQUET একটি Columnar Storage ফরম্যাট যা ডেটা সঞ্চয়ের জন্য অত্যন্ত দক্ষ। এটি Apache Arrow দ্বারা সমর্থিত এবং বিভিন্ন ডেটা সিস্টেমের মধ্যে ডেটা শেয়ার করার জন্য উপযোগী।
বিশেষত্ব:
- Columnar Storage: ডেটা কলামের ভিত্তিতে সঞ্চিত হয়, যা অ্যানালিটিক্যাল কুয়েরি করার সময় পারফরম্যান্স উন্নত করে।
- স্কিমা: Parquet ফাইল ফরম্যাট ডেটার স্কিমা ধারণ করে, ফলে ডেটা প্রসেসিং এর সময় আরও নির্ভরযোগ্য হয়।
- অভ্যন্তরীণ কম্প্রেশন: Parquet ফাইল সঞ্চয়ের সময় অন্তর্নিহিত কম্প্রেশন সমর্থন করে, যা স্টোরেজ স্পেস সাশ্রয় করে।
কোড উদাহরণ:
CREATE TABLE employee (
id INT,
name STRING,
salary FLOAT
)
STORED AS PARQUET;
4. AVRO
AVRO একটি সিরিয়ালাইজেশন ফরম্যাট যা Apache Avro লাইব্রেরি দ্বারা সমর্থিত। এটি স্কিমা সহ ডেটা সঞ্চয় করার জন্য ডিজাইন করা হয়েছে এবং JSON বা অন্যান্য ফাইল ফরম্যাটের তুলনায় এটি দ্রুত এবং কার্যকরী।
বিশেষত্ব:
- স্কিমা সমর্থন: AVRO ফাইল সঞ্চয়ের সময় ডেটার স্কিমা সহ সঞ্চয় করা হয়, যার ফলে স্কিমা স্বয়ংক্রিয়ভাবে সঙ্গতিপূর্ণ থাকে।
- কমপ্যাক্ট স্টোরেজ: AVRO ফাইলগুলি কমপ্যাক্ট হয়, কারণ এতে ডেটার স্কিমা অন্তর্ভুক্ত থাকে এবং এটি আরও সাশ্রয়ী সঞ্চয়ের জন্য ডিজাইন করা।
- এনক্রিপশন এবং কম্প্রেশন: AVRO ফরম্যাট এনক্রিপশন এবং কম্প্রেশন সমর্থন করে, যা ডেটা সুরক্ষা এবং স্টোরেজ সুবিধা প্রদান করে।
কোড উদাহরণ:
CREATE TABLE employee (
id INT,
name STRING,
salary FLOAT
)
STORED AS AVRO;
তুলনা: TEXT, ORC, PARQUET, AVRO
| ফাইল ফরম্যাট | পারফরম্যান্স | সঞ্চয় | কম্প্রেশন | স্কিমা | বিশেষত্ব |
|---|---|---|---|---|---|
| TEXT | কম | কম্প্যাক্ট নয় | নেই | স্কিমা-লেস | সহজ এবং প্রাথমিক, সাধারণ ডেটার জন্য উপযুক্ত। |
| ORC | খুব ভালো | সাশ্রয়ী | হ্যাঁ | রয়েছে | কম্প্যাক্ট স্টোরেজ এবং দ্রুত পারফরম্যান্স। |
| PARQUET | ভালো | সাশ্রয়ী | হ্যাঁ | রয়েছে | স্টোরেজ ইফিশিয়েন্সি এবং স্কিমা ভিত্তিক ফরম্যাট। |
| AVRO | ভালো | সাশ্রয়ী | হ্যাঁ | রয়েছে | স্কিমা সহ ডেটা সঞ্চয়, দ্রুত এবং কার্যকরী। |
উপসংহার
Hive বিভিন্ন ফাইল ফরম্যাট সমর্থন করে, যা বিভিন্ন ডেটা প্রসেসিংয়ের প্রয়োজন অনুযায়ী ব্যবহৃত হয়। TEXT ফাইল ফরম্যাট সিম্পল এবং সহজ, তবে পারফরম্যান্স এবং স্টোরেজ এফিসিয়েন্সির জন্য ORC, PARQUET, এবং AVRO অনেক বেশি উপযোগী। ORC এবং PARQUET কলামার ফরম্যাটের জন্য উপযুক্ত, যেখানে AVRO স্কিমা সমর্থন করে এবং তা দ্রুত ডেটা সিরিয়ালাইজেশন এবং ডেসিরিয়ালাইজেশন জন্য কার্যকর।
Read more