HeadlinesBriefing favicon HeadlinesBriefing.com

ضغط Iceberg: 1000 إلى 6، تأثير

Towards Data Science •
×

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

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

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