سؤال

أنا مهتم بمعرفة كيفية إصدار (http://mirror.facebook.com/facebook/hive/hadoop-0.17/) تقارن الخلية بـ HBase من حيث الأداء.تعد الواجهة المشابهة لـ SQL التي تستخدمها Hive أفضل بكثير من واجهة برمجة تطبيقات HBase التي قمنا بتنفيذها.

هل كانت مفيدة؟

المحلول

من الصعب العثور على الكثير عن Hive، لكنني وجدت هذا مقتطف على موقع Hive الذي يميل بشدة لصالح HBase (تمت إضافة الخط الغامق):

يعتمد Hive على Hadoop وهو نظام معالجة الدفعات.وفقا لذلك، فإن هذا النظام لا و لا يمكن أن يعد بفترات استجابة منخفضة في الاستعلامات.يتمثل النموذج هنا بشكل صارم في تقديم الوظائف وإخطارك عند اكتمال الوظائف بدلاً من الاستعلامات في الوقت الفعلي.ونتيجة لذلك، لا ينبغي مقارنتها بأنظمة مثل Oracle حيث يتم التحليل على كمية أقل بكثير من البيانات ولكن التحليل يستمر بشكل متكرر أكثر بكثير مع أوقات الاستجابة بين التكرارات التي تكون أقل من بضع دقائق. بالنسبة إلى استعلامات Hive، يمكن أن تتراوح أوقات الاستجابة حتى لأصغر المهام من 5 إلى 10 دقائق، وبالنسبة للمهام الأكبر حجمًا، فقد يستغرق ذلك ساعات.

نظرًا لأن HBase وHyperTable يدوران حول الأداء (يتم تصميمهما على طراز BigTable من Google)، يبدو أنهما سيكونان بالتأكيد أسرع بكثير من Hive، على حساب الوظائف ومنحنى التعلم الأعلى (على سبيل المثال، ليس لديهما روابط أو SQL - مثل بناء الجملة).

نصائح أخرى

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

يحتوي HBase على مستودع البيانات التعريفية الخاص به وتخطيط التخزين العمودي.من الممكن تأليف استعلامات HiveQL عبر جداول HBase، مما يسمح لـ HBase بالاستفادة من قواعد اللغة والمحلل اللغوي ومخطط الاستعلام ومحرك تنفيذ الاستعلام في Hive.يرى http://wiki.apache.org/hadoop/Hive/HBaseIntegration لمزيد من التفاصيل.

الخلية هي أداة تحليلية.تمامًا مثل الخنزير، تم تصميمه للمعالجة المجمعة المخصصة لكميات هائلة من البيانات من خلال الاستفادة من تقليل الخريطة.فكر في تيرابايت.تخيل أنك تحاول القيام بذلك في قاعدة بيانات علائقية ...

HBase هو مخزن قيمة مفتاح قائم على العمود يعتمد على BigTable.لا يمكنك إجراء استعلامات في حد ذاتها، على الرغم من أنه يمكنك تشغيل مهام تقليل الخريطة عبر HBase.حالة الاستخدام الأساسية هي جلب الصفوف حسب المفتاح، أو مسح نطاقات الصفوف.الميزة الرئيسية هي القدرة على الحصول على موقع البيانات عند المسح عبر نطاقات مفاتيح الصفوف بحثًا عن "عائلة" من الأعمدة.

على حد علمي المتواضع، فإن Hive أكثر قابلية للمقارنة مع Pig.Hive يشبه SQL بينما يعتمد Pig على البرنامج النصي.يبدو أن Hive أكثر تعقيدًا مع محركات تحسين الاستعلام والتنفيذ بالإضافة إلى أنها تتطلب احتياجات المستخدم النهائي لتحديد معلمات المخطط (القسم وما إلى ذلك).كلاهما يهدف إلى معالجة الملفات النصية أو ملفات التسلسل.

HBase مخصص لتخزين بيانات القيمة الأساسية واستردادها... يمكنك المسح أو التصفية على أزواج (صفوف) القيمة الرئيسية هذه.لا يمكنك إجراء استعلامات على صفوف (المفتاح، القيمة).

اعتبارًا من أحدث إصدارات Hive، تغير الكثير مما يتطلب تحديثًا بسيطًا تم الآن دمج Hive وHBase.ما يعنيه هذا هو أنه يمكن استخدام Hive كطبقة استعلام لمخزن بيانات HBase.الآن إذا كان الأشخاص يبحثون عن واجهات HBase بديلة، فإن Pig يقدم أيضًا طريقة رائعة حقًا تحميل وتخزين بيانات HBase.بالإضافة إلى ذلك، يبدو كلاوديرا إمبالا قد تقدم استعلاماتًا كبيرة تعتمد على الخلية بالإضافة إلى HBase.إنهم يطالبون باستعلامات أسرع بما يصل إلى 45 مرة عبر إعدادات Hive التقليدية.

يتم استخدام Hive وHBase لمختلف غاية.

خلية نحل:

الايجابيات:

  1. أباتشي خلية هو البنية التحتية لمستودع البيانات بنيت على رأس هادوب.
  2. يسمح بالاستعلام عن البيانات المخزنة على HDFS للتحليل عبر HQL, ، ان لغة تشبه SQL, ، والتي سيتم تحويلها إلى سلسلة من خريطة تقليل الوظائف
  3. إنه يعمل فقط عمليات دفعة على هادوب.
  4. إنه متوافق مع JDBC, كما أنه يتكامل مع الأدوات القائمة على SQL
  5. يدعم الخلية أقسام
  6. انه يدعم الاستعلام التحليلي للبيانات جمعت على مدى فترة من الزمن

سلبيات:

  1. وهو لا يدعم حاليًا بيانات التحديث
  2. يجب أن يتم تزويده بمخطط محدد مسبقًا لتعيين الملفات والأدلة في أعمدة

هباسي:

الايجابيات:

  1. قابلة للتطوير، قاعدة البيانات الموزعة يدعم تخزين البيانات المنظمة للجداول الكبيرة
  2. أنه يوفر وصول عشوائي للقراءة/الكتابة في الوقت الحقيقي إلى بياناتك الضخمة.تعمل عمليات HBase في الوقت الفعلي على قاعدة البيانات الخاصة بها بدلاً من وظائف MapReduce
  3. انه يدعم أقسام إلى الجداول، ويتم تقسيم الجداول أيضًا إلى عائلات أعمدة
  4. المقاييس أفقيا مع كمية هائلة من البيانات باستخدام Hadoop
  5. يوفر وصولاً يعتمد على المفتاح إلى البيانات عند تخزينها أو استرجاعها.هو - هي يدعم الإضافة أو التحديث صفوف.
  6. يدعم فيرسونينغ البيانات.

سلبيات:

  1. تتم كتابة استعلامات HBase بلغة مخصصة يجب تعلمها
  2. HBase ليس متوافقًا تمامًا مع ACID
  3. لا يمكن استخدامه مع أنماط الوصول المعقدة (مثل الصلات)
  4. كما أنه ليس بديلاً كاملاً لـ HDFS عند القيام بدفعة كبيرة من MapReduce

ملخص:

يمكن استخدام Hive للاستعلامات التحليلية بينما يمكن استخدام HBase للاستعلام في الوقت الفعلي.يمكن أيضًا قراءة البيانات وكتابتها من Hive إلى HBase والعودة مرة أخرى.

لمقارنة Hive مع Hbase، أود أن أذكر التعريف أدناه:

قاعدة بيانات مصممة للتعامل مع المعاملات ليست مصممة للتعامل مع التحليلات.إنها ليست منظمة للقيام بالتحليلات بشكل جيد.من ناحية أخرى ، تم تنظيم مستودع البيانات لجعل التحليلات سريعة وسهلة.

Hive عبارة عن بنية تحتية لمستودع بيانات مبنية على Hadoop وهي مناسبة لوظائف ETL طويلة الأمد.Hbase هي قاعدة بيانات مصممة للتعامل مع المعاملات في الوقت الفعلي

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top