أفضل 5 ميزات رئيسية لـ Apache Iceberg لبحيرات البيانات الحديثة

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

واجهت تحديات مماثلة أثناء تصميم الأنظمة الموزعة واسعة النطاق في العقد 2010 لشركة تقنية كبيرة وعميل في مجال الرعاية الصحية. تحتاج بعض الصناعات إلى هذه القدرات للامتثال للوائح المصرفية والمالية والصحية. واجهت الشركات الثقيلة المعتمدة على البيانات مثل Netflix تحديات مماثلة أيضًا. لقد اخترعوا تنسيق جدول يسمى “Iceberg”، والذي يقع فوق الملفات البيانية الموجودة ويوفر ميزات رئيسية بالاستفادة من بنيته. وقد أصبح هذا بسرعة المشروع الأهم في ASF حيث اكتسب اهتمامًا سريعًا في مجتمع البيانات. سأستكشف في هذه المقالة أهم 5 ميزات لـ Apache Iceberg مع أمثلة ورسوم بيانية.

1. السفر عبر الزمن

الشكل 1: السفر عبر الزمن في تنسيق جدول Apache Iceberg (الصورة من إنشاء المؤلف)

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

SQL

 

2. تطور المخطط

يسمح تطور مخطط Apache Iceberg بإجراء تغييرات على مخططك دون أي جهد كبير أو عمليات ترحيل مكلفة. مع تطور احتياجات عملك، يمكنك:

  • إضافة وإزالة الأعمدة دون أي توقف أو إعادة كتابة للجداول.
  • تحديث العمود (التوسيع).
  • تغيير ترتيب الأعمدة.
  • إعادة تسمية عمود موجود.

تتم معالجة هذه التغييرات على مستوى البيانات الوصفية دون الحاجة إلى إعادة كتابة البيانات الأساسية.

SQL

 

3. تطور التقسيم

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

SQL

 

4. معاملات ACID

يوفر Iceberg دعمًا قويًا للمعاملات من حيث الذرية، التناسق، العزل، والدوام (ACID). يسمح بعمليات كتابة متزامنة متعددة، مما يمكّن من تحقيق إنتاجية عالية في الوظائف المكثفة بالبيانات دون المساس بتناسق البيانات.

SQL

 

جميع العمليات في Iceberg تكون معاملاتية، مما يعني أن البيانات تظل متسقة بغض النظر عن الفشل أو التعديلات المتزامنة على البيانات.

SQL

 

كما يدعم مستويات عزل مختلفة، مما يسمح لك بتوازن الأداء والتناسق بناءً على المتطلبات.

SQL

 

إليك ملخص يوضح كيف يتعامل Iceberg مع التحديثات والحذف على مستوى الصفوف.

الشكل 2: عملية حذف السجلات في Apache Iceberg (الصورة أنشأها المؤلف)

5. عمليات الجدول المتقدمة

يدعم Iceberg عمليات جدولة متقدمة مثل:

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

تم تصميم Iceberg للعمل مع جميع تخزين السحابة الرئيسية، مثل AWS S3، GCS، وAzure Blob Storage. كما يتكامل Iceberg بسهولة مع محركات معالجة البيانات مثل Spark، Presto، Trino، وHive.

أفكار نهائية

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

Source:
https://dzone.com/articles/key-features-of-apache-iceberg-for-data-lakes