Hive ব্যবসায় একটি বহুল ব্যবহৃত বিগ ডেটা অ্যানালিটিক্স টুল, এবং আপনি যদি বিগ ডেটাতে নতুন হন তবে এটি শুরু করার জন্য এটি একটি দুর্দান্ত জায়গা। এই Apache Hive পাঠটি Apache Hive এর মৌলিক বিষয়গুলির মধ্য দিয়ে যায়, কেন একটি মৌচাক প্রয়োজনীয়, এর বৈশিষ্ট্যগুলি এবং আপনার যা কিছু জানা উচিত।
আসুন প্রথমে Hadoop ফ্রেমওয়ার্কটি বুঝতে পারি যার উপর Apache Hive নির্মিত হয়েছে।
অ্যাপাচি হাদুপ
Apache Hadoop একটি বিনামূল্যের এবং ওপেন সোর্স গিগাবাইট থেকে পেটাবাইট পর্যন্ত আকারের বড় ডেটাসেটগুলি সংরক্ষণ এবং প্রক্রিয়াকরণের জন্য প্ল্যাটফর্ম৷ Hadoop অসংখ্য কম্পিউটারকে ক্লাস্টার করার অনুমতি দেয় সমান্তরালভাবে বিশাল ডেটাসেট বিশ্লেষণ করতে, ডেটা সঞ্চয় ও বিশ্লেষণের জন্য একটি একক বড় কম্পিউটারের প্রয়োজন না করে।
MapReduce এবং Hadoop বিতরণকৃত ফাইল সিস্টেম দুটি উপাদান:
- মানচিত্র কমাতে – MapReduce হল কমোডিটি হার্ডওয়্যার ক্লাস্টারে সংগঠিত, আধা-কাঠামোগত, এবং অসংগঠিত ডেটার বিশাল ভলিউম পরিচালনা করার জন্য একটি সমান্তরাল প্রোগ্রামিং কৌশল।
- এইচডিএফএস - HDFS (Hadoop ডিস্ট্রিবিউটেড ফাইল সিস্টেম) হল একটি Hadoop ফ্রেমওয়ার্ক উপাদান যা ডেটা সঞ্চয় করে এবং প্রক্রিয়া করে। এটি একটি ত্রুটি-সহনশীল ফাইল সিস্টেম যা স্ট্যান্ডার্ড হার্ডওয়্যারে চলে
Hadoop বাস্তুতন্ত্রের বিভিন্ন উপ-প্রকল্প (সরঞ্জাম), Sqoop, Pig, এবং Hive সহ, Hadoop মডিউলগুলিকে সহায়তা করার জন্য ব্যবহৃত হয়।
- মধুচক্র - হাইভ হল SQL-শৈলীর স্ক্রিপ্ট লেখার জন্য একটি কাঠামো যা MapReduce গণনা সম্পাদন করে।
- শূকর - পিগ হল একটি পদ্ধতিগত প্রোগ্রামিং ভাষা যা MapReduce প্রক্রিয়াগুলির জন্য একটি স্ক্রিপ্ট তৈরি করতে ব্যবহার করা যেতে পারে।
- স্কুওপ – Sqoop হল HDFS এবং RDBMS-এর মধ্যে ডেটা আমদানি ও রপ্তানি করার একটি টুল।
অ্যাপাচি হিভ?
Apache Hive একটি ওপেন সোর্স তথ্য গুদাম Apache Hadoop ডিস্ট্রিবিউটেড ফাইল সিস্টেম (HDFS) বা Apache HBase-এর মতো অন্যান্য ডেটা স্টোরেজ সিস্টেমে সরাসরি সঞ্চিত বিশাল ডেটা সেটগুলি পড়া, লেখা এবং পরিচালনা করার জন্য প্রোগ্রাম।
SQL ডেভেলপাররা Hive ব্যবহার করতে পারে Hive Query Language (HQL) স্টেটমেন্ট তৈরি করতে ডেটা ক্যোয়ারী এবং বিশ্লেষণের জন্য যা নিয়মিত SQL স্টেটমেন্টের সাথে তুলনীয়। দীর্ঘ জাভা কোড শেখার এবং লেখার প্রয়োজনীয়তা দূর করে MapReduce প্রোগ্রামিংকে সহজ করার জন্য এটি তৈরি করা হয়েছিল। পরিবর্তে, আপনি আপনার প্রশ্নগুলি HQL-এ লিখতে পারেন, এবং Hive মানচিত্র তৈরি করবে এবং আপনার জন্য ফাংশনগুলি হ্রাস করবে।
Apache Hive-এর SQL-এর মতো ইন্টারফেস অ্যাড-হক অনুসন্ধান, সংক্ষিপ্তকরণ এবং Hadoop ডেটা বিশ্লেষণ করার জন্য গোল্ড স্ট্যান্ডার্ড হয়ে উঠেছে। যখন মেঘ অন্তর্ভুক্ত কম্পিউটিং নেটওয়ার্ক, এই সমাধানটি বিশেষ করে সাশ্রয়ী এবং মাপযোগ্য, যে কারণে Netflix এবং Amazon সহ অনেক সংস্থা Apache Hive এর বিকাশ এবং উন্নতি চালিয়ে যাচ্ছে।
ইতিহাস
Facebook-এ তাদের সময়কালে, জয়দীপ সেন সরমা এবং আশিস থসু সহ-তৈরি করেন Apache Hive। তারা উভয়েই স্বীকার করেছে যে Hadoop থেকে সর্বাধিক সুবিধা পেতে, তাদের কিছু জটিল জাভা ম্যাপ-কমানোর কাজগুলি তৈরি করতে হবে। তারা স্বীকার করেছে যে তারা তাদের দ্রুত সম্প্রসারিত ইঞ্জিনিয়ারিং এবং বিশ্লেষণী দলগুলিকে কোম্পানী জুড়ে Hadoop এর সুবিধার জন্য প্রয়োজনীয় দক্ষতার বিষয়ে শিক্ষিত করতে পারবে না। প্রকৌশলী এবং বিশ্লেষকরা প্রায়শই ইউজার ইন্টারফেস হিসাবে SQL ব্যবহার করেন।
যদিও এসকিউএল বেশিরভাগ বিশ্লেষণের চাহিদা মেটাতে পারে, ডেভেলপাররাও হ্যাডুপের প্রোগ্রামেবিলিটি অন্তর্ভুক্ত করার ইচ্ছা পোষণ করেছিল। Apache Hive এই দুটি উদ্দেশ্য থেকে উদ্ভূত হয়েছে: একটি SQL-ভিত্তিক ঘোষণামূলক ভাষা যা ডেভেলপারদের তাদের নিজস্ব স্ক্রিপ্ট এবং প্রোগ্রাম আনতে সক্ষম করে যখন SQL যথেষ্ট ছিল না।
ডেটা-চালিত সংস্থাগুলির নির্মাণকে আরও সহজ করার জন্য কোম্পানির সমস্ত ডেটাসেট সম্পর্কে কেন্দ্রীভূত মেটাডেটা (হাডুপ-ভিত্তিক) ধরে রাখার জন্যও এটি তৈরি করা হয়েছিল।
কিভাবে Apache Hive কাজ করে?
সংক্ষেপে, Apache Hive HiveQL (SQL-এর মতো) ভাষায় লেখা একটি ইনপুট প্রোগ্রামকে এক বা একাধিক Java MapReduce, Tez, বা Spark কাজে রূপান্তর করে। (এই সমস্ত এক্সিকিউশন ইঞ্জিন Hadoop YARN এর সাথে সামঞ্জস্যপূর্ণ।) এর পরে, Apache Hive Hadoop ডিস্ট্রিবিউটেড ফাইল সিস্টেম এইচডিএফএস-এর জন্য টেবিলে ডেটা সাজায়) এবং উত্তর পাওয়ার জন্য একটি ক্লাস্টারে কাজগুলি সম্পাদন করে।
উপাত্ত
Apache Hive টেবিলগুলি একইভাবে সাজানো হয় যেভাবে একটি রিলেশনাল ডাটাবেসের টেবিলগুলিকে সংগঠিত করা হয়, ডেটা ইউনিটগুলি আকারে বড় থেকে ছোট পর্যন্ত। ডাটাবেসগুলি টেবিলের সমন্বয়ে গঠিত হয় যা ভাগে ভাগ করা হয়, যা আবার বালতিতে বিভক্ত। HiveQL (Hive Query Language) ডেটা অ্যাক্সেস করতে ব্যবহৃত হয়, যা পরিবর্তন বা যুক্ত করা যেতে পারে। টেবিল ডেটা প্রতিটি ডাটাবেসের মধ্যে সিরিয়ালাইজ করা হয়, এবং প্রতিটি টেবিলের নিজস্ব HDFS ডিরেক্টরি রয়েছে।
স্থাপত্য
এখন আমরা হাইভ আর্কিটেকচারের সবচেয়ে গুরুত্বপূর্ণ দিক সম্পর্কে কথা বলব। Apache Hive এর উপাদানগুলি নিম্নরূপ:
মেটাস্টোর — এটি প্রতিটি টেবিল সম্পর্কে তথ্যের ট্র্যাক রাখে, যেমন এর গঠন এবং অবস্থান। পার্টিশন মেটাডেটা একইভাবে Hive-এ অন্তর্ভুক্ত করা হয়েছে। এটি ড্রাইভারকে ক্লাস্টার জুড়ে ছড়িয়ে থাকা বিভিন্ন ডেটা সেটের অগ্রগতির ট্র্যাক রাখতে দেয়। তথ্য একটি প্রচলিত RDBMS বিন্যাসে সংরক্ষণ করা হয়. হাইভ মেটাডেটা ড্রাইভারের জন্য ডেটার ট্র্যাক বজায় রাখার জন্য অত্যন্ত গুরুত্বপূর্ণ। ব্যাকআপ সার্ভার নিয়মিতভাবে ডেটা সদৃশ করে যাতে ডেটা ক্ষতির ক্ষেত্রে এটি পুনরুদ্ধার করা যায়।
চালক - HiveQL বিবৃতি একটি ড্রাইভার দ্বারা গৃহীত হয়, যা একটি নিয়ামক হিসাবে কাজ করে। সেশন স্থাপন করে, ড্রাইভার বিবৃতি কার্যকর করতে শুরু করে। এটি নির্বাহীর জীবনকাল এবং অগ্রগতির ট্র্যাক রাখে। একটি HiveQL বিবৃতি কার্যকর করার সময়, ড্রাইভার প্রয়োজনীয় মেটাডেটা সংরক্ষণ করে। এটি হ্রাস প্রক্রিয়া অনুসরণ করে ডেটা বা কোয়েরি ফলাফল সংগ্রহের পয়েন্ট হিসাবেও কাজ করে।
সংকলনকারী - এটি HiveQL ক্যোয়ারী কম্পাইলেশন চালায়। ক্যোয়ারী এখন একটি এক্সিকিউশন প্ল্যানে রূপান্তরিত হয়েছে। কর্মগুলি পরিকল্পনায় তালিকাভুক্ত করা হয়েছে। এটিতে সেই পদক্ষেপগুলিও অন্তর্ভুক্ত রয়েছে যা MapReduce কে ক্যোয়ারী দ্বারা অনুবাদিত ফলাফল পাওয়ার জন্য নিতে হবে। Hive এর কম্পাইলার (AST) দ্বারা প্রশ্নটিকে একটি বিমূর্ত সিনট্যাক্স ট্রিতে রূপান্তরিত করা হয়। সামঞ্জস্যতা এবং কম্পাইল-টাইম ফল্ট (DAG) পরীক্ষা করার পরে AST-কে একটি নির্দেশিত অ্যাসাইক্লিক গ্রাফে রূপান্তর করে।
অপ্টিমাইজার - এটি এক্সিকিউশন প্ল্যানে বিভিন্ন পরিবর্তন করে DAG কে অপ্টিমাইজ করে। এটি উন্নত দক্ষতার জন্য রূপান্তরগুলিকে একত্রিত করে, যেমন একটি জয়েন্টের পাইপলাইনকে একক যোগে পরিণত করা। গতি উন্নত করতে, অপ্টিমাইজার ক্রিয়াকলাপগুলিকে ভাগ করতে পারে, যেমন একটি হ্রাস অপারেশন সম্পাদন করার আগে ডেটাতে একটি রূপান্তর প্রয়োগ করা।
নির্বাহক - সংকলন এবং অপ্টিমাইজেশন শেষ হলে নির্বাহক কাজগুলি চালায়। কাজ নির্বাহক দ্বারা পাইপলাইন করা হয়.
CLI, UI, এবং থ্রিফ্ট সার্ভার - কমান্ড-লাইন ইন্টারফেস (সিএলআই) হল একটি ইউজার ইন্টারফেস যা একজন বহিরাগত ব্যবহারকারীকে হাইভের সাথে যোগাযোগ করতে দেয়। Hive এর থ্রিফ্ট সার্ভার, JDBC বা ODBC প্রোটোকলের অনুরূপ, বহিরাগত ক্লায়েন্টদের একটি নেটওয়ার্কের মাধ্যমে Hive এর সাথে যোগাযোগ করতে দেয়।
নিরাপত্তা
Apache Hive Hadoop নিরাপত্তার সাথে একীভূত, যা ক্লায়েন্ট-সার্ভার পারস্পরিক প্রমাণীকরণের জন্য Kerberos ব্যবহার করে। এইচডিএফএস অ্যাপাচি হাইভ-এ সদ্য জেনারেট হওয়া ফাইলগুলির জন্য অনুমতি নির্দেশ করে, যা আপনাকে ব্যবহারকারী, গোষ্ঠী এবং অন্যদের দ্বারা অনুমোদন করার অনুমতি দেয়।
মুখ্য সুবিধা
- Hive বহিরাগত টেবিল সমর্থন করে, যা আপনাকে HDFS-এ সংরক্ষণ না করে ডেটা প্রক্রিয়া করতে দেয়।
- এটি গতি বাড়াতে টেবিল স্তরে ডেটা বিভাজন সক্ষম করে।
- Apache Hive চমৎকারভাবে Hadoop-এর নিম্ন-স্তরের ইন্টারফেসের প্রয়োজন পূরণ করে।
- হাইভ ডেটা সংক্ষিপ্তকরণ, অনুসন্ধান এবং বিশ্লেষণকে সহজ করে তোলে।
- HiveQL এর কোনো প্রোগ্রামিং দক্ষতার প্রয়োজন নেই; এসকিউএল প্রশ্নগুলির একটি সহজ বোঝা যথেষ্ট।
- আমরা ডেটা বিশ্লেষণের জন্য অ্যাড-হক প্রশ্নগুলি পরিচালনা করতে Hive ব্যবহার করতে পারি।
- এটি পরিমাপযোগ্য, পরিচিত এবং অভিযোজনযোগ্য।
- HiveQL এর কোনো প্রোগ্রামিং দক্ষতার প্রয়োজন নেই; এসকিউএল প্রশ্নগুলির একটি সহজ বোঝা যথেষ্ট।
উপকারিতা
Apache Hive দিনের শেষের রিপোর্ট, দৈনিক লেনদেন মূল্যায়ন, অ্যাড-হক অনুসন্ধান এবং ডেটা বিশ্লেষণের অনুমতি দেয়। Apache Hive দ্বারা প্রদত্ত ব্যাপক অন্তর্দৃষ্টিগুলি উল্লেখযোগ্য প্রতিযোগিতামূলক সুবিধা দেয় এবং আপনার জন্য বাজারের চাহিদার প্রতি সাড়া দেওয়া সহজ করে তোলে।
এই ধরনের তথ্য সহজেই উপলব্ধ থাকার কিছু সুবিধা এখানে দেওয়া হল:
- ব্যবহারে সহজ - এর এসকিউএল-এর মতো ভাষার সাথে, অনুসন্ধানের ডেটা বোঝা সহজ।
- ত্বরিত তথ্য সন্নিবেশ — যেহেতু Apache Hive টেবিলের ধরন বা স্কিমার সংজ্ঞা যাচাই না করেই স্কিমা পড়ে, তাই ডেটাবেসের অভ্যন্তরীণ বিন্যাসে ডিস্কে ডেটা পড়তে, পার্স করা এবং সিরিয়ালাইজ করতে হয় না। বিপরীতে, একটি প্রচলিত ডাটাবেসে, প্রতিবার যোগ করার সময় ডেটা অবশ্যই যাচাই করা উচিত।
- উচ্চতর মাপযোগ্যতা, নমনীয়তা এবং খরচ-কার্যকারিতা - যেহেতু HDFS-এ ডেটা সংরক্ষণ করা হয়, Apache Hive 100 পেটাবাইট ডেটা ধারণ করতে পারে, এটি একটি সাধারণ ডাটাবেসের চেয়ে অনেক বেশি মাপযোগ্য বিকল্প তৈরি করে। Apache Hive, একটি ক্লাউড-ভিত্তিক Hadoop পরিষেবা হিসাবে, গ্রাহকদের পরিবর্তিত কাজের চাপ মেটাতে ভার্চুয়াল সার্ভারগুলিকে দ্রুত গতিতে ঘুরতে দেয়।
- ব্যাপক কাজের ক্ষমতা - বড় ডেটাসেটগুলি প্রতি ঘন্টায় 100,000 প্রশ্নগুলি পরিচালনা করতে পারে৷
সীমাবদ্ধতা
- সাধারণভাবে, Apache Hive প্রশ্নগুলির খুব উচ্চ বিলম্ব থাকে৷
- Subquery সমর্থন সীমিত.
- রিয়েল-টাইম প্রশ্ন এবং সারি-স্তরের পরিবর্তনগুলি Apache Hive-এ উপলব্ধ নেই৷
- বস্তুগত দৃষ্টিভঙ্গির জন্য কোন সমর্থন নেই.
- মৌচাকে, আপডেট এবং মুছে ফেলার কাজ সমর্থিত নয়।
- OLTP (অনলাইন ট্রানজিশনাল প্রসেস) এর উদ্দেশ্যে নয়।
Apache Hive দিয়ে শুরু করা হচ্ছে
Apache Hive হল একটি শক্তিশালী Hadoop অংশীদার যা আপনার কর্মপ্রবাহকে সরল ও প্রবাহিত করে। Apache Hive থেকে সর্বাধিক সুবিধা পেতে, নির্বিঘ্ন ইন্টিগ্রেশন অপরিহার্য। প্রথম ধাপে যেতে হবে ওয়েবসাইট.
1. একটি স্থিতিশীল রিলিজ থেকে ইনস্টলেশন হাইভ
অ্যাপাচি ডাউনলোড মিররগুলির একটি থেকে হাইভের সাম্প্রতিক স্থিতিশীল রিলিজ ডাউনলোড করে শুরু করুন (দেখুন মৌচাক রিলিজ) টারবল তারপর আনপ্যাক করা আবশ্যক. এটি hive-xyz নামে একটি সাবফোল্ডার তৈরি করবে (যেখানে xyz হল রিলিজ নম্বর):
ইনস্টলেশন ডিরেক্টরি নির্দেশ করতে পরিবেশ পরিবর্তনশীল HIVE_HOME সেট করুন:
অবশেষে, আপনার $HIVE_HOME/bin যোগ করুন PATH
:
2. মৌচাক চলমান
হাইভ Hadoop ব্যবহার করে, তাই:
- আপনার পাথে হাডুপ থাকতে হবে বা
3. DLL অপারেশন
হাইভ টেবিল তৈরি করা
দুটি কলাম সহ pokes নামে একটি টেবিল তৈরি করে, যার প্রথমটি একটি পূর্ণসংখ্যা এবং দ্বিতীয়টি একটি স্ট্রিং।
টেবিলের মাধ্যমে ব্রাউজিং
সমস্ত টেবিল তালিকা
পরিবর্তন এবং ড্রপিং টেবিল
টেবিলের নাম পরিবর্তন করা যেতে পারে এবং কলাম যোগ বা প্রতিস্থাপন করা যেতে পারে:
এটি লক্ষণীয় যে REPLACE COLUMNS সমস্ত বিদ্যমান কলামগুলিকে প্রতিস্থাপন করে যখন শুধুমাত্র টেবিলের কাঠামো পরিবর্তন করে এবং ডেটা নয়৷ একটি নেটিভ SerDe টেবিলে ব্যবহার করা আবশ্যক। REPLACE COLUMNS এছাড়াও টেবিলের স্কিমা থেকে কলাম অপসারণ করতে ব্যবহার করা যেতে পারে:
ড্রপিং টেবিল
Apache Hive-এ অনেক অতিরিক্ত ক্রিয়াকলাপ এবং বৈশিষ্ট্য রয়েছে যা আপনি অফিসিয়াল ওয়েবসাইটে গিয়ে জানতে পারবেন।
উপসংহার
Hive সংজ্ঞা হল Apache Hadoop-এর উপরে নির্মিত বিশাল ডেটাসেটের জন্য অনুসন্ধান এবং বিশ্লেষণের জন্য একটি ডেটা প্রোগ্রাম ইন্টারফেস। পেশাদাররা এটিকে অন্যান্য প্রোগ্রাম, সরঞ্জাম এবং সফ্টওয়্যার থেকে বেছে নেন কারণ এটি মূলত হাইভ বিস্তৃত ডেটার জন্য ডিজাইন করা হয়েছে এবং এটি ব্যবহার করা সহজ।
আশা করি এই টিউটোরিয়ালটি আপনাকে Apache Hive এর সাথে কিকস্টার্ট করতে এবং আপনার কর্মপ্রবাহকে আরও দক্ষ করে তুলতে সাহায্য করবে। আমাদের মন্তব্য জানাতে।
নির্দেশিকা সমন্ধে মতামত দিন