المهارات spark-optimization
📦

spark-optimization

آمن

تحسين أداء Apache Spark

متاح أيضًا من: wshobson

مهام Spark البطيئة تُهدر الموارد وتُؤخر الرؤى. توفر هذه المهارة أنماطاً مُثبتة للتقسيم والتخزين المؤقت وتحسين الخلط وضبط الذاكرة لتسريع خطوط أنابيب البيانات الخاصة بك.

يدعم: Claude Codex Code(CC)
📊 71 كافٍ
1

تنزيل ZIP المهارة

2

رفع في Claude

اذهب إلى Settings → Capabilities → Skills → Upload skill

3

فعّل وابدأ الاستخدام

اختبرها

استخدام "spark-optimization". تكوين Spark لمجموعة بيانات 100GB مع تخزين مؤقت متكرر

النتيجة المتوقعة:

  • spark.executor.memory: 8g
  • spark.executor.memoryOverhead: 2g
  • spark.memory.fraction: 0.6
  • spark.sql.shuffle.partitions: 200
  • spark.sql.adaptive.enabled: true
  • مُوصى به: استخدم MEMORY_AND_DISK_SER لاستمرارية التخزين المؤقت

استخدام "spark-optimization". إصلاح دمج بطيء مع انحراف بيانات 100x

النتيجة المتوقعة:

  • تم الكشف: نسبة انحراف القسم 15.3x (الحد: 2x)
  • الحل: تطبيق تقنية دمج مُوزّع مع 10 دلاء
  • بديل: تمكين معالجة دمج الانحراف AQE
  • التحسين المُتوقع: إكمال أسرع 5-8 أضعاف

التدقيق الأمني

آمن
v1 • 2/25/2026

All static analyzer findings were false positives. The skill contains Python/PySpark code examples for Apache Spark optimization. External command detections misidentified Python code as Ruby/shell execution. Network findings were documentation URLs. No actual security risks detected.

1
الملفات التي تم فحصها
430
الأسطر التي تم تحليلها
0
النتائج
1
إجمالي عمليات التدقيق
لا توجد مشكلات أمنية
تم تدقيقه بواسطة: claude

درجة الجودة

38
الهندسة المعمارية
100
قابلية الصيانة
87
المحتوى
22
المجتمع
100
الأمان
100
الامتثال للمواصفات

ماذا يمكنك بناءه

مهندس بيانات يُحسّن خط أنابيب ETL

تقليل وقت تشغيل المهمة الدفعية الليلية من 4 ساعات إلى 45 دقيقة من خلال تطبيق تقليم الأقسام ودمج البث وضبط الذاكرة.

فريق تحليلات يُوسّع التقارير

معالجة نمو البيانات 10 أضعاف دون بنية تحتية إضافية بتطبيق AQE واستراتيجيات التخزين المؤقت المناسبة و Z-ordering.

مطور يُصحح استعلامات بطيئة

تحديد وإصلاح مشاكل انحراف البيانات التي تُسبب مهامًا بطيئة باستخدام تحليل الأقسام وأدوات كشف الانحراف.

جرّب هذه الموجهات

تكوين Spark الأساسي
ساعدني في تكوين جلسة Spark لمهمة ETL إنتاجية تُعالج 500GB من البيانات يوميًا. ما الإعدادات التي يجب استخدامها للتقسيم والذاكرة؟
مشكلة أداء الدمج
دمجي بين جدول 5TB وجدول بحث 5MB بطيء للغاية. كيف يمكنني تحسين هذا؟
تصحيح انحراف البيانات
بعض المهام في عملية groupBy تستغرق 10 أضعاف الوقت مقارنة بالآخرين. ساعدني في كشف وإصلاح انحراف البيانات في مهمة Spark الخاصة بي.
تحسين خط الأنابيب الكامل
راجع خط أنابيب Spark الخاص بي: قراءة 1TB Parquet، دمج 3 جداول، تجميع حسب التاريخ والمنطقة، كتابة مخرجات مقسمة. قدم استراتيجية تحسين كاملة تشمل AQE والذاكرة وإعدادات الخلط.

أفضل الممارسات

  • تمكين Adaptive Query Execution (AQE) لدمج الأقسام التلقائي ومعالجة الانحراف
  • استخدام دمج البث للجداول الأصغر من 50MB لإلغاء overhead الخلط
  • ضبط حجم الأقسام إلى 128MB-256MB للتوازي الأمثل دون overhead جدولة

تجنب

  • استخدام collect() على DataFrames الكبيرة مما يُسبب أخطاء OOM في السائق
  • الإفراط في تخزين DataFrames المؤقت المستخدمة مرة واحدة فقط، مما يُهدر الذاكرة
  • تجاهل انحراف البيانات الذي يُسبب مهامًا بطيئة وانتهاء وقت المهمة

الأسئلة المتكررة

ما هو حجم القسم الأمثل لـ Spark؟
128MB إلى 256MB لكل قسم يوفر أفضل توازن بين التوازي و overhead جدولة المهام. الأقسام القليلة جدًا تُسبب استخدامًا غير كافٍ؛ الكثيرة جدًا تزيد overhead الجدولة.
متى يجب استخدام cache() مقابل persist()؟
استخدم cache() للتخزين البسيط في الذاكرة. استخدم persist() مع StorageLevel محدد عندما تحتاج تفريغ القرص (MEMORY_AND_DISK) أو التسلسل (MEMORY_ONLY_SER) لكفاءة الذاكرة.
كيف أعرف إذا كانت مهمتي بها انحراف بيانات؟
افحص Spark UI للمهام ذات المدة الأطول بشكل ملحوظ من المتوسط. نسبة انحراف (أقصى/متوسط وقت المهمة) فوق 2x تشير إلى انحراف إشكالي يتطلب توزيعًا أو AQE.
ما هو Adaptive Query Execution (AQE)؟
AQE تُحسّن الاستعلامات تلقائيًا وقت التشغيل عن طريق دمج الأقسام ومعالجة انحراف الدمج وتحسين التجميعات. مُكّن باستخدام spark.sql.adaptive.enabled=true (Spark 3.0+).
هل يجب استخدام Parquet أم Delta Lake؟
Delta Lake يبني على Parquet مع معاملات ACID وفرض المخطط والسفر الزمني. استخدم Delta لأحمال العمل الإنتاجية التي تتطلب الموثوقية؛ Parquet لأحمال العمل البسيطة كثيفة القراءة.
كيف يمكنني تقليل ضغط ذاكرة الخلط؟
فعّل ضغط الخلط (spark.shuffle.compress=true)، استخدم AQE لتقليل الأقسام، اجمع مسبقًا قبل التحويلات الواسعة، وزد spark.memory.fraction إذا حدثت تسريبات.

تفاصيل المطور

المؤلف

sickn33

الترخيص

MIT

مرجع

main

بنية الملفات

📄 SKILL.md