Hive کاروبار میں بڑے پیمانے پر استعمال ہونے والا Big Data Analytics ٹول ہے، اور اگر آپ بگ ڈیٹا میں نئے ہیں تو یہ شروع کرنے کے لیے ایک بہترین جگہ ہے۔ Apache Hive کا یہ سبق Apache Hive کے بنیادی اصولوں سے گزرتا ہے، Hive کیوں ضروری ہے، اس کی خصوصیات، اور باقی سب کچھ آپ کو معلوم ہونا چاہیے۔
آئیے پہلے ہڈوپ فریم ورک کو سمجھیں جس پر اپاچی ہائیو بنایا گیا ہے۔
اپاچی ہیدوپ
اپاچی ہڈوپ ایک مفت اور ہے۔ آزاد مصدر گیگا بائٹس سے لے کر پیٹا بائٹس تک کے بڑے ڈیٹاسیٹس کو ذخیرہ کرنے اور پروسیس کرنے کا پلیٹ فارم۔ ہڈوپ متعدد کمپیوٹرز کو جمع کرنے کی اجازت دیتا ہے تاکہ متوازی طور پر بہت زیادہ ڈیٹاسیٹس کا تجزیہ کیا جا سکے، بجائے اس کے کہ ڈیٹا کو ذخیرہ کرنے اور تجزیہ کرنے کے لیے ایک بڑے کمپیوٹر کی ضرورت ہو۔
MapReduce اور Hadoop تقسیم شدہ فائل سسٹم دو اجزاء ہیں:
- میپریڈویس - MapReduce کموڈٹی ہارڈویئر کلسٹرز پر منظم، نیم ساختہ، اور غیر ساختہ ڈیٹا کی بڑی مقدار کو سنبھالنے کے لیے ایک متوازی پروگرامنگ تکنیک ہے۔
- ایچ ڈی ایف ایس - ایچ ڈی ایف ایس (ہڈوپ ڈسٹری بیوٹڈ فائل سسٹم) ہڈوپ فریم ورک کا ایک جزو ہے جو ڈیٹا کو اسٹور اور پروسیس کرتا ہے۔ یہ ایک غلطی برداشت کرنے والا فائل سسٹم ہے جو معیاری ہارڈ ویئر پر چلتا ہے۔
ہڈوپ ماحولیاتی نظام میں مختلف ذیلی پروجیکٹس (ٹولز)، بشمول Sqoop، Pig، اور Hive، Hadoop ماڈیولز کی مدد کے لیے استعمال کیے جاتے ہیں۔
- چھتہ - Hive SQL طرز کے اسکرپٹ لکھنے کا ایک فریم ورک ہے جو MapReduce کمپیوٹیشن انجام دیتا ہے۔
- سور - پگ ایک پروسیجرل پروگرامنگ لینگویج ہے جو MapReduce کے عمل کے لیے اسکرپٹ بنانے کے لیے استعمال کی جا سکتی ہے۔
- سکوپ۔ - Sqoop HDFS اور RDBMS کے درمیان ڈیٹا کو درآمد اور برآمد کرنے کا ایک ٹول ہے۔
کیا ہے اپاچی چھتے?
Apache Hive ایک اوپن سورس ہے۔ ڈیٹا گودام Apache Hadoop Distributed File System (HDFS) یا دیگر ڈیٹا اسٹوریج سسٹم جیسے Apache HBase میں براہ راست ذخیرہ شدہ ڈیٹا سیٹس کو پڑھنے، لکھنے اور ان کا نظم کرنے کا پروگرام۔
ایس کیو ایل ڈویلپرز ڈیٹا کے استفسار اور تجزیہ کے لیے Hive Query Language (HQL) اسٹیٹمنٹس بنانے کے لیے Hive کا استعمال کرسکتے ہیں جو کہ ریگولر ایس کیو ایل اسٹیٹمنٹس سے موازنہ کر سکتے ہیں۔ یہ MapReduce پروگرامنگ کو لمبا جاوا کوڈ سیکھنے اور لکھنے کی ضرورت کو ختم کرکے آسان بنانے کے لیے بنایا گیا تھا۔ اس کے بجائے، آپ HQL میں اپنے سوالات لکھ سکتے ہیں، اور Hive نقشہ بنائے گا اور آپ کے لیے افعال کو کم کر دے گا۔
Apache Hive کا SQL جیسا انٹرفیس ایڈہاک تلاش کرنے، خلاصہ کرنے اور Hadoop ڈیٹا کا تجزیہ کرنے کے لیے گولڈ اسٹینڈرڈ بن گیا ہے۔ بادل میں شامل ہونے پر کمپیوٹنگ نیٹ ورکس، یہ حل خاص طور پر لاگت سے موثر اور توسیع پذیر ہے، یہی وجہ ہے کہ Netflix اور Amazon سمیت بہت سی فرمیں Apache Hive کی ترقی اور بہتری کو جاری رکھتی ہیں۔
تاریخ
فیس بک پر اپنے وقت کے دوران، جویدیپ سین سرما اور آشیش تھسو نے مل کر اپاچی ہائیو بنایا۔ دونوں نے تسلیم کیا کہ ہڈوپ سے زیادہ سے زیادہ فائدہ اٹھانے کے لیے، انہیں جاوا میپ کو کم کرنے کے لیے کچھ پیچیدہ کام بنانے ہوں گے۔ انہوں نے تسلیم کیا کہ وہ اپنی تیزی سے پھیلتی ہوئی انجینئرنگ اور تجزیاتی ٹیموں کو ان مہارتوں کے بارے میں تعلیم نہیں دے سکیں گے جن کی انہیں پوری کمپنی میں Hadoop سے فائدہ اٹھانے کی ضرورت ہے۔ انجینئرز اور تجزیہ کار اکثر ایس کیو ایل کو بطور صارف انٹرفیس استعمال کرتے ہیں۔
جبکہ ایس کیو ایل تجزیاتی ضروریات کی اکثریت کو پورا کر سکتا ہے، ڈویلپرز نے ہڈوپ کی پروگرامیبلٹی کو بھی شامل کرنے کا ارادہ کیا۔ Apache Hive ان دو مقاصد سے پیدا ہوا: SQL-based declarative language جس نے ڈویلپرز کو اس قابل بنایا کہ وہ اپنی اسکرپٹس اور پروگرامز لا سکیں جب SQL کافی نہ ہو۔
ڈیٹا سے چلنے والی تنظیموں کی تعمیر کو آسان بنانے کے لیے کمپنی کے تمام ڈیٹاسیٹس کے بارے میں مرکزی میٹا ڈیٹا (ہڈوپ پر مبنی) رکھنے کے لیے بھی اسے تیار کیا گیا تھا۔
Apache Hive کیسے کام کرتا ہے؟
مختصر طور پر، Apache Hive HiveQL (SQL جیسی) زبان میں لکھے گئے ایک ان پٹ پروگرام کو ایک یا زیادہ Java MapReduce، Tez، یا Spark کاموں میں تبدیل کرتا ہے۔ (یہ تمام ایگزیکیوشن انجن Hadoop YARN کے ساتھ مطابقت رکھتے ہیں۔) اس کے بعد، Apache Hive ڈیٹا کو ہڈوپ ڈسٹری بیوٹڈ فائل سسٹم HDFS کے لیے ٹیبلز میں ترتیب دیتا ہے) اور جواب حاصل کرنے کے لیے کلسٹر پر کام انجام دیتا ہے۔
ڈیٹا
Apache Hive کی میزیں اسی طرح ترتیب دی جاتی ہیں جس طرح ایک رشتہ دار ڈیٹا بیس میں ٹیبلز کو ترتیب دیا جاتا ہے، جس میں ڈیٹا یونٹس بڑے سے چھوٹے تک ہوتے ہیں۔ ڈیٹا بیس ایسے جدولوں سے بنتے ہیں جو ڈویژنوں میں تقسیم ہوتے ہیں، جنہیں مزید بالٹیوں میں تقسیم کیا جاتا ہے۔ HiveQL (Hive Query Language) کو ڈیٹا تک رسائی کے لیے استعمال کیا جاتا ہے، جسے تبدیل یا ملایا جا سکتا ہے۔ ٹیبل ڈیٹا کو ہر ڈیٹا بیس میں سیریلائز کیا جاتا ہے، اور ہر ٹیبل کی اپنی HDFS ڈائرکٹری ہوتی ہے۔
آرکیٹیکچر
اب ہم Hive آرکیٹیکچر کے سب سے اہم پہلو کے بارے میں بات کریں گے۔ Apache Hive کے اجزاء درج ذیل ہیں:
میٹاسٹور - یہ ہر ٹیبل کے بارے میں معلومات کو ٹریک کرتا ہے، جیسے کہ اس کی ساخت اور مقام۔ پارٹیشن میٹا ڈیٹا بھی اسی طرح Hive میں شامل ہے۔ یہ ڈرائیور کو کلسٹر میں پھیلے ہوئے مختلف ڈیٹا سیٹس کی پیشرفت پر نظر رکھنے کی اجازت دیتا ہے۔ ڈیٹا کو روایتی RDBMS فارمیٹ میں محفوظ کیا جاتا ہے۔ ہائیو میٹا ڈیٹا ڈرائیور کے لیے ڈیٹا کا ٹریک برقرار رکھنے کے لیے انتہائی اہم ہے۔ بیک اپ سرور مستقل بنیادوں پر ڈیٹا کی نقل تیار کرتا ہے تاکہ ڈیٹا ضائع ہونے کی صورت میں اسے بازیافت کیا جاسکے۔
ڈرائیور - HiveQL کے بیانات ایک ڈرائیور کو موصول ہوتے ہیں، جو ایک کنٹرولر کے طور پر کام کرتا ہے۔ سیشن قائم کرکے، ڈرائیور بیان پر عمل درآمد شروع کرتا ہے۔ یہ ایگزیکٹو کی عمر اور پیشرفت پر نظر رکھتا ہے۔ HiveQL کے بیان پر عمل درآمد کے دوران، ڈرائیور مطلوبہ میٹا ڈیٹا محفوظ کرتا ہے۔ یہ کم کرنے کے عمل کے بعد ڈیٹا یا استفسار کے نتائج جمع کرنے کے نقطہ کے طور پر بھی کام کرتا ہے۔
مرتب۔ - یہ HiveQL استفسار کی تالیف کو انجام دیتا ہے۔ استفسار اب ایک عملدرآمد پلان میں تبدیل ہو گیا ہے۔ منصوبے میں کام درج ہیں۔ اس میں وہ اقدامات بھی شامل ہیں جو MapReduce کو استفسار کے ذریعہ ترجمہ شدہ نتیجہ حاصل کرنے کے لیے اٹھانا چاہیے۔ Hive کے کمپائلر (AST) کے ذریعے استفسار کو ایک خلاصہ نحوی درخت میں تبدیل کر دیا جاتا ہے۔ مطابقت اور کمپائل ٹائم فالٹس (DAG) کی جانچ کرنے کے بعد AST کو ڈائریکٹڈ Acyclic گراف میں تبدیل کرتا ہے۔
کی اصلاح کار - یہ عملدرآمد پلان پر مختلف تبدیلیاں کر کے DAG کو بہتر بناتا ہے۔ یہ بہتر کارکردگی کے لیے تبدیلیوں کو یکجا کرتا ہے، جیسے جوائن کی پائپ لائن کو ایک ہی جوائن میں تبدیل کرنا۔ رفتار کو بہتر بنانے کے لیے، آپٹیمائزر سرگرمیوں کو تقسیم کر سکتا ہے، جیسے کہ کمی کے عمل کو انجام دینے سے پہلے ڈیٹا میں تبدیلی کا اطلاق کرنا۔
پھانسی دینے والا - جب تالیف اور اصلاح مکمل ہو جاتی ہے تو ایگزیکیوٹر کام چلاتا ہے۔ ملازمتوں کو ایگزیکٹو کے ذریعہ پائپ لائن کیا جاتا ہے۔
CLI، UI، اور تھرفٹ سرور - کمانڈ لائن انٹرفیس (CLI) ایک صارف انٹرفیس ہے جو ایک بیرونی صارف کو Hive کے ساتھ بات چیت کرنے کی اجازت دیتا ہے۔ Hive کا کفایتی سرور، JDBC یا ODBC پروٹوکول کی طرح، بیرونی کلائنٹس کو Hive کے ساتھ نیٹ ورک کے ذریعے بات چیت کرنے کی اجازت دیتا ہے۔
سلامتی
Apache Hive Hadoop سیکیورٹی کے ساتھ مربوط ہے، جو کلائنٹ سرور کی باہمی تصدیق کے لیے Kerberos استعمال کرتا ہے۔ ایچ ڈی ایف ایس اپاچی ہائیو میں نئی تیار کردہ فائلوں کے لیے اجازتوں کا حکم دیتا ہے، جس سے آپ کو صارف، گروپ اور دیگر لوگوں کی طرف سے منظوری دینے کی اجازت ملتی ہے۔
کلیدی خصوصیات
- Hive بیرونی ٹیبلز کو سپورٹ کرتا ہے، جو آپ کو ڈیٹا کو HDFS میں اسٹور کیے بغیر پروسیس کرنے دیتا ہے۔
- یہ رفتار کو بڑھانے کے لیے میز کی سطح پر ڈیٹا کی تقسیم کو بھی قابل بناتا ہے۔
- Apache Hive Hadoop کی کم سطح کے انٹرفیس کی ضرورت کو بہترین طریقے سے پورا کرتا ہے۔
- Hive ڈیٹا کا خلاصہ، استفسار اور تجزیہ کو آسان بناتا ہے۔
- HiveQL کو کسی پروگرامنگ کی مہارت کی ضرورت نہیں ہے۔ ایس کیو ایل کے سوالات کی ایک سادہ سمجھ کافی ہے۔
- ہم ڈیٹا کے تجزیہ کے لیے ایڈہاک سوالات کرنے کے لیے Hive کا استعمال بھی کر سکتے ہیں۔
- یہ توسیع پذیر، مانوس، اور موافقت پذیر ہے۔
- HiveQL کو کسی پروگرامنگ کی مہارت کی ضرورت نہیں ہے۔ ایس کیو ایل کے سوالات کی ایک سادہ سمجھ کافی ہے۔
فوائد
Apache Hive دن کے اختتامی رپورٹس، روزانہ لین دین کی تشخیص، ایڈہاک تلاش اور ڈیٹا کے تجزیہ کی اجازت دیتا ہے۔ Apache Hive کی طرف سے فراہم کردہ جامع بصیرتیں نمایاں مسابقتی فوائد دیتی ہیں اور آپ کے لیے مارکیٹ کے مطالبات کا جواب دینا آسان بناتی ہیں۔
اس طرح کی معلومات آسانی سے دستیاب ہونے کے کچھ فوائد یہ ہیں:
- استعمال میں آسانی – اس کی ایس کیو ایل جیسی زبان کے ساتھ، استفسار کرنے والے ڈیٹا کو سمجھنا آسان ہے۔
- تیز رفتار ڈیٹا داخل کرنا - چونکہ Apache Hive ٹیبل کی قسم یا اسکیما کی تعریف کی تصدیق کیے بغیر اسکیما کو پڑھتا ہے، اس لیے ڈیٹا کو ڈیٹا بیس کے اندرونی فارمیٹ میں ڈسک میں پڑھنے، پارس کرنے اور سیریلائز کرنے کی ضرورت نہیں ہے۔ اس کے برعکس، روایتی ڈیٹا بیس میں، ہر بار جب ڈیٹا شامل کیا جاتا ہے تو اس کی تصدیق ہونی چاہیے۔
- اعلی اسکیل ایبلٹی، لچک، اور لاگت کی تاثیر - چونکہ ڈیٹا HDFS میں محفوظ ہے، اس لیے Apache Hive میں 100s پیٹا بائٹس ڈیٹا ہو سکتا ہے، جس سے یہ ایک عام ڈیٹا بیس سے کہیں زیادہ قابل توسیع آپشن بن جاتا ہے۔ Apache Hive، کلاؤڈ پر مبنی Hadoop سروس کے طور پر، صارفین کو بدلتے ہوئے کام کے بوجھ کو پورا کرنے کے لیے ورچوئل سرورز کو تیزی سے اوپر اور نیچے کرنے کی اجازت دیتا ہے۔
- وسیع کام کرنے کی صلاحیت - بڑے ڈیٹا سیٹس فی گھنٹہ 100,000 سوالات کو سنبھال سکتے ہیں۔
حدود
- عام طور پر، Apache Hive کے سوالات میں بہت زیادہ تاخیر ہوتی ہے۔
- سبکویری سپورٹ محدود ہے۔
- Apache Hive میں ریئل ٹائم سوالات اور قطار کی سطح کی تبدیلیاں دستیاب نہیں ہیں۔
- مادی نظریات کی کوئی حمایت نہیں ہے۔
- چھتے میں، اپ ڈیٹ اور ڈیلیٹ ایکشنز تعاون یافتہ نہیں ہیں۔
- OLTP (آن لائن عبوری عمل) کے لیے نہیں ہے۔
Apache Hive کے ساتھ شروع کرنا
Apache Hive ایک مضبوط Hadoop پارٹنر ہے جو آپ کے ورک فلو کو آسان اور ہموار کرتا ہے۔ Apache Hive سے زیادہ سے زیادہ فائدہ اٹھانے کے لیے، ہموار انضمام ضروری ہے۔ پہلا قدم پر جانا ہے۔ ویب سائٹ.
1. ایک مستحکم ریلیز سے انسٹالیشن Hive
اپاچی ڈاؤن لوڈ آئینے میں سے ایک سے Hive کی تازہ ترین مستحکم ریلیز ڈاؤن لوڈ کرکے شروع کریں (دیکھیں چھتے کی ریلیز)۔ اس کے بعد ٹربال کو پیک کرنا ضروری ہے۔ یہ ایک ذیلی فولڈر بنائے گا جسے Hive-xyz کہا جاتا ہے (جہاں xyz ریلیز نمبر ہے):
انسٹالیشن ڈائرکٹری کی طرف اشارہ کرنے کے لیے ماحولیاتی متغیر HIVE_HOME سیٹ کریں:
آخر میں، اپنے میں $HIVE_HOME/bin شامل کریں۔ PATH
:
2. چھتہ چلانا
Hive Hadoop کا استعمال کرتا ہے، لہذا:
- آپ کے راستے میں ہڈوپ ہونا ضروری ہے یا
3. DLL آپریشن
Hive ٹیبل بنانا
دو کالموں کے ساتھ پوکس کے نام سے ایک ٹیبل تیار کرتا ہے، جن میں سے پہلا ایک عدد اور دوسرا سٹرنگ ہے۔
ٹیبلز کے ذریعے براؤزنگ
تمام میزوں کی فہرست
ٹیبلز کو تبدیل کرنا اور گرانا
ٹیبل کے نام تبدیل کیے جا سکتے ہیں اور کالم شامل یا تبدیل کیے جا سکتے ہیں:
یہ بات قابل غور ہے کہ REPLACE COLUMNS تمام موجودہ کالموں کی جگہ لے لیتا ہے جبکہ صرف ٹیبل کی ساخت کو تبدیل کرتا ہے نہ کہ ڈیٹا کو۔ ٹیبل میں ایک مقامی SerDe استعمال کرنا ضروری ہے۔ REPLACE COLUMNS کو ٹیبل کے سکیما سے کالم ہٹانے کے لیے بھی استعمال کیا جا سکتا ہے:
ڈراپنگ ٹیبلز
Apache Hive میں بہت سے اضافی آپریشنز اور خصوصیات ہیں جن کے بارے میں آپ سرکاری ویب سائٹ پر جا کر جان سکتے ہیں۔
نتیجہ
Hive ڈیفینیشن ایک ڈیٹا پروگرام انٹرفیس ہے جو اپاچی ہڈوپ کے اوپر بنائے گئے بڑے ڈیٹا سیٹس کے لیے استفسار اور تجزیہ کے لیے ہے۔ پیشہ ور اسے دوسرے پروگراموں، ٹولز اور سافٹ ویئر پر منتخب کرتے ہیں کیونکہ یہ بنیادی طور پر Hive کے وسیع ڈیٹا کے لیے ڈیزائن کیا گیا ہے اور استعمال میں آسان ہے۔
امید ہے کہ یہ ٹیوٹوریل آپ کو Apache Hive کے ساتھ کِک اسٹارٹ کرنے اور آپ کے ورک فلو کو مزید موثر بنانے میں مدد کرے گا۔ ہمیں تبصروں میں بتائیں۔
جواب دیجئے