Hizmetimin devam eden çok sayıda kullanıcı etkinliği var ve " D tarihinden bu yana T olay türünün oluşumunu say" gibi şeyler yapmak istiyoruz .
İki temel karar vermeye çalışıyoruz:
Ne saklanır? Her etkinliğin depolanması ve sadece agregaların depolanması
- (Olay günlüğü stili) her olayı günlüğe kaydeder ve daha sonra sayar.
- (Zaman serisi stili) her gün için tek bir toplu " D tarihi için E etkinliği sayısı" nı depolar
Veriler nerede saklanır?
- İlişkisel bir veritabanında (özellikle MySQL)
- İlişkisel olmayan (NoSQL) bir veritabanında
- Düz günlük dosyalarında (üzerinden ağ üzerinden merkezi olarak toplanır
syslog-ng
)
Standart uygulama nedir / farklı sistem türlerini karşılaştırma hakkında daha fazla bilgiyi nerede bulabilirim?
Ek detaylar:
- Toplam etkinlik akışı büyüktür, günde potansiyel olarak yüz binlerce giriş
- Ancak şu andaki ihtiyacımız sadece içindeki belirli olayları saymak
- Ham verilere veya toplama sonuçlarına gerçek zamanlı erişime gerek yoktur.
IMHO, "tüm olayları dosyalara kaydet, akışı filtrelemek ve birleştirmek için daha sonra tara
SELECT...GROUP BY
, SELECT
s sonuçlarını kolayca saklayabilir ), 2) basit büyük ölçekli toplama ve görselleştirme için Graphite kullanarak ve 3) referans için tüm olayların günlüğe kaydedilmesi ve veri akışının detaylarının gerçek zamanlı olarak izlenmesi için. Her biri farklı şekillerde değerli olmuştur.