İş için en iyi veri deposunu kullanma

Verilerinize ve bunların kullanım biçimine en uygun depolama teknolojisini seçin

Tüm verilerinizin büyük bir ilişkisel SQL veritabanına tıkıştırıldığı günler geride kaldı. İlişkisel veritabanları, ilişkisel veriler üzerinde işlemler için ACID garantilerini sağlamak için oldukça iyidir. Ancak bunun bazı maliyetleri de vardır:

  • Sorgular pahalı birleştirme işlemleri gerektirebilir.
  • Verilerin normalleştirilmesi ve önceden tanımlanmış bir şemaya (yazma şeması) uygun olması gerekir.
  • Kilit çakışması performansı etkileyebilir.

Büyük bir çözümde, tek bir veri depolama teknolojisinin tüm ihtiyaçlarınızı karşılama olasılığı düşüktür. İlişkisel veritabanı alternatifleri arasında anahtar/değer depoları, belge veritabanları, arama motoru veritabanları, zaman serisi veritabanları, sütun ailesi veritabanları ve grafik veritabanları yer alır. Her birinin artıları ve eksileri olmasının yanı sıra her biri doğal olarak farklı veri türleri için uygundur.

Örneğin, bir ürün kataloğunu esnek bir şema sunan Cosmos DB gibi bir belge veritabanında depolayabilirsiniz. Bu durumda, her ürün açıklaması bağımsız birer belge olur. Kataloğun tamamına yönelik sorgular için kataloğun dizinini oluşturup dizini Azure Search’te depolayabilirsiniz. Ürün envanterindeki veriler ACID garantisi gerektirdiğinden, envanter bir SQL veritabanında yer alabilir.

Verilerin yalnızca kalıcı kılınan uygulama verilerinden daha fazlasını içerdiğini unutmayın. Bunlara ek olarak uygulama günlükleri, olaylar, iletiler ve önbellekler de içerir.

Öneriler

Her şey için ilişkisel veritabanı kullanmayın. Uygun olduğunda diğer veri depolarını göz önünde bulundurun. Bkz. Doğru veri deposunu seçme.

Çok yönlü kalıcılığı benimseyin. Büyük bir çözümde, tek bir veri depolama teknolojisinin tüm ihtiyaçlarınızı karşılama olasılığı düşüktür.

Verilerin türünü göz önünde bulundurun. Örneğin, işlem verilerini SQL’ye, JSON belgelerini bir belge veritabanına, telemetri verilerini bir zaman serisi veritabanına, uygulama günlüklerini Elasticsearch’e ve blobları Azure Blob depolama alanına yerleştirin.

Kullanılabilirliği (güçlü) tutarlılığa tercih edin. CAP teoremi, dağıtılmış bir sistemin kullanılabilirlik ve tutarlılık arasında denge kurulması gerektiğini ifade eder. (CAP teoreminin diğer boyutunu oluşturan ağ bölümlerinden asla tam olarak kaçınılamaz.) Genellikle, bir son tutarlılık modeli benimseyerek daha yüksek kullanılabilirlik elde edebilirsiniz.

Geliştirme ekibinin beceri göz önünde bulundurun. Çok yönlü kalıcılık kullanmanın avantajları vardır, ancak aşırıya kaçmak mümkündür. Yeni bir veri depolama teknolojisinin benimsenmesi, bir dizi yeni yetenek gerektirir. Geliştirme ekibinin yeni teknolojiden nasıl en iyi şekilde yararlanılabileceğini anlaması gerekir. Ekip üyelerinin uygun kullanım düzenlerini, sorguların nasıl iyileştirileceğini, performans ayarları yapmayı, vb. anlaması gerekir. Depolama teknolojilerini değerlendirirken bu etmeni hesaba katın.

Telafi işlemleri kullanın. Çok yönlü kalıcılık yan etkilerinden biri, tek bir işlemin birden çok depoya veri yazabilmesidir. Bir hata oluşursa, telafi işlemleri kullanarak zaten tamamlanmış olan adımları geri alın.

Sınırlanmış bağlamlara bakın. Sınırlanmış bağlam, etki alanı odaklı tasarım modeline ait bir terimdir. Sınırlanmış bağlam, bir etki alanı modeli etrafındaki açık bir sınırdır ve modelin hangi etki alanı bölümleri için geçerli olduğunu tanımlar. Bir sınırlanmış bağlam, ideal olarak iş etki alanının alt etki alanlarından biriyle eşlenir. Sisteminizdeki sınırlanmış bağlamlar, çok yönlü kalıcılık için doğal adaylardır. Örneğin, "ürünler" hem Ürün Kataloğu alt etki alanında hem de Ürün Envanteri alt etki alanında görünebilir, ancak bu iki alt etki alanı büyük olasılıkla farklı depolama, güncelleştirme ve ürün sorgulama gereksinimlerine sahiptir.