هندسة Apache Hive والأوامر: الأوضاع والخصائص والتطبيقات
نشرت: 2021-06-30جدول المحتويات
ما هي الخلية؟
خلية Apache هي أداة تخزين بيانات مفتوحة المصدر تم تطويرها بواسطة Facebook للمعالجة الموزعة وتحليلات البيانات. تم تطويره أعلى نظام الملفات الموزعة Hadoop (HDFS). يتم توفير آلية لإسقاط الهيكل على البيانات في Hadoop بواسطة Hive. تُستخدم لغة شبيهة بلغة SQL تسمى HiveQL (HQL) للاستعلام عن تلك البيانات. يوجد تشابه بين الجداول في Hive والجداول في قاعدة البيانات العلائقية. يمكن كتابة استعلامات الخلية بسهولة من قبل أي شخص على دراية بـ SQL.
بعض ميزات Hive هي:
- تخزين معلومات المخطط في قاعدة بيانات والبيانات المعالجة في HDFS.
- مصممة لـ OLAP.
- لغة الاستعلام هي HiveQL أو HQL ، والتي تشبه لغة SQL.
- إنه سريع ومألوف وقابل للتوسعة.
استخدامات الخلية
- إنها وحدة التخزين الموزعة Apache Hive.
- يتم توفير الأدوات التي تمكن المستخدمين من استخراج البيانات وتحويلها وتحميلها بسهولة.
- يتم تقديم مجموعة متنوعة من تنسيقات البيانات لتوفير الهيكل.
- يمكن الوصول إلى الملفات المخزنة في Hadoop Distributed File System (HDFS) عن طريق Hive.
أوامر الخلية
أوامر الخلية هي :
- لغة تعريف البيانات (DDL): يتم إنشاء الجداول والكائنات الأخرى في قاعدة البيانات وتعديلها من خلال هذه الأوامر.
- إنشاء: يستخدم لإنشاء جدول أو قاعدة بيانات.
- إظهار: يتم استخدامه لإظهار قاعدة البيانات والجدول والخصائص وما إلى ذلك.
- ALTER: يتم استخدامه لإجراء تغييرات على الجدول الحالي.
- الوصف: يصف أعمدة الجدول.
- اقتطاع: يُستخدم لاقتطاع صفوف الجداول وحذفها بشكل دائم.
- حذف: يحذف بيانات الجدول ، ولكن يمكن استعادتها.
- لغة معالجة البيانات (DML): تُستخدم لاسترداد البيانات في قاعدة البيانات وتخزينها وتعديلها وحذفها وإدراجها وتحديثها.
- بناء الجملة لـ LOAD ، INSERT Statements
بيانات التحميل <LOCAL> inpath <file path> في الجدول [tablename]
- بعد تحميل البيانات ، يتم استخدام أوامر معالجة البيانات لاسترداد البيانات.
- يتم استخدام دالة التجميع الإجمالية لحساب العدد الإجمالي للسجلات في جدول.
- يتم استخدام الكلمة الأساسية "إنشاء خارجية" لإنشاء جدول وتوفر موقعًا حيث سيتم إنشاء الجدول. يشير الجدول الخارجي إلى أي موقع HDFS لتخزينه.
- يتم استخدام أوامر الإدراج لتحميل جدول خلية البيانات. يتم استخدام "الإدخال الفوقي" للكتابة فوق البيانات الموجودة ويتم استخدام "الإدراج في" لإلحاق البيانات بالبيانات الموجودة.
- يتم تقسيم الجدول إلى أقسام بواسطة الأمر "مقسم بواسطة" ويتم تقسيمه إلى مجموعات بواسطة الأمر "مجمع بواسطة".
- يؤدي إدخال البيانات إلى ظهور أخطاء نظرًا لعدم تمكين القسم الديناميكي. لذلك ، يجب تعيين المعلمات التالية في غلاف Hive.
تعيين hive.exec.dynamic.partition = صحيح ؛
لتمكين الأقسام الديناميكية ، بشكل افتراضي ، هذا خطأ
تعيين hive.exec.dynamic.partition.mode = غير مقيد ؛
- يحذف أمر "إسقاط الجدول" البيانات والبيانات الوصفية للجدول
- التجميع: النحو:
حدد عدد (فئة DISTINCT) من tablename ؛
سيحسب الأمر فئات مختلفة من جداول "cate".
- التجميع: النحو:
حدد الفئة ، المبلغ (المبلغ) من مجموعة سجلات النص حسب الفئة
سيتم تجميع مجموعة النتائج في عمود واحد أو أكثر.
- الانضمام إلى العملية: قم بجمع الحقول من جدولين باستخدام القيم المشتركة لكل عمود.
- الصلة الخارجية اليسرى: بالنسبة للجدول A و B ، يجب أن تحتوي الصلة الخارجية اليسرى على كافة سجلات الجدول "الأيسر" (A) ، حتى إذا لم يعثر شرط الصلة على أي سجل مطابق في الجدول "الأيمن" (B).
- الانضمام الخارجي الأيمن: سيظهر كل صف من الجدول "الأيمن" (B) في الجدول المرتبط مرة واحدة على الأقل.
- صلة كاملة: سيحتوي الجدول المرتبط على كافة السجلات من كلا الجدولين. سيحتوي الجدول المرتبط على كافة السجلات من كلا الجدولين.
هندسة الخلية
يظهر هيكل خلية اباتشي في الشكل 1 .
قائمة المكونات الرئيسية
المكونات الرئيسية لبنية الخلية هي:
1. عميل الخلية
يتم توصيل التطبيقات المختلفة المكتوبة بلغات مثل Java و Python و C ++ وما إلى ذلك من خلال استخدام برامج تشغيل مختلفة توفرها Hive. يمكن كتابتها بأي لغة حسب الاختيار. يقوم العملاء والخوادم بدورهم بالاتصال بخادم Hive في خدمات Hive.
في الغالب يتم تصنيفهم إلى ثلاثة أنواع:
- عميل التوفير: يعتمد على Apache Thrift لخدمة طلب من عميل Thrift. سيتم استخدام عميل Thrift للاتصال للتطبيقات المستندة إلى Thrift.
- عميل JDBC: يتم توفير JDBC للتطبيقات المتعلقة بـ Java. تطبيقات Java متصلة بالخلية باستخدام برنامج تشغيل JDBC. كما أنه يستخدم Thrift للتواصل مع خادم Hive.
- عميل ODBC: يُسمح للتطبيقات القائمة على بروتوكول ODBC بالاتصال بالخلية من خلال برامج تشغيل ODBC. على غرار JDBC ، يستخدم Thrift للاتصال بخادم Hive.
2. خدمات Hive
توفر خدمات Hive وسائل لتفاعل Hive مع العملاء. أي عمليات متعلقة بالاستعلام يجب أن يقوم بها العميل يجب أن يتم الإبلاغ عنها من خلال خدمات Hire. بالنسبة لعمليات لغة تعريف البيانات (DDL) ، تعمل CLI كخدمة الخلية.
يجب على جميع السائقين الاتصال بخادم Hive ثم بالمشغل الرئيسي في خدمات Hive. تمثل برامج التشغيل في خدمات Hive المحرك الرئيسي الذي يتواصل مع التطبيقات الخاصة بالعميل وجميع أنواع JDBC و ODBC وما إلى ذلك. تتم معالجة الطلبات الواردة من التطبيقات المختلفة بواسطة السائق إلى الأنظمة المحمولة والأنظمة الميدانية التي ستتم معالجتها بشكل أكبر.
الخدمات التي تقدمها Hive هي:
- الخط المباشر: الخط الخطي عبارة عن غلاف أوامر حيث يمكن للمستخدم إرسال استعلاماته إلى النظام. وهو مدعوم من HiveServer2. إنه عميل JDBC الذي يعتمد على SQLLINE CLI.
- خادم الخلية 2: يُسمح للعملاء بتنفيذ الاستعلامات على الخلية. خليفة HiveServer1 ، يسمح بتنفيذ استعلامات متعددة من عملاء متعددين. يوفر أفضل دعم لعملاء API المفتوحين مثل JDBC و ODBC.
- محرك الخلية Hive Driver: يرسل المستخدم عبارات HiveQL إلى برنامج تشغيل Hive من خلال غلاف الأوامر. يرسل الاستعلام إلى المترجم ويقوم بإنشاء مقابض الجلسة للاستعلام.
- مترجم Hive: يستخدم مترجم Hive لتمرير الاستعلام. باستخدام البيانات الوصفية المخزنة في metastore ، يقوم مترجم Hive بإجراء التحليل الدلالي والتحقق من النوع على مجموعات وتعبيرات الاستعلام المختلفة. ثم يتم إنشاء خطة تنفيذ من قبل المترجم وهو DAG (الرسم البياني Acyclic الموجه). كل مرحلة من DAG عبارة عن عملية بيانات وصفية ، أو عملية على HDFS ، أو عبارة عن خريطة / وظيفة تصغير.
- المُحسِّن: يتمثل الدور الرئيسي للمحسن في إجراء عمليات التحويل في خطة التنفيذ. يزيد من الكفاءة وقابلية التوسع عن طريق تقسيم المهام.
- محرك التنفيذ : بعد الانتهاء من خطوات التجميع والتحسين ، فإن دور محرك التنفيذ هو الذي ينفذ خطة التنفيذ التي أنشأها المترجم. يتم تنفيذ الخطة باستخدام Hadoop بترتيب تبعياتها.
- Metastore : Metastore هو بشكل عام قاعدة بيانات علائقية تخزن معلومات البيانات الوصفية المتعلقة بهيكل الجداول والأقسام. إنه مستودع مركزي يتضمن أيضًا تخزين معلومات أنواع الأعمدة والأعمدة. يتم أيضًا تخزين المعلومات المتعلقة بالمسلسل وإلغاء التسلسل في Metastore وهو مطلوب لعمليات القراءة / الكتابة جنبًا إلى جنب مع ملفات HDFS التي تخزن البيانات. يتم توفير واجهة Thrift بواسطة Metastore للاستعلام عن بيانات تعريف Hive ومعالجتها.
يمكن تكوين Metastore في وضعين:
- عن بعد: هذا الوضع مفيد للتطبيقات بخلاف Java وفي الوضع البعيد يكون metastore عبارة عن خدمة التوفير.
- مضمن: في هذا الوضع ، يمكن للعميل التفاعل مباشرة مع metastore من خلال JDBC.
- كتالوج HC: إن طبقة إدارة الجدول والتخزين لـ Hadoop هي كتالوج HC. تتوفر أدوات معالجة البيانات المختلفة لقراءة البيانات وكتابتها على الشبكة مثل Pig و MapReduce وما إلى ذلك. المبنية على الجزء العلوي من Hive metastore ، تتعرض البيانات المجدولة لـ Hive metastore لأدوات معالجة البيانات الأخرى.
- WebHCat: WebHCat هي واجهة HTTP وواجهة برمجة تطبيقات REST لـ HCatalog. ينفذ عمليات البيانات الوصفية Hive ويقدم خدمة لتشغيل وظائف Hadoop MapReduce (أو YARN) ، Pig ، Hive.
3. المعالجة وإدارة الموارد
يتم تنفيذ الاستعلامات بواسطة إطار عمل MapReduce داخلي.
إطار عمل MapReduce هو إطار عمل برمجي لمعالجة كميات كبيرة من البيانات على مجموعات كبيرة من أجهزة السلع. يتم تقسيم البيانات إلى أجزاء ثم معالجتها بواسطة مهام تقليل الخريطة.
4. التخزين الموزع
تتواصل خدمات Hive مع تخزين Hive لتنفيذ الإجراءات التالية:
- تحتفظ Hive "Meta storage database" بمعلومات البيانات الأولية للجداول التي تم إنشاؤها في Hive.
- ستقوم مجموعة Hadoop على HDFS بتخزين نتائج الاستعلام والبيانات التي تم تحميلها على الجداول.
طرق مختلفة للخلية
اعتمادًا على حجم البيانات ، يمكن أن تعمل الخلية في وضعين.
- وضع المحلي
عندما يتم استخدام الوضع المحلي للخلية
- يحتوي Hadoop المثبت على عقدة بيانات واحدة ويتم تثبيته في الوضع الزائف.
- حجم البيانات لجهاز محلي واحد أصغر.
- معالجة سريعة على الأجهزة المحلية بسبب مجموعات البيانات الأصغر الموجودة.
- وضع تقليل الخريطة
يتم استخدام وضع تقليل الخريطة في الخلية عندما
- يحتوي Hadoop على عقد بيانات متعددة مع بيانات موزعة عبر العقد المختلفة.
- حجم البيانات أكبر والتنفيذ المتوازي للاستعلام مطلوب.
- يمكن معالجة مجموعات البيانات الكبيرة بأداء أفضل.
خصائص الخلية
- يتم تحميل البيانات في الجداول بعد إنشاء الجداول وقواعد البيانات.
- فقط البيانات المهيكلة المخزنة في الجداول يمكن إدارتها والاستعلام عنها بواسطة Hive.
- يتميز إطار عمل Hive بميزات التحسين وسهولة الاستخدام أثناء التعامل مع البيانات المنظمة غير الموجودة في Map Reduce.
- لسهولة الاستخدام ، تعد لغة Hive المستوحاة من SQL طريقة أبسط مقارنة بلغة البرمجة المعقدة لـ Map Reduce. تستخدم المفاهيم المألوفة للجداول والصفوف والأعمدة وما إلى ذلك في الخلية.
- لزيادة أداء الاستعلامات ، يمكن لـ Hive تقسيم البيانات باستخدام بنية الدليل.
- تحتوي الخلية على مكون مهم يسمى "Metastore" والذي يوجد في قاعدة بيانات علائقية ويخزن معلومات المخطط. يمكن استخدام طريقتين للتفاعل مع Hive: واجهة واجهة المستخدم الرسومية للويب وواجهة اتصال قاعدة بيانات جافا (JDBC).
- يتم استخدام واجهة سطر الأوامر (CLI) لمعظم التفاعلات. يتم استخدام CLI لكتابة استعلامات Hive باستخدام لغة استعلام الخلية (HQL).
- إن بناء جملة HQL مشابه لتلك الموجودة في بناء جملة SQL.
- أربعة تنسيقات ملفات مدعومة من قبل Hive ؛ TEXTFILE و SEQUENCEFILE و ORC و RCFILE (تسجيل ملف عمودي).
خاتمة
Apache Hive هي أداة تخزين بيانات مفتوحة المصدر تتكون من مكونات رئيسية مثل عملاء Hive وخدمات Hive وإطار عمل المعالجة وإدارة الموارد والتخزين الموزع.
إنه مبني على قمة نظام Hadoop البيئي لمعالجة الهياكل والبيانات شبه المنظمة. تتيح واجهة المستخدم التي يوفرها Hive للمستخدم إرسال استفساراته بلغة Hive Query Language (HQL). يتم تمرير هذا إلى المترجم لإنشاء خطة التنفيذ. يتم تنفيذ الخطة أخيرًا بواسطة محرك التنفيذ.
إذا كنت مهتمًا بمعرفة المزيد عن البيانات الضخمة ، فراجع دبلومة PG في تخصص تطوير البرمجيات في برنامج البيانات الضخمة المصمم للمهنيين العاملين ويوفر أكثر من 7 دراسات حالة ومشاريع ، ويغطي 14 لغة وأدوات برمجة ، وتدريب عملي عملي ورش العمل ، أكثر من 400 ساعة من التعلم الصارم والمساعدة في التوظيف مع الشركات الكبرى.
تحقق من دورات هندسة البرمجيات الأخرى لدينا في upGrad.