Apache Cassandra, birden çok veri merkezinde ve bulutta büyük miktarda veriyi işlemek için oluşturulmuş dağıtılmış bir veritabanı yönetim sistemidir. NoSQL veritabanlarından biri olan Apache Cassandra günümüzde sahip olduğu özellikleri sayesinde veritabanı sistemleri arasında öne çıkıyor ve diğer sistemlere göre belirli avantajlar sunuyor. Bu yazımızda sizler için Apache Cassandra veritabanı sistemini, sahip olduğu özellikleri ve avantajları sunarak hangi işletmeler için uygun olduğunu açıkladık.

Apache Cassandra Nedir?

Facebook ile başlayan ve Temmuz 2008 yılında bir proje olarak piyasaya sürülen Apache Cassandra açık kaynak ve dağıtılmış bir mimariye sahip bir NoSQL veritabanıdır. Apache Cassandra, donanım veya bulut altyapısında doğrusal ölçeklenebilirlik ve hataya dayanıklılığı ile performanstan ödün vermeden, güvenilir bir şekilde büyük miktarda yapılandırılmış veriyi işlemek için tasarlanmıştır. Sahip olduğu dağıtılmış yapısı ile Apache Cassandra verilerin tek bir sunucuya değil, birden fazla sunucuya yayılmış bir şekilde depolanmasını sağlar.

NoSQL Veritabanı Nedir?

Tablo formatlı depolama gerektiren ilişkisel veritabanlarının aksine, NoSQL veritabanları yapılandırılmamış verileri depolayan ve alan bir veritabanı modelidir. NoSQL veritabanı anahtar-değer, belge, sütun, grafik gibi çeşitli veri modelleri sağlar. Sahip olduğu esneklik, ölçeklenebilirlik, yüksek performans ve yüksek oranda işlevsellik sayesinde büyük veri hacmi, düşük gecikme süreleri ve esnek veri modelleri gerektiren pek çok modern uygulama için optimize edilmiştir.

Cassandra Veri Modeli

Apache Cassandra veritabanındaki veri modeli olarak temelde satır ve sütunlardan oluşan tablo yapısını kullanır. İlişkisel veri tabanlarının sahip olduğu benzer bir yapıyı kullanmasının yanı sıra tabloda yer alan her satırın aynı sütunlara sahip olması gerekmiyor. Bu durum, Cassandra’nın diğer ilişkisel veritabanlarına göre daha esnek bir veri modeline sahip olduğunu gösteriyor.

Cassandra veri modelinde satır ve sütunlardan oluşan tabloların yanı sıra keyspace ve cluster yapıları bulunuyor. Keyspace, bir veya daha fazla node yayılmış olan tabloların tutulduğu yapı olarak modelde yer alıyor. Cluster ise bir veya daha fazla keyspace bulunduran yapılar olarak veri modeli içerisinde bulunuyor.

Cassandra Veri Tipleri

Cassandra veritabanında veri tipi olarak yerleşik, koleksiyon ve kullanıcı tanımlı olmak üzere temelde üç veri tipi bulunuyor. Bu veri tipleri şu şekilde özetlenebilir:

1. Yerleşik Veri Tipi

> boolean: True veya false olmak üzere iki değeri temsil eder ve sadece iki değer içeren değişkenler için kullanılır.

> blob: Rastgele dizilmiş byte dizisi olan bu veri türü ses, görüntü, multimedya gibi içerikleri temsil etmek için kullanılır.

> ascii: Karakter dizisini temsil eden bu veri türü kelimeler ve cümleler yani dizeler için kullanılır.

> bigint: Bu veri türü, int ile karşılaştırıldığında 64 bit işaretli uzun tamsayılar için kullanılır.

> Counter: Sayaç sütununu temsil eden bu veri türü tamsayılar için kullanılır.

> decimal: Hemen hemen her dilde kullanılan bu veri türü örnek tamsayılar için kullanılır.

> double: 64 bitlik gerçel sayıları temsil eden bu veri türü tam sayılar için kullanılır.

> float: 32 bitlik gerçel sayıları temsil eden bu veri türü sayılar için kullanılır.

> inet: Bir IP adresini temsil etmek için kullanılan bu veri türü dizeler veya karakterler için kullanılır.

> int: 32 bit işaretli negatif ve pozitif sayıları temsil eden bu veri türü big int veri türünün düşük araklıklı sürümüdür.

> text: UTF 8 kodlu dizeyi temsil eden bu veri türü dizeler için kullanılır.

> varchar: Bir değişken veya rastgele karakteri tanımlayan bu veri türü UTF 8’i karşılamak için kullanılır.

> timestamp: Tarih bilgisini temsil eden bu veri türü tarih, yıl, saat gibi biçimler ile zamanı göstermek için kullanılır.

 

