تحسين سرعة تحميل وتنزيل ملفات Parquet عبر استخدام تقنية التجزئة المبنية على المحتوى مع طبقة التخزين Xet على منصة Hugging Face
أعلنت Hugging Face عن إدخال طبقة تخزين جديدة تسمى Xet، والتي تستخدم ميزة "الشريحة المحددة بالمحتوى" (Content-Defined Chunking) من Apache Arrow لتحسين أداء تحميل وتنزيل ملفات Parquet. تُعد هذه الميزة مفيدة بشكل خاص في تقليل تكاليف النقل والتخزين، حيث تسمح بتحميل أو تنزيل الأجزاء التي تغيرت فقط، بدلًا من إعادة نقل البيانات بالكامل. في المقال، تم عرض كيفية استخدام Parquet Content-Defined Chunking (CDC) مع PyArrow وPandas، حيث تم تفعيل الميزة من خلال إضافة المعلمة use_content_defined_chunking=True أثناء كتابة الملفات. تمت محاكاة العديد من السيناريوهات مثل إعادة تحميل نسخة مطابقة للجدول، وإضافة أو حذف أعمدة، وتغيير أنواع الأعمدة، وإضافة صفوف جديدة، وإزالة صفوف، وتغيير حجم مجموعات الصفوف، وتغيير تقسيم الملفات. في السيناريو الأول، عند إعادة تحميل جدول مطابق، لم يتم تحميل أي بيانات جديدة، مما يدل على أن Xet يمكنه التعرف على الملفات المكررة وتجنب إعادة نقلها. في حالة إضافة أعمدة جديدة، تم تحميل أجزاء صغيرة فقط من البيانات، بينما في حالة حذف الأعمدة، تم تحميل البيانات فقط في قسم الملفات المخصصة للملفات. كما أن تغيير نوع العمود من int64 إلى int32 أدى إلى تحميل بيانات أقل بشكل كبير. في حالات إضافة أو حذف صفوف، كانت تأثيرات التغييرات كبيرة على محتوى الملفات، مما أدى إلى تقليل أداء التكرار. لكن بتفعيل ميزة Parquet CDC، تحسن الأداء بشكل ملحوظ، حيث تم تقليل حجم البيانات المنقولة بشكل كبير. بالإضافة إلى ذلك، عند استخدام حجم مجموعات صفوف مختلف، تأثرت النتائج بشكل طفيف، لكن مع Parquet CDC، تحسنت كفاءة التكرار. كما أن استخدام تقسيم ملفات مختلف تمكن من تكرار البيانات بشكل فعال، حتى لو كانت البيانات مقسومة في حدود مختلفة. في النهاية، أظهرت النتائج أن استخدام Parquet CDC مع Xet يقلل بشكل كبير من وقت التحميل والتنزيل، ويزيد من كفاءة التخزين. كما أن الميزة متاحة في Pandas أيضًا، مما يسمح للمستخدمين بتقليل تكاليف البيانات دون التأثير على الأداء. Hugging Face هي منصة تقدم خدمات في مجال الذكاء الاصطناعي وتخزين البيانات، وتسعى لتحسين أداء التخزين والنقل من خلال تقنيات مثل Xet وParquet CDC.