في المشهد المتطور لبيانات ضخمة، برزت بنية بحيرة البيانات (Data Lakehouse) كمعيار ذهبي للتحليلات القابلة للتوسع والأداء العالي والمفتوحة. في قلب هذه الثورة يقف Apache Iceberg، وهو تنسيق جداول عالي الأداء لمجموعات البيانات التحليلية الضخمة. بينما يُعد Iceberg مكتبة جافا في جوهره، إلا أن التفاعل معه يتطلب عادةً إعداد بيئة تشغيل—سواء من خلال واجهة سطر أوامر مستقلة (CLI)، أو حاويات Docker، أو التكامل مع محركات مثل Spark أو Trino. سيأخذك هذا الدليل خلال الخطوات العملية لتثبيت والتحقق من صحة Apache Iceberg في بيئة تطوير محلية باستخدام Linux و Docker.
المتطلبات المسبقة: فهم البيئة
قبل الغوص في عملية التثبيت، من الضروري فهم أن Apache Iceberg ليس خدمة مستقلة يمكنك "تثبيتها" ببساطة مثل قاعدة البيانات. إنه مواصفات لتنسيق الجداول. لذلك، لاستخدامه، تحتاج إلى محرك تشغيل يدعم تنسيق Iceberg. نقاط الدخول الأكثر شيوعاً للمطورين هي:
- Apache Spark: المحرك الأكثر شعبية لكتابة وقراءة جداول Iceberg.
- Trino (المعروف سابقاً بـ PrestoSQL): مثالي لاستعلامات SQL التفاعلية.
- Apache Hive: للتوافق مع الأنظمة القديمة.
في هذا الدليل، سنركز على واجهة سطر أوامر Iceberg (CLI) وإعداد Spark قائم على Docker، حيث توفر هذه الخيارات أسرع طريق للبدء دون الحاجة لإدارة مجموعة Hadoop كاملة.
الطريقة 1: تثبيت واجهة سطر أوامر Iceberg عبر Homebrew
توفر واجهة سطر أوامر Iceberg أداة قوية لإدارة بيانات تعريف الكتالوج، وفحص الجداول، وإجراء العمليات الأساسية. إذا كنت تستخدم نظام macOS أو Linux مع تثبيت Homebrew، فهذه هي الطريقة الأسرع.
أولاً، تأكد من تثبيت Homebrew. ثم، قم بتشغيل الأوامر التالية لتثبيت أحدث إصدار من Iceberg:
# تحديث قائمة الحزم
brew update
# تثبيت واجهة سطر أوامر Apache Iceberg
brew install apache-iceberg
بمجرد التثبيت، يمكنك التحقق من التثبيت عن طريق فحص الإصدار:
iceberg --version
يجب أن يعيد هذا الأمر رقم الإصدار الحالي، مما يؤكد أن واجهة سطر الأوامر متاحة في مسار النظام الخاص بك. يمكنك الآن تهيئة كتالوج Hadoop محلي عن طريق تعيين ملفات التكوين المناسبة في دليلك الشخصي أو دليل العمل الحالي.
الطريقة 2: تشغيل Iceberg باستخدام Docker و Spark
لبيئة اختبار أكثر متانة، أو إذا كنت تستخدم نظاماً لا يحتوي على Homebrew، يوفر Docker طريقة معزولة وقابلة للتكرار لتشغيل Iceberg. تتضمن صور Docker الرسمية لـ Apache Iceberg مثيلات Spark مُعدة مسبقاً مع تبعيات Iceberg مدمجة فيها.
ابدأ بسحب الصورة الرسمية لـ Iceberg. يمكنك اختيار إصدار محدد من Spark؛ هنا نستخدم Spark 3.3:
docker pull apache/iceberg:spark-3.3
بمجرد تنزيل الصورة، يمكنك تشغيل حاوية Spark تتصل بنظام الملفات المحلي لـ Hadoop أو التخزين المتوافق مع S3. فيما يلي مثال لأمر لتشغيل shell Spark مع تمكين Iceberg:
docker run -it \
--name iceberg-spark \
-v ${PWD}:/home/iceberg/data \
-e AWS_REGION=us-east-1 \
-e AWS_ACCESS_KEY_ID=YOUR_ACCESS_KEY \
-e AWS_SECRET_ACCESS_KEY=YOUR_SECRET_KEY \
apache/iceberg:spark-3.3 \
spark-sql \
--conf spark.sql.extensions=org.apache.iceberg.spark.extensions.IcebergSparkSessionExtensions \
--conf spark.sql.catalog.spark_catalog=org.apache.iceberg.spark.SparkSessionCatalog \
--conf spark.sql.catalog.spark_catalog.catalog-impl=org.apache.iceberg.hive.HiveCatalog
ملاحظة: في السيناريو الواقعي، ستقوم عادةً بربط دليل البيانات المحلي الخاص بك بالحاوية وتكوين الكتالوج للإشارة إلى متجر بيانات تعريفية مثل Hive Metastore أو نظام ملفات Hadoop بسيط.
التحقق من التثبيت
بعد التثبيت، يعد التحقق خطوة أساسية. إذا استخدمت واجهة سطر الأوامر، حاول إنشاء مساحة اسم بسيطة:
iceberg catalog create --uri file:///tmp/hive_catalog
إذا كنت تستخدم Spark، قم بتشغيل أمر SQL بسيط داخل Spark Shell:
CREATE NAMESPACE my_database;
SHOW NAMESPACES;
إذا رأيت مساحة الاسم الخاصة بك مدرجة، فإن تثبيت Iceberg الخاص بك ناجح وجاهز للاستخدام.
الخاتمة
يتمثل تثبيت Apache Iceberg أكثر في تكوين بيئة التشغيل التي تدعمه بدلاً من تنزيل ملف تنفيذي. من خلال الاستفادة إما من واجهة سطر أوامر Homebrew للاختبارات المحلية السريعة أو Docker للتطوير القائم على الحاويات، يمكن للمطورين دمج Iceberg بسهولة في سير عمل هندسة البيانات الخاصة بهم. سواء كنت تبني بحيرة بيانات حديثة على AWS أو GCP أو Azure، فإن إتقان تثبيت وتكوين Iceberg هو الخطوة الأولى الحاسمة نحو فتح إمكانيات التحليلات البيانات القابلة للتوسع والمتوافقة مع ACID.