التحدث إلى مستودع البيانات على غرار الجداول مع ActiveRecord?

StackOverflow https://stackoverflow.com/questions/1221858

سؤال

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

علاوة على ذلك, أنا فقط قراءة الفصول 2 (تصميم جميل واجهات برمجة التطبيقات) و 3 (اتقان ديناميكية مجموعة أدوات) روبي أفضل الممارسات.

الآن أنا في محاولة لمعرفة أفضل السبل لتصميم الواقع-استرجاع جزء...

أقول لقد الأبعاد التالية (النماذج الموجودة في التطبيق):

  • المنتج (يحتوي على الأموال)
  • الصندوق
  • قياس (مثلا ، مجموع القابضة ، عقد متوسط متوسط التعرض)

...و حسن البالغ من العمر العامة الغرض الواقع:

  • الواقع (تاريخ القيمة ، بالإضافة إلى الأجنبية الرئيسية NULLable عمود لكل من الأبعاد)

بعض الجوانب التي سأكون ممتنا للحصول على بعض النصائح:

  • ما قد يشكل مرن استرجاع الواجهة ؟
  • ماذا يحدث إذا كان لدي الحقائق مع كل NULL (أيكل شيء أو لا أهتم) وليس NULL (محددة) قيم البعد ؟ الزائفة قيمة مثل :all?أو أن بعض الاتفاقية تطبق ؟
  • كيفية تحديد مجموعة فرعية فقط من البعد القيم ؟ أو استبعاد مجموعة فرعية ؟ :فقط :استبعاد?
  • وقد أي شخص لديه تجربة مع خلق named_scopes للتعامل مع هذا ؟ هناك جاذبية واضحة من كونها قادرة على سلسلة واحدة لكل بعد من الفائدة ، لكن هل الحصول على التفاخر لو نحصل على 7 أو 8 أبعاد ؟

(أنا على علم أن acts_as_fact البرنامج المساعد هو سمعته الطيبة موجودة في بعض شكل (على الأقل كان هناك بعض الطنانة الصغيرة في RailsConf 2006) ولكن لم أتمكن من العثور على أي رمز أو وصف كيف أنه قد عملوا.)

إصدارات:القضبان ، ActiveRecord 2.1.2, Oracle تعزيز محول 1.2.0

تحرير:نظرت ActiveWarehouse بعض التحفظات:- الفرع الرئيسي لم ترتكب منذ Nov-08 وليس هناك نشاط على الإطلاق منذ يناير-09;- البرنامج التعليمي يعود تاريخها إلى عام 2006 ، واعترف أن يكون قديما ، 404s على لي ، - يبدو أن الرغبة في الحصول على بعيدا عن ActiveRecord - بكثير من بلدي التطبيق سوف تبقى في AR أعتقد في الوقت الحاضر أريد AR الحل.

لذا عليك الابتعاد عن هذا واحد ، وذلك بفضل!

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

المحلول 4

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

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

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

يبدو أن الاسترجاع قد يتم التعامل معه بمجموعة من named_scopes, ، واحد لكل بُعد، للتصفية.أو قد يكون من الأفضل استخدام مكتشف مخصص، يتم تغذيته بتجزئة تم إنشاؤها بشكل مناسب.

وعندما أنتهي من ذلك، سأعود ببعض المعلومات الأفضل...

نصائح أخرى

ماذا يحدث إذا كان لدي الحقائق مع كل NULL (أيكل شيء أو لا أهتم) وليس NULL (محددة) قيم البعد ؟ الزائفة قيمة مثل :كل شيء ؟ أو أن بعض الاتفاقية تطبق ؟

NULL ستكون محاولة مضللة لأنها تقف على أية رابطة.وأود أن استخدام قيمة مثل -1 (إذا كان عدد صحيح foreign_key مع القيم فقط > 0).

كيفية تحديد مجموعة فرعية فقط من البعد القيم ؟ أو استبعاد مجموعة فرعية ؟

with_scope()

يمكنك أيضا الكتابة على العثور على وظيفة

   def self.find(*args)
    if  anything
      with_scope(a_scope) do
         result = super *args
      end
    else
      result = super *args
    end
   end

   def self.a_scope
    {:find => { :conditions => ["person_id  = ?", me] , :readonly => true}}
   end

وقد أي شخص لديه تجربة مع خلق named_scopes للتعامل مع هذا ؟ هناك جاذبية واضحة كونها قادرة على سلسلة واحدة لكل البعد من الفائدة ، لكن هل الحصول على التفاخر لو نحصل على 7 أو 8 أبعاد ؟

لدينا قاعدة بيانات olap مع 4 البعد ويعمل لطيفة.أعتقد إذا قمت بتطبيق بعض مخصص أساليب active_record, سيكون لديك متعة مع التطبيق الخاص بك.

كما أنني وجدت هذا: http://github.com/aeden/activewarehouse/tree/master

هناك منتج آخر لم أستخدمه، ولكنه يبدو جيدًا:

http://github.com/wvanbergen/active_olap/tree/master

http://techblog.floorplanner.com/2008/07/29/active-olap-released/


وهذا لـ SOLR الذي وجدته في جوجل

http://code.google.com/p/kettle-solr-plugin/

كنت أبحث في استخدام ActiveWarehouse منذ فترة قبل أن أتطرق إلى أشياء أخرى، لذلك لا أستطيع أن أخبرك بمدى نجاحها، ولكن هذا شيء يجب إضافته إلى قائمتك للتحقق منه.يحتوي على مولدات للحقائق والأبعاد والمكعبات بالإضافة إلى مجموعة أدوات ETL.

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