كتالوج الخلية
نظره عامه
ال كتالوج الخلية هو كتالوج بيانات وصفية مستخدم على نطاق واسع لبيئات Spark و Hadoop و البيانات الضخمة. في جوهره ، يخزن مخططات الجدول والمواقع والبيانات الوصفية الأخرى في قاعدة بيانات مركزية تسمى Hive Metastore . هذا يجعل من الممكن ل Spark ومحركات الحوسبة الأخرى العثور على الجداول والوصول إليها باستمرار عبر وظائف وجلسات متعددة.
بعبارات أبسط ، يشبه كتالوج Hive السجل أو "جدول المحتويات" لبحيرة البيانات الخاصة بك - تعقب الجداول الموجودة والمخططات والأقسامها ومكان وجود بياناتها فعليا (على سبيل المثال، على HDFS أو S3 أو MinIO).
يدمج Ilum كتالوج Hive بعمق ، مما يجعله الكتالوج الافتراضي لجميع استعلامات SQL والوظائف والمجموعات ما لم يتم تحديد آخر.
على عكس الكتالوجات الشبيهة ب Git (على سبيل المثال ، Nessie) ، يتتبع Hive فقط أحدث حالة من كل جدول إنه كذلك لا دعم التفريع أو الالتزام بالتاريخ أو السفر عبر الزمن عبر الكتالوج بأكمله. ومع ذلك ، فهي موثوقة وناضجة ومتوافقة عالميا مع نظام بيئي ضخم.

