Yatay, dikey ve işlevsel veri bölümleme
Birçok büyük ölçekli çözümde, veriler yönetilebilecek ve ayrı olarak erişilebilen bölümlere ayrılır. Bölümleme ölçeklenebilirliği geliştirebilir, çekişmeyi azaltabilir ve performansı iyileştirebilir. Ayrıca verileri kullanım desenine göre bölmek için bir mekanizma sağlar. Örneğin, daha eski verileri daha ucuz veri depolamasında arşivleyebilirsiniz.
Ancak, olumsuz etkileri en aza indirerek avantajları en üst düzeye çıkarmak için bölümleme stratejisi dikkatle seçilmelidir.
Not
Bu makalede bölümleme terimi, verileri fiziksel olarak ayrı veri depolarına bölme işlemi anlamına gelir. Bu, SQL Server tablo bölümleme terimiyle aynı değildir.
Veriler neden bölümlenmeli?
Ölçeklenebilirliği geliştirme. Tek bir veritabanı sisteminin ölçeğini büyüttüğünüzde, bu sistem sonunda fiziksel donanımın sınırına ulaşacaktır. Her biri ayrı bir sunucuda barındırılan birden çok bölümdeki verileri bölerseniz, sistemi neredeyse süresiz olarak ölçeklendirebilirsiniz.
Performansı geliştirme. Her bölümde veri erişim işlemleri daha küçük bir veri hacmi üzerinde gerçekleşir. Doğru şekilde yapılan bölümlendirme, sisteminizi daha verimli hale getirir. Birden çok bölümü etkileyen işlemler paralel çalıştırılabilir.
Güvenliği geliştirme. Bazı durumlarda, hassas ve hassas olmayan verileri farklı bölümlere ayırabilir ve hassas verilere farklı güvenlik denetimleri uygulayabilirsiniz.
İşletimsel esneklik sağlama. Bölümlendirme, ince ayar işlemleri, yönetim verimliliğini en üst düzeye çıkarmak ve maliyeti en aza indirmek için birçok fırsat sunar. Örneğin, her bölümdeki verilerin önemine bağlı olarak yönetim, izleme, yedekleme, geri yükleme ve diğer idari görevler için farklı stratejiler tanımlayabilirsiniz.
Veri deposunu kullanım düzeniyle eşleştirme. Bölümleme sayesinde, veri deposunun maliyetine ve sunduğu yerleşik özelliklere bağlı olarak her bölüm farklı bir veri deposuna dağıtılabilir. Örneğin, büyük ikili veriler BLOB depolama alanında depolanabilir, ancak daha fazla yapılandırılmış veriler bir belge veritabanında tutulabilir. Bkz. Doğru veri deposunu seçme.
Kullanılabilirliği geliştirme. Verilerin birden çok sunucuya ayrılması tek hata noktası sorununu önler. Bir örnek başarısız olursa, yalnızca söz konusu bölümdeki veriler kullanılamaz. Diğer bölümlerdeki işlemler devam edebilir. Bu hizmetler yerleşik yedeklilik ile tasarlandığından, yönetilen PaaS veri depoları için bu dikkat daha az uygundur.
Bölümleri tasarlama
Verileri bölümlemek için üç tipik strateji vardır:
Yatay bölümleme (çoğunlukla parçalama olarak adlandırılır). Bu stratejide, her bölüm ayrı bir veri deposudur, ancak tüm bölümlerin aynı şemaya sahip olması gerekir. Her bölüm parça olarak bilinir ve verilerin belirli bir müşteri kümesinin tüm siparişleri gibi belirli bir alt kümesini barındırır.
Dikey bölümleme. Bu stratejide, her bölüm veri deposundaki öğelere ilişkin alanların bir alt kümesini barındırır. Alanlar kendi kullanım düzenlerine göre bölünmüştür. Örneğin, sık erişilen alanlar bir dikey bölüme yerleştirilirken daha az erişilen alanlar başka bir dikey bölüme yerleştirilebilir.
İşlevsel bölümlendirme. Bu stratejide veriler, sistemdeki sınırlanmış her bağlam tarafından nasıl kullanıldıklarına göre bir araya toplanır. Örneğin, bir e-ticaret sistemi fatura verilerini bir bölümde ve ürün envanteri verilerinde farklı bir şekilde saklayabilir.
Bu stratejiler birleştirilebilir ve bir bölümleme düzeni tasarlarken bunların tümünü göz önünde bulundurmanızı öneririz. Örneğin, verileri parçalara bölebilir ve ardından her parçadaki verileri alt bölümlere ayırmak için dikey bölümleme kullanabilirsiniz.
Yatay bölümleme (parçalama)
Şekil 1 ' de yatay bölümleme veya parçalama gösterilmektedir. Bu örnekte, ürün envanter verileri ürün anahtarına göre parçalara bölünmüştür. Her parça, alfabetik olarak düzenlenmiş birbirini takip eden bir parça anahtarı aralığındaki (A-G ve H-Z) verileri içerir. Parçalama, daha fazla bilgisayarın yükünü yayar ve bu da çekişmeyi azaltır ve performansı geliştirir.

