Arkadaşlar Merhaba,
Yoğun veri analizi yaptığımız biz portalımız var. Çeşitli grafiklerle verileri analiz ediyor, görünür kılıyoruz.
Verileri MySQL databasede tutuyoruz. View tablolar kullanarak, basit matemetiksel işlemler yapıyor, verileri kullanıma uygun hale getiriyoruz. PHP panelde verileri çekiyor ve grafiklere döküyoruz.
Veri yoğunluğu fazla olunca sayfanın yüklenmesi 15-20 saniyeyi bulabiliyor. Bu gecikmenin view işlemleri ve databaseden veri aktarımından kaynaklı olduğunu düşünüyorum.
Yoğun veri analizini nasıl hızlandırabileceğim, sayfa yüklenmesini nasıl düşürebileceğimle ilgili fikirlerinizi bekliyorum.
Big Data Veri Analizi
8
●681
- 21-11-2017, 01:13:13Veritabanı yapınızı, ne için kullandığınızı tam olarak bilmiyorum fakat bu tarz işlemler için cache kullanılıyor genelde.Redis kullandığımızı varsayarsak almak istediğimiz verileri istediğimiz sürelerde güncelleyerek (her dakika, her 5 dakikada bir) hafızaya iteliyorsunuz.Gerçek zamanlı olarak kullanıcı istek gönderdiğinde, bilgiyi database yerine redisten alacaksınız.
- 21-11-2017, 13:33:35Redis konusunu araştıracağım. Türkiye genelinde çeşitli tesislerden enerji sayaç verileri alıyoruz. Her 5 dakikada bir verileri çekip mysql database'e atıyoruz. Bir sayaçtan bir kerede yaklaşık 30 farklı değer geliyor.
Panel tarafında ise kullanıcı kendi tesisine bağlı sayaçların (ortalama 10 sayaç) verilerini analiz ediyor. İstediği tarih aralıklarında verileri çekebiliyor. Dakikalık, saatlik, aylık, yıllık verileri çekebiliyor.
Söylediğim gibi bu verileri çeşitli analiz ve grafiklerle gösteriyoruz. Fakat yavaşlık konusunda problemimiz var. Tesise bağlı sayaç sayısı arttıkça, yavaşlıkta kendini gösteriyor.
Arkadaşlar başka önerisi olan yok mu? Şu an tek önerimiz Redis. Desteğinizi bekliyorum. Ona göre yönleeceğim. - 23-11-2017, 14:20:42Redis, memcache gibi uygulamalar kullanarak yavaşlığın önüne geçebilirsiniz. Ama veritabanınız zamanda daha da şişecek bir durumdaysa cache uygulamalarıda bir noktadan sonra yavaşlık yaratabilir. Bu durumda mangodb gibi nosql veritabanı kullanmalısınız.
- 23-11-2017, 17:11:57Teşekkürler. Önerilerinize göre araştırma yapıyorum. Sürekli veri kaydı olacağı için database bir süre sonra iyice şişecek. Söylediğinize göre o zaman da redis memcache gibi uygulamalar yetersiz kalabilir. Mangodb'yi araştırdım. İyi olduğunu / sorunlu olduğunu söyleyen var. Postgresql'in daha stabil olduğunu söyleyenler var.
Bu nosql veritabanlarının dilleri farklıdırdiye tahmin ediyorum. Bir de bunları öğrenmemiz gerekecek. Ayrıca view, trigger oluşturma gibi özellikleri var mı bunların? - 25-11-2017, 09:48:17sizin çalışma sisteminize uyar mı bilmiyorum ama küpler oluşturarak belki daha hızlı sonuçlar elde debilirsiniz.
"Dakikalık, saatlik, aylık, yıllık verileri çekebiliyor. "..
veri tabanında where şartında kullandıgınız alanları indexlemlerini yaptınız?
index yapılan alanların fragmentation durumları neler .(5dk) bir veri girişi var ise bu fragmentation bozuluyordur bunları belli aralıklar ile onarmanız yeniden indexlemeniz gerekir.
ilk aklıma gelenler.
iyi çalışmalar. - 03-03-2018, 01:11:23Veritabanından verileri çekerken nasıl çekiyorsunuz? sadece tek bir SQL sorgusu ile mi çekiyorsunuz yoksa tek bir where komutu ile o sayacın id değerine göre olan tüm verileri çekip her veride tek tek for,foreach döngüleri ile belli matematiksel işlemler yaparak mı kullanıcılara sunuyorsunuz? Veya tablo yapınız ne şekilde? Bunları da bize aktarırsanız optimizasyon konusunda forum geneli yardımcı olabilir.