Gerçek Zamanlı Verileri veritabanı perspektifinden nasıl ele alabilirim?


14

Aklımda bir fikir var, ama yine de bana veritabanı alanı karıştırıyor .

Gerçek zamanlı verileri göstermek istediğimi düşünün ve en son tarayıcı teknolojilerinden birini ( web soketleri - hatta eski tarayıcıları kullanarak ) herkesin yaptığı tüm gözlemlenebilirlere (kullanıcı tarayıcısı) göstermek çok kolaydır.

Remy Sharp'ın bu konudaki sadelik hakkındabir örneği var.

Ama yine de veritabanı kısmını alamıyorum, nasıl besleyeceğim , bir veritabanındaki her bağlı kullanıcı için yolu kaydetmek istediğimi ve bir müşterinin neler olup bittiğini görmek istediğini hayal edelim (Remy oyunu Tron kullanarak) bir 5 sn gecikme , o sadece o ana kadar 5 sn ama göreceksiniz sürede devam ...

böyle bir DB'yi nasıl sorgulayabilirim?

SELECT x, y FROM run WHERE time >= DATEADD(second, -5, rundate);

önerilen yol doğru değil mi?

ve bu x'i x zamanında çekmek ... bu gerçek veri beslemesi doğru değil mi?

Birisi Veritabanı bakış açısını anlamama yardımcı olabilirse çok sevinirim.

Yanıtlar:


7

İlişkisel veritabanları ilişkiler için optimize edilmiştir. Zaman Serisi Veritabanları , zaman içinde değişen bir dizi değer depolamak ve bunlarla çalışmak için optimize edilmiştir. Sanayi dünyasında buna "Tarihçiler" diyorlar. Muhtemelen en ünlüsü OSI'nin PI'sidir .

Belirli bir nokta için bir değer depolamasa bile (bilinen noktalar arasında enterpolasyon yapabilir), belirli bir noktadaki bir dizi sinyali sorgulayabilirsiniz.

Ancak, her sorgu size yalnızca tek bir nokta verir. Hala anket yapmak zorundasın.

Zaman serisi veritabanı temasına devam ederek, openPDC'ye bakın (bir Fazör Veri Yoğunlaştırıcısı elektrik şebekesine özgüdür, ancak bir zaman serisi tarihçisidir). Özellikle, bu alıntı:

yerel tarihçi arşivindeki olayları yeniden oynatmak ve büyük veri kümelerini çıkarmak için kullanılabilen akış oynatma yardımcı programı

Gerçekten istediđin bu ... bir çeţit çalma mekanizmasý.

Gerçekten bir veritabanı istediğini sanmıyorum. Bir sürü FIFO istiyorsunuz.


7

Gerçek Zamanlı ve Veri Tabanı'nın birbiriyle hiçbir ilgisi yoktur.

Radarlar (ve ısı pompaları ve gemi kontrol sistemleri) yaptığımda, gerçek zamanlı verilerin tamamen tamponlarda ve paylaşılan hafızada yaşadığını öğrendim.

Veriler ayrıca sonraki analiz ve erişim için bir veritabanına gönderilebilir. Birim küçük olmalıdır, bu nedenle özetler veya özetler veya veri örnekleri kalıcı depolamaya gider.

Gerçek gerçek zamanlı veriler, güvenilirlik için mesaj kuyrukları veya anlık (ama muhtemelen kırılgan) bildirim için UDP paketleri üzerinden ağ üzerinden akar.


4

Bu soruyla ilgili tökezlediğimizi düşünüyorum, bunu yanlış düşünüyorsunuz ve diğer cevaplar sorunu gerçekten vurgulamıyor.

Veritabanınızı çekiçlemek gerçekten iyi bir fikir değil. Bunu fark ettiğine eminim, başkaları da olmayabilir. Bir arkadaşım yarı gerçek zamanlı bir oyun için bir döngü içinde bir php komut dosyası ve bir Javascript AJAX işlevi kullanmaya çalıştı hatırlıyorum. Çok hızlı bir şekilde, daha fazla insanın katılmasıyla performansın düştüğünü fark etti, çünkü veritabanını sıkıştıran saniyede bir ton sorgu yürütüyordu.

Gördüğüm gibi, kullanıcı ve veritabanı arasında oturan uzun süren bir uygulama olması gerekiyor. Kullanıcılar bu uygulamaya doğrudan bağlanır ve tüm bilgilerini uygulamaya iletir. Bu uygulama onları hemen ona bağlı herkese bilgi kopyalar. Bu çok hafif bir uygulama, az trafik ve çok gerçek zamanlı yükler.

Bir veritabanı kullanmanız gerekiyorsa, uygulama bunu arka plan güncelleştirme kuyruğunda işlemelidir. Açıkçası, kaydettiğiniz şeyi seçmeniz ve seçmeniz gerekir, çünkü veritabanını küçük bir bilgi duvarıyla (oyunda bir kullanıcının şu anki konumu gibi), sizi başlattığınız aynı soruna geri getirir ile. Konum yerine, 5 saniye veya daha anlamlı bilgi bitlerinden daha uzun bir mesafe kat edilen depo mesafesi


1

Bu site bazı "gerçek zamanlı" özelliklere sahiptir. Birçok yüksek trafikli sitenin web sunucusu ile veritabanı arasında birçok oyuncakları olduğunu göreceksiniz. Redis, verileri bellekte tutmak için kullanabileceğiniz bir şeydir. Çeşitli yığınlar için başkaları olduğundan eminim.

Ben Firebase.com büyük bir gerçek zamanlı veri hizmeti olduğunu düşünüyorum (Gerçek veritabanı arka uç için ne yaptıkları emin değilim, ama onlar hizmet beri, ben gerçekten merak ötesinde umurumda değil.).

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.