Şekil 1-verileri bölüm anahtarına göre yatay olarak bölümleme (parçalama).
En önemli etken, parçalı anahtar seçimdir. Sistem çalışmaya başladıktan sonra anahtarı değiştirmek zor olabilir. Anahtar, verilerin iş yükünü parçalar arasında olabildiğince eşit bir şekilde yaymak üzere bölümlendiğinden emin olmalıdır.
Parçaların aynı boyutta olması gerekmez. İstek sayısını dengelemek daha önemlidir. Bazı parçalar çok büyük olabilir, ancak her öğe az sayıda erişim işlemine sahiptir. Öte yandan diğer parçalar daha küçüktür ama her öğeye çok daha sık erişiliyordur. Tek bir parçanın, veri deposunun ölçek sınırlarını (kapasite ve işlem kaynakları açısından) aşmadığından emin olmak da önemlidir.
Performansı ve kullanılabilirliği etkileyebilecek "etkin" bölümler oluşturmaktan kaçının. Örneğin, bir müşterinin adının ilk harfinin kullanılması, bazı harfler daha yaygın olduğundan, dengesiz bir dağıtıma neden olur. Bunun yerine, bölümler arasında verileri daha eşit bir şekilde dağıtmak için müşteri tanımlayıcısının karmasını kullanın.
Büyük parçaları bölmek, küçük parçaları daha büyük bölümlere birleştirmek veya şemayı değiştirmek için gelecekteki tüm gereksinimleri en aza indiren bir parça anahtarı seçin. Bu işlemler fazlasıyla zaman alabilir ve bunları gerçekleştirmek için bir veya birden çok parçayı çevrimdışı bırakmak gerekebilir.
Parçalar çoğaltılırsa, çoğaltmalardan bazıları ayrılır, birleştirilir veya yeniden yapılandırılırken diğerlerini çevrimiçi tutmak mümkün olabilir. Bununla birlikte, sistem yeniden yapılandırma sırasında gerçekleştirilebilecek işlemleri sınırlandırmalıdır. Örneğin, Çoğaltmalardaki veriler veri inconsistences engellemek için salt okunabilir olarak işaretlenebilir.
Yatay bölümleme hakkında daha fazla bilgi için bkz. parçalama stili.
Dikey bölümleme
Dikey bölümlendirme için en yaygın kullanım, sık erişilen öğeleri getirmeye ilişkin g/ç ve performans maliyetlerini azaltmaktır. Şekil 2'de bir dikey bölümleme örneği gösterilir. Bu örnekte, bir öğenin farklı özellikleri farklı bölümlerde depolanır. Bir bölüm, ürün adı, açıklama ve fiyat dahil olmak üzere daha sık erişilen verileri tutar. Başka bir bölüm stok verilerini barındırır: stok sayısı ve son sipariş tarihi.

