Apache Hive একটি ডেটাবেস ওয়্যারহাউজিং এবং বিশ্লেষণ প্ল্যাটফর্ম, যা মূলত Hadoop এর উপর নির্মিত। Hive ব্যবহারকারীদের জন্য SQL-এর মতো কুয়েরি ভাষা (HiveQL) প্রদান করে, যা বিগ ডেটা প্রক্রিয়াকরণের জন্য উপযোগী। এটি ডেটা স্টোরেজ এবং বিশ্লেষণের জন্য অত্যন্ত জনপ্রিয়, বিশেষ করে যখন ডেটা Hadoop সিস্টেমে সঞ্চিত থাকে।
Hive এর সাহায্যে ব্যবহারকারীরা বড় ডেটা সেটগুলো বিশ্লেষণ করতে পারেন, এবং তারা তাদের ডেটা সিস্টেমের জন্য কমপ্লেক্স SQL-like কুয়েরি ব্যবহার করতে সক্ষম হন। এটি বিশেষভাবে উপকারী যখন আপনি বড় ডেটা সেটগুলোর উপর অ্যানালাইটিক্স কাজ করতে চান, কারণ Hive SQL-এর মতো সরল কুয়েরি ভাষায় ডেটা প্রক্রিয়া করতে সাহায্য করে।
1. Apache Hive এর বৈশিষ্ট্য
- SQL লাইক কুয়েরি ভাষা (HiveQL): Hive SQL-এর মতো কুয়েরি ভাষা ব্যবহার করে ডেটা হ্যান্ডলিং এবং বিশ্লেষণ করতে সহায়তা করে। এটি বিগ ডেটার জন্য একটি সহজ এবং পরিচিত ভাষা প্রদান করে, যেটি ডেটাবেস ব্যবহারকারীদের জন্য উপকারী।
- ডেটা স্টোরেজ: Hive সাধারণত Hadoop HDFS (Hadoop Distributed File System) ব্যবহার করে ডেটা স্টোর করে। এটি ডিস্ট্রিবিউটেড এবং স্কেলেবল ডেটা স্টোরেজ সমাধান সরবরাহ করে।
- ডেটাবেস কনসেপ্ট: Hive ডেটা এবং টেবিল পরিচালনার জন্য ডেটাবেস কনসেপ্ট ব্যবহার করে। এটি টেবিল, স্কিমা এবং ডেটাবেসের মধ্যে সম্পর্ক তৈরি করে।
- স্কেলেবল এবং ডিসট্রিবিউটেড: Hive বৃহৎ পরিমাণ ডেটা প্রসেস করার জন্য তৈরি, এবং এটি Hadoop ক্লাস্টার ব্যবহার করে কাজ করে, যা ডিস্ট্রিবিউটেড প্রসেসিং সক্ষম করে।
- ফাইল ফরম্যাট সাপোর্ট: Hive বিভিন্ন ফাইল ফরম্যাটের জন্য সমর্থন প্রদান করে যেমন Text File, ORC, Parquet, Avro, ইত্যাদি, যা ডেটার সংরক্ষণ এবং প্রক্রিয়া সুবিধাজনক করে।
- অটোপিলট অপটিমাইজেশন: Hive একটি অপটিমাইজড প্ল্যানার ব্যবহৃত হয় যা কুয়েরি প্ল্যানিং এবং এক্সিকিউশনকে দ্রুত এবং দক্ষ করে তোলে।
2. Apache Hive এর মূল উপাদান
Apache Hive এর কিছু গুরুত্বপূর্ণ উপাদান রয়েছে, যা এর কার্যকারিতা এবং সুবিধা নিশ্চিত করে:
1. HiveQL:
HiveQL হলো Hive এর কুয়েরি ভাষা, যা SQL-এর সাথে তুলনীয়। এটি ব্যবহারকারীদের জন্য পরিচিত এবং সহজ কুয়েরি রাইটিং পরিবেশ তৈরি করে। HiveQL ব্যবহারকারীদের জন্য ডেটা সিলেকশন, ইনসার্ট, জোইন, গ্রুপিং ইত্যাদি অপারেশনগুলি সহজ করে।
2. Metastore:
Metastore হলো Hive এর কেন্দ্রীয় রেজিস্ট্রি যা টেবিলের স্কিমা, পার্টিশন, এবং ডেটা ফাইলগুলির জন্য মেটাডেটা সংরক্ষণ করে। এটি Hive কুয়েরির জন্য তথ্য সংরক্ষণ ও পুনরুদ্ধার করতে ব্যবহৃত হয়। Metastore রিলেশনাল ডেটাবেসে (যেমন MySQL, PostgreSQL) স্টোর করা হয়।
3. Driver:
Hive Driver HiveQL কুয়েরিগুলিকে পার্স করে এবং এটির জন্য ডেটা প্রসেসিং পরিকল্পনা তৈরি করে। এটি কুয়েরি প্রক্রিয়া, ফলাফল ফেরত দেওয়া এবং অন্যান্য কাজের জন্য দায়িত্বশীল।
4. Compiler:
Compiler HiveQL কুয়েরিকে কাস্টম বা অতি-অপ্টিমাইজড ফর্মে কনভার্ট করে, যাতে এটি দ্রুত এবং সঠিকভাবে প্রক্রিয়া করা যায়। এটি হাইভ কুয়েরি ইঞ্জিনের জন্য খুবই গুরুত্বপূর্ণ।
5. Execution Engine:
Execution Engine হলো সেই কম্পোনেন্ট যা HiveQL কুয়েরির কম্পাইলড কোডকে বাস্তবায়ন করে এবং তারপরে Hadoop MapReduce বা Tez ব্যবহার করে ডেটা প্রসেস করে।
6. Hadoop Integration:
Hive, Hadoop এর সাথে গভীরভাবে ইন্টিগ্রেটেড থাকে। Hive ডেটাকে HDFS (Hadoop Distributed File System) এ সংরক্ষণ করে এবং Hadoop-এর MapReduce বা Tez কম্পিউটিং ফ্রেমওয়ার্ক ব্যবহার করে ডেটা প্রসেস করে।
3. Apache Hive এর ব্যবহার
1. ডেটাবেস ম্যানেজমেন্ট:
Hive সাধারণত ডেটাবেস ম্যানেজমেন্ট সিস্টেম হিসেবে ব্যবহার করা হয়, যেখানে আপনি টেবিল তৈরি, কুয়েরি, ইন্সার্ট, ডিলিট এবং ডেটা আপডেট করতে পারবেন। Hive ব্যবহারের মাধ্যমে ডিস্ট্রিবিউটেড ফাইল সিস্টেমের মধ্যে ডেটা সংরক্ষণ এবং পরিচালনা সহজ হয়।
2. ডেটা অ্যানালাইসিস:
Hive কুয়েরি ভাষার মাধ্যমে আপনি বড় ডেটা সেট থেকে রিপোর্ট তৈরি করতে পারেন এবং ডেটা বিশ্লেষণ করতে পারেন। এটি ডেটার ফিল্টারিং, গ্রুপিং, এবং অগ্রাধিকার ভিত্তিক বিশ্লেষণকে সহজ করে তোলে।
3. BI (Business Intelligence) অ্যাপ্লিকেশন:
Hive বড় ডেটা সেটের উপর ব্যবসায়িক বুদ্ধিমত্তা (BI) অ্যাপ্লিকেশন চালানোর জন্য একটি কার্যকরী টুল হতে পারে। এটি SQL সাপোর্টের মাধ্যমে বিশ্লেষক এবং ডেটাবেস অ্যাডমিনিস্ট্রেটরদের জন্য সহজ করে তোলে।
4. ডেটা ওয়্যারহাউজিং:
Hive ডেটা ওয়্যারহাউজিং সিস্টেম হিসেবে ব্যবহৃত হতে পারে, যেখানে সঞ্চিত ডেটা বিশ্লেষণ ও কুয়েরির মাধ্যমে রিপোর্ট তৈরি করা হয়।
4. Apache Hive এর সুবিধা
- SQL-Like Interface: Hive SQL-এর মতো কুয়েরি ভাষা ব্যবহার করে ডেটা প্রক্রিয়াকরণ করা হয়, যা ডেটাবেস ব্যবহারকারীদের জন্য পরিচিত এবং সুবিধাজনক।
- হাই পারফরম্যান্স: Hive প্রক্রিয়াকরণে MapReduce বা Tez ব্যবহার করে, যা বিগ ডেটার বিশ্লেষণকে স্কেলেবিলিটি এবং উচ্চ পারফরম্যান্স প্রদান করে।
- ডিস্ট্রিবিউটেড প্রসেসিং: Hive হাডুপ ক্লাস্টার ব্যবহার করে ডিস্ট্রিবিউটেড ডেটা প্রসেসিং সক্ষম করে, যার ফলে ডেটার বিশ্লেষণ বড় পরিসরে করা যায়।
- স্কেলেবিলিটি: Hive ব্যবহার করে আপনি বিশাল পরিমাণ ডেটা সহজেই প্রক্রিয়া করতে পারবেন এবং এটি বড় ডেটা সেটের জন্য উপযুক্ত।
- অপটিমাইজেশন: Hive কুয়েরি অপটিমাইজেশনের জন্য বিভিন্ন কৌশল ব্যবহার করে, যেমন কুয়েরি রিজোলিউশন, জোইন অপটিমাইজেশন এবং পার্টিশনিং।
5. Apache Hive এর সীমাবদ্ধতা
- রিয়েল-টাইম ডেটা প্রসেসিং: Hive মূলত ব্যাচ প্রসেসিংয়ের জন্য তৈরি, এবং এটি রিয়েল-টাইম ডেটা প্রসেসিং সাপোর্ট করে না। তবে, কিছু ফিচার যেমন Hive on Tez এর মাধ্যমে রিয়েল-টাইম প্রসেসিং কিছুটা সহায়তা করে।
- জটিল কুয়েরি: Hive বড় এবং জটিল কুয়েরি সাপোর্ট করতে পারে, কিন্তু কিছু বিশেষ ক্ষেত্রে সিস্টেমের পারফরম্যান্স কম হতে পারে।
- নিয়ন্ত্রণ এবং শর্ত: Hive SQL যেমন শর্তযুক্ত কুয়েরি বা জটিল সাব-কুয়েরি সাপোর্ট করে না, যা কিছু ক্ষেত্রে ব্যবহারকারীদের জন্য চ্যালেঞ্জ হতে পারে।
সারাংশ
Apache Hive একটি শক্তিশালী ডেটাবেস ওয়্যারহাউজিং এবং বিশ্লেষণ প্ল্যাটফর্ম যা Hadoop এর সাথে ইন্টিগ্রেটেড থাকে। Hive SQL-এর মতো কুয়েরি ভাষা ব্যবহার করে ডেটার উপর বিশ্লেষণ এবং প্রক্রিয়াকরণ সহজ করে তোলে। এটি বিগ ডেটা সিস্টেমে ডেটার স্টোরেজ এবং প্রক্রিয়াকরণের জন্য কার্যকরী এবং স্কেলেবল সমাধান প্রদান করে। Hive বিভিন্ন ডেটা ফরম্যাট সাপোর্ট করে এবং ব্যাচ প্রসেসিংয়ের মাধ্যমে বড় ডেটা সেটের উপর উচ্চ পারফরম্যান্স বিশ্লেষণ সম্ভব করে।
Apache Hive একটি ওপেন সোর্স ডেটাবেস ওয়্যারহাউজ সিস্টেম, যা বিশেষভাবে Hadoop-এর জন্য তৈরি করা হয়েছে। এটি একটি SQL-এর মতো কুয়েরি ভাষা (HQL - Hive Query Language) ব্যবহার করে বিগ ডেটা প্রসেসিং এবং বিশ্লেষণ করতে সহায়তা করে। Hive মূলত ডিস্ট্রিবিউটেড ডেটা স্টোরেজ এবং বিশ্লেষণের জন্য তৈরি, যেখানে এটি ডেটাকে দ্রুত এবং সহজভাবে প্রক্রিয়া করতে সাহায্য করে। এটি ডেটা বিশ্লেষণকারীদের জন্য SQL-এর মতো ব্যবহারযোগ্য পরিবেশ প্রদান করে, যার ফলে তারা Hadoop-এর স্কেলেবিলিটি এবং পারফরম্যান্সের সুবিধা নিয়ে ডেটা বিশ্লেষণ করতে পারে।
Apache Hive এর ভূমিকা
Hive মূলত Hadoop এর জন্য একটি ডেটাবেস ওয়্যারহাউজ সিস্টেম হিসেবে কাজ করে। Hadoop-এ বড় আকারের ডেটা সংরক্ষিত এবং প্রক্রিয়া করা হয়, তবে সাধারণ SQL কুয়েরি ব্যবহার করে Hive সেই ডেটাকে বিশ্লেষণ এবং প্রসেস করতে সক্ষম করে। Hive SQL স্টাইলের কুয়েরি ভাষা সমর্থন করে, যা বিশেষ করে ডেটা অ্যানালিস্টদের জন্য খুবই সুবিধাজনক।
Hive এর মাধ্যমে বড় ডেটা সেটকে সহজেই স্কেল করা যায় এবং SQL-এর মতো কুয়েরি ভাষা ব্যবহার করে বিশ্লেষণ করা সম্ভব হয়। Hadoop-এর সাথে Hive ব্যবহারে পিপলাইনে থাকা ডেটা দ্রুত বিশ্লেষণ করা সম্ভব হয় এবং এটি বিগ ডেটা প্রসেসিংয়ের জন্য একটি কার্যকরী টুল হিসেবে পরিচিত।
Apache Hive এর কার্যকারিতা
- SQL স্টাইল কুয়েরি: Hive SQL-এর মতো কুয়েরি ভাষা সমর্থন করে, যার ফলে ডেটা বিশ্লেষণকারীরা পরিচিত SQL কুয়েরি ব্যবহার করতে পারেন। এটি সহজভাবে বড় ডেটা সেটের উপর অপারেশন চালানোর জন্য সহায়ক।
- ডিস্ট্রিবিউটেড কম্পিউটিং সমর্থন: Hive Hadoop ফ্রেমওয়ার্কের উপর কাজ করে, তাই এটি ডিস্ট্রিবিউটেড কম্পিউটিং সমর্থন করে। এর মাধ্যমে একাধিক সার্ভারে ডেটা প্রসেস করা সম্ভব এবং স্কেলেবল সল্যুশন প্রদান করা হয়।
- ডেটা স্টোরেজ: Hive ডেটাকে HDFS (Hadoop Distributed File System) তে সংরক্ষণ করে, যা ডিস্ট্রিবিউটেড স্টোরেজ সমর্থন করে এবং ডেটার উচ্চলভ্যতা নিশ্চিত করে।
- পারফরম্যান্স অপটিমাইজেশন: Hive ডেটা প্রসেসিংয়ের জন্য MapReduce ব্যবহার করে, তবে তা SQL কুয়েরি ভাষায় সম্পন্ন হয়। এটি দ্রুত ডেটা প্রসেসিংয়ের জন্য বিভিন্ন অপটিমাইজেশন সমর্থন করে, যেমন Partitioning এবং Bucketing।
- বিভিন্ন ফাইল ফরম্যাট সমর্থন: Hive বিভিন্ন ধরনের ডেটা ফরম্যাট, যেমন Text, ORC (Optimized Row Columnar), Parquet, Avro ইত্যাদি সমর্থন করে, যা ডেটার গুণগত মান এবং পারফরম্যান্স বৃদ্ধি করে।
Apache Hive ব্যবহার করার কারণ
- SQL অভিজ্ঞতা: Hive SQL কুয়েরি ভাষা সমর্থন করে, যা সাধারণ ডেটাবেস অ্যানালিস্টদের জন্য অত্যন্ত পরিচিত এবং ব্যবহারকারী-বান্ধব। তাই Hive ব্যবহারকারীদের জন্য SQL এর মতো পরিবেশ প্রদান করে, যাদের Hadoop এবং MapReduce এর সাথে পরিচিত হওয়ার প্রয়োজন নেই।
- ডিস্ট্রিবিউটেড ডেটা প্রসেসিং: Hive ডিস্ট্রিবিউটেড কম্পিউটিংয়ের সুবিধা নিয়ে কাজ করে, তাই এটি বড় আকারের ডেটা দ্রুত এবং স্কেলেবলভাবে প্রসেস করতে সক্ষম।
- এনালিটিক্যাল রিউইরির জন্য সমর্থন: Hive বিভিন্ন ধরনের এনালিটিক্যাল কুয়েরি সমর্থন করে, যেমন গ্রুপিং, জয়েনিং, এবং অ্যাগ্রিগেটিং, যা বিগ ডেটা বিশ্লেষণের জন্য অত্যন্ত প্রয়োজনীয়।
- স্টোরেজ সমর্থন: Hive ডেটাকে Hadoop Distributed File System (HDFS) তে সংরক্ষণ করে, যার ফলে ডেটা নিরাপদে এবং স্কেলেবলভাবে সংরক্ষিত থাকে।
- প্রসেসিং গতি উন্নত করা: Hive বিভিন্ন অপটিমাইজেশন যেমন পার্টিশনিং, বাজেটিং, এবং CBO (Cost-Based Optimizer) ব্যবহার করে ডেটার প্রসেসিং গতি দ্রুত করে।
- ইন্টিগ্রেশন এবং স্কেলেবিলিটি: Hive সহজেই অন্যান্য Hadoop টুলস যেমন Apache Pig, HBase, এবং Spark এর সাথে ইন্টিগ্রেট করা যায়, যার ফলে পুরো Hadoop ইকোসিস্টেমে একসাথে কাজ করা সহজ হয়।
Hive এর মূল উপাদান
- Hive Metastore: Hive এর মেটাস্টোর একটি মেটাডেটা রিপোজিটরি যা টেবিল, স্কিমা, পার্টিশন, কলাম নাম ইত্যাদি ধারণ করে। এটি ডেটাবেসের কাঠামো এবং সঠিক ডেটা প্রসেসিংয়ের জন্য গুরুত্বপূর্ণ ভূমিকা পালন করে।
- Hive Query Language (HQL): Hive Query Language (HQL) SQL-এর মতো কুয়েরি ভাষা, যা ব্যবহারকারীদের ডেটা প্রসেসিংয়ের জন্য একটি শক্তিশালী এবং সহজ মাধ্যম প্রদান করে। HQL SQL কুয়েরির মতোই ডেটা ট্রান্সফর্মেশন এবং অ্যাকশন (যেমন SELECT, INSERT, JOIN) সমর্থন করে।
- Hive Drivers: Hive ডেটাবেসের সাথে সংযোগ স্থাপন করতে ড্রাইভার ব্যবহার করা হয়। এটি বিভিন্ন প্রোগ্রামিং ভাষার মধ্যে Hive এর সাথে যোগাযোগের একটি ব্রিজ হিসেবে কাজ করে।
- Hive Services: Hive সার্ভিসগুলো বিভিন্ন ক্লায়েন্ট প্রোগ্রাম থেকে Hive-এ সংযোগ এবং কুয়েরি ইন্টারফেস প্রদান করে। এটি সাধারণত JDBC/ODBC এবং WebHCat এর মাধ্যমে Hive এর সাথে যোগাযোগ স্থাপন করে।
Hive এর কিছু উদাহরণ
- Hive টেবিল তৈরি করা:
CREATE TABLE employee (id INT, name STRING, salary FLOAT)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY ','
STORED AS TEXTFILE;
- Hive তে ডেটা ইনসার্ট করা:
LOAD DATA INPATH '/path/to/data.csv' INTO TABLE employee;
- Hive তে কুয়েরি চালানো:
SELECT * FROM employee WHERE salary > 50000;
সারাংশ
Apache Hive একটি গুরুত্বপূর্ণ টুল যা Hadoop এর সাথে ডিস্ট্রিবিউটেড ডেটা প্রসেসিং এবং বিশ্লেষণ সহজ করে তোলে। Hive SQL স্টাইল কুয়েরি ভাষা ব্যবহার করে বিগ ডেটা সহজভাবে বিশ্লেষণ করার সুবিধা প্রদান করে, যা SQL জানেন এমন ডেটা অ্যানালিস্টদের জন্য অত্যন্ত উপকারী। Hive ডিস্ট্রিবিউটেড কম্পিউটিং সমর্থন করে এবং এতে ডেটা দ্রুত এবং স্কেলেবলভাবে প্রক্রিয়া করা সম্ভব হয়। বিগ ডেটা বিশ্লেষণের জন্য এটি একটি কার্যকরী এবং দক্ষ প্ল্যাটফর্ম, বিশেষত যখন ডেটা বড় আকারের হয় এবং এর মধ্যে জটিল এনালিটিক্যাল কুয়েরি কার্যকর করতে হয়।
Hive Query Language (HQL) হলো Apache Hive-এ ব্যবহৃত একটি কাস্টম SQL অনুরূপ কুয়েরি ভাষা, যা বিগ ডেটা ওয়্যারহাউজিং এবং বিশ্লেষণের জন্য ব্যবহৃত হয়। Hive মূলত Hadoop-এ ডেটাবেস লেভেলের কার্যকলাপ করার জন্য ডিজাইন করা হয়েছিল এবং HQL ব্যবহার করে ডেটাবেসের মতো কাঠামো তৈরি করা যায়। Hive এর সাহায্যে Hadoop ব্যবহারকারীরা SQL-এর মতো কুয়েরি লেখার মাধ্যমে বৃহৎ পরিমাণ ডেটা সহজেই বিশ্লেষণ এবং প্রক্রিয়া করতে পারে।
HQL Hadoop-এর HDFS (Hadoop Distributed File System) এবং অন্যান্য ডেটা স্টোরেজ সিস্টেমে থাকা ডেটার উপর কাজ করতে সহায়তা করে, যেমন Hive, HBase বা RDBMS। এটি SQL-এর মতো কুয়েরি সিনট্যাক্স ব্যবহার করে, তবে এটি বিশেষভাবে ডিজাইন করা হয়েছে বিগ ডেটার জন্য।
1. Hive Query Language (HQL) এর মূল বৈশিষ্ট্য
- SQL-অনুরূপ সিনট্যাক্স: HQL SQL-এর মতো কুয়েরি ভাষা ব্যবহার করে, তাই যারা SQL জানেন তারা সহজেই Hive ব্যবহার করতে পারেন।
- বৃহৎ ডেটার জন্য উপযুক্ত: Hive মূলত বিগ ডেটা বিশ্লেষণ এবং প্রক্রিয়াকরণের জন্য তৈরি করা হয়েছে, তাই এটি উচ্চ-ভলিউম ডেটা সংরক্ষণ এবং বিশ্লেষণে সহায়ক।
- ডেটাবেসের কাঠামো: Hive টেবিলের কাঠামো তৈরি করতে সক্ষম, যা SQL ডেটাবেসের মতো ডেটা কন্টেইনার হিসেবে কাজ করে।
- Batch Processing: Hive সাধারণত ব্যাচ প্রক্রিয়াকরণের জন্য ব্যবহৃত হয়, যদিও তা রিয়েল-টাইম প্রক্রিয়াকরণের জন্য উপযুক্ত নয়।
- ডেটা স্টোরেজ সিস্টেমের সাথে ইন্টিগ্রেশন: Hive HDFS, HBase এবং অন্যান্য স্টোরেজ সিস্টেমের সাথে একীভূত হয়ে ডেটার অ্যাক্সেস এবং প্রক্রিয়াকরণ করতে সহায়তা করে।
2. HQL এর মৌলিক উপাদান
Hive টেবিল (Tables) এবং ফাইল
HQL ডেটা সঞ্চয়ের জন্য Hive টেবিল ব্যবহার করে, যেগুলো একে একে ফাইলগুলিতে সঞ্চিত হয়। টেবিলগুলি হ্যাডুপ ডিস্ট্রিবিউটেড ফাইল সিস্টেমে (HDFS) সঞ্চিত থাকে এবং এগুলোর মাধ্যমে ডেটাকে সহজে প্রক্রিয়া করা যায়।
ডেটা টাইপ (Data Types)
Hive SQL-এর মতোই বিভিন্ন ডেটা টাইপ সাপোর্ট করে যেমন:
- STRING: টেক্সট ডেটা।
- INT: পূর্ণসংখ্যা।
- FLOAT: দশমিক সংখ্যা।
- DOUBLE: আরো নির্ভুল দশমিক সংখ্যা।
- BOOLEAN: সত্য/মিথ্যা মান।
- TIMESTAMP: সময়ের প্রতিনিধিত্ব।
নির্দেশনা (Commands)
HQL কিছু সাধারণ SQL কুয়েরি কমান্ড অনুসরণ করে, যেমন:
- SELECT: ডেটা নির্বাচন।
- INSERT: ডেটা ইনসার্ট করা।
- CREATE TABLE: টেবিল তৈরি করা।
- DROP TABLE: টেবিল মুছে ফেলা।
- ALTER TABLE: টেবিলের কাঠামো পরিবর্তন করা।
3. HQL এর ব্যবহার
Hive Query Language-এ বিভিন্ন ধরনের কাজ করা যায় যেমন ডেটা নির্বাচন, ফিল্টারিং, গ্রুপিং, এবং বিভিন্ন ধরনের জয়েন অপারেশন। Hive সাধারণত ডেটাবেসের মত কাজ করার জন্য সহজ উপায় প্রদান করে, যা HDFS বা HBase এর ডেটার উপর কার্যকরীভাবে পরিচালিত হয়।
SELECT কুয়েরি উদাহরণ
SELECT column1, column2
FROM my_table
WHERE column1 > 100
ORDER BY column2;
এখানে my_table থেকে column1 এবং column2 নির্বাচন করা হয়েছে, যেখানে column1 এর মান ১০০ এর বেশি, এবং ফলাফলকে column2 এর মান অনুযায়ী সাজানো হয়েছে।
GROUP BY উদাহরণ
SELECT column1, COUNT(*)
FROM my_table
GROUP BY column1;
এই কুয়েরি my_table থেকে column1 এর মান অনুসারে ডেটাকে গ্রুপ করে এবং প্রতিটি গ্রুপে কয়টি রেকর্ড আছে তা গননা করে।
JOIN উদাহরণ
SELECT a.column1, b.column2
FROM table1 a
JOIN table2 b
ON a.id = b.id;
এখানে, table1 এবং table2 কে id কলামের মাধ্যমে জয়েন করা হয়েছে এবং উভয়ের নির্বাচিত কলামগুলি প্রদর্শিত হচ্ছে।
INSERT INTO উদাহরণ
INSERT INTO table_name (column1, column2)
VALUES ('value1', 'value2');
এই কুয়েরি table_name এ নতুন ডেটা ইনসার্ট করে।
4. Hive Query Language (HQL) এর সুবিধা
- SQL অনুরূপ সিনট্যাক্স: যারা SQL জানেন, তাদের জন্য Hive সহজে শেখা সম্ভব এবং দ্রুত কাজে লাগানো যায়।
- বৃহৎ পরিমাণ ডেটা হ্যান্ডলিং: Hive বিশেষভাবে ডেটার বিশাল পরিমাণ পরিচালনা এবং প্রক্রিয়াকরণের জন্য ডিজাইন করা হয়েছে।
- Hadoop ইন্টিগ্রেশন: Hive Hadoop ইকোসিস্টেমের সাথে গভীরভাবে একীভূত হয়ে কাজ করে, তাই HDFS বা HBase থেকে ডেটা দ্রুত ও সহজে বিশ্লেষণ করা সম্ভব।
- ব্যাচ প্রক্রিয়াকরণ: Hive ব্যাচ প্রক্রিয়াকরণে দক্ষ, বিশেষত বিশাল ডেটাসেট নিয়ে কাজ করার জন্য।
5. Hive Query Language (HQL) এর সীমাবদ্ধতা
- রিয়েল-টাইম প্রক্রিয়াকরণ নয়: Hive ব্যাচ প্রক্রিয়াকরণের জন্য উপযুক্ত, তবে এটি রিয়েল-টাইম বা ইন্টারঅ্যাকটিভ প্রক্রিয়াকরণের জন্য আদর্শ নয়।
- কমপ্লেক্স কুয়েরি অপারেশন: জটিল কুয়েরি অপারেশন বা জয়েনের ক্ষেত্রে Hive কিছুটা ধীর গতিতে কাজ করতে পারে, বিশেষ করে বড় ডেটাসেটের সঙ্গে।
- SQL সীমাবদ্ধতা: Hive SQL-এর মতো অনেক ধরনের ফিচার সাপোর্ট করে না, যেমন ট্রানজেকশন, ইনডেক্সিং, এবং কনস্ট্রেইন্ট সাপোর্ট।
সারাংশ
Hive Query Language (HQL) হলো একটি SQL-অনুরূপ কুয়েরি ভাষা, যা বিগ ডেটা প্রক্রিয়াকরণের জন্য ব্যবহৃত হয় এবং Hadoop-এর সাথে একীভূত হয়ে কাজ করে। এটি মূলত ব্যাচ প্রক্রিয়াকরণের জন্য ডিজাইন করা হয়েছে এবং বিশাল পরিমাণ ডেটা বিশ্লেষণ করতে সহায়তা করে। HQL ব্যবহার করে ডেটাবেসের মতো ডেটা কাঠামো তৈরি করা যায় এবং ডেটা বিশ্লেষণ করা সহজ হয়। Hive SQL সিনট্যাক্স অনুসরণ করায় SQL জানলে এটি শেখা সহজ, তবে এটি রিয়েল-টাইম প্রক্রিয়াকরণের জন্য উপযুক্ত নয়।
Apache Hive একটি ওপেন সোর্স ডেটা ওয়্যারহাউজিং ফ্রেমওয়ার্ক, যা Hadoop এর উপর ভিত্তি করে কাজ করে। Hive মূলত বিশাল ডেটাসেটের বিশ্লেষণ এবং রিপোর্টিংয়ের জন্য ব্যবহৃত হয়, এবং এটি SQL-এর মতো কুয়েরি ভাষা ব্যবহার করে ডেটা পরিচালনা করতে সহায়তা করে। Hive Hadoop-এর মধ্যে ডেটা স্টোরেজ, ডেটা প্রসেসিং এবং ডেটা বিশ্লেষণকে সহজ এবং কার্যকর করে তোলে।
Hive এর ভূমিকা ডেটা ওয়্যারহাউজিং এ
ডেটা ওয়্যারহাউজিং এমন একটি প্রক্রিয়া, যেখানে বিভিন্ন উৎস থেকে ডেটা সংগ্রহ করে একটি কেন্দ্রীভূত ডেটাবেসে সংরক্ষণ করা হয়, যা ব্যবসায়িক বিশ্লেষণ এবং রিপোর্টিংয়ের জন্য ব্যবহৃত হয়। Hive এর মাধ্যমে, বড় আকারের ডেটা ওয়্যারহাউজিং কাজগুলিকে সহজে পরিচালনা করা সম্ভব হয়। Hive ডেটা ওয়্যারহাউজিংয়ের জন্য Hadoop-এর উপরে একটি সাশ্রয়ী এবং স্কেলেবল সমাধান প্রদান করে।
Hive এর প্রধান বৈশিষ্ট্য:
- SQL অনুরূপ কুয়েরি ভাষা: Hive SQL-এর মতো কুয়েরি ভাষা (HiveQL বা HQL) ব্যবহার করে ডেটা পরিচালনা এবং বিশ্লেষণ করতে সহায়তা করে। এটি ব্যবহারকারীদের familiar SQL ভাষায় কাজ করার সুযোগ দেয়, যাতে তারা ডেটাবেসের মতো Hive-এ কাজ করতে পারে।
- ডেটা স্টোরেজ: Hive বড় ডেটা সেটগুলোকে Hadoop-এর HDFS (Hadoop Distributed File System)-এ সংরক্ষণ করে। HDFS একটি ডিস্ট্রিবিউটেড ফাইল সিস্টেম, যা ডেটাকে একাধিক সার্ভারে ভাগ করে দেয় এবং ফলস্বরূপ ডেটা স্টোরেজ অনেক বেশি স্কেলেবল ও টেকসই হয়।
- ডেটা প্রসেসিং: Hive MapReduce এর মাধ্যমে ডেটা প্রসেসিংয়ের কাজ করে। এটি বড় ডেটা সেটকে পারালাল প্রসেসিং এর মাধ্যমে দ্রুত এবং কার্যকরভাবে প্রক্রিয়া করতে সক্ষম। Hive ডেটাকে ছোট টুকরো করে ভাগ করে MapReduce টাস্কগুলিতে প্রেরণ করে।
- স্কেলেবিলিটি: Hive সম্পূর্ণ Hadoop ইকোসিস্টেমে কাজ করে এবং Hadoop-এর স্কেলেবিলিটি ব্যবহার করে বিশাল পরিমাণ ডেটা প্রক্রিয়াকরণ ও সংরক্ষণে সক্ষম হয়। Hive-এর মাধ্যমে আপনার ডেটাবেস আরও সহজে স্কেল করা যায়।
- ডেটা মডেলিং: Hive ডেটাকে টেবিলের মতো মডেল করে রাখে, যা ব্যবহারকারীদের জন্য সহজে ডেটা হ্যান্ডেল করতে সহায়ক হয়। Hive ডেটাকে partitioned, bucketed বা indexed টেবিল আকারে মডেল করতে পারে।
Hive ব্যবহার করে Data Warehousing এর সুবিধা
1. বৃহৎ পরিমাণ ডেটা পরিচালনা:
Hive Hadoop এর শক্তি ব্যবহার করে বড় আকারের ডেটাকে সমান্তরালভাবে প্রক্রিয়া করতে সক্ষম। এটি ডেটা ওয়্যারহাউজিংয়ের জন্য অত্যন্ত কার্যকর, যেখানে বিশাল ডেটাসেটকে একত্রিত এবং বিশ্লেষণ করতে হয়।
2. ডেটা বিশ্লেষণের জন্য সহজ ইন্টারফেস:
Hive SQL-এর মতো কুয়েরি ভাষা ব্যবহার করে ডেটা বিশ্লেষণ করতে পারে, যা ডেটা সায়েন্টিস্ট বা ডেটা অ্যানালিস্টদের জন্য খুবই সুবিধাজনক। Hive-এর সাথে SQL সম্পর্কিত অভিজ্ঞতা থাকা ব্যবহারকারীদের জন্য নতুন শিখতে খুব সহজ হয়।
3. ওপেন সোর্স:
Hive একটি ওপেন সোর্স প্রোজেক্ট, যার মানে হলো এটি বিনামূল্যে ব্যবহার করা যায়। ওপেন সোর্স প্রকল্প হওয়ার কারণে এর কমিউনিটি দ্বারা নিয়মিত উন্নতি ও ফিচার সংযোজন করা হয়।
4. সামাজিক মাধ্যম এবং লজ ডেটা বিশ্লেষণ:
Hive বৃহৎ ডেটাসেট যেমন সোশ্যাল মিডিয়া পোস্ট, লগ ফাইল, ওয়েব ট্রাফিক ডেটা, ইত্যাদি বিশ্লেষণ করতে সক্ষম। ব্যবসায়িক সিদ্ধান্ত গ্রহণে এই ধরনের বিশ্লেষণ অত্যন্ত গুরুত্বপূর্ণ।
5. ডেটা গুনগত মান:
Hive-এর ব্যবহারকারীরা ডেটার গুনগত মান এবং এক্সটেনসিভ কুয়েরি অপারেশন ব্যবহার করে ডেটাকে পরিষ্কার, সঠিক এবং আরও বিশদভাবে বিশ্লেষণ করতে পারেন।
Hive Data Warehousing Architecture
Hive-এর আর্কিটেকচার ডেটা ওয়্যারহাউজিং এর কাজগুলো খুবই সহজভাবে সম্পাদন করে, বিশেষত যখন ডেটা Hadoop-এর HDFS তে সংরক্ষিত থাকে। Hive-এর প্রধান উপাদানগুলো হলো:
- HiveQL: Hive এর কুয়েরি ভাষা, যা SQL-এর মতো কাজ করে এবং ডেটাকে হ্যান্ডেল করার জন্য ব্যবহৃত হয়।
- MetaStore: Hive-এর মেটাডেটা সংরক্ষণকারী অংশ, যা টেবিলের স্কিমা, ডেটা ফাইল, পার্টিশন, ইত্যাদি সম্পর্কিত তথ্য ধারণ করে।
- Hive Driver: Hive Driver ব্যবহারকারী কুয়েরি গ্রহণ করে এবং তা Hive Compiler এবং Executor-এ প্রেরণ করে।
- Hive Compiler: Hive Compiler কুয়েরি গুলি MapReduce টাস্কে রূপান্তরিত করে।
- Execution Engine: Execution Engine মেপ এবং রিডিউস স্টেজে ডেটা প্রক্রিয়া করে এবং ফলাফল তৈরি করে।
Hive ব্যবহার করে Data Warehousing এর উদাহরণ
ধরা যাক, একটি কোম্পানি বিভিন্ন সোর্স থেকে গ্রাহক সম্পর্কিত বিশাল পরিমাণ ডেটা সংগ্রহ করে, যেমন গ্রাহকের লেনদেন ইতিহাস, ফিডব্যাক, এবং প্রোডাক্ট পছন্দ। Hive ব্যবহার করে এই ডেটাগুলিকে Hadoop HDFS তে সংরক্ষণ করা হয় এবং HiveQL ব্যবহার করে এর উপর কুয়েরি চালানো হয়। এতে:
- ডেটা সংরক্ষণ: ডেটাকে Partitioned এবং Bucketed টেবিল হিসেবে মডেল করা হয় যাতে কার্যকরভাবে ডেটা সঞ্চয় এবং প্রসেস করা যায়।
- বিশ্লেষণ: HiveQL ব্যবহার করে কোম্পানি গ্রাহকদের পছন্দ, ক্রয় প্রবণতা এবং বিক্রয়ের পরিসংখ্যান বিশ্লেষণ করতে পারে।
- রিপোর্ট তৈরি: Hive-এ সংরক্ষিত ডেটা থেকে রিপোর্ট এবং ভিজ্যুয়ালাইজেশন তৈরি করা হয়, যা কোম্পানির সিদ্ধান্ত গ্রহণে সহায়তা করে।
Hive এর সীমাবদ্ধতা
- রিয়েল-টাইম ডেটা প্রসেসিং নয়: Hive প্রধানত ব্যাচ প্রসেসিংয়ের জন্য ডিজাইন করা হয়েছে। তাই, এটি রিয়েল-টাইম ডেটা ইনজেশন এবং প্রক্রিয়াকরণের জন্য উপযুক্ত নয়।
- কম পারফরম্যান্স: Hive MapReduce ব্যবহার করে ডেটা প্রক্রিয়া করে, তাই এটি ইন-মেমরি প্রসেসিং প্রযুক্তি যেমন Apache Spark এর তুলনায় কম গতিতে কাজ করে।
- কুয়েরি অপটিমাইজেশন: Hive ডেটা প্রক্রিয়া করার জন্য কিছুটা সময় নিতে পারে, বিশেষ করে জটিল কুয়েরি এবং ব্যাচ প্রক্রিয়াকরণে।
সারাংশ
Apache Hive ডেটা ওয়্যারহাউজিংয়ের জন্য একটি শক্তিশালী এবং স্কেলেবল সমাধান। এটি SQL-এর মতো কুয়েরি ভাষা ব্যবহার করে ডেটা বিশ্লেষণ করতে সহজ এবং এর সাথে Hadoop-এর শক্তি যুক্ত করার মাধ্যমে বিশাল পরিমাণ ডেটা দ্রুত এবং কার্যকরভাবে প্রক্রিয়া করতে সক্ষম। Hive প্রধানত ব্যাচ প্রক্রিয়াকরণ এবং বিশাল ডেটাসেটের জন্য ব্যবহৃত হলেও, এর কিছু সীমাবদ্ধতা রয়েছে। তবে ডেটা ওয়্যারহাউজিংয়ের জন্য এটি একটি অত্যন্ত জনপ্রিয় এবং কার্যকর টুল।
Apache Hive একটি ডেটা ওয়্যারহাউজিং ফ্রেমওয়ার্ক যা বিশেষভাবে বড় পরিমাণ ডেটা (বিশেষত Hadoop সিস্টেমে) পরিচালনা এবং বিশ্লেষণ করতে ব্যবহৃত হয়। Hive মূলত SQL-অনুরূপ একটি কুয়েরি ভাষা প্রদান করে, যার মাধ্যমে ডেটাবেসের মতো কাঠামোতে ডেটা Query করা যায়। এটি বিগ ডেটার জন্য বিশেষভাবে তৈরি এবং এর মাধ্যমে structured data (যেমন টেবিল, রিলেশনাল ডেটাবেস) Query করা সহজ হয়।
Hive ব্যবহার করে Structured Data-এর উপর বিভিন্ন ধরনের SQL-অনুরূপ কুয়েরি চালানো যেতে পারে, যা ডেটাকে বিভিন্নভাবে বিশ্লেষণ করতে সাহায্য করে। Hive এর প্রধান সুবিধা হলো, এটি ব্যবহারকারীদের familiar SQL স্টাইল কুয়েরি লেখার সুবিধা দেয়, কিন্তু এটি Hadoop-এর ডিস্ট্রিবিউটেড কম্পিউটিং সক্ষমতা ব্যবহার করে।
1. Hive এর মাধ্যমে Structured Data Query করার প্রক্রিয়া
Hive SQL (HiveQL) ব্যবহার করে Structured Data-তে সাধারণ SQL কুয়েরির মতো কাজ করা যায়। Hive তে Data Query করার জন্য বেশ কিছু সাধারণ কুয়েরি স্টেটমেন্ট রয়েছে যা Structured Data পরিচালনায় সহায়তা করে।
Hive-এর মাধ্যমে Structured Data Query করার প্রধান ধাপ:
ডেটাবেস নির্বাচন এবং টেবিল তৈরি: Hive তে প্রথমে একটি ডেটাবেস তৈরি করতে হয় এবং এরপর সেখানে টেবিল তৈরি করা হয় যা Structured Data ধারণ করবে।
-- ডেটাবেস তৈরি CREATE DATABASE sales_db; -- sales_db ডেটাবেস ব্যবহার করা USE sales_db; -- টেবিল তৈরি CREATE TABLE sales_data ( transaction_id INT, customer_id INT, product_id INT, amount DECIMAL(10,2), transaction_date STRING ) ROW FORMAT DELIMITED FIELDS TERMINATED BY ',';এখানে, আমরা
sales_dataনামে একটি টেবিল তৈরি করেছি যেখানে কিছু সাধারণ বিক্রয় সম্পর্কিত কলাম রয়েছে। এর মাধ্যমে Structured Data-কে টেবিল আকারে সংরক্ষণ করা হয়।ডেটা ইনসার্ট করা: টেবিল তৈরি হওয়ার পর ডেটা ইনসার্ট করা যায়। Hive ডেটাবেসে বিভিন্ন ধরনের ডেটা লোড করার জন্য
LOADকুয়েরি ব্যবহার করা হয়।-- ডেটা ইনসার্ট করা LOAD DATA LOCAL INPATH '/path/to/sales_data.csv' INTO TABLE sales_data;এই কুয়েরি দিয়ে আপনি CSV বা অন্য কোনো ফাইল থেকে ডেটা Hive টেবিলে লোড করতে পারেন।
Query করা (Select Statement): Hive SQL-এ Structured Data Query করতে সাধারণ SQL কুয়েরি ব্যবহার করা হয়। যেমন
SELECTকুয়েরি ব্যবহার করে ডেটার বিভিন্ন অংশ বের করা।-- সব ডেটা নির্বাচন SELECT * FROM sales_data; -- নির্দিষ্ট কলাম নির্বাচন SELECT transaction_id, amount FROM sales_data;Data Filtering (WHERE Clause): Hive SQL-এ
WHEREক্লজ ব্যবহার করে ডেটা ফিল্টার করা যায়। যেমন নির্দিষ্ট তারিখ বা মূল্য অনুসারে ডেটা ফিল্টার করা।-- নির্দিষ্ট তারিখের ডেটা নির্বাচন SELECT * FROM sales_data WHERE transaction_date = '2024-01-01'; -- নির্দিষ্ট পরিমাণের বেশি ডেটা নির্বাচন SELECT * FROM sales_data WHERE amount > 100.00;ডেটা গ্রুপিং এবং অ্যাগ্রিগেশন (GROUP BY and Aggregation Functions): Hive SQL-এ বিভিন্ন অ্যাগ্রিগেশন ফাংশন যেমন
SUM(),COUNT(),AVG()ইত্যাদি ব্যবহার করা হয় ডেটার উপর গ্রুপিং করে বিশ্লেষণ করতে।-- বিক্রয় পরিমাণের উপর গ্রুপিং SELECT product_id, SUM(amount) AS total_sales FROM sales_data GROUP BY product_id;এখানে,
product_idঅনুযায়ী ডেটা গ্রুপ করে প্রতিটি পণ্যের মোট বিক্রয় পরিমাণ বের করা হয়েছে।অর্ডারিং (ORDER BY Clause): Hive SQL-এ
ORDER BYক্লজ ব্যবহার করে ডেটাকে সাজানো যায়। এটি ASC (Ascending) বা DESC (Descending) অর্ডারে সাজানোর জন্য ব্যবহার করা হয়।-- বিক্রয় পরিমাণ অনুযায়ী ডেটা সাজানো SELECT product_id, SUM(amount) AS total_sales FROM sales_data GROUP BY product_id ORDER BY total_sales DESC;এখানে, পণ্য অনুযায়ী বিক্রয়ের মোট পরিমাণ DESC অর্ডারে সাজানো হয়েছে, অর্থাৎ সর্বাধিক বিক্রিত পণ্য প্রথমে আসবে।
জয়েন (Join Operations): Hive SQL-এ আপনি একাধিক টেবিলের মধ্যে যোগসূত্র তৈরি করতে পারেন
JOINক্লজ ব্যবহার করে। এটি দুটি বা তার বেশি টেবিল থেকে সম্পর্কিত ডেটা নিয়ে আসতে ব্যবহৃত হয়।-- দুটি টেবিল যোগ করা (যেমন customer এবং sales_data) SELECT c.customer_id, c.customer_name, s.amount FROM customer_data c JOIN sales_data s ON c.customer_id = s.customer_id;এখানে,
customer_dataএবংsales_dataটেবিলগুলোকেcustomer_idদ্বারা যোগ করা হয়েছে, যা গ্রাহক এবং বিক্রয়ের তথ্য একত্রে দেখাবে।
2. Hive-এর সুবিধা এবং প্রয়োগ
Hive-এর মাধ্যমে Structured Data Query করার অনেক সুবিধা রয়েছে। এখানে Hive ব্যবহারের কিছু গুরুত্বপূর্ণ সুবিধা এবং প্রয়োগ উল্লেখ করা হলো:
Hive-এর সুবিধা:
- SQL অনুরূপ কুয়েরি ভাষা: Hive SQL-অনুরূপ কুয়েরি ভাষা (HiveQL) ব্যবহার করে ডেটা Query করা যায়, যা ডেটাবেস পেশাদারদের জন্য সহজ এবং পরিচিত।
- ডিস্ট্রিবিউটেড স্টোরেজ: Hive Hadoop-এর HDFS (Hadoop Distributed File System) ব্যবহার করে ডেটা সংরক্ষণ করে, যা বৃহৎ পরিমাণ ডেটা পরিচালনা এবং প্রক্রিয়াকরণে সহায়তা করে।
- স্কেলেবিলিটি: Hive Hadoop ক্লাস্টারের উপর রান করে, তাই এটি বৃহৎ পরিমাণ ডেটা প্রক্রিয়াকরণে খুবই সক্ষম।
- এগ্রিগেশন এবং অ্যানালাইসিস: Hive-এর মাধ্যমে অ্যাগ্রিগেশন ফাংশন এবং জটিল ডেটা বিশ্লেষণ সহজে করা যায়।
Hive-এর প্রয়োগ:
- ডেটা ওয়্যারহাউজিং: Hive খুবই উপযোগী ডেটা ওয়্যারহাউজিং ব্যবস্থায় যেখানে ডেটা বিশ্লেষণ এবং রিপোর্টিং করার জন্য প্রয়োজনীয় ডেটা একত্রিত করা হয়।
- বিস্তারিত ডেটা বিশ্লেষণ: Hive-এর মাধ্যমে বিশাল পরিমাণ ডেটার উপর অ্যাগ্রিগেশন, ফিল্টারিং এবং বিশ্লেষণ সহজে করা যায়।
- বিজনেস ইনটেলিজেন্স (BI): Hive ব্যবহার করে ব্যবসায়িক উদ্দেশ্যে ডেটা বিশ্লেষণ করে গুরুত্বপূর্ণ সিদ্ধান্ত গ্রহণে সহায়তা করা হয়।
সারাংশ
Apache Hive একটি শক্তিশালী টুল যা বিগ ডেটার ডেটাবেস ম্যানেজমেন্ট এবং বিশ্লেষণের জন্য ব্যবহৃত হয়। এটি SQL-অনুরূপ কুয়েরি ভাষা (HiveQL) ব্যবহার করে Structured Data-এর উপর সহজেই ডেটা Query এবং বিশ্লেষণ করতে সহায়তা করে। Hive ব্যবহার করে আপনি ডেটা সিলেক্ট করা, ফিল্টারিং করা, গ্রুপিং করা, অ্যাগ্রিগেশন এবং জয়েন অপারেশনসহ জটিল বিশ্লেষণ করতে পারেন। Hive Hadoop ক্লাস্টারের উপর চলতে থাকায় এটি বিশাল পরিমাণ ডেটা প্রক্রিয়াকরণ এবং সংরক্ষণে অত্যন্ত সক্ষম।
Read more