YazılımMimarı adlı üyeden alıntı
Aklıma ilk şu soru geldi? Fazladan bir mühendislik (over engineering) gereksinimi oluşturulmuş gibi.10 ayrı şehir için 10 ayrı veritabanı oluşturmaktansa, tek bir veri tabanında rahatça yapılabilir gibime geldi..
Veritabanına sızma işlemi yapılırsa kısmı için bu denli bir çözüme gitmek, bana pek doğru gelmedi.
DB'ye erişme ihtimali sunucu taraflı güvenlik açığıdır, bunun için güvenli yazılım + sunucu güvenliği içinde AWS yada yerli bir çözümden destek alınması en doğru yöntem olacaktır. AWS / DigitalOcean üzerinde günlük yedekli bir DB servisi almanızı tavsiye ederim, güvenlik dertleriniz ortadan kalkıp, daha çok yazılım çözümüne odaklı işlere zaman ayırmış olursunuz.
Anladığım kadarıyla zaten büyük bir veri yok ortada..
Mevcut çözümde aklıma gelen en basit çözüm :
Mevcut bir şehirdeki DB 'den DDL scriptlerini alıp ortak DB + şema oluşturun.
Ortak DB'deki tüm tablolara bir discriminator ekleyin. Bu discriminator : ilgili DB yi belirtecek bir şehir ID, NAME gibi unique bir alan olmalı. Birde tüm tablolara deleted bir alan ekleyin (0,1) değerlerini alsın, default değeri 0 olsun.
Saatte bir çalışan job yazın.
job verileri sırasıyla her veritabanından (paginated olarak yada yapabiliyorsanız ve kullandığın db driver destekliyorsa stream ile) çekip, ortak bir DB'ye yazsın. Bir ortak db üzerinden çözüm üretin.
Ortak DB'ye yazarkende, şöyle mantıkta ilerleyin.
Ankara şehrinden bir tablodan verileri çekmeden önce ortak DB'de ilgili tablodaki tüm ankara şehri kayıtlarını soft olarak delete yapın;
soft delete sql : update table_name set deleted = 1 where discriminator = 'ANKARA';
sonrada çekilen verileri insert edin.
Diğer türlüsü ayrı ayrı db 'ye bağlan, verileri topla, sonra sort et :) zahmetli iş.. Heleki bir ekranda sayfalı bir şekilde bu işlem yapılacaksa, Allah kolaylık versin derim.
Veri merkezi bir yerde olduğunda istediğiniz çözümü rahatça gerçekleştirirsiniz.
Üstadım gene çok komplike bilgiler paylaşmışsınız, tekrar çok teşekkür ederim.
Söylediklerinizi değerlendiremiyorum zira kullandığınız terimlerin nelere karşılık geldiğini dahi bilmiyorum şu anda...
Önce onları öğrenmem gerek değerlendirme yapabilmem için...
Zamanla öğrenmeye çalışacağım...
Tercihim belki öğrendikten sonra da değişmeyebilir ama konuya tam hakim olmak için öğrenmek gerek...
Sizce 50.000 işletme için çoğu char (255 karakter altındaki) 250 sütunluk 1'er kayıt satırının toplamı büyük bir veri midir?
Tümünü 1 tek veri tabanında bulundurmak uygun mudur?
Veri merkezi (hostingi kasdediyorsunuz sanırım) ve domain/ler aynı firmada bulunuyor ise...