Veri deposu seçme ölçütleri

Bu makalede, veri depolarını değerlendirirken kullanabileceğiniz karşılaştırma ölçütleri açıklanmaktadır. Amaç, çözümünüzün gereksinimlerini hangi veri depolama türlerinin karşılayabileceğini belirlemenize yardımcı olmaktır.

Dikkat edilmesi gereken temel noktalar

Seçiminizi yaparken aşağıdaki noktaları göz önünde bulundurun.

İşlev gereksinimleri

  • Veri biçimi: Ne tür verileri depolamayı planlıyorsunuz? İşlem verileri, JSON nesneleri, telemetri, arama dizinleri veya düz dosyalar yaygın olarak kullanılan türler arasında yer alır.
  • Veri boyutu: Depolamanız gereken varlıklar ne kadar büyük? Bu varlıkların tek bir belge olarak tutulması mı gerekiyor yoksa birden çok belge, tablo ve koleksiyona bölünebilir mi?
  • Ölçek ve yapı: İhtiyacınız olan genel depolama kapasitesi miktarı nedir? Verilerinizi bölümlemeyi planlıyor musunuz?
  • Veri ilişkileri: Verilerinizin bire çok veya çoka çok ilişkilerini desteklemesi gerekecek mi? İlişkilerin kendisi, verilerin önemli bir parçası mı? Aynı veri kümesindeki veya dış veri kümelerindeki verileri birleştirmeniz veya başka bir şekilde birleştirmeniz gerekecek mi?
  • Tutarlılık modeli: Başka değişiklikler yapılabilmesi için bir düğümde yapılan güncelleştirmelerin diğer düğümlerde görünmesi ne kadar önemlidir? Nihai tutarlılığı kabul edebilir misiniz? İşlemler için ACID garantileri gerekiyor mu?
  • Şema esnekliği: Verilerinize ne tür şemalar uygulayacaksınız? Sabit bir şema mı kullanacaksınız yoksa yazma şeması veya okuma şeması yaklaşımlarından birini mi?
  • Eşzamanlılık: Verileri güncelleştirip eşitlerken ne tür bir eşzamanlılık mekanizması kullanmak istiyorsunuz? Uygulama çakışma olasılığı olan birçok güncelleştirme gerçekleştirecek mi? Öyleyse, kayıt kilitleme ve kötümser eşzamanlılık denetimi gerekebilir. Alternatif olarak, iyimser eşzamanlılık denetimlerini destekleyebiliyor musunuz? Öyleyse, basit zaman damgası tabanlı eşzamanlılık denetimi yeterli mi yoksa çoklu sürüm eşzamanlılık denetiminin ek işlevselliğine mi ihtiyacınız var?
  • Veri taşıma: Çözümünüzün verileri diğer depolara veya veri ambarlarına taşımak için ETL görevleri gerçekleştirmesi gerekecek mi?
  • Veri yaşam döngüsü: Veriler bir kez yazılır mı, çok okunur mu? Seyrek erişimli depolamaya taşınabilir mi?
  • Desteklenen diğer özellikler: Şema doğrulama, toplama, dizin oluşturma, tam metin arama, MapReduce veya diğer sorgu özellikleri gibi başka belirli özelliklere ihtiyacınız var mı?

İşlevsel olmayan gereksinimler

  • Performans ve ölçeklenebilirlik: Veri performansı gereksinimleriniz nelerdir? Veri alımı ve veri işleme hızları için belirli gereksinimleriniz var mı? Verilerin alındıktan sonra sorgulanması ve toplanması için kabul edilebilir yanıt süreleri nelerdir? Veri deposunun ölçek büyütme üst sınırı ne kadar yüksek olmalı? İş yükünüz okuma yoğunluklu mu yazma yoğunluklu mu?
  • Güvenilirlik: Hangi genel hizmet düzeyi sözleşmesini desteklemeniz gerekiyor? Veri tüketicileri için hangi hataya dayanıklılık düzeyi sağlamanız gerekiyor? Ne tür yedekleme ve geri yükleme özelliklerine ihtiyacınız var?
  • Çoğaltma: Verilerinizin birden çok çoğaltmaya veya bölgeye dağıtılması gerekecek mi? Ne tür veri çoğaltma özelliklerine sahip olmanız gerekiyor?
  • Sınırlar: Belirli bir veri deposunun sınırları ölçeklendirme, bağlantı sayısı ve aktarım hızı gereksinimlerinizi destekleyecek mi?

Yönetim ve maliyet

  • Yönetilen hizmet: Yalnızca hizmet olarak altyapı (IaaS) tarafından barındırılan veri deposunda bulunabilecek belirli özelliklere ihtiyaç duymadığınız sürece, mümkün olduğunda yönetilen veri hizmetini kullanın.
  • Bölge kullanılabilirliği: Yönetilen hizmetler için hizmet tüm Azure bölgelerinde kullanılabilir mi? Çözümünüzün belirli Azure bölgelerinde barındırılması gerekiyor mu?
  • Taşınabilirlik: Verilerinizin şirket içi, dış veri merkezleri veya diğer bulut barındırma ortamlarına geçirilmesi gerekecek mi?
  • Lisanslama: OSS lisans türü yerine özel bir tercihe sahip misiniz? Ne tür lisans kullanabileceğiniz konusunda başka herhangi bir dış kısıtlama var mı?
  • Genel maliyet: Hizmeti çözümünüz içinde kullanmanın genel maliyeti nedir? Çalışma süresi ve aktarım hızı gereksinimlerinizi desteklemek için kaç örneğin çalıştırılması gerekir? Bu hesaplamada işletim maliyetlerini göz önünde bulundurun. Yönetilen hizmetlerin tercih nedenlerinden biri, işletim maliyetlerinin daha az olmasıdır.
  • Maliyet verimliliği: Verilerinizi daha uygun maliyetli bir şekilde depolamak için bölümleyebilir misiniz? Örneğin, pahalı bir ilişkisel veritabanındaki büyük nesneleri bir nesne deposuna taşıyabilir misiniz?

Güvenlik

  • Güvenlik: Ne tür bir şifrelemeye ihtiyacınız var? Bekleme sırasında şifrelemeye ihtiyacınız var mı? Verilerinize bağlanmak için hangi kimlik doğrulama mekanizmasını kullanmak istiyorsunuz?
  • Denetim: Ne tür bir denetim günlüğü oluşturmanız gerekiyor?
  • Ağ gereksinimleri: Diğer ağ kaynaklarından verilerinize erişimi kısıtlamanız veya başka bir şekilde yönetmeniz mi gerekiyor? Verilerin yalnızca Azure ortamı içinden erişilebilir olması mı gerekiyor? Verilerin belirli IP adreslerinden veya alt ağlardan erişilebilir olması gerekiyor mu? Şirket içinde veya diğer dış veri merkezlerinde barındırılan uygulamalardan veya hizmetlerden erişilebilir olması gerekiyor mu?

DevOps

  • Beceri kümesi: Ekibinizin kullanmakta usta olduğu programlama dilleri, işletim sistemleri veya başka bir teknoloji var mı? Takımınızın kullanmakta zorlanacağı şeyler var mı?
  • İstemciler: Geliştirme dilleriniz için iyi bir istemci desteği var mı?

Sonraki adımlar