Zakariae Jaafari

المشاريعمساند

NYC Taxi ELT with Bruin

ELT على DuckDB وMotherDuck: إدخال PyArrow بالدفعات، وإزالة التكرار، وفحوصات جودة، و6,405,008 صف سحابي واختبارات SQL في CI.

نظرة عامة

أنبوب ELT لتاكسي نيويورك على Bruin. أصول Python تجلب parquet وتُخرج دفعات 150 ألف صف إلى DuckDB أو MotherDuck. أصول SQL تنقّي وتزيل التكرار ثم تجمّع trips_report. نفس الرمز، بيئتان. Zoomcamp الوحدة 05.

المشكلة

حمولة Arrow واحدة تتجاوز حد Bruin (~256 ميغابايت) في الأشهر الكبيرة (يناير 2020: 6.4 ملايين صف).

الحل التقني

trips.py مولّد: تخزين parquet محليًا، دفعات، إلحاق عند الإدخال. Staging تزايدي مع ROW_NUMBER. الإنتاج: قاعدة MotherDuck nyc_taxi. استعلام 8 سبتمبر 2026: 6,405,008 صفًا مدخلًا، 6,370,784 في staging، 312 صف تقرير. bruin validate محليًا: 4 أصول بلا مشاكل.

ما يوجد في المستودع

  • أربعة أصول: إدخال، lookup دفع، staging، تقرير
  • دفعات PyArrow من 150 ألف صف
  • فحوصات أعمدة وتميّز في staging
  • DuckDB محلي وMotherDuck بنفس SQL