محتويات الدورة

هندسة البيانات / المتوسط: التغيير والزمن والتنسيق / الدرس 10

الأقسام وتخطيط الملفات ودمجها

طابق التخطيط بالوصول والتصحيح، وميز القسم والإحصاءات والدمج عن ضمان السرعة والنشر الذري.

وقت القراءة التقريبي: 4 دقيقةتاريخ مراجعة المحتوى
في هذه الصفحة

أهداف الدرس

  • اختيار المفتاح من القراءة والاحتفاظ والتأخر.
  • حفظ المحتوى عند تغيير الملفات.

التقسيم موازنة لا تسريع عام

يجمع القسم البيانات بمفتاح مختار مثل يوم الحدث أو المستأجر. تقلل الشروط المفيدة الملفات المفحوصة، وتزيد الأقسام الصغيرة الكثيرة كلفة البيانات الوصفية والجدولة. قد يولد مفتاح عالي التعددية ملفات صغيرة كثيرة، بينما يحشد المفتاح المنحرف معظم العمل بقسم واحد. اختر التخطيط من أنماط القراءة ومعدل الكتابة والاحتفاظ والتصحيح، لا قاعدة تقسيم كل مجموعة بتاريخ. لا يثبت مسار القسم نفسه أن صفوفه تحمل القيم المطابقة أو أن القسم المتوقع مكتمل.

اختر ملفات معلنة دون ادعاء مسح التخزين

يسرد الوصف المحلي قسمين مخترعين وعددي صفوفهما. يحدد يوم الحدث المطلوب ملفاً وعشرين صفاً وفق الوصف المعطى فقط؛ ولا يثبت الوجود أو تحقق اليوم أو ثقة الإحصاء. قد تستبعد المحركات الأقسام أو مجموعات الصفوف وفق التعبيرات والبيانات المدعومة، وقد تمنع التحويلات غير المتوافقة أو الشروط الغائبة الاستبعاد. احفظ هوية القسم وإصدار الملف أو اللقطة في العقد المقبول، وتحقق من الصفوف مقابل الوصف أثناء فحص نشر مضبوط.

python اختيار وصف معطى محلياً
manifest = [
    {'file': 'part-a', 'event_day': '2026-10-01', 'rows': 20},
    {'file': 'part-b', 'event_day': '2026-10-02', 'rows': 30},
]
selected = [f for f in manifest if f['event_day'] == '2026-10-01']
assert [f['file'] for f in selected] == ['part-a']
assert sum(f['rows'] for f in selected) == 20

يتبع الوصف المخترع دون مسح ملفات أو مخزن أو محرك.

قد يمس التصحيح قسماً قديماً

إذا تبع التقسيم يوم الحدث، فقد تعيد التغييرات المتأخرة كتابة أقسام تاريخية أو تلحق بها. يجب أن يشمل الاستبدال النطاق البديل كاملاً؛ فقد يحذف استبدال القسم بآخر الصفوف المتغيرة فقط صفوفاً صحيحة لم تتغير. افصل الدمج والاستبدال والإلحاق. يجب أن يرى القارئ ملفات أو لقطة مقبولة لا مزيجاً من قطع قديمة وجديدة. يحتاج تزامن الملء والكاتب الحي بروتوكول تعارض ونشر مدعوماً، لا اسمين مختلفين. راع القراء ومراجع التعافي قبل إزالة الملفات القديمة.

أثبت حفظ المحتوى عند دمج الأجزاء

يضم الدمج أجزاء فيزيائية لتقليل الكلفة مع حفظ السجلات المنطقية المعلنة. يقارن النموذج المحلي تعدد العناصر قبل الجمع وبعده، فيبقى عدد مرات التكرار جزءاً من الثابت. لا ينشئ Parquet أو معاملة صيغة جدول. يجب أن يحفظ الدمج الحقيقي المخطط ودلالة الحذف والقسم ومراجع اللقطة، ويحتاج سعة مؤقتة كافية. لا تثبت قلة الملفات صحة النتيجة إذا سقطت سجلات أو تكررت. سجل التحسن الفيزيائي ودليل المصالحة المنطقية معاً.

python نموذج دمج يحفظ تعدد العناصر محلياً
from collections import Counter

parts = [[('e1', 10)], [('e2', 20), ('e2', 20)]]
before = Counter(row for part in parts for row in part)
combined = [row for part in parts for row in part]
assert Counter(combined) == before
assert len(parts) == 2 and len(combined) == 3

يبقى تكرارe2؛ يتغير التجميع الفيزيائي لا سياسة منع التكرار.

قيم البايتات والملفات وكلفة التعديل معاً

يعالج إسقاط الأعمدة والضغط وإحصاءات مجموعات الصفوف واستبعاد الأقسام كلف وصول مختلفة. Parquet صيغة ملف؛ وتضيف Iceberg وصيغ مشابهة بروتوكولات وصف وحفظ فوق الملفات. لا تدع تحديثاً ذرياً متعدد الملفات لمجرد صلاحية كل ملف. قس قراءات ممثلة وعدد الملفات والبايتات المفحوصة وتضخيم الكتابة وسعة الصيانة بالمحرك المعتمد. احفظ إصدارات الأدوات وقرارات التخطيط في المنشأ، حتى يمكن تتبع تراجع الأداء أو القسم الخاطئ إلى تغيير محدد، لا تخمينه من لوحة.

الأخطاء الشائعة وإصلاحها

يحذف الاستبدال بالمتغير سجلات ثابتة

لماذا يحدث؟
اعتبرت التغييرات بديلاً كاملاً.
كيف تصلحه؟
ابن النطاق كاملاً أو استخدم دمجاً مدعوماً.
كيف تتجنب تكراره؟
اختبر التصحيح والثابت معاً.

تزيد الأقسام الصغيرة الزمن

لماذا يحدث؟
أهملت كلفة الوصف والمهام.
كيف تصلحه؟
راجع التعددية والأحجام والدمج.
كيف تتجنب تكراره؟
قس كلفة الملف والبايت.

يزيل الدمج التكرار بصمت

لماذا يحدث؟
اختلط الفيزيائي بالمنطقي.
كيف تصلحه؟
احفظ التعدد إلا بتحويل مقبول مستقل.
كيف تتجنب تكراره؟
صالح عدد الحدوث والقيم.

اختبر فهمك

1. يستبدل الملء قسم أمس بالمصحح فقط. ماذا يفقد؟

اعرض الحل المشروح

قد تختفي الصفوف الصحيحة غير المتغيرة، لأن الاستبدال يعرف عادة النطاق المختار كاملاً. أعد بناء القسم الكامل أو استخدم بروتوكول دمج أو تحديث مدعوماً صراحة، ثم صالح كل المفاتيح المتوقعة. لا يغير اسم المهمة «تصحيح» دلالة الاستبدال في التخزين.

2. هل يثبت دمج Parquet ناجح نشراً ذرياً؟

اعرض الحل المشروح

لا. قد ينتج ملفات مقروءة بينما يرى القارئ مجموعة ناقصة أو مختلطة. استخدم بروتوكول النشر المختار للجدول أو الوصف، وتحقق من حد اللقطة المقبولة. صحة صيغة الملف وصحة حفظ المجموعة متطلبان مختلفان.

أهم ما تعلمته

  • يتبع التخطيط الوصول والتصحيح والاحتفاظ.
  • تحفظ التغييرات الفيزيائية المحتوى المعلن.

المراجع الرسمية