Veritabanı parçalama nedir?

Veritabanı parçalama, büyük bir veritabanını birden fazla makinede saklama işlemidir. Tek bir makine veya veritabanı sunucusu, yalnızca sınırlı miktarda veriyi depolayabilir ve işleyebilir. Veritabanı parçalama, verileri parçalar adı verilen daha küçük kısımlara ayırarak ve bunları birkaç veritabanı sunucusunda depolayarak bu sınırlamanın üstesinden gelir. Tüm veritabanı sunucuları genellikle aynı temel teknolojilere sahiptir ve büyük hacimli verileri depolamak ve işlemek için birlikte çalışırlar.

Veritabanı parçalama neden önemlidir?

Bir uygulama büyüdükçe, uygulama kullanıcılarının sayısı ve depoladığı veri miktarı da zamanla artar. Veri hacmi çok artarsa ve çok fazla kullanıcı aynı anda bilgileri okumak veya kaydetmek için uygulamayı kullanmaya çalışırsa veritabanı bir darboğaz haline gelir. Uygulama yavaşlar ve müşteri deneyimini etkiler. Veritabanı parçalama, parçalar arasındaki daha küçük veri kümelerinin paralel olarak işlenmesini sağladığından bu sorunu çözmenin yöntemlerinden biridir.

Veritabanı parçalamanın avantajları nelerdir?

Kuruluşlar, veritabanı parçalamadan yararlanarak aşağıdaki avantajları elde eder:

Yanıt süresini iyileştirme

Tek bir büyük veritabanında veri alımı daha uzun sürer. Veritabanı yönetim sisteminin doğru verileri almak için birçok satırda arama yapması gerekir. Buna karşın, veri parçalarında tüm veritabanından daha az satır vardır. Bu nedenle, parçalanmış bir veritabanından belirli bilgileri almak veya bir sorgu çalıştırmak daha az zaman alır. 

Toplam hizmet kesintisinden kaçınma

Veritabanını barındıran bilgisayar hata verirse veritabanına bağlı olan uygulama da hata verir. Veritabanı parçalama, veritabanının parçalarını farklı bilgisayarlara dağıtarak bu durumu önler. Bilgisayarlardan birinde hata meydana gelmesi, diğer işlevsel parçalarla birlikte çalışabileceğinden uygulamayı kapatmaz. Parçalama, genellikle parçalarda veri çoğaltma ile birlikte yapılır. Yani, bir parça kullanılamaz hale gelirse verilere alternatif bir parça üzerinden erişilebilir ve veriler geri yüklenebilir.

Verimli ölçeklendirme

Büyüyen bir veritabanı daha fazla bilgi işlem kaynağı tüketir ve sonunda depolama kapasitesine ulaşır. Kuruluşlar, veritabanı ölçeklendirmesini desteklemek amacıyla daha fazla bilgi işlem kaynağı eklemek için veritabanı parçalama işleminden yararlanabilir. Bakım için uygulamayı kapatmadan çalışma zamanında yeni parçalar ekleyebilirler.

Veritabanı parçalama nasıl çalışır?

Bir veritabanı, bilgileri sütun ve satırlardan oluşan birden çok veri kümesinde depolar. Veritabanı parçalama işlemi, tek bir veri kümesini bölümlere veya parçalara ayırır. Her parça, düğüm adı verilen birden çok bilgisayarda ayrı ayrı saklayabileceğiniz benzersiz bilgi satırları içerir. Tüm parçalar ayrı düğümlerde çalışır ancak orijinal veritabanının şemasını veya tasarımını paylaşır. 

Örneğin, müşteri kayıtları için bir veri kümesi içeren parçalanmamış bir veritabanı şu şekilde görünebilir.

Müşteri Kimliği

Ad

Eyalet

1

John

California

2

Jane

Washington

3

Paulo

Arizona

4

Wang

Gürcistan

Parçalama, aşağıda gösterildiği gibi farklı bilgi satırlarını tablodan ayırmayı ve bunları farklı makinelerde saklamayı içerir.

Bilgisayar A

Müşteri Kimliği

Ad

Eyalet

