منصوبے کے بارے میں

Luigi ایک Python پیکیج ہے (Python 3.10 سے 3.14 تک آزمایا گیا) جو بیچ کے کاموں کی پیچیدہ پائپ لائنیں بنانے کے لیے ہے۔ یہ انحصار حل کرنے، ورک فلو مینجمنٹ، ویژولائزیشن، ناکامی سے نمٹنے، کمانڈ لائن انٹیگریشن اور مزید بہت کچھ سنبھالتا ہے۔ انسٹالیشن pip کے ذریعے ہوتی ہے: PyPI سے تازہ ترین مستحکم ریلیز کے لیے `pip install luigi`، یا TOML پر مبنی کنفیگریشن سپورٹ شامل کرنے کے لیے `pip install luigi[toml]`۔ انتہائی جدید کوڈ براہ راست GitHub ریپوزٹری سے انسٹال کیا جا سکتا ہے۔ پس منظر: Luigi طویل عرصے تک چلنے والے بیچ کے عمل سے منسلک عام مسائل کو حل کرتا ہے۔ کام کچھ بھی ہو سکتے ہیں، لیکن عام طور پر یہ طویل کام ہوتے ہیں جیسے Hadoop کے کام، ڈیٹا بیس میں یا سے ڈیٹا ڈمپ کرنا، یا مشین لرننگ الگورتھم چلانا۔ Luigi کا مقصد Hive، Pig یا Cascading جیسے نچلے درجے کے ڈیٹا پروسیسنگ ٹولز کو تبدیل کرنا نہیں ہے؛ بلکہ یہ بہت سے کاموں کو آپس میں جوڑتا ہے، جہاں ہر کام Hive کا سوال، Java میں Hadoop کا کام، Scala یا Python میں Spark کا کام، Python کا ٹکڑا، ڈیٹا بیس ٹیبل کا ڈمپ، یا کچھ اور ہو سکتا ہے۔ یہ ہزاروں کاموں پر مشتمل طویل پائپ لائنیں بنانے کی حمایت کرتا ہے جنہیں مکمل ہونے میں دن یا ہفتے لگ سکتے ہیں۔ Luigi عام کام کے ٹیمپلیٹس کے ایک ٹول باکس کے ساتھ آتا ہے، جس میں Hadoop میں Python mapreduce کاموں کے ساتھ ساتھ Hive اور Pig کاموں کی حمایت بھی شامل ہے۔ یہ HDFS اور مقامی فائلوں کے لیے فائل سسٹم کی تجریدی شکلیں بھی فراہم کرتا ہے جو اس بات کو یقینی بناتی ہیں کہ فائل سسٹم کے عمل ایٹمک ہیں، تاکہ ڈیٹا پائپ لائن جزوی ڈیٹا پر مشتمل حالت میں کریش نہ ہو۔ Luigi سرور میں کاموں کو تلاش کرنے اور فلٹر کرنے کے لیے ایک ویب انٹرفیس شامل ہے، اور ویژولائزر ورک فلو کے انحصار کے گراف کا ایک گرافیکل جائزہ فراہم کرتا ہے، جہاں ہر نوڈ ایک کام کی نمائندگی کرتا ہے اور رنگ مکمل شدہ بمقابلہ زیر التوا کاموں کی نشاندہی کرتے ہیں۔ فلسفہ: تصوراتی طور پر Luigi GNU Make سے ملتا جلتا ہے، جس میں کام دوسرے کاموں پر منحصر ہو سکتے ہیں، اور Oozie اور Azkaban سے کچھ مشابہت رکھتا ہے۔ ایک بڑا فرق یہ ہے کہ Luigi خاص طور پر Hadoop کے لیے نہیں بنایا گیا ہے اور اسے دوسری قسم کے کاموں تک بڑھایا جا سکتا ہے۔ سب کچھ Python میں ہے: XML کنفیگریشن یا اسی طرح کی بیرونی ڈیٹا فائلوں کے بجائے، انحصار کا گراف Python کے اندر متعین کیا جاتا ہے، جس سے پیچیدہ انحصار گراف بنانا آسان ہو جاتا ہے جہاں انحصار میں تاریخ الجبرا یا اسی کام کے دوسرے ورژن کے حوالے شامل ہو سکتے ہیں۔ ورک فلو اب بھی Python سے باہر کی چیزوں کو متحرک کر سکتے ہیں، جیسے Pig اسکرپٹ چلانا یا فائلیں scp کرنا۔ اختیار: Luigi Spotify کے اندرونی طور پر ہر روز ہزاروں کام چلانے کے لیے استعمال کیا جاتا ہے جو پیچیدہ انحصار گراف میں منظم ہوتے ہیں، زیادہ تر Hadoop کام، جو سفارشات، ٹاپ لسٹ، A/B ٹیسٹ تجزیہ، بیرونی رپورٹس اور اندرونی ڈیش بورڈز کو طاقت دیتے ہیں۔ README میں بہت سی دوسری تنظیمیں درج ہیں جنہوں نے Luigi کے بارے میں لکھا یا پیش کیا ہے، جن میں Foursquare، Stripe، Buffer، SeatGeek، Treasure Data، AdRoll، Groupon/OrderUp، Red Hat Marketing Operations، GetNinjas، voyages-sncf.com، Open Targets، Leipzig University Library، Glossier، Data Revenue، Uppsala University، GIPHY، xtream اور CIAN شامل ہیں، اس کے علاوہ اضافی کمپنیاں بھی ہیں جنہوں نے اس کے بارے میں شائع نہیں کیا ہے۔ صارفین کی صحیح تعداد معلوم نہیں ہے کیونکہ Luigi رجسٹریشن کی دیواروں کے بغیر اوپن سورس ہے۔ بیرونی لنکس میں بحث اور سوالات کے لیے ایک Google Groups میلنگ لسٹ، PyPI ریلیزز، GitHub سورس کوڈ، اور Slack، Hipchat اور اسی طرح کی خدمات کے لیے ایک Hubot انٹیگریشن پلگ ان شامل ہے۔ مصنفین: Luigi Spotify پر بنایا گیا تھا، بنیادی طور پر Erik Bernhardsson اور Elias Freider کے ذریعہ، 2012 کے آخر میں اوپن سورس ہونے کے بعد سے بہت سے دوسرے شراکت داروں کے ساتھ۔ Arash Rouhani 2015 سے 2019 تک چیف مینٹینر تھے، اور اب Spotify کی ڈیٹا ٹیم Luigi کو برقرار رکھتی ہے۔