Şekil 2-verileri kullanım düzenine göre dikey olarak bölümleniyor.
Bu örnekte, uygulama müşterilere ürün ayrıntılarını görüntülerken düzenli olarak ürün adını, açıklamasını ve fiyatını sorgular. Stok sayısı ve son sipariş tarihi ayrı bir bölümde tutulur çünkü bu iki öğe yaygın olarak birlikte kullanılır.
Dikey bölümlemenin diğer avantajları:
Görece yavaş taşınan veriler (ürün adı, açıklama ve fiyat), daha dinamik verilerden (hisse senedi düzeyi ve son sipariş tarihi) ayrılabilirler. Yavaş hareketli veriler, bir uygulamanın bellekte önbelleğe almak için iyi bir adaydır.
Gizli veriler, ek güvenlik denetimleriyle ayrı bir bölümde depolanabilir.
Dikey bölümleme, gereken eşzamanlı erişim miktarını azaltabilir.
Dikey bölümleme veri deposunda varlık düzeyinde çalışır; varlığı kısmen normalleştirerek bunu geniş bir öğeden bir dizi dar öğeye böler. İdeal olarak HBase ve Cassandra gibi sütun odaklı veri depolarına uygundur. Bir sütun koleksiyonundaki verilerin değişme olasılığı düşükse, SQL Server'daki sütun depolarını kullanmayı da göz önüne alabilirsiniz.
İşlevsel bölümleme
Bir uygulamadaki her farklı iş alanı için sınırlanmış bir bağlam tanımlamak mümkün olduğunda, işlev bölümleme yalıtımı ve veri erişimi performansını artırmanın bir yoludur. İşlevsel bölümlendirme için bir diğer yaygın kullanım, salt okuma verilerinden okuma-yazma verilerini ayırmaktır. Şekil 3'te envanter verilerinin müşteri verilerinden ayrıldığı işlevsel bölümleme genel çizgileriyle gösterilir.