1

John

California

2

Jane

Washington

Bilgisayar B

Müşteri Kimliği

Ad

Eyalet

3

Paulo

Arizona

4

Wang

Gürcistan

Shards

Bölümlenmiş veri parçalarına mantıksal parçalar denir. Mantıksal parçayı depolayan makineye fiziksel parça veya veritabanı düğümü denir. Fiziksel bir parça, birden fazla mantıksal parça içerebilir. 

Parça anahtarı

Yazılım geliştiriciler, veri kümesinin nasıl bölüneceğini belirlemek için bir parça anahtarı kullanır. Veri kümesindeki bir sütun, bir parça oluşturmak için hangi veri grubunun bir araya getirileceğini belirler. Veritabanı tasarımcıları mevcut bir sütundan bir parça anahtarı seçer veya yeni bir anahtar oluşturur.

Kaynak paylaşımsız mimari

Veritabanı parçalama, kaynak paylaşımsız mimaride çalışır. Her fiziksel parça bağımsız olarak çalışır ve diğer parçalardan habersizdir. Yalnızca talep ettiğiniz verileri içeren fiziksel parçalar, verileri sizin için paralel olarak işleyecektir. 

Bir yazılım katmanı, veri depolamayı ve bu çoklu parçalardan erişimi koordine eder. Örneğin, bazı veritabanı teknolojisi türlerinde yerleşik olarak otomatik parçalama özellikleri bulunur. Yazılım geliştiriciler, doğru parça veya parçalardan bilgi depolamak veya almak için de uygulamalarında parçalama kodu yazabilirler. 

Veritabanı parçalama yöntemleri nelerdir?

Veritabanı parçalama yöntemleri, belirli bir veri satırı için doğru düğümü belirlemek üzere parça anahtarına farklı kurallar uygular. Yaygın parçalama mimarileri aşağıdaki gibidir.

Aralık tabanlı parçalama

Aralık tabanlı parçalama veya dinamik parçalama, veritabanı satırlarını bir değer aralığına göre böler. Ardından veritabanı tasarımcısı, ilgili aralığa bir parça anahtarı atar. Örneğin, veritabanı tasarımcısı verileri müşterinin adındaki ilk harfe göre aşağıdaki gibi bölümlere ayırır. 

 

Ad

Parça anahtarı

Baş harfi A ila I arasında olanlar

A

Baş harfi J ila S arasında olanlar

B

Baş harfi T ila Z arasında olanlar

C

 

Uygulama, veritabanına bir müşteri kaydı yazarken, müşterinin adını kontrol ederek doğru parça anahtarını belirler. Uygulama daha sonra anahtarı fiziksel düğümüyle eşleştirir ve satırı söz konusu makinede saklar. Benzer şekilde, uygulama belirli bir kaydı ararken ters eşleşme gerçekleştirir.

Artıları ve eksileri

Aralık tabanlı parçalama, veri değerlerine bağlı olarak, verilerin tek bir fiziksel düğümde aşırı yüklenmesine neden olabilir. Örneğimizde, parça A (baş harfi A ila I arasında olan isimleri içeren), parça C'den (baş harfi T ila Z arasında olan isimleri içeren) çok daha fazla sayıda veri satırı içerebilir. Ancak, uygulanması daha kolaydır.

Karma parçalama

Karma parçalama, karma işlevi adı verilen matematiksel bir formül kullanarak parça anahtarını veritabanının her bir satırına atar. Karma işlevi, bilgileri satırdan alır ve bir karma değer üretir. Uygulama, karma değeri bir parça anahtarı olarak kullanır ve bilgileri ilgili fiziksel parça içinde saklar.

Yazılım geliştiriciler, bir veritabanındaki bilgileri birden çok parça arasında eşit olarak dağıtmak için karma parçalama işleminden yararlanır. Örneğin yazılım, müşteri kayıtlarını alternatif karma değerleri 1 ve 2 olan iki parçaya ayırır. 

Ad

Karma değer

John

1

Jane

2

Paulo

1

Wang

2

Artıları ve eksileri