2. Koleksiyon Veri Tipi

> list: Bir tablodaki bir veya daha fazla birimin koleksiyonunu temsil eder.

> map: Anahtar-değer çiftleri koleksiyonunu temsil eder.

> set: Bir tabloda sıralanmış olan bir veya daha fazla birimin koleksiyonunu temsil eder.

 

3. Kullanıcı Tanımlı Veri Tipi

Bu veri türü kullanıcının gereksinimlerine göre kendi veri türlerini oluşturmasını sağlar. Kullanıcı veri tipi ve alanlar oluşturduktan sonra alanı veya tüm veri tipini değiştirebilir, doğrulayabilir veya iptal edebilir.

Cassandra Özellikleri Nelerdir?

Apache Cassandra sahip olduğu teknik özellikleri günümüzde dünyanın en büyük firmaları tarafından tercih edilmesinin temel nedenini oluşturuyor. Cassandra’nın sahip olduğu bazı temel özellikler şu şekilde sıralanabilir:

  • Esnek Ölçeklenebilirlik: İhtiyaç doğrultusunda farklı miktarlardaki veriyi barındırmak için çeşitli düzeylerde ölçek kullanımlarına izin verir.
  • Erişilebilirlik: Veriler hibrit bulut ortamlarında çoğaltıldığı için hiç kesinti yaşanmadan veriler her zaman erişilebilirdir ve asla kaybolmazlar.
  • Ölçek Performansı: Doğrusal olarak ölçeklenebilir özelliği ile cluster içerisinde bulunan node sayısı artsa da hızlı tepki süresini korur.
  • Veri Depolama: Veri yapılarındaki değişiklikleri ihtiyaca bağlı olarak yapılandırılmış, yarı yapılandırılmış ve yapılandırılmamış olarak tüm olası veri formatlarında barındırabilir.
  • Veri Dağıtımı: Verileri ihtiyaç duyulan birden fazla veri merkezinde çoğaltarak veri dağıtımında esneklik sağlar.
  • İşlem Desteği: Atomisite, Tutarlılık, İzolasyon ve Dayanıklılık (ACID) gibi özellikleri destekler.
  • Yazma ve Okuma: Yüksek maliyetli olmayan ticari donanımlar üzerinde hızlı yazma ve okuma verimliliği sağlayacak şekilde tasarlanmıştır.

Cassandra’nın Avantajları Nelerdir?

En yaygın olarak kullanılan NoSQL veritabanlarından biri olan Apache Cassandra sahip olduğu özellikleriyle işletmelere çeşitli açılardan avantajlar sunar. Bu avantajları şu şekilde sıralayabiliriz:

  • Yüksek düzeyde erişilebilir hizmet sunar.
  • Veri kayıplarının önüne geçer.
  • Birden çok sunucuda büyük miktarda veriyi etkili ve verimli bir şekilde işleyebilir.
  • Okuma verimliliğini etkilemeden büyük miktarda veriyi hızlıca yazabilir.
  • Ani veri artışları büyük ayarlamalar gerekmeden basitçe karşılanabilir.
  • Yapılandırılmış, yarı yapılandırılmış ve yapılandırılmamış verileri işleyebilir.
  • Birden çok veri merkezi arasında kolay veri dağıtım imkânı sunar.

Cassandra’yı Kimler Kullanmalı?

Apache Cassandra, birden fazla sunucuda büyük miktarda veriyi depolamayı ve yönetmeyi amaçlayan işletmeler için uygun bir çözümdür. Kullanımı ve ölçeklendirilmesi kolay olduğu için sürekli büyüyen işletmeler için idealdir. Büyük işletmelerin sahip oldukları büyük miktarda verinin merkezi olmayan bir sistemde depolanmasına olanak tanırken eş zamanlı olarak kullanıcıların kontrol ve erişim sağlamasına izin veriyor. Ayrıca, dağıtılmış yapısıyla sürekli erişilebilirlik sunduğu için sunucunun kesintisi nedeniyle veritabanlarının kapanarak veri kayıplarının yaşanmasını göze almayan tüm işletmeler için uygundur.

GTech olarak, işletmelerin veritabanı yönetim sürecini etkin bir şekilde yürütmeleri için ihtiyaç duydukları desteği Apache Cassandra üzerine kurulan DataStax ile sağlıyoruz. Yüksek performans, kurumsal düzeyde güvenlik, basitleştirilmiş yönetim ve daha pek çok avantajıyla DataStax çözümü hakkında daha ayrıntılı bilgi almak için bizimle iletişime geçebilirsiniz.

 

Kaynakça

https://www.datastax.com/cassandra

https://www.bmc.com/blogs/apache-cassandra-introduction/

https://cassandra.apache.org/_/index.html