کیس اسٹڈی: بیس سال پرانا SAS کوڈ، جدید لیک ہاؤس — Emulus Consulting

Table of Contents
کیس اسٹڈی: بیس سال پرانا SAS کوڈ، جدید لیک ہاؤس — Emulus Consulting کی Microsoft Fabric پر منتقلی
بنیادی معلومات (Executive Summary)
- پلیٹ فارم: Innovational Office Solution
- کلائنٹ: Emulus Consulting
- منتقل شدہ اثاثے: [X] SAS پروگرامز (.sas)، [X] میکروز، [X] کسٹم فارمیٹس، [X] شیڈولڈ بیچ جابز، [X] Enterprise Guide پروجیکٹس
- خودکار درستگی: 70%–90% ابتدائی کوڈ تبدیلی؛ باقی 10%–30% ڈیٹا انجینئرز اور ماڈلنگ ماہرین کی تصدیق سے
- ای میل: Admin@innovationalofficesolution.com
- مفت POC: اپنے 5 SAS پروگرامز پر آزمائیں — AnyBI to Power BI & AnyETL to Fabric صفحہ
SAS کیوں، اور SAS سے آگے کیوں؟
پاکستان کے بینکوں، انشورنس کمپنیوں اور ٹیلی کام اداروں میں SAS دہائیوں سے کریڈٹ رسک، ریگولیٹری رپورٹنگ، کسٹمر اینالیٹکس اور فراڈ کی نشاندہی کی ریڑھ کی ہڈی رہا ہے۔ اس کی ساکھ اور اعتماد پر کوئی سوال نہیں۔ لیکن آج تین چیزیں بدل گئی ہیں:
پہلی، مہارت کی دستیابی۔ نئی نسل کے ڈیٹا انجینئرز اور ڈیٹا سائنٹسٹ Python، SQL اور Spark کے ساتھ تعلیم مکمل کر رہے ہیں۔ SAS کوڈ کی دیکھ بھال اکثر چند سینئر افراد پر منحصر ہو جاتی ہے — جو کسی بھی ادارے کے لیے ایک خطرہ ہے۔
دوسری، ڈیٹا کا مرکز۔ جب آپریشنل ڈیٹا پہلے ہی Azure اور Microsoft 365 میں ہو، تو اسے صرف تجزیے کے لیے الگ SAS سرورز پر نکالنا، محفوظ کرنا اور واپس لانا اضافی خرچ اور اضافی خطرہ ہے۔
تیسری، ریگولیٹری فریم ورک۔ اسٹیٹ بینک آف پاکستان نے BPRD سرکلر نمبر 01 (2023) کے ذریعے "Framework on Outsourcing to Cloud Service Providers" جاری کیا، جو بینکوں، مائیکروفنانس بینکوں، DFIs، EMIs اور دیگر ریگولیٹڈ اداروں کو خطرے کی بنیاد پر (risk-based) اپنے material اور non-material ورک لوڈز کلاؤڈ پر لے جانے کی کم از کم شرائط فراہم کرتا ہے۔ وفاقی سطح پر Pakistan Cloud First Policy (2022) نے بھی کلاؤڈ کو ترجیحی انتخاب بنایا ہے۔ یعنی کلاؤڈ پر جانا اب "کیا ہم کر سکتے ہیں؟" کا نہیں بلکہ "کیسے درست طریقے سے کریں؟" کا سوال ہے۔
ایک دیانتدارانہ نوٹ: SAS اور Microsoft Fabric حریف ہونے کے ساتھ ساتھ ایک دوسرے سے جڑ بھی سکتے ہیں — SAS نے Fabric کے اندر اپنا Decision Builder ورک لوڈ اور OneLake کنیکٹرز پیش کیے ہیں۔ Emulus Consulting نے ہر ورک لوڈ کا الگ جائزہ لیا: ڈیٹا تیاری اور ETL کو مکمل طور پر Fabric پر منتقل کیا گیا، جبکہ چند مخصوص شماریاتی ماڈلز کے لیے مرحلہ وار حکمت عملی اپنائی گئی۔
Emulus Consulting: کوڈ بیس کی تصویر
Emulus Consulting ڈیٹا اسٹریٹیجی اور ڈیجیٹل کنسلٹنگ فرم ہے جس کے مالیاتی شعبے کے کلائنٹس کا SAS ماحول کئی برسوں میں پھیلا تھا:
- [X] .sas پروگرامز، جن میں سے کئی ہزار سطروں پر مشتمل تھے
- [X] میکروز، جن میں %DO لوپس، %IF شرائط اور CALL SYMPUT کے ذریعے ڈائنامک کوڈ جنریشن
- DATA اسٹیپس میں RETAIN، FIRST./LAST. پروسیسنگ، ARRAY اور MERGE کا وسیع استعمال
- PROC SQL، PROC SORT، PROC MEANS / SUMMARY، PROC FREQ اور PROC TRANSPOSE پر مبنی رپورٹنگ
- PROC FORMAT کے کسٹم فارمیٹس جو کاروباری درجہ بندی کا اصل ذریعہ تھے
- رات کو چلنے والی [X] بیچ جابز جن کی ترتیب شیل اسکرپٹس اور شیڈولر میں درج تھی
اصل خطرات:
- DATA اسٹیپ قطار بہ قطار (row-by-row) چلتا ہے، جبکہ Spark تقسیم شدہ (distributed) انداز میں۔ RETAIN اور FIRST./LAST. کو Spark میں درست طریقے سے لکھنے کے لیے Window Functions کی گہری سمجھ درکار ہے۔
- SAS میں missing ویلیو کا رویہ (مثلاً موازنے میں اسے سب سے چھوٹا سمجھنا) اور Spark میں NULL کا رویہ مختلف ہے — یہ فرق خاموشی سے کریڈٹ رسک کے نتائج بدل سکتا ہے۔
- میکروز کی ڈائنامک کوڈ جنریشن کو جامد ترجمہ کرنے سے منطق ٹوٹ جاتی ہے۔
پانچ مراحل میں منتقلی
مرحلہ 1 — کوڈ کی انوینٹری اور lineage
تمام .sas فائلز، %INCLUDE زنجیروں، LIBNAME تعریفوں اور شیڈولر کی ترتیب کو اسکین کر کے ایک مکمل lineage گراف بنایا گیا: کون سا پروگرام کون سا ڈیٹا سیٹ پڑھتا اور لکھتا ہے۔ [X]% پروگرامز غیر فعال یا ڈپلیکیٹ پائے گئے۔
مرحلہ 2 — SAS کوڈ کی پارسنگ
DATA اسٹیپس، PROCs اور میکروز کو ایک abstract syntax tree میں تبدیل کیا گیا۔ میکروز کو پہلے resolve کر کے دیکھا گیا کہ وہ اصل میں کیا کوڈ بناتے ہیں، تاکہ ترجمہ نتیجے کا ہو، نہ کہ صرف ٹیمپلیٹ کا۔
مرحلہ 3 — AI کے ذریعے کوڈ کی تبدیلی
- DATA اسٹیپس → PySpark DataFrame آپریشنز؛ RETAIN اور FIRST./LAST. → Window Functions
- PROC SQL → Spark SQL
- PROC MEANS / FREQ / TRANSPOSE → groupBy / agg / pivot
- PROC FORMAT → Lookup (mapping) Delta ٹیبلز
- میکروز → پیرامیٹرائزڈ Fabric نوٹ بکس اور پائپ لائن پیرامیٹرز
70%–90% کوڈ خودکار طور پر تبدیل ہوا۔
مرحلہ 4 — OneLake لیک ہاؤس
SAS لائبریریز (.sas7bdat) کو OneLake میں Delta ٹیبلز میں منتقل کیا گیا اور Bronze / Silver / Gold ساخت میں منظم کیا گیا۔ ڈیٹا کی درجہ بندی اور رسائی کے قواعد، کلائنٹ کی SBP فریم ورک کے تحت کی گئی material / non-material ورک لوڈ کی تشخیص کے مطابق ترتیب دیے گئے۔
مرحلہ 5 — شماریاتی سطح پر تصدیق
PulseQA نے ہر جاب کے SAS اور Fabric آؤٹ پٹ کا قطار کی تعداد، کالم کے مجموعوں، missing / NULL کی تعداد، اور اہم متغیرات کی تقسیم (distribution) کی سطح پر موازنہ کیا۔ رسک ماڈلز کے ان پٹ ڈیٹا سیٹس کو اعشاریہ کی سطح تک ملایا گیا۔
SAS سے Microsoft Fabric: اجزاء کا نقشہ
| SAS جزو | Microsoft Fabric متبادل |
|---|---|
| DATA Step | PySpark DataFrame / Fabric Notebook |
| RETAIN، FIRST. / LAST.، LAG | Spark Window Functions |
| MERGE (BY) | DataFrame Join / Delta MERGE |
| PROC SQL | Spark SQL / Fabric Warehouse T-SQL |
| PROC SORT / MEANS / FREQ / TRANSPOSE | orderBy / groupBy.agg / pivot |
| PROC FORMAT | Mapping Delta Tables |
| SAS Macros (%MACRO، %DO، CALL SYMPUT) | پیرامیٹرائزڈ Notebooks + Pipeline Parameters |
| SAS Libraries (.sas7bdat) | OneLake Delta Tables |
| %INCLUDE اور بیچ شیڈولنگ | Fabric Data Factory Pipelines |
| SAS ODS رپورٹس | Power BI Reports / Paginated Reports |
نتائج
- [X] SAS پروگرامز 70%–90% خودکار درستگی کے ساتھ PySpark اور Spark SQL میں تبدیل
- منتقلی [X] ہفتوں میں؛ دستی ری رائٹ کا اندازہ [X] ماہ تھا
- رات کی بیچ ونڈو [X] گھنٹوں سے کم ہو کر [X] منٹ
- SAS سرور لائسنسنگ اور انفراسٹرکچر میں کمی سے TCO میں [X]% بچت
- کوڈ اب Python اور SQL میں، جسے ٹیم کا ہر نیا رکن پڑھ اور برقرار رکھ سکتا ہے
اپنے SAS کوڈ کا مستقبل طے کریں
اپنے پانچ سب سے پیچیدہ SAS پروگرامز بھیجیں — ہم آپ کو تبدیل شدہ PySpark کوڈ اور موازنے کی رپورٹ دکھائیں گے۔
- مفت POC: مفت POC (Pulse Convert)
- ویب سائٹ: innovationalofficesolution.com
- ای میل: Admin@innovationalofficesolution.com
SAS اینالیٹکس کوڈ کو Microsoft Fabric میں منتقل کریں
DATA اسٹیپس، PROC SQL اور میکروز کو جدید PySpark نوٹ بکس اور OneLake لیک ہاؤس میں تبدیل کریں۔ SBP ریگولیٹری فریم ورک اور کلاؤڈ پالیسی کے مطابق مکمل تیاری۔