Karma parçalama, fiziksel parçalar arasında eşit veri dağılımıyla sonuçlansa da veritabanını bilginin anlamına göre ayırmaz. Bu nedenle yazılım geliştiriciler, bilgi işlem ortamına daha fazla fiziksel parça eklerken karma değeri yeniden atama konusunda zorluklarla karşılaşabilirler. 

Dizin parçalama

Dizin parçalama, veritabanı bilgilerini karşılık gelen fiziksel parça ile eşleştirmek için bir arama tablosu kullanır. Arama tablosu, bir elektronik tablodaki bir veritabanı sütununu bir parça anahtarına bağlayan bir tablo gibidir. Örneğin, aşağıdaki şemada giysi renkleri için bir arama tablosu gösterilmektedir.

Renk

Parça anahtarı

Mavi

A

Kırmızı

B

Sarı 

C

Siyah

D

Bir uygulama, giysi bilgilerini veritabanında sakladığında, arama tablosuna atıfta bulunur. Bir elbise maviyse uygulama, bilgileri ilgili parça içinde saklar. 

Artıları ve eksileri

Yazılım geliştiriciler, esnekliğinden dolayı dizin parçalama işlemini kullanır. Her parça, veritabanının anlamlı bir temsilidir ve aralıklarla sınırlı değildir. Bununla birlikte, arama tablosu yanlış bilgi içeriyorsa dizin parçalama başarısız olur. 

Coğrafi parçalama

Coğrafi parçalama, veritabanı bilgilerini coğrafi konuma göre böler ve depolar. Örneğin, bir flört hizmet web sitesi, çeşitli şehirlerdeki müşterilerin bilgilerini aşağıdaki gibi depolamak için bir veritabanı kullanır. 

Ad

Parça anahtarı

John

California

Jane

Washington

Paulo

Arizona

Yazılım geliştiriciler, şehirleri parça anahtarları olarak kullanır. Her müşterinin bilgilerini coğrafi olarak ilgili şehirlerde bulunan fiziksel parçalarda saklarlar. 

Artıları ve eksileri

Coğrafi parçalama, parça ile talepte bulunan müşteri arasındaki daha kısa mesafe sayesinde uygulamaların bilgileri daha hızlı almasını sağlar. Veri erişim modelleri ağırlıklı olarak coğrafyaya dayanıyorsa bu sistem iyi çalışır. Bununla birlikte, coğrafi parçalama düzensiz veri dağılımına da neden olabilir. 

Eşit veri dağıtımı için veritabanı parçalama nasıl optimize edilir?

Belirli fiziksel parçalarda aşırı veri yüklenmesi varken diğer parçaların az yüklü kaldığı durumlar, veritabanı sıcak noktalarıyla sonuçlanır. Sıcak noktalar, veri parçalamanın amacını ortadan kaldırarak veritabanındaki alım sürecini yavaşlatır. 

İyi bir parça anahtarı seçimi, verileri birden çok parça arasında eşit olarak dağıtabilir. Bir parça anahtarı seçerken, veritabanı tasarımcıları aşağıdaki faktörleri göz önünde bulundurmalıdır. 

Kardinalite

Kardinalite, parça anahtarının olası değerlerini açıklar. Ayrı sütun yönelimli veritabanlarında mümkün olan maksimum parça sayısını belirler. Örneğin, veritabanı tasarımcısı bir evet/hayır veri alanını parça anahtarı olarak seçerse parçaların sayısı iki ile sınırlıdır.

Frekans

Frekans, belirli bir bilgiyi belirli bir parça içinde saklama olasılığıdır. Örneğin, bir veritabanı tasarımcısı, bir fitnes web sitesi için bir parça anahtarı olarak yaşı seçer. Kayıtların çoğu 30-45 yaş arası abonelere ilişkin düğümlerde yer alabilir ve veritabanı sıcak noktalarına neden olabilir. 

Monotonik değişim

