Cassandra - Giriş

Apache Cassandra, birçok ticari sunucuda büyük miktarda veriyi işlemek için tasarlanmış, yüksek düzeyde ölçeklenebilir, yüksek performanslı dağıtılmış bir veritabanıdır ve tek bir arıza noktası olmadan yüksek kullanılabilirlik sağlar. Bir tür NoSQL veritabanıdır. Önce bir NoSQL veritabanının ne yaptığını anlayalım.

NoSQLDatabase

Bir NoSQL veritabanı (bazen Yalnızca SQL Değil olarak da adlandırılır), ilişkisel veritabanlarında kullanılan tablo ilişkilerinden başka verileri depolamak ve almak için bir mekanizma sağlayan bir veritabanıdır. Bu veritabanları şemasızdır, kolay çoğaltmayı destekler, basit API'ye sahiptir, sonuçta tutarlıdır ve büyük miktarda veriyi işleyebilir.

Bir NoSQL veritabanının birincil amacı,

  • tasarımın sadeliği,
  • yatay ölçekleme ve
  • kullanılabilirlik üzerinde daha hassas kontrol.

NoSql veritabanları, ilişkisel veritabanlarına kıyasla farklı veri yapıları kullanır. NoSQL'de bazı işlemleri daha hızlı hale getirir. Belirli bir NoSQL veritabanının uygunluğu çözmesi gereken soruna bağlıdır.

NoSQL ve İlişkisel Veritabanı

Aşağıdaki tablo, ilişkisel bir veritabanını NoSQL veritabanından ayıran noktaları listeler.

İlişkisel veritabanı NoSql Veritabanı
Güçlü sorgu dilini destekler. Çok basit sorgu dilini destekler.
Sabit bir şeması vardır. Sabit şema yok.
ACID'yi (Atomiklik, Tutarlılık, İzolasyon ve Dayanıklılık) izler. Yalnızca "nihayetinde tutarlıdır".
İşlemleri destekler. İşlemleri desteklemez.

Cassandra'nın yanı sıra, oldukça popüler olan aşağıdaki NoSQL veritabanlarına sahibiz -

  • Apache HBase- HBase, Google'ın BigTable'ına göre modellenen ve Java ile yazılan açık kaynaklı, ilişkisel olmayan, dağıtılmış bir veritabanıdır. Apache Hadoop projesinin bir parçası olarak geliştirilmiştir ve HDFS üzerinde çalışarak Hadoop için BigTable benzeri yetenekler sağlar.

  • MongoDB - MongoDB, dinamik şemalara sahip JSON benzeri belgeler lehine geleneksel tablo tabanlı ilişkisel veritabanı yapısını kullanmaktan kaçınan, belirli uygulama türlerinde verilerin entegrasyonunu daha kolay ve daha hızlı hale getiren, çapraz platformlu belge odaklı bir veritabanı sistemidir.

Apache Cassandra nedir?

Apache Cassandra, dünya çapında çok büyük miktarlarda yapılandırılmış veriyi yönetmek için açık kaynaklı, dağıtılmış ve merkezi olmayan / dağıtılmış bir depolama sistemidir (veritabanı). Tek bir arıza noktası olmadan yüksek oranda kullanılabilir hizmet sağlar.

Aşağıda, Apache Cassandra'nın dikkate değer noktalarından bazıları listelenmiştir -

  • Ölçeklenebilir, hataya dayanıklı ve tutarlıdır.

  • Sütun odaklı bir veritabanıdır.

  • Dağıtım tasarımı, Amazon'un Dinamo'suna ve Google'ın Bigtable'daki veri modeline dayanıyor.

  • Facebook'ta oluşturulmuş, ilişkisel veritabanı yönetim sistemlerinden büyük ölçüde farklıdır.

  • Cassandra, tek bir hata noktası olmadan Dinamo tarzı bir çoğaltma modeli uygular, ancak daha güçlü bir "sütun ailesi" veri modeli ekler.

  • Cassandra, Facebook, Twitter, Cisco, Rackspace, ebay, Twitter, Netflix ve daha fazlası gibi en büyük şirketlerden bazıları tarafından kullanılmaktadır.

Cassandra'nın Özellikleri

Cassandra, olağanüstü teknik özellikleri nedeniyle çok popüler hale geldi. Aşağıda Cassandra'nın bazı özellikleri verilmiştir:

  • Elastic scalability- Cassandra yüksek oranda ölçeklenebilir; daha fazla müşteri ve ihtiyaca göre daha fazla veriyi barındırmak için daha fazla donanım eklemeye izin verir.

  • Always on architecture - Cassandra'nın tek bir hata noktası yoktur ve bir arızayı göze alamayan iş açısından kritik uygulamalar için sürekli olarak kullanılabilir.

  • Fast linear-scale performance- Cassandra doğrusal olarak ölçeklenebilir, yani kümedeki düğüm sayısını artırdıkça veriminizi artırır. Bu nedenle hızlı bir yanıt süresi sağlar.

  • Flexible data storageCassandra, yapılandırılmış, yarı yapılandırılmış ve yapılandırılmamış dahil olmak üzere tüm olası veri formatlarını barındırır. İhtiyaçlarınıza göre veri yapılarınızdaki değişiklikleri dinamik olarak barındırabilir.

  • Easy data distribution Cassandra, verileri birden çok veri merkezinde çoğaltarak ihtiyaç duyduğunuz yerde dağıtma esnekliği sağlar.

  • Transaction support Cassandra, Atomiklik, Tutarlılık, İzolasyon ve Dayanıklılık (ACID) gibi özellikleri destekler.

  • Fast writesCassandra ucuz ticari donanımlarla çalışmak üzere tasarlandı. Okuma verimliliğinden ödün vermeden son derece hızlı yazma işlemleri gerçekleştirir ve yüzlerce terabayt veriyi depolayabilir.

Cassandra'nın Tarihi

  • Cassandra, gelen kutusu araması için Facebook'ta geliştirildi.
  • Facebook tarafından Temmuz 2008'de açık kaynaklı hale getirildi.
  • Cassandra, Mart 2009'da Apache Incubator'a kabul edildi.
  • Şubat 2010'dan beri Apache üst düzey bir proje haline geldi.