ما المقصود بـ Apache Iceberg؟
Apache Iceberg عبارة عن تنسيق جدول بيانات موزَّع وموجه للمجتمع ومرخص من Apache 2.0 ومفتوح المصدر بنسبة 100% يساعد في تبسيط معالجة البيانات على مجموعات البيانات الكبيرة المخزنة في مخازن البيانات. يستخدم مهندسو البيانات تنسيق Apache Iceberg لأنه سريع وفعّال وموثوق به على أي نطاق، ويحتفظ بسجلات لكيفية تغيُّر مجموعات البيانات بمرور الوقت. يوفر تنسيق Apache Iceberg عمليات تكامل سهلة مع أطر عمل معالجة البيانات الشائعة، مثل Apache Spark وApache Flink وApache Hive وPresto وغيرها.
ما مخزن البيانات الخاص بالمعاملات؟
مخزن البيانات هو مستودع مركزي يتيح لك تخزين كل بياناتك المهيكلة وغير المهيكلة على أي نطاق. ومعاملة البيانات هي سلسلة من عمليات تبادل البيانات التي تُجرى في عملية واحدة. فعلى سبيل المثال، عندما يسحب العميل أموالاً من حساب بنكي، يجري البنك العديد من عمليات تبادل البيانات في الوقت نفسه في معاملة بيانات واحدة، ويدخل في ذلك التحقق من وجود رصيد كافٍ في الحساب، والتحقق من صحة الهوية، وخصم السحب من الحساب. مخزن بيانات المعاملات هو أحد أنواع مخزن البيانات الذي لا يخزن البيانات على نطاق واسع فحسب، بل يدعم أيضًا العمليات الخاصة بالمعاملات، ويضمن دقة البيانات واتساقها، ويسمح لك بتتبع طريقة تغيير البيانات وبنية البيانات بمرور الوقت. وتُعرف هذه الخصائص مجتمعة بخصائص الدقة والاتساق والعزل والقدرة على التحمل (ACID):
- الدقة تضمن أن كل معاملة هي حدث واحد قد ينجح أو يفشل تمامًا؛ إذ لا توجد حالة وسط بينهما.
- الاتساق يضمن أن كل البيانات المكتوبة سارية وفقًا للقواعد المحددة في مخزن البيانات، ما يضمن دقة البيانات وموثوقيتها.
- العزل يضمن حدوث معاملات متعددة في الوقت نفسه بدون أن تتداخل مع بعضها؛ ما يضمن تنفيذ كل معاملة بشكل مستقل.
- القدرة على التحمل تعني عدم تعرض البيانات للفقد أو التلف بمجرد تقديم المعاملة. ويمكن استعادة البيانات في حالة فشل النظام، مثل انقطاع التيار الكهربائي.
ما مزايا استخدام تنسيق Apache Iceberg؟
تتضمن بعض المزايا الرئيسة لاستخدام Apache Iceberg في مخازن البيانات الخاصة بالمعاملات ما يلي:
- معرفة لغة SQL: لغة الاستعلام المهيكل (SQL) هي لغة استعلام شائعة تُستخدم غالبًا في جميع أنواع التطبيقات. يتعلم محللو البيانات والمطورون لغة الاستعلام المهيكل (SQL) ويستخدمونها؛ لأنها تتكامل جيدًا مع مختلف لغات البرمجة بالإضافة إلى أنها تتميز بسهولة التعلم إلى حد ما؛ حيث إنها تستخدم كلمات أساسية شائعة باللغة الإنجليزية في بياناتها. ويسمح تنسيق Apache Iceberg لأي مستخدم يكون على دراية بلغة الاستعلام المهيكل (SQL) بإنشاء مخازن بيانات وإجراء معظم عمليات مخازن البيانات بدون الحاجة إلى تعلم لغة جديدة.
- اتساق البيانات: يوفر تنسيق Apache Iceberg ميزة اتساق البيانات لضمان أن أي مستخدم يقرأ البيانات ويكتبها يمكنه عرض البيانات نفسها.
- بنية البيانات: يسمح تنسيق Apache Iceberg بإجراء تغييرات بسيطة على بنية البيانات لديك، المعروفة أيضًا باسم تطور المخطط؛ ما يعني أنه يمكن للمستخدمين إضافة أعمدة أو إعادة تسميتها أو إزالتها من جدول البيانات بدون تعطيل البيانات الأساسية.
- إصدارات البيانات: يوفر تنسيق Apache Iceberg دعمًا لإصدارات البيانات؛ ما يسمح للمستخدمين بتتبع التغييرات التي تطرأ على البيانات بمرور الوقت. ويتيح ذلك ميزة الانتقال عبر الزمن التي تتيح للمستخدمين الوصول إلى إصدارات البيانات السابقة والاستعلام عنها وتحليل التغييرات التي تطرأ على البيانات ما بين التحديثات وعمليات الحذف.
- الدعم عبر النظام الأساسي: يدعم تنسيق Apache Iceberg مجموعة متنوعة من مختلف أنظمة التخزين ومحركات الاستعلامات، بما يشمل Apache Spark وApache Hive وPresto. ويجعل ذلك من السهل استخدام Iceberg في مجموعة متنوعة من بيئات معالجة البيانات المختلفة.
- المعالجة التزايدية: يدعم تنسيق Iceberg المعالجة التزايدية بحيث يسمح للمستخدمين بمعالجة البيانات التي تغيرت منذ آخر تشغيل فقط والمعروفة أيضًا باسم تغيير التقاط البيانات (CDC). ويمكن أن يساعد ذلك في تعزيز كفاءة معالجة البيانات وتحسين الأداء.
ما حالات الاستخدام الشائعة لتنسيق Apache Iceberg؟
يناسب Apache Iceberg العديد من حالات استخدام مخزن البيانات، بما يتضمن:
- جداول البيانات في مخازن البيانات التي تتطلب عمليات حذف متكررة، مثلما يحدث عند إنفاذ قوانين خصوصية البيانات.
- جداول البيانات في مخزن البيانات التي تتطلب تحديثات على مستوى السجلات. ويكون ذلك مفيدًا عندما تتطلب مجموعة البيانات تحديثات متكررة بعد تسوية البيانات، فعلى سبيل المثال، بيانات المبيعات التي قد تتغير بسبب أحداث لاحقة، مثل عمليات الإرجاع التي يجريها العملاء. يوفر Iceberg الإمكانيات اللازمة لتحديث السجلات الفردية بدون الحاجة إلى إعادة نشر مجموعة البيانات بالكامل.
- جداول البيانات في مخازن البيانات التي تتضمن التغييرات غير المتوقعة، مثل جداول البُعد المتغير ببطء (SCD). ومن الأمثلة على البُعد المتغير ببطء (SCD) جدول سجل العميل الذي يتضمن الاسم والموقع ومعلومات الاتصال التي قد تتغير بمرور الوقت على فترات غير معروفة.
- عندما تتطلب المعاملات مع مخزن البيانات ضمان صحة البيانات وتحقيق القدرة على التحمل والموثوقية، يمكن نشر تنسيقات جدول Apache Iceberg لضمان إجراء معاملات تتسم بالدقة والاتساق والعزل والقدرة على التحمل (ACID).
- عندما يلزم العودة في الوقت المناسب للاستعلام عن الإصدارات السابقة للبيانات بغرض إجراء تحليل الاتجاهات أو تحليل التغييرات التي تطرأ على البيانات خلال فترة زمنية أو لاستعادة الإصدار السابق أو العودة إليه لتصحيح الأخطاء.
مَن يستخدم Apache Iceberg؟
يُعد مهندسو البيانات ومسؤولو البيانات ومحللو البيانات وعلماء البيانات ضمن الشخصيات التي تستخدم Apache Iceberg. ويمكن لمهندسي البيانات ومسؤولي البيانات استخدام Apache Iceberg في تصميم أنظمة مخزن بيانات قابل للتوسعة وإنشائها. ويمكن أيضًا لمحللي البيانات وعلماء البيانات استخدام Apache Iceberg في تحليل مجموعات بيانات كبيرة بكفاءة.
ما أسباب اختيار تنسيق Apache Iceberg؟
يوفر تنسيق Apache Iceberg طريقة سريعة وفعالة لمعالجة مجموعات البيانات الكبيرة على نطاق واسع. تحقق المزايا التالية:
- المصدر المفتوح: إن تنسيق Apache Iceberg هو مشروع مفتوح المصدر؛ ما يعني أنه يمكن استخدامه مجانًا ويمكن تخصيصه لتلبية احتياجاتك الخاصة. ويتضمن أيضًا مجتمعًا نشطًا من المطورين الذين يعملون باستمرار على تحسين الميزات الحالية وإضافة ميزات جديدة إلى المشروع.
- قابلية التوسع: يهدف تنسيق Apache Iceberg إلى التعامل مع مجموعات البيانات الكبيرة بكفاءة. ويمكنه تقسيم البيانات وتنظيمها عبر العُقد المتعددة؛ ما يساعد على توزيع عبء العمل وتسريع معالجة البيانات.
- الأداء: تنسيق Apache Iceberg له مجموعة متنوعة من الميزات لتحسين أداء الاستعلام، بما يشمل التخزين العمودي وتقنيات الضغط مثل تقنية نقل المؤكدات لأدنى وتطور المخطط.
- المرونة: يتيح لك تنسيق Apache Iceberg تغيير طريقة تنظيم بياناتك بحيث يمكن أن تتطور بمرور الوقت دون مطالبتك بإعادة كتابة استفساراتك أو إعادة بناء هياكل البيانات الخاصة بك. ويدعم أيضًا العديد من تنسيقات البيانات ومصادر البيانات؛ ما يجعل التكامل مع الأنظمة الحالية أمرًا سهلاً.
- الموثوقية: يضمن تنسيق Apache Iceberg اتساق البيانات وموثوقيتها من خلال دعمه للمعاملات. ويمكنك تتبع طريقة تغيير البيانات بمرور الوقت والرجوع إلى الإصدارات السابقة لمساعدتك في تصحيح الأخطاء.
ما خدمات AWS التي تدعم تنسيق Iceberg؟
يدعم تنسيق Apache Iceberg أُطر عمل معالجة البيانات الشائعة مثل Apache Spark وApache Flink وApache Hive وPresto. وتتضمن خدمات AWS مثل Amazon Redshift وAmazon Athena وAmazon EMR وAWS Glue دعمًا أصليًا لأُطر عمل مخزن البيانات الخاص بالمعاملات، بما يشمل تنسيق Apache Iceberg. يتيح تنسيق Apache Iceberg جنبًا إلى جنب مع خدمات AWS المدعومة توفير مخزن بيانات خاص بالمعاملات يعتمد غالبًا على التخزين في S3.
- Amazon Redshift عبارة عن خدمة تحليلات SQL وتخزين البيانات مُدارة بالكامل ومدعومة بالذكاء الاصطناعي لدفع عملية صنع القرار التجاري للعملاء بسرعة وفعالية من حيث التكلفة. توفر Amazon Redshift بنية المعالجة المتوازية الضخمة (MPP) ومتعددة المجموعات وبدون خادم مع إمكانات zero-ETL التي تقود التحليلات في الوقت الفعلي تقريبًا وحالات استخدام الذكاء الاصطناعي/تعلم الآلة مع مشاركة البيانات. يمكن للعملاء استخدام Amazon Redshift للاستعلام عن جداول Apache Iceberg في مخزن البيانات، والتي يمكن الوصول إليها من خلال كتالوج بيانات AWS Glue والانضمام إليها مع جداولهم في مستودع البيانات لإجراء تحليلات شاملة.
- Amazon Athena هي خدمة تحليلات تفاعلية بلا خادم قائمة على أُطر عمل مفتوحة المصدر؛ ما يدعم تنسيقات الملفات والجداول المفتوحة. توفر Athena طريقة مبسطة ومرنة لتحليل بيانات بالبيتابايت في مكان وجودها. توفر خدمة Athena دعمًا أصليًا لاستعلامات القراءة والانتقال عبر الزمن والكتابة ولغة تعريف البيانات (DDL) في جداول تنسيق Apache Iceberg التي تستخدم تنسيق Apache Parquet في البيانات وكتالوج AWS Glue في مخزن البيانات الوصفية.
- Amazon EMR هو أحد حلول البيانات الكبيرة لمعالجة البيانات المقيسة بأحجام من وحدة البيتابايت، وإجراء التحليلات التفاعلية وتعلّم الآلة باستخدام أُطر عمل مفتوحة المصدر، مثل Apache Spark وHadoop وPresto وHive. وبدايةً من الإصدار Amazon EMR 6.5.0، يمكنك استخدام الإصدار Apache Spark 3 في مجموعات Amazon EMR مع تنسيق جدول Iceberg. تدعم أُطر عمل EMR، مثل Spark وTrino وFlink وHive، تنسيق Apache Iceberg.
- AWS Glue هي خدمة لتكامل البيانات بلا خادم تجعل اكتشاف البيانات وإعدادها ونقلها ودمجها من مصادر متعددة أسهل عند إجراء التحليلات واستخدام تعلّم الآلة (ML) وتطوير التطبيقات. يدعم الإصدار AWS Glue 3.0 والإصدارات الأحدث استخدام إطار عمل تنسيق Apache Iceberg في مخازن البيانات. ويمكنك استخدام خدمة AWS Glue في إجراء عمليتَي القراءة والكتابة بجداول Iceberg في Amazon S3، أو استخدام جداول Iceberg من خلال كتالوج بيانات AWS Glue. ويوجد دعم أيضًا للعمليات الإضافية، بما يشمل الإدراج والتحديث وجميع استعلامات Spark وكتابات Spark.