Monotonik değişim, parça anahtarının değişim oranıdır. Monoton olarak artan veya azalan bir parça anahtarı dengesiz parçalarla sonuçlanır. Örneğin, bir geri bildirim veritabanı aşağıdaki gibi üç farklı fiziksel parçaya bölünür:

  • Parça A, 0 ila 10 arasında satın alma işlemi yapan müşterilerden gelen geri bildirimleri depolar.
  • Parça B, 11 ila 20 arasında satın alma işlemi yapan müşterilerden gelen geri bildirimleri depolar.
  • Parça C, 21 veya daha fazla satın alma işlemi yapan müşterilerden gelen geri bildirimleri depolar.

İş büyüdükçe, müşteriler 21 veya daha fazla satın alma işlemi yapacaktır. Uygulama, geri bildirimlerini Parça C'de saklar. Parça C, diğer parçalardan daha fazla geri bildirim kaydı içerdiğinden bu durum dengesiz bir parça ile sonuçlanır.

Veritabanı parçalama alternatifleri nelerdir?

Veritabanı parçalama, bir uygulamanın iş yükünü paylaşmak için ek düğümler veya bilgisayarlar tahsis eden yatay bir ölçekleme stratejisidir. Kuruluşlar, hataya dayanıklı mimarisi nedeniyle yatay ölçeklendirmeden yararlanır. Bir bilgisayar hata verdiğinde, diğerleri kesintisiz çalışmaya devam eder. Veritabanı tasarımcıları, mantıksal parçaları birden çok sunucuya yayarak kesinti süresini azaltır. 

Bununla birlikte, parçalama diğer birkaç veritabanı ölçeklendirme stratejisinden biridir. Diğer tekniklerden bazılarını inceleyin ve aralarındaki farkları anlayın.

Dikey ölçeklendirme

Dikey ölçeklendirme, tek bir makinenin bilgi işlem gücünü artırır. Örneğin, BT ekibi artan trafiği işlemek için bir veritabanı sunucusuna bir CPU, RAM ve bir sabit disk ekler. 

Veritabanı parçalama ve dikey ölçeklendirme karşılaştırılması

Dikey ölçeklendirme daha az maliyetlidir ancak dikey olarak ölçeklendirebileceğiniz bilgi işlem kaynakları sınırlıdır. Öte yandan, bir yatay ölçeklendirme stratejisi olan parçalamanın uygulanması daha kolaydır. Örneğin, BT ekibi eski bilgisayar donanımını yükseltmek yerine birden çok bilgisayar yükler.

Replikasyon

Çoğaltma, veritabanının tam kopyalarını oluşturan ve bunları farklı bilgisayarlarda depolayan bir tekniktir. Veritabanı tasarımcıları, hataya dayanıklı bir ilişkisel veritabanı yönetim sistemi tasarlamak için çoğaltma işleminden yararlanır. Veritabanını barındıran bilgisayarlardan biri hata verdiğinde, diğer kopyalar çalışır durumda kalır. Çoğaltma, dağıtılmış bilgi işlem sistemlerinde yaygın bir uygulamadır.

Veritabanı parçalama ve çoğaltma karşılaştırması

Veritabanı parçalama, aynı bilgilerin kopyalarını oluşturmaz. Bunun yerine, bir veritabanını birden çok parçaya böler ve bunları farklı bilgisayarlarda saklar. Çoğaltmanın aksine, veritabanı parçalama yüksek erişilebilirlik ile sonuçlanmaz. Parçalama, hem ölçek hem de yüksek erişilebilirlik elde etmek için çoğaltma ile birlikte kullanılabilir.

Bazı durumlarda, veritabanı parçalama, belirli veri kümelerinin kopyalarından oluşabilir. Örneğin, hem ABD'li hem de Avrupalı müşterilere ürün satan bir perakende mağazası, boyut dönüşüm tablolarının kopyalarını her iki bölge için farklı parçalarda depolayabilir. Uygulama, diğer veritabanı sunucularına erişmeden ölçüm boyutunu dönüştürmek için dönüşüm tablosunun yinelenen kopyalarını kullanabilir. 

Bölümleme

Bölümleme, bir veritabanı tablosunu birden çok gruba bölme işlemidir. Bölümleme iki türe ayrılır: 

  • Yatay bölümleme, veritabanını satırlara göre böler.
  • Dikey bölümleme, veritabanı sütunlarının farklı bölümlerini oluşturur. 