Şekil 3-sınırlı bağlam veya alt etki alanına göre Işlevsel verileri bölümleme.
Bu bölümleme stratejisi sistemin farklı parçaları arasında veri erişim çekişmesini azaltmaya yardımcı olur.
Bölümleri ölçeklenebilirlik için tasarlama
Her bölümün boyutunu ve iş yükünü göz önüne almak ve verilerin maksimum ölçeklenebilirlik sağlanacak şekilde dağıtılması için bunları dengelemek yaşamsal önem taşır. Öte yandan, verileri bölümlerken tek bir bölüm deposunun ölçeklendirme sınırlarını aşmamaya da dikkat etmelisiniz.
Bölümleri ölçeklenebilirlik için tasarlarken şu adımları izleyin:
- Veri erişim desenlerini, örneğin her sorgunun döndürdüğü yanıt kümesinin boyutunu, erişim sıklığını, doğal gecikme süresini ve sunucu tarafı işlem işleme gereksinimlerini anlamak için uygulamayı analiz edin. Birçok durumda, birkaç ana varlık işlem kaynaklarının büyük bölümünü talep edecektir.
- Bu analizi kullanarak güncel ve geleceğe dair ölçeklendirme hedeflerini (veri boyutu ve iş yükü gibi) saptayın. Ardından, ölçeklendirme hedefine uygun şekilde verileri bölümler arasında dağıtın. Yatay bölümleme için doğru parça anahtarının seçerek dağılımın doğru olduğundan emin olmak önemlidir. Daha fazla bilgi için bkz. parçalama düzeni.
- Her bölümün veri boyutu ve aktarım hızı açısından ölçeklenebilirlik gereksinimlerini karşılamak için yeterli kaynaklara sahip olduğundan emin olun. Veri deposuna bağlı olarak, bölüm başına depolama alanı, işlem gücü veya ağ bant genişliği miktarında bir sınır olabilir. Gereksinimler büyük olasılıkla bu sınırları aşıyorsa, bölümleme stratejinizi geliştirmeniz veya verileri daha fazla bölmeniz veya muhtemelen iki veya daha fazla stratejiyi birleştirmeniz gerekir.
- Verilerin beklendiği gibi dağıtıldığından ve bölümlerin yükü işleyene kadar çalıştığını doğrulamak için sistemi izleme. Gerçek kullanım her zaman bir analizin tahminleri ile eşleşmez. Öyleyse, bölümleri yeniden dengelemek veya gerekli dengeyi elde etmek için sistemin bazı bölümlerini yeniden tasarlamak mümkün olabilir.
Bazı bulut ortamları kaynakları altyapı sınırları açısından ayırır. Seçtiğiniz sınırların, veri depolama alanı, işlem gücü ve bant genişliği açısından veri hacmindeki beklenen artışla başa çıkabilecek kadar yer sağladığından emin olun.
Örneğin, Azure tablo depolama kullanıyorsanız, belirli bir süre içinde tek bir bölüm tarafından işlenmiş istek hacmine bir sınır vardır. (Daha fazla bilgi için bkz. Azure depolama ölçeklenebilirlik ve performans hedefleri.) Meşgul bir parça, tek bir bölümün işleyene kadar daha fazla kaynak gerektirmesi olabilir. Öyleyse, yükü yaymak için parçanın yeniden bölümlenenesi gerekir. Bu tabloların toplam boyutu veya aktarım hızı bir depolama hesabının kapasitesini aşarsa ek depolama hesapları oluşturmanız ve tabloları bu hesaplara yaymanız gerekir.
Bölümleri sorgu performansı için tasarlama
Çoğunlukla daha küçük veri kümeleri kullanılarak ve paralel sorgular çalıştırılarak sorgu performansı artırılabilir. Her bölüm, veri kümesinin tamamının küçük bir kısmını içermelidir. Hacmin böyle azaltılması sorguların performansını geliştirebilir. Bununla birlikte bölümleme, veritabanını düzgün bir şekilde tasarlama ve yapılandırmanın alternatifi değildir. Örneğin, gerekli dizinlerin hazır olduğundan emin olun.
Bölümleri sorgu performansı için tasarlarken şu adımları izleyin:
Uygulama gereksinimlerini ve performansını inceleyin:
- Her zaman hızlı bir şekilde gerçekleştirmesi gereken kritik sorguları belirlemek için iş gereksinimlerini kullanın.
- Yavaş çalışan sorguları belirlemek için sistemi izleyin.
- En sık gerçekleştirilen sorguları bulun. Tek bir sorgunun maliyeti düşük olsa bile, kümülatif kaynak tüketimi önemli olabilir.
Düşük performansa neden olan verileri bölümleyin:
- Sorgu yanıt süresinin hedefin dışına çıkmaması için her bölümün boyutunu sınırlandırın.
- Yatay bölümleme kullanıyorsanız, uygulamanın doğru bölümü kolayca seçebiliyor şekilde parça anahtarını tasarlayabilirsiniz. Bu, sorgunun her bölümü taramak zorunda kalmasını önler.
- Bölümün konumu üzerinde düşünün. Mümkünse, verileri coğrafi olarak bunlara erişen uygulamaların ve kullanıcıların yakınındaki bölümlerde tutun.
Bir varlığın aktarım hızı ve sorgu performansı gereksinimleri varsa, o varlığı temel alarak işlevsel bölümleme kullanın. Bu yaklaşım da gereksinimleri karşılamaya yetmezse, aynı zamanda yatay bölümleme de uygulayın. Çoğu durumda, tek bir bölümleme stratejisi yeterli olacaktır, ancak bazı durumlarda her iki stratejiyi birleştirmek daha verimlidir.
Performansı artırmak için bölümler arasında paralel sorgular çalıştırmayı göz önünde bulundurabilirsiniz.
Bölümleri kullanılabilirlik için tasarlama
Verileri bölümlemek, veri kümesinin tamamının tek bir hata noktası oluşturmamasını ve veri kümesindeki tek tek alt kümelerin bağımsız olarak yönetilebilmesini sağladığından uygulamaların kullanılabilirliğini geliştirebilir.
Kullanılabilirliği etkileyen aşağıdaki faktörleri dikkate edin:
Veriler işle ilgili işlemler açısından ne derece kritik. hangi verilerin işlemler gibi kritik iş bilgileri olduğunu ve hangi verilerin günlük dosyaları gibi daha az kritik işletimsel veriler olduğunu belirleme.
Kritik verileri uygun bir yedekleme planıyla yüksek oranda kullanılabilir bölümlere depolamayı göz önünde bulundurabilirsiniz.
Farklı veri kümeleri için ayrı yönetim ve izleme yordamları kurma.
Kritiklik düzeyi aynı olan verileri aynı bölüme yerleştirerek, birlikte uygun bir sıklıkta yedeklenebilmelerini sağlayın. Örneğin, işlem verilerini bulunduran bölümlerin, günlüğe kaydetme veya izleme bilgilerini bulunduran bölümlere göre daha sık bir şekildeiktirilemeleri gerekir.
Tek tek bölümler nasıl yönetilebilir. Bağımsız yönetim ve bakımı destekleyen bölümler tasarlamanın çeşitli avantajları vardır. Örnek:
Bir bölüm başarısız olursa, diğer bölümlere erişen uygulamalar olmadan bağımsız olarak kurtarılabilir.
Verilerin coğrafi alana göre bölümlenmesi, zamanlanmış bakım görevlerinin her konumda yoğun olmayan saatlerde gerçekleştirilmesine olanak tanır. Bu süre boyunca planlı bakımların tamamlanamadıklarından emin olmak için bölümlerin çok büyük olduğundan emin olma.
Kritik verilerin bölümler arasında çoğaltılıp çoğaltılmayacağı. Bu strateji kullanılabilirliği ve performansı geliştirebilir, ancak tutarlılık sorunlarına da neden olabilir. Değişiklikleri her çoğaltmayla eşitlemek zaman alır. Bu süre boyunca, farklı bölümler farklı veri değerleri içeriyor olacaktır.
Uygulama tasarımında dikkat edilmesi gerekenler
Bölümleme, sisteminizin tasarımına ve geliştirilmesine karmaşıklık ekler. Sistem başlangıçta tek bir bölüm içeriyor olsa bile bölümlemeyi sistem tasarımının temel parçalarından biri olarak düşünün. Bölümle ilgili bir sorun olarak ele aldıysanız, bakımını yapmak için zaten canlı bir sisteminiz olduğundan bu daha zor olur:
- Veri erişim mantığının değiştirilecek olması gerekir.
- Mevcut verilerin bölümler arasında dağıtılana kadar büyük miktarlarda geçişe ihtiyacı olabilir.
- Kullanıcılar geçiş sırasında sistemi kullanmaya devam etmek için beklemektedir.
Bazı durumlarda bölümlemenin önemli olduğu düşünülmez çünkü başlangıçtaki veri kümesi küçüktür ve tek sunucu tarafından kolayca işlenebilir. Bu bazı iş yükleri için doğru olabilir, ancak kullanıcı sayısı arttıkça birçok ticari sistemi genişletmesi gerekir.
Ayrıca, bölümlemeden yararlanan yalnızca büyük veri depoları değildir. Örneğin, küçük bir veri deposuna yüzlerce eş zamanlı istemci yoğun olarak erişiyor olabilir. Bu durumda verilerin bölümlenmesi çekişmeyi azaltıp aktarım hızını geliştirmeye yardımcı olabilir.
Veri bölümleme düzeni tasarlarken aşağıdaki noktaları göz önünde bulundurun:
Bölümler arası veri erişim işlemlerini en aza indirme. Mümkün olduğunda, her bölümde en yaygın veritabanı işlemlerinin verilerini bir arada tutarak bölümler arası veri erişim işlemlerini en aza indirin. Bölümler arasında sorgulama, tek bir bölüm içinde sorgulamaya göre daha fazla zaman alabilir, ancak bölümleri bir sorgu kümesi için iyileştirme, diğer sorgu kümelerini olumsuz etkileyebilir. Bölümler arasında sorgulamak gerekirse, paralel sorgular çalıştırarak ve uygulama içindeki sonuçları bir arada kullanarak sorgu süresini en aza indirgeyebilirsiniz. (Bu yaklaşım, bir sonraki sorguda bir sorgudan elde edilen sonuç gibi bazı durumlarda mümkün olmayacaktır.)
Statik başvuru verilerini çoğaltmayı göz önünde bulundurabilirsiniz. Sorgular posta kodu tabloları veya ürün listeleri gibi görece statik başvuru verileri kullanıyorsa, farklı bölümlerde ayrı arama işlemlerini azaltmak için bu verileri tüm bölümlere çoğaltmayı göz önünde bulundurabilirsiniz. Bu yaklaşım, başvuru verilerini sistemin tamamına gelen yoğun trafikle birlikte "yoğun" bir veri kümesine dönüşme olasılığını da düşürebilirsiniz. Ancak, başvuru verisi üzerinde yapılan tüm değişikliklerin eşitlenmesiyle ilişkili ek bir maliyet sözlerine sahip olur.
Bölümler arası birleştirmeleri en aza indirme. Mümkünse, dikey ve işlevsel bölümler arasında başvurusal bütünlük gereksinimlerini en alt düzeyde tutun. Bu düzenlerde, bölümler arasında bilgi tutarlılığını korumak uygulamanın sorumluluğundadır. Uygulamanın genellikle bir anahtarı ve ardından yabancı anahtarı temel alarak ardışık sorgular gerçekleştirmesi gerek olduğundan, birden çok bölümdeki verileri bire bir alan sorgular verimsizdir. Bunun yerine, ilgili verileri çoğaltmayı veya normalleştirmelerini kaldırmayı göz önünde bulundurun. Bölümler arası birleştirmeler gerekiyorsa, bölümler üzerinde paralel sorgular çalıştırın ve uygulama içindeki verileri katılın.
Nihai tutarlılık yaklaşımını benimseyin. Aslında güçlü bir tutarlılığın gerekip gerekmediğini değerlendirin. Dağıtılmış sistemlerde yaygın bir yaklaşım, nihai tutarlılığı uygulamaktır. Her bölümdeki veriler ayrı güncelleştirilir ve uygulama mantığı tüm güncelleştirmelerin başarıyla tamamlanmasını güvence altına alır. Ayrıca, son tutarlılık işlemi çalıştırılırken sorgu verilerinde ortaya çıkabilecek tutarsızlıkları da giderir.
Sorguların doğru bölümü nasıl bulduğunu göz önünde bulundurun. Sorgunun gerekli verileri bulmak için tüm bölümleri taraması gerekirse, birden çok paralel sorgu çalıştırılıyor olsa bile performansı önemli ölçüde etkiler. Dikey ve işlevsel bölümleme ile sorgular bölümü doğal olarak belirtebilirsiniz. Öte yandan yatay bölümleme, her parça aynı şemaya sahip olduğundan bir öğenin yerinin zor olmasına neden olabilir. Belirli öğeler için parça konumunu bulmak için kullanılan bir haritanın bakımını yapmak için tipik bir çözüm. Bu harita uygulamanın parçalama mantığında oluşturulabilir veya saydam parçalamayı destekliyorsa veri deposu tarafından tutulabilir.
Parçaları düzenli aralıklarla yeniden değerlendirmeyi göz önünde bulundurarak. Yatay bölümleme ile parçaları yeniden dengelemek, etkin noktaları en aza indirmek, sorgu performansını en üst düzeye çıkarmak ve fiziksel depolama sınırlamalarına karşı çalışmak için verileri boyuta ve iş yüküne göre eşit olarak dağıtmaya yardımcı olabilir. Bununla birlikte, bu özel bir araç veya işlemin kullanılmasını gerektiren karmaşık bir görevdir.
Bölümleri çoğaltma. Her bölümü çoğaltırsanız, hataya karşı ek koruma sağlanır. Tek bir çoğaltma başarısız olursa, sorgular çalışan bir kopyaya yönlendirılabilir.
Bölümleme stratejisinin fiziksel sınırlarına ulaşırsanız, ölçeklenebilirliği farklı bir düzeye genişletmeniz gerekebilir. Örneğin bölümleme veritabanı düzeyinde yapılıyorsa, bölümleri birden çok veritabanına yerleştirmeniz veya çoğaltmanız gerekebilir. Bölümleme zaten veritabanı düzeyindeyse ve fiziksel sınırlamalar sorun yaratıyorsa, bu durum bölümleri birden çok barındırma hesabına yerleştirmeniz veya çoğaltmanız gerektiği anlamına gelebilir.
Birden çok bölümdeki verilere erişen işlemlerden kaçının. Bazı veri depoları verilerde değişiklik yapan işlemler için işlem tutarlılığı ve bütünlüğünü gerçekleştirir ama bunun için verilerin tek bir bölümde yer alıyor olması gerekir. Birden çok bölümde işlem desteğine ihtiyacınız varsa, büyük olasılıkla bunu uygulama mantığınızın bir parçası olarak gerçekleştirmeniz gerekir çünkü bölümleme sistemlerinin çoğu yerel destek sağlamaz.
Tüm veri depoları bazı işletimsel yönetim ve izleme etkinlikleri gerektirir. Görevler arasında verileri yükleme, veri yedekleme ve geri yükleme, verileri yeniden düzenleme ve sistemin doğru ve verimli çalıştığından emin olma sayılabilir.
İşletimsel yönetimi etkileyen aşağıdaki faktörleri göz önünde bulundurun:
Veriler bölümlendiğinde uygun yönetim ve işletim görevleri nasıl gerçekleştirilir. Bu görevler yedekleme ve geri yüklemeyi, verileri arşivlemeyi, sistemi izlemeyi ve diğer yönetim görevlerini içerebilir. Örneğin, yedekleme ve geri yükleme işlemleri sırasında mantıksal tutarlılığı korumak zor olabilir.
Birden çok bölümdeki veriler nasıl yüklenir ve başka kaynaklardan gelen yeni veriler nasıl eklenir. Bazı araçlar ve yardımcı programlar verileri doğru bölüme yükleme gibi parçalanmış veri işlemlerini desteklemiyor olabilir.
Veriler nasıl düzenli aralıklarla arşivlenir ve silinir. Bölümlerin aşırı büyümesini önlemek için verileri düzenli aralıklarla (örneğin, aylık) arşivlemeniz ve silmeniz gerekir. Farklı bir arşiv şemasıyla eşleşmesi için verileri dönüştürmeniz gerekebilir.
Veri bütünlüğü sorunları nasıl bulunur. Başka bir bölümdeki eksik bilgilere başvurulan bir bölümdeki veriler gibi veri bütünlüğü sorunlarını bulmak için düzenli aralıklarla bir işlem çalıştırmayı göz önünde bulundurabilirsiniz. İşlem bu sorunları otomatik olarak düzeltmeyi veya el ile gözden geçirmek için bir rapor oluşturma girişiminde olabilir.
Bölümleri yeniden dengeleme
Sistem olgunlaştıkça bölümleme düzenini ayarlamanız gerekir. Örneğin, tek tek bölümler orantısız bir trafik hacmi almaya başlayabilir ve etkin hale geldi ve bu da aşırı bir muhtelemene neden olabilir. Veya bazı bölümlerin kapasite sınırlarına yaklaşmasına neden olan veri hacmini hafife almış da olabilirsiniz.
Cosmos DB gibi bazı veri depoları bölümleri otomatik olarak yeniden dengeler. Diğer durumlarda yenidenbanalama iki aşamadan oluşan bir yönetim görevidir:
Yeni bir bölümleme stratejisi belirleme.
- Hangi bölümlerin bölünmesi (veya bir olasılıkla birleştirilmiş olması) gerekir?
- Yeni bölüm anahtarı nedir?
Eski bölümleme düzeninden yeni bölüm kümesine veri geçirme.
Veri deposuna bağlı olarak, verileri kullanım sırasında bölümler arasında geçirebilirsiniz. Buna çevrimiçi geçiş denir. Bu mümkün yoksa, veriler yeniden konumlandı ( çevrimdışı geçiş) sırasında bölümleri kullanılamaz halegetirmeniz gerekir.
Çevrimdışı geçiş
Çevrimdışı geçiş genellikle daha basittir çünkü bu, bir sorun olma ihtimalini azaltır. Kavramsal olarak çevrimdışı geçiş şu şekilde çalışır:
- Bölümü çevrimdışı olarak işaretleme.
- Verileri bölme-birleştirme ve yeni bölümlere taşıma.
- Verileri doğrulayın.
- Yeni bölümleri çevrimiçine getirin.
- Eski bölümü kaldırın.
İsteğe bağlı olarak, uygulamaların taşınırken verileri okuyabilen bir bölümü 1. adımda salt okunur olarak işaretlebilirsiniz.
Çevrimiçi geçiş
Çevrimiçi geçiş gerçekleştirmek daha karmaşıktır ancak daha az kesintiye neden olur. İşlem çevrimdışı geçişe benzer, ancak özgün bölüm çevrimdışı olarak işaretlanmaz. Geçiş işleminin ayrıntı durumuna bağlı olarak (örneğin, parçaya göre öğeye göre öğeye ve parçaya göre), istemci uygulamalarındaki veri erişim kodunun iki konumda (özgün bölüm ve yeni bölüm) tutulan verileri okuma ve yazma işlemlerini işlemesi gerekir.
İlgili düzenler
Aşağıdaki tasarım desenleri senaryoyla ilgili olabilir:
Parçalama düzeni, verileri parçalamak için bazı yaygın stratejileri açıklar.
Dizin tablosu düzeni, veriler üzerinde ikincil dizinlerin nasıl oluşturulacaklarını gösterir. Uygulama bu yaklaşımla, koleksiyonun birincil anahtarına başvurmayan sorgular kullanarak verileri hızla alabilir.
Uzmlaştırılmış görünüm düzeni, hızlı sorgu işlemlerini desteklemek için verileri özetleyen önceden doldurulan görünümler oluşturma işlemlerini açıklar. Özetlenen verileri içeren bölümler birden çok siteye dağıtılmışsa bu yaklaşım bölümlenmiş bir veri deposunda kullanışlı olabilir.
Sonraki adımlar
- Belirli Azure hizmetleri için bölümleme stratejileri hakkında bilgi edinin. Bkz. Veri bölümleme stratejileri