Apache Hive
اپاچی ہائیو ایک ڈیٹا گودام سافٹ ویئر پروجیکٹ ہے جو ڈیٹا استفسار اور تجزیہ فراہم کرنے کے لیے اپاچی ہڈوپ کے اوپر بنایا گیا ہے۔ ہائیو مختلف ڈیٹا بیس اور فائل سسٹمز میں محفوظ کردہ ڈیٹا کو استفسار کرنے کے لیے ایس کیو ایل جیسا انٹرفیس فراہم کرتا ہے جو ہیڈوپ کے ساتھ مربوط ہوتا ہے۔ تقسیم شدہ ڈیٹا پر ایس کیو ایل ایپلی کیشنز اور سوالات کو انجام دینے کے لیے روایتی ایس کیو ایل سوالات کو میپ ریڈیوس جاوا اے پی آئی میں نافذ کیا جانا چاہیے۔ ہائیو نچلے درجے کے جاوا اے پی آئی میں سوالات کو نافذ کرنے کی ضرورت کے بغیر بنیادی جاوا میں ایس کیو ایل جیسے سوالات (ہائیو کیو ایل) کو ضم کرنے کے لیے ضروری ایس کیو ایل تجریدی فراہم کرتا ہے۔ چونکہ زیادہ تر ڈیٹا ویئر ہاؤسنگ ایپلی کیشنز ایس کیو ایل پر مبنی استفسار کرنے والی زبانوں کے ساتھ کام کرتی ہیں، ہائیو ایس کیو ایل پر مبنی ایپلی کیشنز کی ہڈپ میں پورٹیبلٹی میں مدد کرتا ہے۔ اگرچہ ابتدائی طور پر فیس بک کے ذریعہ تیار کیا گیا ہے، اپاچی ہائیو کو دوسری کمپنیوں جیسے نیٹ فلکس اور فنانشل انڈسٹری ریگولیٹری اتھارٹی (فنرا) کے ذریعہ استعمال اور تیار کیا جاتا ہے۔ ایمیزون ایمیزون ویب سروسز پر ایمیزون ایلسٹک میپ ریڈیس میں شامل اپاچی ہائیو کا ایک سافٹ ویئر کانٹا برقرار رکھتا ہے۔ خصوصیات اپاچی ہائیو ہیڈوپ کے ایچ ڈی ایف ایس اور ہم آہنگ فائل سسٹمز جیسے ایمیزون ایس 3 فائل سسٹم اور ایلکسیو میں محفوظ بڑے ڈیٹا سیٹس کے تجزیے کی حمایت کرتا ہے۔ یہ ایک ایس کیو ایل جیسی استفسار کی زبان فراہم کرتا ہے جسے ہائیو کیو ایل کہا جاتا ہے جس میں پڑھنے پر اسکیما ہوتا ہے اور سوالات کو شفاف طریقے سے میپ ریڈیوس، اپاچی تیز اور اسپارک جابز میں تبدیل کرتا ہے۔ پھانسی کے تینوں انجن Hadoop کے ریسورس مذاکرات کار، YARN (ابھی تک ایک اور ریسورس مذاکرات کار) میں چل سکتے ہیں۔ سوالات کو تیز کرنے کے لیے، اس نے اشاریہ جات فراہم کیے، لیکن اس خصوصیت کو ورژن 3 میں ہٹا دیا گیا۔ ہائیو کی دیگر خصوصیات میں شامل ہیں: اسٹوریج کی مختلف اقسام جیسے سادہ متن، آر سی فائل، ایچ بیس، او آر سی، اور دیگر۔ ریلیشنل ڈیٹا بیس مینجمنٹ سسٹم میں میٹا ڈیٹا اسٹوریج، استفسار پر عمل درآمد کے دوران سیمنٹک چیک انجام دینے کے وقت کو نمایاں طور پر کم کر دیتا ہے۔ ڈیفلیٹ، بی ڈبلیو ٹی، سنیپی وغیرہ سمیت الگورتھم کا استعمال کرتے ہوئے ہڈوپ ماحولیاتی نظام میں محفوظ کردہ کمپریسڈ ڈیٹا پر کام کرنا۔ تاریخوں، تاروں اور ڈیٹا مائننگ کے دیگر ٹولز کو جوڑنے کے لیے بلٹ ان یوزر ڈیفائنڈ فنکشنز (یو ڈی ایف)۔ ہائیو یو ڈی ایف سیٹ کو توسیع دینے کی حمایت کرتا ہے تاکہ استعمال کے معاملات کو سنبھالا جا سکے جو بلٹ ان افعال کے ذریعے سپورٹ نہیں کیے گئے ہیں۔ ایس کیو ایل جیسے سوالات (ہائیو کیو ایل)، جنہیں واضح طور پر میپ ریڈیوس یا تیز، یا اسپارک جابز میں تبدیل کیا جاتا ہے۔ ڈیفالٹ طور پر، ہائیو میٹا ڈیٹا کو سرایت شدہ اپاچی ڈربی ڈیٹا بیس میں اسٹور کرتا ہے، اور دیگر کلائنٹ/سرور ڈیٹا بیس جیسے مائی ایس کیو ایل کو اختیاری طور پر استعمال کیا جا سکتا ہے۔ ہائیو میں سپورٹ کیے جانے والے پہلے چار فائل فارمیٹس سادہ ٹیکسٹ، سیکوینس فائل، آپٹیمائزڈ رو کالمر (او آر سی) فارمیٹ اور آر سی فائل تھے۔ اپاچی پارکیٹ کو پلگ ان ورژن کے ذریعے 0.10 کے بعد اور مقامی طور پر 0.13 سے شروع کیا جا سکتا ہے۔ ہائیو فن تعمیر کے بڑے اجزاء یہ ہیں: nn: ہر ٹیبل کے لیے اسٹورز میٹا ڈیٹا جیسے کہ ان کا اسکیما اور مقام۔ اس میں پارٹیشن میٹا ڈیٹا بھی شامل ہے جو ڈرائیور کو کلسٹر پر تقسیم کردہ مختلف ڈیٹا سیٹوں کی پیشرفت کو ٹریک کرنے میں مدد کرتا ہے۔ ڈیٹا کو روایتی آر ڈی بی ایم ایس فارمیٹ میں محفوظ کیا جاتا ہے۔ میٹا ڈیٹا ڈرائیور کو ڈیٹا پر نظر رکھنے میں مدد کرتا ہے اور یہ بہت ضروری ہے۔ لہذا، بیک اپ سرور باقاعدگی سے ڈیٹا کی نقل کرتا ہے جسے ڈیٹا ضائع ہونے کی صورت میں بازیافت کیا جا سکتا ہے۔ ڈرائیور: ایک کنٹرولر کی طرح کام کرتا ہے جو ہائیو کیو ایل کے بیانات وصول کرتا ہے۔ یہ سیشن بنا کر بیان پر عمل درآمد شروع کرتا ہے اور زندگی کے چکر اور عمل کی پیشرفت پر نظر رکھتا ہے۔ یہ HiveQL بیان پر عمل درآمد کے دوران تیار کردہ ضروری میٹا ڈیٹا کو محفوظ کرتا ہے۔ ڈرائیور ریڈیوس آپریشن کے بعد حاصل کردہ ڈیٹا یا استفسار کے نتائج کو جمع کرنے کے نقطہ کے طور پر بھی کام کرتا ہے۔ مرتب: ہائیو کیو ایل استفسار کی تالیف انجام دیتا ہے، جو استفسار کو عمل درآمد کے منصوبے میں تبدیل کرتا ہے۔ اس منصوبے میں وہ کام اور اقدامات شامل ہیں جو ہڈوپ میپ ریڈیوس کے ذریعے انجام دینے کے لیے درکار ہیں تاکہ استفسار کے ذریعے ترجمہ شدہ آؤٹ پٹ حاصل کیا جا سکے۔ مرتب کرنے والا استفسار کو خلاصہ نحو درخت (اے ایس ٹی) میں تبدیل کرتا ہے۔ مطابقت کی جانچ پڑتال اور وقت کی غلطیوں کو مرتب کرنے کے بعد، یہ اے ایس ٹی کو ڈائریکٹڈ ایسائکلک گراف (ڈی اے جی) میں تبدیل کرتا ہے۔ ڈی اے جی آپریٹرز کو ان پٹ استفسار اور ڈیٹا کی بنیاد پر میپ ریڈیوس مراحل اور کاموں میں تقسیم کرتا ہے۔ آپٹیمائزر: ایک بہتر ڈی اے جی حاصل کرنے کے لیے عمل درآمد کے منصوبے میں مختلف تبدیلیاں انجام دیتا ہے۔ تبدیلیوں کو ایک ساتھ جمع کیا جا سکتا ہے، جیسے کہ بہتر کارکردگی کے لیے جوڑ کی پائپ لائن کو ایک جوڑ میں تبدیل کرنا۔ یہ کاموں کو بھی تقسیم کر سکتا ہے، جیسے کہ بہتر کارکردگی اور پیمائش فراہم کرنے کے لیے کم آپریشن سے پہلے ڈیٹا پر تبدیلی کا اطلاق کرنا۔ تاہم، اصلاح کے لیے استعمال ہونے والی تبدیلی کی منطق کو کسی دوسرے اصلاح کار کا استعمال کرتے ہوئے ترمیم یا پائپ لائن کیا جا سکتا ہے۔ وائی ایس مارٹ نامی ایک آپٹیمائزر اپاچی ہائیو کا ایک حصہ ہے۔ یہ مربوط آپٹیمائزر مربوط میپ ریڈوس جابز کو ایک واحد میپ ریڈوس جاب میں ضم کرتا ہے، جس سے عمل درآمد کا وقت نمایاں طور پر کم ہوتا ہے۔ ایگزیکٹو: تالیف اور اصلاح کے بعد، ایگزیکٹو کاموں کو انجام دیتا ہے۔ یہ چلائے جانے والے کاموں کو شیڈول کرنے کے لیے Hadoop کے جاب ٹریکر کے ساتھ تعامل کرتا ہے۔ یہ اس بات کو یقینی بنا کر کاموں کو پائپ لائن کرنے کا خیال رکھتا ہے کہ انحصار کے ساتھ کوئی کام صرف اس صورت میں انجام دیا جائے جب دیگر تمام ضروریات کو چلایا جائے۔ سی ایل آئی، یو آئی، اور تھرفٹ سرور: ایک کمانڈ لائن انٹرفیس (سی ایل آئی) ایک بیرونی صارف کو سوالات، ہدایات اور عمل کی حیثیت کی نگرانی کے ذریعے ہائیو کے ساتھ بات چیت کرنے کے لیے ایک یوزر انٹرفیس فراہم کرتا ہے۔ تھرفٹ سرور بیرونی کلائنٹس کو جے ڈی بی سی یا او ڈی بی سی پروٹوکول کی طرح نیٹ ورک پر ہائیو کے ساتھ بات چیت کرنے کی اجازت دیتا ہے۔ HiveQL جبکہ SQL پر مبنی ہے، HiveQL مکمل SQL-92 معیار پر سختی سے عمل نہیں کرتا ہے۔ ہائیو کیو ایل ایس کیو ایل میں نہ ہونے والی ایکسٹینشنز پیش کرتا ہے، بشمول ملٹی ٹیبل انسرٹ، اور منتخب کردہ ٹیبلز بناتا ہے۔ HiveQL میں لین دین اور عملی خیالات کے لیے حمایت کی کمی تھی، اور صرف محدود ذیلی استفسار کی حمایت تھی۔ مکمل ACID فعالیت کے ساتھ داخل کرنے، اپ ڈیٹ کرنے اور حذف کرنے کے لیے سپورٹ ریلیز 0.14 کے ساتھ دستیاب کیا گیا تھا۔ اندرونی طور پر، ایک مرتب کرنے والا ہائیو کیو ایل کے بیانات کا ترجمہ میپ ریڈیوس، تیز، یا اسپارک جابز کے ایک ہدایت شدہ سایکلک گراف میں کرتا ہے، جو پھانسی کے لیے ہڈوپ کو پیش کیے جاتے ہیں۔ مثال لفظ گنتی پروگرام ان پٹ میں ہر لفظ کی تعداد کو شمار کرتا ہے۔ لفظ گنتی کو HiveQL میں اس طرح لکھا جا سکتا ہے: DROP TALBLE اگر EXIST DOCS ؛ CREATE TALBLE DOCS (لائن اسٹرینگ) ؛ LOAD DATA INPATH 'INPUT _ FILE' OVERWRRRITE IN TALBLE DOCS ؛ CREATE TALBLE WORD _ CUNTS OVERWRRITE IN TALBLE DOCS ؛ CREATE TALBLE WORD _ CUNTS OVERWRRITE IN TALBLE DOCS ؛ CREATE TALBLE WORD _ CUNTS OVERWRITE IN TALBLE DOCS ؛ CREATE TALBLE WORD _ CUNTS OVER ایک نئی میز بناتا ہے جسے ڈاکس کہا جاتا ہے جس میں سٹرنگ قسم کا ایک کالم ہوتا ہے جسے لائن کہا جاتا ہے۔ لوڈ ڈیٹا ان پاتھ 'ان پٹ _ فائل' اوور رائٹ ان ٹیبل ڈاکس ؛ ٹیبل میں مخصوص فائل یا ڈائرکٹری (اس صورت میں "ان پٹ _ فائل") کو لوڈ کرتا ہے۔ اوور رائٹ اس بات کی وضاحت کرتا ہے کہ ٹارگٹ ٹیبل جس میں ڈیٹا لوڈ کیا جا رہا ہے اسے دوبارہ لکھنا ہے ؛ بصورت دیگر، ڈیٹا کو شامل کر دیا جائے گا۔ ٹیبل ورڈ _ کاؤنٹس کو بطور سلیکٹ لفظ بنائیں، گنتی (1) جیسے جیسے گنتی ہو (سلیکٹ دھماکہ (تقسیم (لائن، '\s') جیسا کہ لفظ سے ڈاکس) ٹیمپ گروپ لفظ کے لحاظ سے ترتیب لفظ ؛ استفسار ایک ٹیبل بناتا ہے جسے ورڈ _ کاؤنٹس کہا جاتا ہے جس میں دو کالم ہوتے ہیں: لفظ اور گنتی۔ یہ استفسار اندرونی استفسار سے اپنا ان پٹ کھینچتا ہے۔ یہ استفسار ان پٹ الفاظ کو عارضی ٹیبل کی مختلف قطاروں میں تقسیم کرنے کا کام کرتا ہے جسے عارضی نام دیا گیا ہے۔ نتائج کو ان کی کلیدوں کی بنیاد پر گروپ کیا جاتا ہے۔ اس کے نتیجے میں گنتی کالم میں لفظ کالم کے ہر لفظ کے واقعات کی تعداد ہوتی ہے۔ الفاظ کو حروف تہجی کے مطابق ترتیب دیتے ہیں۔ روایتی ڈیٹا بیس کے ساتھ موازنہ ہائیو کے اسٹوریج اور استفسار کی کارروائیاں روایتی ڈیٹا بیس سے ملتی جلتی ہیں۔ اگرچہ ہائیو ایک ایس کیو ایل بولی ہے، لیکن رشتہ دار ڈیٹا بیس کے مقابلے میں ہائیو کی ساخت اور کام کرنے میں بہت فرق ہے۔ اختلافات بنیادی طور پر اس وجہ سے ہیں کہ ہائیو ہڈوپ ماحولیاتی نظام کے اوپر بنایا گیا ہے، اور اسے ہڈوپ اور میپ ریڈیس کی پابندیوں کی تعمیل کرنی پڑتی ہے۔ روایتی ڈیٹا بیس میں میز پر اسکیما لگایا جاتا ہے۔ اس طرح کے روایتی ڈیٹا بیس میں، ٹیبل عام طور پر اسکیما کو نافذ کرتا ہے جب ڈیٹا کو ٹیبل میں لوڈ کیا جاتا ہے۔ یہ ڈیٹا بیس کو اس بات کو یقینی بنانے کے قابل بناتا ہے کہ درج کردہ ڈیٹا ٹیبل کی نمائندگی کے مطابق ہے جیسا کہ ٹیبل کی تعریف میں بتایا گیا ہے۔ اس ڈیزائن کو اسکیما آن رائٹ کہا جاتا ہے۔ اس کے مقابلے میں، ہائیو تحریری ٹیبل اسکیما کے خلاف ڈیٹا کی تصدیق نہیں کرتا ہے۔ اس کے بجائے، یہ بعد میں رن ٹائم چیک کرتا ہے جب ڈیٹا پڑھا جاتا ہے۔ اس ماڈل کو اسکیما آن ریڈ کہا جاتا ہے۔ دونوں طریقوں کے اپنے فوائد اور نقصانات ہیں۔ لوڈ ٹائم کے دوران ٹیبل اسکیما کے خلاف ڈیٹا چیک کرنے سے اضافی اوور ہیڈ کا اضافہ ہوتا ہے، یہی وجہ ہے کہ روایتی ڈیٹا بیس ڈیٹا لوڈ کرنے میں زیادہ وقت لیتے ہیں۔ کوالٹی چیک لوڈ کے وقت ڈیٹا کے خلاف کیے جاتے ہیں تاکہ یہ یقینی بنایا جا سکے کہ ڈیٹا خراب نہیں ہے۔ بدعنوان ڈیٹا کا جلد پتہ لگانا مستثنی ہینڈلنگ کو یقینی بناتا ہے۔ چونکہ ٹیبلز کو ڈیٹا لوڈ کے بعد/اس کے دوران اسکیما سے ملنے پر مجبور کیا جاتا ہے، اس لیے اس میں استفسار کے وقت کی کارکردگی بہتر ہوتی ہے۔ دوسری طرف ہائیو، بغیر کسی اسکیما چیک کے متحرک طور پر ڈیٹا لوڈ کر سکتا ہے، جس سے تیز ابتدائی بوجھ کو یقینی بنایا جا سکتا ہے، لیکن استفسار کے وقت نسبتا سست کارکردگی کی خرابی کے ساتھ۔ چھتے کا ایک فائدہ ہوتا ہے جب اسکیما لوڈ کے وقت دستیاب نہیں ہوتا ہے، لیکن اس کے بجائے بعد میں متحرک طور پر تیار کیا جاتا ہے۔ روایتی ڈیٹا بیس میں لین دین کلیدی کارروائیاں ہیں۔ کسی بھی عام آر ڈی بی ایم ایس کی طرح، ہائیو لین دین کی تمام چار خصوصیات (اے سی آئی ڈی) کی حمایت کرتا ہے: جوہری، مستقل مزاجی، تنہائی، اور استحکام۔ ہائیو میں لین دین ہائیو 0.13 میں متعارف کرایا گیا تھا لیکن یہ صرف تقسیم کی سطح تک محدود تھے۔ ہائیو 0.14 کے حالیہ ورژن میں مکمل ACID خصوصیات کی حمایت کے لیے ان افعال کو مکمل طور پر شامل کیا گیا تھا۔ ہائیو 0.14 اور بعد میں مختلف قطار کی سطح کے لین دین جیسے INSERT، DELETE اور UPDATE فراہم کرتا ہے۔ INSERT، UPDATE، اور DELETE لین دین کو فعال کرنے کے لیے ترتیب کی خصوصیات جیسے hive.support.concurrency، hive.enforce.bucketing، اور hive.exec.dynamic.partition.mode کے لیے مناسب اقدار ترتیب دینے کی ضرورت ہوتی ہے۔ سیکیورٹی ہائیو v0.7.0 نے ہیڈوپ سیکیورٹی کے ساتھ انضمام شامل کیا۔ ہڈوپ نے سیکیورٹی فراہم کرنے کے لیے کربروس کے اختیار کی حمایت کا استعمال کرنا شروع کیا۔ کیربروس کلائنٹ اور سرور کے درمیان باہمی تصدیق کی اجازت دیتا ہے۔ اس نظام میں، ٹکٹ کے لیے کلائنٹ کی درخواست درخواست کے ساتھ منظور کی جاتی ہے۔ Hadoop کے پچھلے ورژن میں کئی مسائل تھے جیسے کہ صارفین hadoop.job.ugi پراپرٹی سیٹ کرکے اپنے صارف نام کو بگاڑنے کے قابل تھے اور اسی صارف کے تحت چلائے جانے والے میپ ریڈیوس آپریشنز: Hadoop یا میپریڈ۔ ہائیو v0.7.0 کے ہیڈوپ سیکیورٹی کے ساتھ انضمام کے ساتھ، ان مسائل کو بڑی حد تک حل کیا گیا ہے۔ ٹاسک ٹریکر کے کام اس صارف کے ذریعے چلائے جاتے ہیں جس نے اسے لانچ کیا تھا اور hadoop.job.ugi پراپرٹی ترتیب دے کر صارف نام کو مزید دھوکہ نہیں دیا جا سکتا۔ ہائیو میں نئی بنائی گئی فائلوں کی اجازت ایچ ڈی ایف ایس کے ذریعے دی جاتی ہے۔ Hadoop ڈسٹری بیوٹڈ فائل سسٹم اتھورائزیشن ماڈل تین اداروں کا استعمال کرتا ہے: صارف، گروپ اور دیگر تین اجازتوں کے ساتھ: پڑھنا، لکھنا اور انجام دینا۔ نئی بنائی گئی فائلوں کے لیے ڈیفالٹ اجازتوں کو ہائیو کنفیگریشن متغیر hive.files.umask.value کے لیے ان ماسک ویلیو کو تبدیل کر کے سیٹ کیا جا سکتا ہے۔ یہ بھی دیکھیں اپاچی پگ سکوپ اپاچی امپالا اپاچی ڈرل اپاچی فلوم اپاچی ایچ بیس ٹرائنو (ایس کیو ایل استفسار انجن) حوالہ جات بیرونی لنکس 2015 سافٹ ویئر ہائیو کلاؤڈ کمپیوٹنگ فیس بک سافٹ ویئر جاوا میں پروگرام کردہ مفت سافٹ ویئر (پروگرامنگ زبان) اپاچی لائسنس کا استعمال کرتے ہوئے فری سسٹم سافٹ ویئر ہڈوپ سافٹ ویئر