2010-09-15 32 views
8

Uygulamada, kullanıcı tarafından yazılan eklentileri destekliyoruz.Veri Depolama alanı keyfi alanlar

Bu eklentiler çeşitli türlerde veriler (int, float, str veya datetime) oluşturur ve bu veriler üç serbest metin alanının yanı sıra meta veri (kullanıcı, geçerli dizin vb.) Demetleriyle etiketlenir. (MetricName, Var1, Var2).

Şimdi bu verilerin birkaç yıllığına sahibiz ve bu metriklere analitik bir şekilde (grafikler ve nesneler) çok hızlı erişim sağlayan bir şema tasarlamaya çalışıyorum. Bu, ilgilendiğimiz yalnızca birkaç metrik olduğu sürece kolaydır, ancak farklı ayrıntılarda çok sayıda farklı metriğe sahibiz ve daha sonra analiz için izin vermek üzere kullanıcı tarafından eklenen verileri depolamak isteriz (muhtemelen bir şema değişikliği).

Örnek veriler: (bu çok basitleştirilmiştir lütfen unutmayın)

========================================================================================================= 
| BaseDir   | User | TrialNo | Project | ... | MetricValue | MetricName | Var1 | Var2  | 
========================================================================================================= 
| /path/to/me  | me  | 0  | domino | ... | 20   | Errors  | core | dumb  | 
| /path/to/me  | me  | 0  | domino | ... | 98.6  | Tempuratur | body |   | 
| /some/other/pwd | oneguy | 223  | farq | ... | 443   | ManMonths | waste | Mythical | 
| /some/other/pwd | oneguy | 224  | farq | ... | 0   | Albedo  | nose | PolarBear | 
| /path/to/me  | me  | 0  | domino | ... | 70.2  | Tempuratur | room |   | 
| /path/to/me2 | me  | 2  | domino | ... | 2020  | Errors  | misc | filtered | 

Herkes Hava hızı metrik ölçmeye başlamak için bir ayrıştırıcı eklentisi ekleyebilir ve biz "Sadece çalışmak" Bizim maliyet analizi araçları istiyorum Bu yeni metrikte.


Güncelleme: MetricName yılların birçok O metrikleri için analiz yapılmasına imkan ve sadece diğer kullanıcı tarafından eklenen ölçümleri saklayabilir eğer önceden, benim gereksinimlerini tatmin edebilir tanınmış olduğu düşünüldüğünde

. Şemayı düzenlemeksizin yeni metriklerin ağır hizmet analizi için mevcut olmayacağını kabul edebiliriz.

Bu çözüm hakkında ne düşünüyorsunuz?

MetrikTopik'e ihtiyaç duymayan gerçekler için, diğeri beklenmedik olanlar da dahil olmak üzere diğer tüm metrikler için bir tane olmak üzere metriklerimizi üç olgu tablosuna ayırdım. lütuf için


Metrics Schema #3

:

bu sistemin daha işlevsel hale nasıl gösterir veya sanayi en iyi uygulamalara daha yakın hizaya getirir herhangi eleştirisini kabul edeceğiz. Literatüre referanslar ek ağırlık verir.

+0

Örnekle ilgili olarak - 10 metrik diyelim? –

+0

@Jeffrey L Whitledge: Bu şema sizin yorumunuza dayanmaktadır. – bukzor

+0

@Damir Sudarevic, @Jeffrey L Whitledge, @ S.Lott: Daha iyi bir cevap düşünebileceğinizi umarak bu soruya bir nimet ekledim. – bukzor

cevap

2

Önemsediğimiz her metrik için başka bir sütun ekleyebilirim, ancak bu yüzlerce hatta binlerce olabilir. Şemayı güncellemek için bir senaryo yazardım ve bu kötü tasarım gibi kokuyordu.

Bu kadar çok gerçek var. O kadar ünite yok.

Gerçekler var birimleri. Saniye, pound, bayt, dolar.

"Yıldız şeması" tasarımını gözden geçirmeniz gerekiyor. Boyutları (muhtemelen çok) ve ölçülebilir gerçekleri (muhtemelen çok az) var.

Gerçekler ile ilişkili boyutların tümü arasında bir birleşime sahipsiniz. Toplamları yapabilir, gerçeklere güvenebilir ve boyutlara göre gruplayabilirsiniz.

Binlerce bağımsız veriye sahip olamazsınız. Bu neredeyse imkansız. Ama binlerce farklı boyut kombinasyonuna sahip olabilirsiniz, bu yaygındır.

Ayrı gerçekler boyutları (tanımsal nitelikleri) dan ve birkaç gerçekler etrafında boyutlarda bir sürü olmalıdır (hoş eklemek ölçülebilir miktarlarda).

Kimball'un bir kopyasını satın alın.

+0

Aslında bu soruyu yayınladıktan hemen sonra Kimball'i Kindle'dan satın aldım. – bukzor

+0

Katılıyorum. Yakından bakarsak, belki sadece 40 farklı gerçek var, ama hala şemayı güncellemeyi gerektiren, uyarmaksızın yeni bir gerçeklik türü ekleyebilme problemim var. Belirsiz gerçekleri olan bir sistem için yaygın bir bilgelik var mıdır? FactName adlı bir boyut yaratın mı? – bukzor

+0

* "Binlerce bağımsız gerçek olamaz. Bu neredeyse imkansız" * Bu ifadenin ardındaki mantığı anlamıyorum, ne demek istediğini açıklayabilir misiniz? – naught101

5

Eğer doğru anlıyorsam, DW'de önlemlerin anında oluşturulmasını desteklemek için bir şema arıyorsunuz. Klasik bir veri ambarı içinde her ölçü bir sütundur, bu yüzden bir Kimball yıldızında her yeni ölçüm için bir sütun eklemeniz gerekir - şemayı değiştirin.

Ne var bir EAV modeldir ve EAV üzerinde analitik kolay değildir ve hızlı değil - this discussion bakabilirsiniz.

Sana sorunların theis türü için uygundur splunk, gibi araçlar bakmak öneririz.

+0

Teşekkürler! En azından şimdi benim problemim için bir isim var. EAV için analitik üzerine herhangi bir güvenilir yazı biliyor musunuz? – bukzor

+0

@bukzor, hayır gerçekten değil. –

İlgili konular