Veritabanı parçalama ve bölümleme karşılaştırması

Veritabanı parçalama, yatay bölümleme gibidir. Her iki işlem de veritabanını birden çok benzersiz satır grubuna böler. Bölümleme, tüm veri gruplarını aynı bilgisayarda depolarken, veritabanı parçalama bu grupları farklı bilgisayarlara yayar.

Veritabanı parçalamanın zorlukları nelerdir?

Kuruluşlar, veritabanı parçalama işlemini uygularken şu zorluklarla karşılaşabilir.

Veri sıcak noktaları

Verilerin eşit olmayan dağılımı nedeniyle bazı parçalar dengesiz hale gelir. Örneğin, A ile başlayan müşteri adlarını içeren tek bir fiziksel parça diğerlerinden daha fazla veri alır. Bu fiziksel parça diğerlerinden daha fazla bilgi işlem kaynağı kullanacaktır.

Çözüm

En uygun parça anahtarlarını kullanarak verileri eşit olarak dağıtabilirsiniz. Bazı veri kümeleri, parçalama için diğerlerinden daha uygundur.

Operasyonel karmaşıklık

Veritabanı parçalama, operasyonel karmaşıklık yaratır. Geliştiricilerin tek bir veritabanını yönetmek yerine, birden çok veritabanı düğümünü yönetmesi gerekir. Geliştiriciler, bilgi alırken birkaç parçayı sorgulamalı ve bilgi parçalarını bir araya getirmelidir. Bu alma işlemleri, analizleri karmaşık hale getirebilir.

Çözüm

AWS veritabanı portföyünde, veritabanı kurulumu ve işlemleri büyük ölçüde otomatikleştirilmiştir. Bu, parçalanmış bir veritabanı mimarisi ile çalışmayı daha kolaylaştırılmış bir görev haline getirir.

Altyapı maliyetleri

Kuruluşlar, fiziksel parça olarak daha fazla bilgisayar eklediklerinde altyapı maliyetleri için daha fazla ödeme yaparlar. Şirket içi veri merkezinizdeki makine sayısını artırırsanız bakım maliyetleri de artabilir.

Çözüm

Geliştiriciler bulutta parçaları barındırmak ve ölçeklendirmek için Amazon Esnek İşlem Bulutu'nu (Amazon EC2) kullanır. AWS'nin tam olarak yönettiği sanal altyapıyı kullanarak paradan tasarruf edebilirsiniz.

Uygulama karmaşıklığı

Çoğu veritabanı yönetim sisteminde yerleşik parçalama özellikleri yoktur. Bu, veritabanı tasarımcılarının ve yazılım geliştiricilerin veritabanını manuel olarak bölmesi, dağıtması ve yönetmesi gerektiği anlamına gelir.

Çözüm

Verilerinizi yatay ölçeklendirmeyi destekleyen çeşitli yerleşik özelliklere sahip uygun AWS amaca yönelik veritabanına taşıyabilirsiniz.

AWS, veritabanı parçalama konusunda nasıl yardımcı olabilir?

AWS, modern bir veri stratejisi oluşturmak için kullanabileceğiniz küresel bir veri yönetimi platformudur. AWS ile, amaca yönelik olarak oluşturulmuş doğru veritabanınıseçebilir, uygun ölçekte performans elde edebilir, tam olarak yönetilen veritabanlarını çalıştırabilir ve yüksek erişilebilirlik ve güvenlikten yararlanabilirsiniz.

Hemen bir AWS hesabı oluşturarak AWS'de veri yönetiminden yararlanmaya başlayın.

AWS için sonraki adımlar

Ürünle ilgili diğer kaynaklara göz atın
Veritabanı hizmetleri hakkında daha fazla bilgi edinin 
Ücretsiz bir hesap için kaydolun

Ücretsiz Veritabanı Hizmetlerini Görüntüleyin.

Kaydolun 
Konsolda oluşturmaya başlayın

AWS Yönetim Konsolu'nda oluşturmaya başlayın.

Oturum açın