دسمبر کے اوائل میں، میں نے ایک ہولناک غلطی کی — ایک ڈویلپر کے طور پر میری زندگی میں ایک اہم موڑ — اور کمپنی کے اندر ڈیٹا انجینئرنگ (DE) ٹیم میں شامل ہو گیا۔ اس مضمون میں، میں کچھ مشاہدات کا اشتراک کروں گا جو میں نے DE ٹیم پر کام کرنے والے دو مہینوں میں کیے ہیں۔

ڈیٹا انجینئرنگ کیوں؟
ڈی ای میں میرا سفر 2019 کے موسم گرما میں شروع ہوا جب ہم چلو چلتے ہیں ، اور وہاں میں روشن خیالی تک پہنچا۔ میں نے اس موضوع میں دلچسپی لینا شروع کی، الگورتھم کا مطالعہ کرنا اور یہاں تک کہ ان کے بارے میں۔ ، اور پھر میں نے درخواست کے علاقے کے بارے میں سوچا اور جلدی سے پتہ چلا کہ ہماری کمپنی میں عملی ایپلی کیشن ڈیٹا بیس کی تقسیم ہے۔
تو ہماری ٹیم بالکل کیا کرتی ہے؟ ہم، تمام فیشن ایبل لڑکوں اور لڑکیوں کی طرح، ڈیٹا سے چلنے والی کمپنی بننا چاہتے ہیں۔ اور اسے ممکن بنانے کے لیے، ہمیں کم از کم، ایک قابل اعتماد ڈیٹا گودام بنانے کی ضرورت ہے جو کمپنی کو درکار کوئی بھی رپورٹ تیار کرنے کے قابل ہو۔ لیکن سب سے اہم بات یہ ہے کہ اس گودام میں موجود ڈیٹا پر بھروسہ کیا جانا چاہیے۔ مزید برآں، ہمیں اس ڈیٹا کا استعمال کرتے ہوئے نظام کی حالت کو ایک مقررہ وقت پر دوبارہ تشکیل دینے کے قابل ہونے کی ضرورت ہے۔ یہ سب کچھ اس حقیقت سے پیچیدہ ہے کہ ہم مائیکرو سروسز کی ایک بہادر نئی دنیا میں رہتے ہیں، اور یہ نظریہ یہ ظاہر کرتا ہے کہ ہر سروس اپنی چھوٹی فعالیت کو نافذ کرتی ہے، اس کا ڈیٹا بیس اس کا اپنا کاروبار ہے، اور وہ اسے روزانہ حذف کر سکتا ہے۔ تاہم، ہمیں سروس کی حالت کو بازیافت کرنے اور اس پر کارروائی کرنے کے قابل ہونا چاہیے۔
اگر آپ ڈیٹا پر مبنی بننا چاہتے ہیں تو پہلے ایونٹ پر مبنی بنیں۔
یہ اتنا آسان نہیں ہے۔ ایونٹس مختلف شکلوں میں آتے ہیں، اور ڈویلپرز اور ڈیٹا انجینئرز انہیں مختلف انداز سے دیکھتے ہیں۔ واقعات ایک الگ مضمون کا موضوع ہیں، اس لیے میں یہاں اس میں نہیں جاؤں گا۔ اس کے علاوہ ایسا مضمون پہلے بھی لکھا جا چکا ہے۔ ایک خاص مارٹن فولر، میں اس کے اعزاز کو نہیں چھینوں گا، اسے بھی مشہور ہونے دو۔
مختصراً، سوچنے کے لیے بہت کچھ ہے، اور یہی چیز اس فیلڈ کو بہت دلکش بناتی ہے۔ ایسا ہی ہوتا ہے کہ ہماری کمپنی میں، ایک ڈیٹا انجینئر کے پاس ذمہ داری کا ایک بہت وسیع علاقہ ہوتا ہے جو صرف ETL/ELT پائپ لائنز لکھتا ہے (اگر آپ نہیں جانتے کہ ان مخففات کا کیا مطلب ہے، تو آئیں . متعلقہ اشتہارات کے حقوق پر).
ہم گودام کے فن تعمیر، ڈیٹا ماڈلنگ، ڈیٹا سیکیورٹی کے مسائل، اور یقینا خود پائپ لائنز میں شامل ہیں۔ ہمیں یہ بھی یقینی بنانے کی ضرورت ہے کہ، ایک طرف، ہماری موجودگی پروڈکٹ ڈویلپرز کے لیے بہت زیادہ بوجھل نہیں ہے، اور وہ سسٹم میں نئی خصوصیات کو لاگو کرتے وقت ہماری ضروریات سے زیادہ سے زیادہ توجہ ہٹاتے ہیں، جبکہ دوسری طرف، ہمیں تجزیہ کاروں اور BI ٹیم کو گودام میں آسانی سے منظم ڈیٹا فراہم کرنے کی ضرورت ہے۔ اسی طرح ہم جیتے ہیں۔
ترقی سے منتقلی میں مشکلات
ملازمت پر اپنے پہلے ہی دن، مجھے بہت سی مشکلات کا سامنا کرنا پڑا جو میں آپ کے ساتھ شیئر کرنا چاہتا ہوں۔
1. پہلی چیز جو میں نے محسوس کی وہ ٹولنگ اور کچھ بہترین طریقوں کی کمی تھی۔ مثال کے طور پر کوڈ ٹیسٹ کوریج لیں۔ ترقی میں، ہمارے پاس ایک سو پچاس ٹیسٹنگ فریم ورک ہیں۔ ڈیٹا کے ساتھ کام کرنا زیادہ پیچیدہ ہے۔ جی ہاں، ہم ٹیسٹ ڈیٹا پر ETL پائپ لائنوں کی جانچ کر سکتے ہیں، لیکن ہمیں یہ سب دستی طور پر کرنا ہوگا اور ہر مخصوص معاملے کے لیے حل تلاش کرنا ہوں گے۔ نتیجے کے طور پر، ٹیسٹ کی کوریج بہت خراب ہے. خوش قسمتی سے، نگرانی اور لاگنگ کی شکل میں رائے کی ایک اور پرت ہے، لیکن اس کے لیے ہمیں فعال ہونے کی بجائے رد عمل کا مظاہرہ کرنے کی ضرورت ہے، جو پریشان کن اور پریشان کن ہے۔
2. ڈی ای کے نقطہ نظر سے دنیا اس سے بالکل مختلف ہے کہ یہ اوسط پروڈکٹ ڈویلپر کو کیسے دکھائی دیتی ہے (یقیناً، قاری ایسا نہیں ہے، اور وہ پہلے سے ہی سب کچھ جانتے ہیں، لیکن میں نے نہیں کیا اور اب میں اسے حاصل کر رہا ہوں)۔ ایک ڈویلپر کے طور پر، میں اپنی مائیکرو سروس بنا رہا ہوں، ڈیٹا [آپ کی پسند کے ڈیٹا بیس] میں ڈال رہا ہوں، وہاں اپنی ریاست کو اسٹور کر رہا ہوں، ID کے ذریعے کچھ بازیافت کر رہا ہوں، اور سب کچھ ٹھیک ہے۔ سروس چلتی ہے، آرڈرز میں گڑبڑ ہوتی ہے، اور وہ سب جاز۔ کوئی مجھ سے کہتا ہے کہ میں اپنی حالت کو کسی اور سروس میں تلاش کروں، تو میں اس پروگرام کو کچھ RabbitMQ میں ڈال دوں گا اور بس۔ اور اسی جگہ ہم اوپر بیان کردہ واقعہ کے مسئلے کی طرف واپس آتے ہیں۔
آپریشنل کام کے لیے سروس کو جس چیز کی ضرورت ہے وہ تاریخی ڈیٹا کے لیے ہمارے لیے کام نہیں کرتی، اس لیے ہمیں سروس کے معاہدوں پر دوبارہ کام کرنا ہوگا اور ترقیاتی ٹیموں کے ساتھ مل کر کام کرنا ہوگا۔ آپ سوچ بھی نہیں سکتے کہ ہم نے اس بات پر اتفاق کرنے کی کوشش میں کتنے گھنٹے گزارے کہ واقعی ہماری کمپنی میں واقعہ کیا ہے۔
3. آپ کو اپنے سر سے سوچنے کی ضرورت ہے۔ میں یہ نہیں کہہ رہا ہوں کہ ڈویلپرز نہیں سوچتے (حالانکہ میں سب کے لیے بات کرنے والا کون ہوں)، لیکن پروڈکٹ ڈویلپمنٹ میں، آپ کے پاس اکثر پہلے سے ہی کسی نہ کسی قسم کا فن تعمیر ہوتا ہے، اور آپ صرف بیک لاگ سے مختلف کاموں میں ٹنکر کر رہے ہوتے ہیں۔ بلاشبہ، اس کے لیے منصوبہ بندی اور عکاسی کی ضرورت ہے، لیکن یہ ایک مسلسل عمل ہے، جہاں بنیادی چیلنج صرف چیزوں کو اچھی اور مؤثر طریقے سے انجام دینا ہے۔
یہ ہمارے لیے اتنا آسان نہیں ہے، کیونکہ سسٹم کے مختلف اجزاء کو گرم اور آرام دہ یک سنگی سے مائیکرو سروسز کی جنگلی دنیا میں منتقل کرنا آسان نہیں ہے۔ جب کوئی سروس واقعات کو پھیلانا شروع کر دیتی ہے، تو آپ کو اسٹوریج کو آباد کرنے کی منطق پر نظر ثانی کرنے کی ضرورت ہوتی ہے، کیونکہ ڈیٹا اب مختلف نظر آتا ہے۔ اس کے لیے ایک ڈویلپر کے طور پر نہیں بلکہ ڈیٹا انجینئر کے طور پر بہت زیادہ سوچنے کی ضرورت ہے۔ نوٹ بک اور قلم یا وائٹ بورڈ پر مارکر کے ساتھ دن گزارنا عام بات ہے۔ یہ بہت مشکل ہے؛ مجھے سوچنا پسند نہیں ہے۔ میں صرف بینگ بینگ کو ترجیح دیتا ہوں اور پروڈکشن میں جاتا ہوں۔
4. شاید سب سے اہم چیز معلومات ہے۔ جب ہمارے پاس علم کی کمی ہے تو ہم کیا کریں؟ کس نے کہا اسٹیک اوور فلو؟ اس شخص کو کمرے سے باہر نکال دو۔ ہم موضوع پر دستاویزات، کتابیں پڑھتے ہیں، اور پھر وہ کمیونٹی ہے جو فورمز، میٹنگز اور کانفرنسوں کا اہتمام کرتی ہے۔ دستاویزات بہت اچھا ہے، لیکن بدقسمتی سے، یہ نامکمل ہو سکتا ہے. ہم متعدد منصوبوں میں Cosmos DB استعمال کرتے ہیں۔ گڈ لک اس پروڈکٹ کے لیے دستاویزات کو پڑھنے میں۔ کتابیں ہی ہماری نجات ہیں۔ خوش قسمتی سے، وہ موجود ہیں اور پایا جا سکتا ہے. ان میں بہت سارے بنیادی علم ہوتے ہیں، اور آپ کو بہت زیادہ اور مسلسل پڑھنا پڑتا ہے۔ لیکن کمیونٹی ایک آفت ہے۔
اس وقت ہمارے فیلڈ میں ایک بھی مناسب کانفرنس یا میٹ اپ تلاش کرنا مشکل ہے۔ یقینی طور پر، لفظ "ڈیٹا" کے ساتھ کافی ملاقاتیں ہیں، لیکن وہ عام طور پر "ML" یا "AI" جیسے عجیب مخففات کے ساتھ ختم ہوتے ہیں۔ ٹھیک ہے، یہ ہماری بات نہیں ہے؛ ہم ڈیٹا گوداموں کی تعمیر کے بارے میں بات کر رہے ہیں، اپنے آپ کو عصبی نیٹ ورکس میں نہیں ڈالتے۔ ان ہپسٹرز نے سب کچھ سنبھال لیا ہے۔ نتیجے کے طور پر، ہم ایک کمیونٹی کے بغیر ہیں. ویسے، اگر آپ ڈیٹا انجینئر ہیں اور کسی اچھی کمیونٹی کے بارے میں جانتے ہیں، تو براہ کرم مجھے تبصروں میں بتائیں۔
میٹنگ کے نتائج اور اعلان
تو نیچے لائن کیا ہے؟ میرا ابتدائی تجربہ مجھے بتاتا ہے کہ ہر ڈویلپر ڈیٹا انجینئر کے جوتوں کا تجربہ کرنے سے فائدہ اٹھا سکتا ہے۔ یہ ہمیں چیزوں کو مختلف طریقے سے دیکھنے کی اجازت دیتا ہے اور جب ہم دیکھتے ہیں کہ ڈویلپر اپنے ڈیٹا کو کیسے ہینڈل کرتے ہیں تو ہماری آنکھوں سے خون بہنے لگتا ہے۔ لہذا، اگر آپ کی کمپنی میں ڈیٹا انجینئر ہے، تو صرف ان سے بات کریں اور آپ بہت کچھ سیکھیں گے (اپنے بارے میں)۔
اور آخر میں، ایک اعلان. چونکہ ہمیں اپنے موضوع پر کوئی میٹنگ نہیں مل سکی، اس لیے ہم نے خود اپنا بنانے کا فیصلہ کیا۔ ہمارے ساتھ کیا خرابی ہے؟ خوش قسمتی سے، ہمارے پاس ایک حیرت انگیز ہے اور ہمارے دوستوں سے ، جو، ہماری طرح، محسوس کرتے ہیں کہ ڈیٹا انجینئرز کو غیر منصفانہ طور پر نظرانداز کیا جا رہا ہے۔
میں اس موقع کو ہر اس شخص کو مدعو کرنا چاہتا ہوں جو ہماری پہلی کمیونٹی میٹنگ میں آنے کا خیال رکھتا ہے، جس کا عنوان "DE یا DIE" ہے، جو 27 فروری 2020 کو ڈوڈو پیزا آفس میں ہوگا۔ تفصیلات پر دستیاب ہیں۔ .
اگر کچھ ہوتا ہے تو، میں وہاں ہوں گا، اور آپ مجھے ذاتی طور پر میرے چہرے پر بتا سکتے ہیں کہ میں ڈویلپرز کے بارے میں کتنا غلط ہوں۔
ماخذ: www.habr.com
