İçindekiler:
Video: Veri Ön İşleme 1 : Veri Temizleme (Veri Madenciliği Teorik 2) 2024
Bir veritabanının tutarlılığı özelliği, Veriler bir veritabanına başarıyla yazıldığında, takip eden sorgular verilere erişebilir ve verilerin tutarlı bir görünümünü elde edebilir. Uygulamada, bu, bir veritabanına bir kayıt yazarsanız ve derhal o kaydı talep ederseniz, onu göreceğiniz garantisin demektir. Amazon siparişleri ve banka havaleleri gibi işler için özellikle yararlıdır.
Tutarlılık yine de kayan bir ölçektir ve burada bir konu kapatılamayacak kadar derin. Bununla birlikte, NoSQL dünyasında, tutarlılık genellikle iki kampdan birine ayrılır:
-
ACID Tutarlılığı (ACID Atomicity, Tutarlılık, İzolasyon, Dayanıklılık anlamına gelir): ACID, verilerin yazılmasıyla birlikte, tam bir tutarlılığa sahip olduğunuz anlamına gelir. okur.
-
Son Tutarlılık (BASE): BASE, bir kez verilerin yazıldığı zaman okumak üzere görüneceği anlamına gelir.
Veritabanında güçlü tutarlılığın gerekli olmadığına ve kesinlikle gerekli olduğuna inanan ( kişi - NoSQL şirketlerine tercüme ediyoruz) insanlar arasında bir savaş patlak verdi 'pazarlama departmanları! ).
Gerçeklik arasında bir yerde var. Bir kişinin Facebook yayınını tüm arkadaşları tarafından beş dakika boyunca görmediği önemli mi? Hayır muhtemelen değil. "Facebook yayınını" "milyar dolarlık-finansal işlem" olarak değiştirin ve tutumunuz hızla değişir! Hangi tutarlılık yaklaşımını seçerseniz duruma bağlıdır. Benim durumumda da, kritik kurumsal sistem durumlarında güçlü tutarlılık her zaman seçimdir.
ACID
ACID, yalnızca ilişkisel sistemlere ya da sadece veritabanlarına bağlı bir şey değil, işlem sistemleri için genel bir ilkeler dizisidir, bu nedenle hakkında bilinmesi önemlidir. ACID temel olarak, " Bu veritabanı, verilerin bozulmasını veya kaybedilmesini engelleyebilecek olanakları, " anlamına gelir; bu, tüm veritabanları için verilmemiştir. Aslında, NoSQL veritabanlarının büyük çoğunluğu ACID garantisi sağlamaz.
Vakıf DB, MarkLogic ve Neo4j önemli istisnalardır. Bazı NoSQL veritabanları, bir işlemin tamamlanmasına izin verilmeden önce başka birisinin bir belgeyi değiştirip değiştirmediğini doğrulayan Kontrol ve Belirle adlı daha düşük dereceli bir garanti sağlar. Tek kayıt temelli olarak uygulanmaya eğilimli olduğu için bu davranış genellikle sınırlıdır.
MongoDB, Kontrol ve Ayar özellikleri sağlayan dikkate değer bir veritabanıdır. MongoDB ile bir düğüm değerinde veri güncellenirken kilitlenebilir ve böylece işlem tamamlanıncaya kadar tüm okuma ve tüm yazma işlemleri engellenir.Şirket bu sınırlamayı kaldırmaya çalışıyor.
BASE
BASE, ACID garantisi vermek yerine, veritabanının ayarlanabilir tutarlılık ve veri kullanılabilirliği dengesine sahip olduğu anlamına gelir. Verili bir veritabanı kümesindeki düğümlerin, veritabanının bir bölümünün birincil yöneticileri olarak davranması ve diğer düğümlerin salt okunur yinelemeleri olması genellikle duruma bağlıdır.
Her istemcinin tüm güncelleştirmeleri görmesini sağlamak için (yani, verilerin tutarlı bir görünümüne sahip olurlar), verileri taşıyan birincil düğüme yazma okuma tüm kopyaları güncel olana kadar kilitlenmelidir. Buna, iki - faz taahhüdümü denir - değişiklik yerel olarak yapılır ancak yalnızca diğer tüm düğümler güncellendiğinde müşteriye uygulanır ve doğrulanır.
BASE, işlemin başarıyla tamamlanması için aynı veriyi tutan düğümlerin yalnızca bir alt kümesinin kullanılmasını gerektiren bu gereksinimi hafifletir. İşlemin tamamlanmasından bir süre sonra, salt okunur çoğaltma güncellenir.
Bu yaklaşımın avantajı, işlemlerin daha hızlı yapılmasıdır. Okunabilir canlı kopyaları olması da, verilerinizin okuma yükünü yayarak okumayı daha hızlı hale getirebileceğiniz anlamına gelir.
Olumsuz yön, okunan bazı kopyalara bağlanan müşterilerin belirtilmemiş bir süre için güncel olmayan bilgileri görebilmesidir. Bazı senaryolarda bu durum iyidir. Facebook'ta yeni bir mesaj yayınlarsanız ve bazı arkadaşlarınız bunu birkaç dakika görmüyorsa, büyük bir kayıp değil. Yine de, bankanıza bir ödeme emri gönderirseniz derhal bir işlem yapmak isteyebilirsiniz.
Yalnızca salt okunur çoğaltmalara alternatif bir yaklaşım, bir kümedeki yalnızca bir düğümün veritabanının belirli bir bölümüne hizmet ettiği, paylaşılan - hiçbir kümesine sahip olmaktır.
Paylaşımsız hiçbir şey, çoğaltmayı kaybettiğiniz anlamına gelmez. Bu yöntemi kullanan veri tabanları, genellikle verilerini bir başka birincil düğümdeki veya düğümlerin üzerindeki bir ikincil alana kopyalar; ancak yalnızca herhangi bir zamanda okuma ve yazma için tek bir düğüm vardır.
Paylaşımsız kümeler daha basit bir tutarlılık modeli avantajına sahipler ancak kopyalara iki fazlı taahhütte bulunmaları gerekir. Bu gerçek, tüm kopyalar güncellenirken işlemin kilitlendiği anlamına gelir. (Diğer düğümler için bir dahili kilit artı kilitleme, iki aşamalı verir.
Bununla birlikte, shared-nothing çoğaltma veri alanları, salt okunur kopyaları olan paylaşılan veri kümelerinden daha az etkiye sahiptir; veritabanının bir parçası. Bu nedenle, paylaşılan-yok bir kümede iki aşamalı taahütler okunabilir kopyaları olan bir kümede olduğundan daha hızlıdır.
ACID veya BAZ seçimi?
Tahmin edebileceğiniz gibi, tartışmanın büyük kısmı, NoSQL satıcılarının farklı, benzersiz bir yaklaşım iddia ederek kendilerini rakiplerinden ayırt etmeleri olabilir. Bununla birlikte, yol haritasında ACID uyumluluğuna sahip olan NoSQL satıcılarının sayısına dikkat etmek ilginçtir.
Bazı NoSQL veritabanları, BASE'in destekçileri olmasına rağmen, yol haritalarında ACID uyumluluğuna sahiptir; bu da, ilgili ACID garantilerinin, kuruluş, misyon - kritik sistemleri arasındaki oranını gösterir.
Birçok şirket fikirleri sınarken standartlardan bağımsız ürün kullanıyor ancak fikirleri kritik bir sistemde yaşamak isteyince ACID uyumlu bir ücretli veri tabanına geçiyorlar.
ACID'ye ihtiyacınız olup olmadığına karar vermenin en kolay yolu, insanların ve diğer sistemlerin verilerinizle olan etkileşimlerini değerlendirmektir. Örneğin, verileri eklerseniz veya güncellerseniz, bir sonraki sorgunun değişikliği görebildiğinden emin misiniz? Başka bir deyişle, veritabanının mevcut durumuyla ilgili önemli kararlar mı veriliyor? Eski verilerden biraz görmek bu kararların ölümcül olabileceği anlamına mı gelir?
Finansal hizmetlerde tutarlılık ihtiyacı açıktır. Tüccarların hisse senedi satın almayı düşünün. Ticareti öncesi nakit dengesi kontrol etmeli ve ticareti karşılayacak paraya sahip olduklarından emin olmalıdırlar. Doğru bakiyeyi görmezlerse, başka bir işlem üzerinde para harcamaya karar verirler. Sorgulayan veri tabanı sonunda tutarlıysa, yeterli fon eksikliğini göremeyebilir ve böylece kuruluşlarını finansal riske maruz bırakabilirler.
Sağlık hizmeti, savunma, istihbarat ve diğer sektörlerde BASE üzerinde ACID için benzer vakalar oluşturulabilir. Her şey yine de verilere kaynıyor ve zamanlamanın ve veri güvenliğinin önemi.