سؤال

لنفترض أن لدي هذا RDBM الجدول (الكيان السمة-value_model):

col1: entityID
col2: attributeName
col3: value

وأريد أن استخدام HBase بسبب رفع قضايا.

أعلم أن الطريقة الوحيدة للوصول إلى Hbase الجدول باستخدام مفتاح أساسي (المؤشر).يمكنك الحصول على المؤشر على مفتاح معين, و تكرار الصفوف واحدة تلو الأخرى .

المشكلة هي أنه في حالتي كنت تريد أن تكون قادرة على تكرار في كل 3 أعمدة.على سبيل المثال :

  • من أجل إعطاء entityID كنت ترغب في الحصول على جميع attriutes والقيم
  • إعطاء attributeName والقيمة اريد جميع entitiIDS ...

حتى فكرة واحدة كان هو بناء واحد Hbase الجدول الذي سوف يعقد البيانات (بيانات الجدول ، entityID الأولية مؤشر) و 2 "مؤشر" الجداول واحدة مع attributeName باعتباره المفتاح الأساسي والآخر مع قيمة

كل مؤشر الجدول سوف تعقد قائمة من المؤشرات (entityIDs) عن جدول البيانات.

هو معقول النهج ؟ أو هو 'الاعتداء' من Hbase المفاهيم ؟

في هذا بلوق على الكاتب أقول:

HBase يسمح الحصول على العمليات الأولية مفتاح المسح (أعتقد:المؤشر) على التوالي نطاقات.(إذا كان لديك كل مقياس ، تحتاج الثانوية الفهارس, لا تقلق - لوسين لانقاذ!ولكن هذا وظيفة أخرى.)

هل تعرف كيف لوسين يمكن أن تساعد ؟

-- يوناتان

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

المحلول

الثانوية الفهارس المفيد العديد من التطبيقات المحتملة HBase ، وأعتقد أن المطورين هم في الواقع النظر في ذلك.الخروج http://www.mail-archive.com/hbase-dev@hadoop.apache.org/msg04801.html.

في الوقت نفسه رغم أن, إذا كان التطبيق الخاص بك تخزين البيانات يمكن أن تكون على غرار نجمة مخطط (انظر http://en.wikipedia.org/wiki/Star_schema) قد ترغب في الخروج الحل الذي Hypertable يقترح الثانوية مؤشر من نوع يحتاج http://markmail.org/message/rphm4q6cbar2ycgp

نصائح أخرى

أوصي وجود اثنين من مختلف شقة الجداول:واحد للبحث عن سمات+القيم المعطاة entityID واحد من أجل البحث عن entityID بالنظر إلى السمات+القيم.

الجدول 1 أن تبدو مثل هذا:

entityID1 {
  attribute1: value1;
  attribute2: value2;
  ...
}

الجدول 2:

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