Hive مقابل كتالوجات البيانات الأخرى
إليك كيفية مقارنة كتالوج Hive بالبدائل الحديثة مثل Nessie أو AWS Glue:
-
لا يوجد تحكم في الإصدار: تحتفظ Hive بأحدث إصدار فقط من كل جدول. لا يدعم التفريع أو وضع العلامات أو الالتزام بالمحفوظات على مستوى الكتالوج. لتتبع الحالات التاريخية ، يجب أن تعتمد على الميزات الخاصة بتنسيق الجدول (مثل السفر عبر الزمن في Iceberg أو Delta) ، وليس Hive نفسها.
-
البيانات الوصفية المركزية: يتم تخزين مخططات الجدول والمواقع والتقسيم في قاعدة بيانات Hive Metastore. يضمن ذلك بيانات تعريف متسقة عبر جميع مهام Spark والمحركات التي تستخدم الكتالوج.
-
التوافق العالمي: يتم دعم Hive Metastore من قبل جميع محركات البيانات الضخمة تقريبا (Spark و Hive و Trino و Flink وما إلى ذلك) ، مما يجعله افتراضيا آمنا لبيئات التكنولوجيا المختلطة.
-
لا توجد معاملات متعددة الجداول: الحركات الذرية على مستوى الكتالوج (التي تغطي جداول متعددة في وقت واحد) هي لا مدعم. يتم التعامل مع كل عملية DDL / DML على حدة.
-
لا يوجد عزل فرع: لعزل بيئات التطوير/التدريج/الإنتاج، يجب عليك الاحتفاظ بكتالوجات أو قواعد بيانات متعددة، أو نسخ البيانات فعليا، ولا توجد آلية "تفرع" مضمنة.
المفاهيم الأساسية في كتالوج Hive
Hive Metastore
ال Hive Metastore هي خدمة وقاعدة بيانات دعم (غالبا PostgreSQL أو MySQL) حيث يتم تخزين جميع بيانات التعريف حول الجداول وطرق العرض والأقسام.
عندما يستعلم Spark أو محرك آخر عن جدول ، فإنه يبحث عن التفاصيل في Hive Metastore.
الجداول وقواعد البيانات والتخزين
- المناضد حدد المخطط وموقع التخزين لمجموعات البيانات الخاصة بك.
- قواعد البيانات في Hive توجد مساحات أسماء لتجميع الجداول ذات الصلة.
- موقع المستودع هو المجلد الجذر (على HDFS أو S3 أو أي وحدة تخزين أخرى) حيث توجد ملفات بيانات الجدول.
استخدام كتالوج Hive في Ilum
يقوم Ilum تلقائيا بتكوين كتالوج Hive كافتراضي لمهام Spark واستعلامات SQL Viewer ومجموعات البنية الأساسية لبرنامج ربط العمليات التجارية.
يمكنك تشغيل أوامر SQL القياسية مثل:
خلق قاعدة بيانات لو لا موجود ميد بي ;
خلق جدول لو لا موجود ميد بي . مبيعات ( تاريخ خيط , مبلغ الباحث ) ;
أدخل إلى ميد بي . مبيعات القيم ( '2025-06-01' , 1000 ) ;
اختار * من ميد بي . مبيعات ;
تكوين الشرارة للخلية
إذا قمت بتشغيل Spark يدويا، فقم بتعيين هذه المعلمات لتمكين دعم Hive:
spark.sql.catalogImplementation=خلية
spark.hadoop.hive.metastore.uris=thrift://ilum-hive-metastore:9083
لكن يتعامل Ilum مع هذا نيابة عنك في جميع مهام سير العمل القياسية - لا يلزم تكوين يدوي.
إعداد Hive Metastore في Ilum
عادة ، يتطلب استخدام كتالوج Hive ما يلي:
- تثبيت خدمة Hive Metastore.
- تكوين قاعدة بيانات دعم (مثل PostgreSQL أو MySQL) للبيانات الوصفية.
- توصيل الخدمة بتخزين الكائنات الخاص بك (HDFS و S3 و MinIO و GCS و WASBS).
- إعداد خيارات الأمان والشبكة والتخزين.
يقوم Ilum بأتمتة كل هذه الخطوات!
عندما تقوم بنشر Ilum عبر Helm، فإنه يوفر لك تكامل Hive Metastore وقاعدة البيانات وتخزين الكائنات.
تمكين Hive Metastore
لتمكين Hive Metastore في Ilum ، أضف هذه العلامات إلى ترقية / تثبيت Helm:
ترقية Helm \
--set ilum-hive-metastore.enabled=true \
--set ilum-core.metastore.enabled=true \
--set ilum-core.metastore.type=hive \
- إعادة استخدام قيم ilum ilum / ilum
استخدام بيانات اعتماد PostgreSQL المخصصة
إذا كنت تريد استخدام قاعدة بيانات PostgreSQL مخصصة ل Hive Metastore:
ترقية Helm \
--set postgresql.auth.username=customuser \
--set postgresql.auth.password="اختر كلمة المرور" \
- إعادة استخدام قيم ilum ilum / ilum
قم بتكوين Hive Metastore لاستخدام بيانات الاعتماد هذه:
ترقية Helm \
--set ilum-hive-metastore.postgresql.auth.password="اختر كلمة المرور" \
--set ilum-hive-metastore.postgresql.auth.username=customuser \
- إعادة استخدام قيم ilum ilum / ilum
إعداد Hive Metastore: التخزين
التخزين ، الذي يشار إليه أيضا باسم المستودع ، هو الموقع الذي يتم فيه تخزين البيانات الفعلية. تدعم Hive العديد من الواجهات الخلفية للتخزين ، بما في ذلك:
- HDFS (نظام الملفات الموزعة Hadoop)
- أمازون S3 الدلاء و ميني آيو
- التخزين السحابي من Google (GCS)
- كائن ثنائي كبير الحجم لتخزين Windows Azure (WASBS)
عادة ، ستحتاج إلى إعداد أحد خيارات التخزين هذه وتكوين اتصال Metastore الخاص ب Hive وفقا لذلك داخل ملف XML.
ومع ذلك ، مع إيلوم ال S3 MinIO تم تكوين التخزين مسبقا لك، وقد تم إعداد Hive Metastore بالفعل لاستخدامه افتراضيا. تكوين الخلفيات الأخرى للتخزين
إذا كنت تفضل استخدام خلفية تخزين بديلة ، فيمكنك تكوين Hive للعمل معها عن طريق إعادة تكوين قيم الدفة الخاصة بك:
من أجل S3 التخزين أو ميني آيو :
ترقية Helm
--set ilum-hive-metastore.storage.type="s3" \
--set ilum-hive-metastore.storage.metastore.warehouse="s3a://yourbucket/yourfolder" \
--set ilum-hive-metastore.storage.s3.accessKey="your_access_key" \
--set ilum-hive-metastore.storage.s3.secretKey = "your_secret_key" \
--set ilum-hive-metastore.storage.s3.host="yourhost" \
--set ilum-hive-metastore.storage.s3.port=yourport \
- إعادة استخدام قيم ilum ilum / ilum
من أجل جي سي إس :
ترقية Helm
--set ilum-hive-metastore.storage.type="GCS" \
--set ilum-hive-metastore.storage.metastore.warehouse="gs://my-gcs-bucket/path/to/folder/" \
--set ilum-hive.metastore.storage.gcs.clientEmail="your@email" \
--set ilum-hive-metastore.storage.gcs.privateKey="yourprivatekey" \
--set ilum-hive-metastore.storage.gcs.privateKeyId="privatekeyid" \
- إعادة استخدام قيم ilum ilum / ilum
من أجل WASBS :
ترقية Helm
--set ilum-hive-metastore.storage.type="wasbs" \
--set ilum-hive-metastore.storage.metastore.warehouse="wasbs:// [البريد الإلكتروني محمي] /path/to/folder/" \
--set ilum-hive-metastore.storage.wasbs.accountName="youraccountname" \
--set ilum-hive-metastore.storage.wasbs.accessKey="youraccesskey" \
- إعادة استخدام قيم ilum ilum / ilum
من أجل HDFS :
هنا سوف تحتاج إلى تحديد تكوينات hdfs الخاصة بك في
ilum-hive-metastore.storage.hdfs.config
يمكنك توفيرها في hdfs-config.yaml :
ترقية Helm
--set ilum-hive-metastore.storage.type="hdfs" \
--set ilum-hive-metastore.storage.metastore.warehouse="hdfs://node:port/path/to/folder" \
--set ilum-hive-metastore.storage.hdfs.hadoopUsername="yourusername" \
- إعادة استخدام قيم ilum ilum / ilum \
-f hdfs-config.yaml
أفضل الممارسات والتوصيات
- استخدم Hive لتحقيق أقصى قدر من التوافق: Hive Metastore هو "القاسم المشترك" العالمي لمحركات البيانات الضخمة.
- للتحكم في الإصدار ، استخدم Iceberg أو Nessie: إذا كنت بحاجة إلى التفريع أو السفر عبر الزمن أو سجل الالتزام، فقم بدمج كتالوج Hive مع تنسيق جدول (مثل Iceberg) يدعم هذه الميزات - أو استخدم Nessie ككتالوج الخاص بك.
- قم بتأمين Metastore الخاص بك: استخدم دائما بيانات اعتماد قوية وقيودا على الشبكة لقاعدة بيانات وخدمة Hive Metastore.
- مراقبة تخزين المستودعات: تأكد من نسخ المستودع الخاص بك (MinIO و S3 و HDFS وما إلى ذلك) ومراقبته للتأكد من صحتك والمساحة المتاحة.
التعرف على المزيد
لمزيد من المعلومات حول استخدام كتالوج Hive، راجع وثائق Hive Metastore .
للحصول على تكوين Ilum التفصيلي ومرجع Helm ، قم بزيارة دليل Ilum للبدء .
يجمع كتالوج Hive في Ilum بين سهولة الاستخدام والأتمتة والتوافق الواسع - مما يمنحك أساسا قويا لتحليلات SQL وهندسة البيانات على نطاق واسع.