ٽيم Mail.ru ڪلائوڊ حل پيش آيون مضمون جو ترجمو Clairvoyant کان انجنيئر راهول ڀاٽيا ٻڌايو ته بگ ڊيٽا ۾ ڪهڙا فائل فارميٽ آهن، هيڊوپ فارميٽ جون سڀ کان عام خاصيتون ڪهڙيون آهن ۽ ڪهڙي فارميٽ استعمال ڪرڻ بهتر آهي.
مختلف فائل فارميٽ جي ضرورت ڇو آهي؟
HDFS-فعال ٿيل ايپليڪيشنن جهڙوڪ MapReduce ۽ Spark لاءِ وڏي ڪارڪردگي جي رڪاوٽ اهو وقت آهي جيڪو ڊيٽا کي ڳولڻ، پڙهڻ ۽ لکڻ ۾ وٺندو آهي. اهي مسئلا وڏي ڊيٽا سيٽ کي منظم ڪرڻ ۾ مشڪل سان گڏ هوندا آهن جيڪڏهن اسان وٽ هڪ مقرر ڪيل اسڪيما جي بدران هڪ ترقي ڪندڙ اسڪيما آهي، يا جيڪڏهن ڪجهه اسٽوريج رڪاوٽون آهن.
وڏي ڊيٽا جي پروسيسنگ اسٽوريج سب سسٽم تي لوڊ وڌائي ٿو - Hadoop غلطي برداشت حاصل ڪرڻ لاء ڊيٽا کي غير معمولي طور تي محفوظ ڪري ٿو. ڊسڪ جي اضافي ۾، پروسيسر، نيٽ ورڪ، ان پٽ / آئوٽ سسٽم، ۽ پوء تي لوڊ ٿيل آهن. جيئن ته ڊيٽا جو مقدار وڌندو آهي، تنهنڪري پروسيسنگ ۽ اسٽوريج جي قيمت ڪندو آهي.
مختلف فائل فارميٽ ۾ Hadoop انهن مسئلن کي حل ڪرڻ لاء تيار ڪيو ويو آهي. مناسب فائل فارميٽ کي چونڊڻ سان ڪجھ اهم فائدا مهيا ڪري سگھن ٿا:
تيز پڙهڻ جو وقت.
تيز رڪارڊنگ وقت.
حصيداري فائلون.
اسڪيما ارتقاء لاءِ سپورٽ.
وڌايل کمپريشن سپورٽ.
ڪجھ فائل فارميٽ عام استعمال لاءِ آھن، ٻيا وڌيڪ مخصوص استعمال لاءِ، ۽ ڪجھ خاص ڊيٽا جي خصوصيتن کي پورا ڪرڻ لاءِ ٺاھيا ويا آھن. تنهن ڪري، چونڊ واقعي تمام وڏي آهي.
Avro جي سيريلائيزيشن سسٽم ٻولي غير جانبدار آهي. فائلون مختلف ٻولين ۾ پروسيس ڪري سگھجن ٿيون، في الحال C، C++، C#، Java، Python ۽ Ruby.
Avro جي هڪ اهم خصوصيت ان جي ڊيٽا اسڪيمن لاءِ مضبوط سپورٽ آهي جيڪا وقت سان گڏ تبديل ٿيندي آهي، يعني ارتقا. Avro سمجھي ٿو اسڪيما تبديلين- حذف ڪرڻ، شامل ڪرڻ، يا تبديل ڪرڻ.
Avro ڊيٽا جي جوڙجڪ جي مختلف قسمن کي سپورٽ ڪري ٿو. مثال طور، توهان هڪ رڪارڊ ٺاهي سگهو ٿا جنهن ۾ هڪ صف، هڪ ڳڻپيوڪر قسم، ۽ هڪ ذيلي رڪارڊ شامل آهي.
هي فارميٽ ڊيٽا ڍنڍ جي لينڊنگ (منتقلي) زون ڏانهن لکڻ لاءِ مثالي آهي (ڊيٽا ڍنڍ، يا ڊيٽا ڍنڍ - مختلف قسمن جي ڊيٽا کي محفوظ ڪرڻ لاءِ مثالن جو مجموعو سڌو سنئون ڊيٽا ذريعن کان علاوه).
تنهن ڪري، هي فارميٽ هيٺين سببن لاء ڊيٽا ڍنڍ جي لينڊنگ زون ڏانهن لکڻ لاء بهترين مناسب آهي:
هن علائقي مان ڊيٽا عام طور تي مڪمل طور تي پڙهي ويندي آهي وڌيڪ پروسيسنگ لاءِ هيٺيون وهڪرو سسٽم - ۽ قطار تي ٻڌل فارميٽ هن صورت ۾ وڌيڪ ڪارائتو آهي.
ڊائون اسٽريم سسٽم آساني سان فائلن مان اسڪيما جدولن کي ٻيهر حاصل ڪري سگھن ٿا- خارجي ميٽا اسٽوريج ۾ اسڪيما کي الڳ رکڻ جي ضرورت ناهي.
اصل اسڪيما ۾ ڪا به تبديلي آساني سان پروسيس ڪئي ويندي آهي (اسڪيما ارتقاء).
روايتي قطار جي انداز جي مقابلي ۾، پارڪيٽ اسٽوريج ۽ ڪارڪردگي جي لحاظ کان وڌيڪ ڪارائتو آهي.
اهو خاص طور تي انهن سوالن لاءِ مفيد آهي جيڪي وسيع (ڪيترن ئي ڪالمن) ٽيبل مان مخصوص ڪالمن پڙهن ٿا. فائل فارميٽ جي مهرباني، صرف ضروري ڪالمن پڙهيا ويندا آهن، تنهنڪري I/O کي گهٽ ۾ گهٽ رکيو ويندو آهي.
هڪ ننڍڙو تڪرار ۽ وضاحت: Hadoop ۾ Parquet فائل فارميٽ کي بهتر سمجھڻ لاءِ، اچو ته ڏسو ته ڪالمن جي بنياد تي - يعني ڪالمن- فارميٽ ڇا آھي. هي فارميٽ هر ڪالمن لاءِ ساڳئي قدر گڏ ڪري ٿو.
مثال طور، رڪارڊ ۾ ID، نالو، ۽ ڊپارٽمينٽ جا شعبا شامل آھن. انهي صورت ۾، سڀئي ID ڪالمن جي قيمتن کي گڏ ڪيو ويندو، جيئن نالو ڪالمن جي قدر، وغيره. ٽيبل هن طرح ڪجهه نظر ايندو:
ڪالمن فارميٽ وڌيڪ ڪارائتو آهي جڏهن توهان کي ٽيبل مان ڪيترن ئي ڪالمن جي سوال ڪرڻ جي ضرورت آهي. اهو صرف گهربل ڪالمن کي پڙهي سگهندو ڇو ته اهي ڀرسان آهن. هن طريقي سان، I/O عملن کي گهٽ ۾ گهٽ رکيو ويو آهي.
مثال طور، توھان کي صرف NAME ڪالمن جي ضرورت آھي. IN string فارميٽ ڊيٽا سيٽ ۾ هر رڪارڊ کي لوڊ ڪرڻ جي ضرورت آهي، فيلڊ ذريعي پارس ڪيو وڃي، ۽ پوء NAME ڊيٽا کي ڪڍيو وڃي. ڪالمن جي فارميٽ توهان کي سڌو سنئون نالي جي ڪالمن ۾ سوراخ ڪرڻ جي اجازت ڏئي ٿي ڇو ته ان ڪالمن لاءِ سڀئي قدر گڏ گڏ ٿيل آهن. توهان کي پوري رڪارڊنگ اسڪين ڪرڻ جي ضرورت ناهي.
اهڙيءَ طرح، ڪالمن جي فارميٽ سوال جي ڪارڪردگي کي بهتر بڻائي ٿي ڇاڪاڻ ته ان کي گهربل ڪالمن تائين پهچڻ لاءِ گهٽ ڏسندڙ وقت جي ضرورت آهي ۽ I/O عملن جو تعداد گھٽائي ٿو ڇاڪاڻ ته صرف گهربل ڪالمن پڙهيا وڃن ٿا.
منفرد خاصيتن مان هڪ تقسيم ڇا اهو هن فارميٽ ۾ ٿي سگهي ٿو nested جوڙجڪ سان گڏ ڊيٽا ذخيرو. هن جو مطلب اهو آهي ته پارڪٽ فائل ۾، اينسٽڊ فيلڊز کي به انفرادي طور تي پڙهي سگهجي ٿو بغير سڀني فيلڊن کي پڙهڻ جي بغير. پارڪيٽ هڪ شيڊنگ ۽ اسمبلي الگورٿم استعمال ڪري ٿو نسٽڊ ڍانچي کي محفوظ ڪرڻ لاءِ.
Hadoop ۾ Parquet فائل فارميٽ کي سمجھڻ لاءِ، توھان کي ھيٺين شرطن کي ڄاڻڻ گھرجي:
تارن جو گروپ (قطار گروپ): ڊيٽا جي منطقي افقي ڊويزن قطار ۾. هڪ قطار گروپ ڊيٽا سيٽ ۾ هر ڪالمن جي هڪ ٽڪرا تي مشتمل آهي.
ڪالمن جو حصو (column chunk): هڪ مخصوص ڪالمن جو هڪ ٽڪرو. اهي ڪالمن جا ٽڪرا قطار جي هڪ مخصوص گروپ ۾ رهن ٿا ۽ ضمانت آهن ته فائل ۾ ملندڙ هجڻ جي.
صفحو (صفحو): ڪالمن جا ٽڪرا هڪ ٻئي پٺيان لکيل صفحن ۾ ورهايل آهن. صفحن جو ھڪڙو عام عنوان آھي، تنھنڪري توھان پڙھي سگھوٿا غير ضروري کي ڇڏي ڏيو.
هتي عنوان صرف جادو نمبر تي مشتمل آهي PAR1 (4 بائيٽ) جيڪو فائل کي پارڪيٽ فائل طور سڃاڻي ٿو.
فوٽر هن ريت چوي ٿو:
فائل ميٽا ڊيٽا جنهن ۾ هر ڪالمن جي ميٽا ڊيٽا جي شروعاتي همراهن تي مشتمل آهي. جڏهن پڙهڻ، توهان کي پهريان پڙهڻ گهرجي فائل جي ميٽا ڊيٽا کي دلچسپي جي سڀني ڪالمن جا ٽڪرا ڳولڻ لاء. ڪالمن جا حصا وري ترتيب سان پڙهڻ گهرجن. ٻين ميٽا ڊيٽا ۾ فارميٽ ورزن، اسڪيما، ۽ ڪي به اضافي ڪي-ويل جوڙو شامل آھن.
ميٽا ڊيٽا جي ڊيگهه (4 بائيٽ).
جادو نمبر PAR1 (4 بائيٽ).
ORC فائل فارميٽ
اصلاح ٿيل قطار-ڪالمن فائل فارميٽ (اصلاح ٿيل قطار ڪالم، او آر سي) ڊيٽا کي ذخيرو ڪرڻ لاء هڪ تمام موثر طريقو پيش ڪري ٿو ۽ ٻين شڪلن جي حدن کي ختم ڪرڻ لاء ٺهيل هئي. ڊيٽا کي مڪمل طور تي ٺهيل شڪل ۾ ذخيرو ڪري ٿو، توهان کي غير ضروري تفصيلن کي ڇڏڻ جي اجازت ڏئي ٿو - بغير وڏي، پيچيده يا دستي طور تي برقرار رکڻ واري انڊيڪس جي تعمير جي ضرورت کان سواء.
ORC فارميٽ جا فائدا:
ھڪڙي فائل ھر ڪم جي ٻاھر آھي، جيڪا NameNode (نالو نوڊ) تي لوڊ گھٽائي ٿي.
Hive ڊيٽا جي قسمن لاءِ سپورٽ، بشمول DateTime، decimal ۽ پيچيده ڊيٽا جا قسم (structure, list, map and Union).
ساڳئي فائل کي مختلف RecordReader پروسيس ذريعي پڙهڻ.
مارڪر لاء اسڪيننگ کان سواء فائلن کي ورهائڻ جي صلاحيت.
فائل فوٽر ۾ معلومات جي بنياد تي پڙهڻ/لکڻ جي عمل لاءِ وڌ ۾ وڌ ممڪن هيپ ميموري مختص ڪرڻ جو اندازو.
ORC هڪ واحد فائل ۾ اسٽرنگ جي مجموعن کي ذخيرو ڪري ٿو، ۽ گڏ ڪرڻ جي اندر، اسٽرنگ ڊيٽا ڪالمن جي شڪل ۾ ذخيرو ٿيل آهي.
هڪ ORC فائل لائنن جي گروپن کي اسٽور ڪري ٿو جن کي پٽي ۽ سپورٽ معلومات فائل جي فوٽر ۾ سڏيو ويندو آهي. پوسٽ اسڪرپٽ فائل جي آخر ۾ ڪمپريشن پيٽرولر ۽ ڪمپريشن فوٽر جي سائيز تي مشتمل آهي.
ڊفالٽ پٽي سائيز 250 MB آهي. اهڙين وڏين پٽين جي ڪري، HDFS کان پڙهڻ کي وڌيڪ موثر طريقي سان انجام ڏنو ويو آهي: وڏين متضاد بلاڪن ۾.
فائل فوٽر فائل ۾ لين جي لسٽ، هر لين جي قطار جو تعداد، ۽ هر ڪالمن جي ڊيٽا جي قسم کي رڪارڊ ڪري ٿو. هر ڪالمن لاءِ ڳڻپ، منٽ، وڌ ۾ وڌ ۽ رقم جو نتيجو پڻ اتي لکيل آهي.
پٽي جي فوٽر ۾ وهڪرو جڳهن جي ڊاريڪٽري شامل آهي.
قطار ڊيٽا استعمال ڪيو ويندو آهي جڏهن اسڪيننگ ٽيبل.
انڊيڪس ڊيٽا ۾ هر ڪالمن لاءِ گھٽ ۾ گھٽ ۽ وڌ ۾ وڌ قدر ۽ هر ڪالمن ۾ قطارن جي پوزيشن شامل آھي. ORC انڊيڪس استعمال ڪيا ويندا آهن صرف پٽين ۽ قطار گروپن کي چونڊڻ لاءِ، نه سوالن جا جواب ڏيڻ لاءِ.
Parquet تجزياتي سوالن لاءِ بهتر موزون آهي، مطلب ته پڙهڻ جا عمل ۽ پڇا ڳاڇا ڪرڻ واري ڊيٽا لکڻ جي ڀيٽ ۾ تمام گهڻي موثر آهي.
Avro ۾ لکڻ جا آپريشن پارڪيٽ جي ڀيٽ ۾ وڌيڪ موثر طريقي سان ڪيا ويندا آهن.
Avro سرڪٽ جي ارتقا سان وڌيڪ پختگي سان معاملو ڪري ٿو. پارڪٽ صرف اسڪيما جي اضافي کي سپورٽ ڪري ٿو، جڏهن ته Avro گھڻائي ارتقاء کي سپورٽ ڪري ٿو، يعني ڪالمن کي شامل ڪرڻ يا تبديل ڪرڻ.