Ana içeriğe geç

NoSQL Veritabanları: Her Veri Bilimcinin Bilmesi Gerekenler

NoSQL veritabanlarının ne için kullanıldığını, veri bilimcilerin neden onları tercih ettiğini ve mevcut en iyi NoSQL veritabanlarının bir listesini keşfedin.
Zoumana Keita
Zoumana Keita

Ücretsiz Hesabınızı Oluşturun

Alıştırma and program your progress.

Google ile devam edinDevam ederek, Kullanım Koşullarımızı ve Gizlilik Politikamızı kabul etmiş ve verilerinizin ABD'de saklandığını onaylamış olursunuz.

NoSQL Header

Veri Bilimciler için NoSQL veritabanlarının inceliklerine kapsamlı bir bakış sunuyoruz.

Veri Bilimi ve NoSQL Veritabanları

Bir veri bilimci olmak yalnızca makine öğrenmesi modelleri kurmak değil, aynı zamanda farklı formatlardaki verilerden sonuçlarınızı işleyebilmek, analiz edebilmek ve daha iyi aktarabilmek demektir.

Geleneksel SQL veritabanları yıllarca tek veritabanı türü olarak kullanıldı. Ancak 1990’ların ortasında internetin aşırı popülerleşmesi ve dijital dönüşüm nedeniyle yeni bir veri türü öne çıktı: NoSQL veritabanları. Bunlar, geleneksel SQL veritabanlarının zayıflıklarına yanıt olarak ortaya çıktı. 

NoSQL veritabanları, örneğin Veri Bilimciler ve Makine Öğrenmesi Mühendisleri tarafından veri, modellerin meta verileri, özellikler ve işlem parametrelerini depolamak için kullanılabilir. Öte yandan veri mühendisleri, temizlenmiş veriyi depolamak ve geri çağırmak için bunlardan yararlanabilir. 

Bu kavramsal blogda (kod yazma yok), önce NoSQL veritabanlarını anlamanızı oluşturacak, ardından NoSQL’in önemini keşfedeceğiz. SQL ve NoSQL veritabanlarını karşılaştıracak, ikincisinin kullanım alanlarına ve kategorilerine bakacağız. Son olarak, veri bilimciler için en popüler NoSQL veritabanlarını inceleyeceğiz.

NoSQL veritabanları nedir?

NoSQL, Not Only SQL ifadesinin kısaltmasıdır; yani NoSQL veritabanlarının ayırt edici özelliği ilişkisel olmamalarıdır, çünkü veriyi yapılandırılmamış biçimde saklayabilirler. Aşağıdaki görsel, NoSQL veritabanlarının başlıca beş temel özelliğini vurgular.

NoSQL Veritabanları Açıklaması

NoSQL veritabanları neden önemlidir?

NoSQL veritabanları, aşağıdaki avantajlar nedeniyle endüstride popüler hale gelmiştir:

  • Çok kipli veri: NoSQL veritabanları, yapılandırılmış (ör. sensörlerden yakalanan veriler), yapılandırılmamış (görseller, videolar vb.) ve yarı yapılandırılmış (XML, JSON vb.) verileri saklayabildikleri için geleneksel SQL veritabanlarından daha fazla esneklik sunar.
  • Kolay ölçeklenebilirlik: eşler arası mimarileri sayesinde basitleşir; bu da mimariye birden fazla makine eklenebileceği anlamına gelir.
  • Küresel erişilebilirlik: veritabanı küresel olarak paylaşıldığından, farklı coğrafi bölgelerdeki farklı makineler üzerinden aynı veriye eşzamanlı erişmeyi mümkün kılar.
  • Esneklik: NoSQL veritabanları, sık güncellemeler ve yeni özelliklerle değişen gereksinimlere hızla uyum sağlayabilir.

NoSQL Veritabanları vs. SQL Veritabanları

 

SQL Veritabanları

NoSQL Veritabanları

Dil

SQL veritabanları işlemleri gerçekleştirmek için yapılandırılmış sorgu dillerini kullanır; bu da verilerle daha iyi etkileşim için önceden tanımlı şema kullanımını gerektirir.

Öte yandan NoSQL veritabanları, veriyi sorgulamak için dinamik bir şema kullanır. Ayrıca bazı NoSQL veritabanları, belge manipülasyonu için SQL benzeri bir sözdizimi kullanır.

Veri Şeması

SQL veritabanlarının önceden tanımlı ve sabit bir formatı vardır; bu da yeni veriler için değiştirilemez.

NoSQL veritabanları daha esnektir. Bu esneklik, veritabanlarında önceden tanımlı bir yapı olmadan kayıtlar oluşturulabileceği ve her kaydın kendi yapısına sahip olacağı anlamına gelir.

Ölçeklenebilirlik

SQL veritabanları yalnızca dikey olarak ölçeklenebilir; yani talebi karşılamak için tek bir makinenin belirli ölçüde CPU, RAM, SSD gibi kaynaklarını artırması gerekir.

NoSQL veritabanları yatay olarak ölçeklenebilir; yani depolama talebini karşılamak için mevcut altyapıya ek makineler eklenir.

Büyük Veri Desteği

Dikey ölçekleme, SQL veritabanlarının çok büyük verileri (petabaytlar) depolamasını zorlaştırır.

Yatay ölçekleme ve dinamik veri şeması, NoSQL’i büyük veri için uygun kılar. Ayrıca NoSQL veritabanları, hızla artan veri miktarının zorluklarıyla başa çıkmak için önde gelen internet şirketleri (Amazon, Google, Yahoo vb.) tarafından geliştirildi.

Özellikler

SQL veritabanları ACID (Atomiklik, Tutarlılık, Yalıtım, Dayanıklılık) özelliğini kullanır.

NoSQL veritabanları ise CAP (Tutarlılık, Erişilebilirlik, Bölünmeye Tolerans) özelliğini kullanır.

NoSQL veritabanları ne zaman kullanılmalıdır?

Hızla büyüyen ve rekabetçi bu ortamda, işletmeler hedeflerini karşılamak için mümkün olduğunca çok veri toplamak zorundadır. Veriyi toplamak bir şeydir; onları doğru altyapıda depolamak ise başka bir zorluktur. Zorluk, verilerin görseller, videolar, metinler ve sesler gibi farklı türlerde olabilmesinden kaynaklanır. Bu farklı veri türlerini depolamak için ilişkisel veritabanları kullanmak her zaman akıllıca olmayabilir. Ancak soru şu şekilde kalır:

SQL yerine NoSQL ne zaman kullanılmalı?

Aşağıdaki durumlarda NoSQL kullanmayı düşünmelisiniz:

  • Sürekli değişen veri: sisteminizin veya uygulamalarınızın gelecekte nasıl büyüyeceğini bilmediğinizde; yani yeni veri türleri, yeni işlevler vb. eklemek isteyebileceğiniz durumlarda.
  • Çok miktarda veri: işletmeniz zamanla büyüyebilecek çok büyük verilerle uğraşıyorsa.
  • Tutarlılık gereksinimi yok: veri tutarlılığı ve %100 bütünlük önceliğiniz değilse. Örneğin, işletmeniz için bir sosyal medya platformu geliştirirken, tüm çalışanların paylaşımlarınızı aynı anda görmesi bir sorun olmayabilir.
  • Ölçeklenebilirlik ve maliyet: NoSQL veritabanları daha fazla esneklik sağlar ve veri ihtiyaçlarınız değiştikçe maliyetleri kontrol edebilir.

4 Ana NoSQL Veritabanı Türü

NoSQL veritabanları dört ana kategoriye ayrılır. Her birinin kendine özgü yönleri vardır; bu nedenle kullanım senaryonuza en uygun olanı seçmelisiniz: Aşağıda başlıca NoSQL veritabanı örneklerini öne çıkardık. Bu bölümde, her bir veritabanının rolünü, avantaj ve sınırlamalarının (tam liste olmamak kaydıyla) yanı sıra kullanım alanlarını ele alıyoruz.

NoSQL Veritabanı Kategorileri

1. Belge (Document) Veritabanları

Bu tür veritabanları JSON, XML, BSON vb. belgeleri depolamak ve sorgulamak için tasarlanmıştır. Her belge, veritabanında bir satır veya kayıttır ve anahtar-değer formatındadır. Bir belge, tek bir nesne ve ona ilişkin verileri saklar. Örneğin, aşağıdaki veritabanında her biri bir öğrenci hakkında bilgi veren üç kayıt bulunur. İlk belge için firstname bir anahtar, Franck ise onun değeridir.

Belge Veritabanlarının Avantajları

  • Şemasız: veri depolamanın formatı ve yapısı açısından bir sınırlama yoktur. Bu, özellikle veritabanında sürekli dönüşüm olduğunda faydalıdır.
  • Güncellemesi kolay: yeni bir bilgi, ilgili belgenin mevcut alanlarının geri kalanını değiştirmeden eklenebilir veya silinebilir.
  • İyileştirilmiş performans: bir belgeye ait tüm bilgiler aynı belgenin içinde bulunabilir. Bu, kullanıcının diğer tabloları sorgulamak zorunda kalabileceği ilişkisel veritabanları için her zaman geçerli olmayabilir.

Belge Veritabanlarının Sınırlamaları

  • Tutarlılık kontrolü sorunları: belgelerin birbirleriyle ilişki içinde olması gerekmediğinden ve iki belgenin farklı alanları olabildiğinden.
  • Atomiklik sorunları: İki belge koleksiyonunda değişiklik yapmamız gerekirse, her belge için ayrı bir sorgu çalıştırmamız gerekir.

Belge Veritabanları Ne Zaman Kullanılır

  • Veri şemanızın gelecekte sürekli değişime tabi olduğu durumlarda önerilir.

Belge Veritabanı Uygulamaları

  • Esneklikleri nedeniyle, farklı kullanıcıların farklı türde bilgilere sahip olabildiği çevrimiçi kullanıcı profilleri için pratiktir. Bu durumda her kullanıcının profili yalnızca kendisine özgü öznitelikler kullanılarak depolanır.
  • İçerik yönetimi için kullanılabilir; bu, çeşitli kaynaklardan gelen verilerin etkili bir şekilde depolanmasını gerektirir. Bu bilgiler daha sonra yeni içerik türleri oluşturmak ve entegre etmek için kullanılabilir.

2. ​​Anahtar-değer (Key-value) Veritabanları

Bunlar, en basit NoSQL veritabanı türleridir. Her öğe veritabanında bir anahtar-değer çifti olarak saklanır. Bunu tam olarak iki sütunlu bir tablo gibi düşünebiliriz. İlk sütun benzersiz bir anahtar içerir. İkinci sütun, her anahtar için değerdir. Değerler tamsayı, string, float gibi farklı veri türlerinde veya görsel ve belge gibi daha karmaşık veri türlerinde olabilir.

Aşağıdaki örnek, anahtarın telefon numarası, değerin ise aylık alışverişi olduğu müşterilerle ilgili bilgiler içeren bir anahtar-değer veritabanını göstermektedir.

Anahtar/Değer Veritabanı NoSQL örneği

Anahtar-değer Veritabanlarının Avantajları

  • Sadelik: anahtar-değer yapısı yalındır. Veri türü kısıtının olmaması kullanımı kolaylaştırır.
  • Hız: basit veri formatı, okuma ve yazma işlemlerini hızlandırır.

Anahtar-değer Veritabanlarının Sınırlamaları

  • Dönen değer, değer alanında saklanan tüm bilgileri içerdiğinden, değer sütununda herhangi bir filtreleme yapılamaz.
  • Yalnızca tek bir anahtar ve değere göre optimize edilmiştir. Birden çok değerin saklanması bir ayrıştırıcı gerektirir.
  • Değer yalnızca bir bütün olarak güncellenir; bu da tüm verinin alınmasını, gerekli işlemlerin yapılmasını ve nihayetinde verinin tamamının geri yazılmasını gerektirir. İşlemin çok zaman aldığı durumlarda bu bir performans sorununa yol açabilir.

Anahtar-değer Veritabanları Ne Zaman Kullanılır

  • Basit anahtar tabanlı sorgulara dayanan uygulamalar için uygundur.
  • Önbellek gibi basit nesneleri geçici olarak depolaması gereken basit uygulamalar için kullanılır.
  • Gerçek zamanlı veri erişimine ihtiyaç duyulduğunda da kullanılabilir.

Uygulamalar

  • Önbellek gibi basit nesneleri geçici olarak depolaması gereken basit uygulamalar için daha uygundurlar.

3. Geniş sütunlu (Wide-column) Veritabanları

Adından da anlaşılacağı gibi, sütun odaklı veritabanları veriyi sütun koleksiyonları olarak depolamak için kullanılır; her sütun ayrı ele alınır ve uygulama mantığı Google Big Table makalesine dayanır. Çoğunlukla iş zekası, veri ambarı yönetimi ve müşteri ilişkileri yönetimi gibi analitik iş yüklerinde kullanılırlar.

Örneğin, her sütunda TOPLA (AVG) gibi bir toplulaştırma işleviyle müşterilerin yaş ortalamasını ve ürünlerin fiyat ortalamasını hızla elde edebiliriz.

Geniş Sütunlu Veritabanı NoSQL Örneği

4. Grafik/düğüm (Graph/node) Veritabanları

Grafik veritabanları, düğümler arasındaki ilişkileri kenarlar aracılığıyla depolamak, haritalamak ve aramak için kullanılır. Bir düğüm, nesne veya varlık da denilen bir veri öğesini temsil eder. Her düğümün gelen veya giden bir kenarı vardır. Bir kenar, iki düğüm arasındaki ilişkiyi temsil eder. Bu kenarlar, bağlandıkları düğümlere karşılık gelen bazı özellikler içerir.

“Zoumana Texas Tech University’de okuyor. Üniversitenin içindeki Park’ta koşmayı seviyor.”

Grafik/Düğüm Veritabanı NoSQL örneği

Grafik/düğüm Veritabanlarının Avantajları

  • Çevik ve esnek bir yapıya sahiptirler.
  • Veritabanındaki düğümler arasındaki ilişkiler okunabilir ve açıktır; bu nedenle anlaşılması kolaydır.

Grafik/düğüm Veritabanlarının Sınırlamaları

  • Standartlaştırılmış bir sorgulama dili yoktur; çünkü her dil platforma bağımlıdır.
  • Önceki neden, sorunla karşılaşıldığında çevrimiçi destek bulmayı zorlaştırır.

Grafik/düğüm Veritabanları Ne Zaman Kullanılır

  • Veri öğeleri arasında ilişkiler oluşturmanız ve bu ilişkileri hızlıca geri getirmeniz gerektiğinde kullanılabilirler.

Uygulamalar

  • Gerçek zamanlı finansal işlemlerde gelişmiş dolandırıcılık tespiti için kullanılabilirler.
  • Sosyal medyadan veri madenciliği için kullanılabilirler. Örneğin LinkedIn, hangi kullanıcıların birbirini takip ettiğini ve bu kullanıcılar ile uzmanlıkları (ML Engineer) arasındaki ilişkiyi belirlemek için bir grafik veritabanı kullanır.
  • Ağ haritalama, donanımlar ve onların desteklediği hizmetler arasındaki ilişkileri haritaladığından, grafik olarak temsil için çok uygundur.

Veri Bilimi için En İyi 7 NoSQL Veritabanı

Artık NoSQL veritabanları hakkında daha iyi bir bilgiye sahip olduğunuza göre, veri bilimi projeleri için popüler olan NoSQL veritabanlarının bir listesine bakalım. Bu analiz yalnızca açık kaynak NoSQL veritabanlarına odaklanmaktadır.

En Popüler NoSQL Veritabanları

1. MongoDB

MongoDB, verileri JSON formatında depolayan açık kaynaklı, belge odaklı bir veritabanıdır. En yaygın kullanılan veritabanıdır ve yüksek erişilebilirlik ve ölçeklenebilirlik için tasarlanmıştır; otomatik parçalama ve yerleşik çoğaltma sunar. MongoDB’ye Giriş kursumuz, MongoDB ve Python kullanımını kapsar. MongoDB ile esnek yapılı verileri işleme ve analiz etme becerilerini edinmenize yardımcı olur. Uber, LaunchDarkl, Delivery Hero ve 4300 şirket MongoDB’yi teknoloji yığınında kullanıyor.

2. Cassandra 

Cassandra da geniş sütunlu, açık kaynak bir veritabanıdır. Verilerinizi birden fazla makineye dağıtabilir ve altyapınıza yeni makineler ekledikçe yeniden bölümlendirmeyi otomatikleştirir. Uber, Facebook, Netflix ve 506 diğer şirket teknoloji yığınında kullanıyor.

3. Elasticsearch

MongoDB’ye benzer şekilde Elasticsearch de belge odaklı ve açık kaynaklıdır. Ölçeklenebilirlik ve hıza odaklanan, dünya çapında lider bir arama ve analitik aracıdır. Uber, Shopify, Udemy ve yaklaşık 3760 diğer şirket yığınlarında kullanıyor.

4. Neo4J

Neo4J, açık kaynaklı bir grafik odaklı veritabanıdır. Ağırlıklı olarak ilişkili büyüyen verilerle başa çıkmak için kullanılır. Bildirildiğine göre yaklaşık 220 şirket teknoloji yığınında kullanıyor.

5. HBase

Bu, dağıtık ve sütun odaklı bir veritabanıdır. Ayrıca Apache Hadoop üzerinde Google’ın BigTable’ı ile aynı yetenekleri sağlar. Bildirildiğine göre 81 şirket HBase’i teknoloji yığınında kullanıyor.

6. CouchDB

CouchDB de verileri JSON formatında toplayıp depolayan, açık kaynaklı, belge odaklı bir veritabanıdır. Yaklaşık 84 şirket teknoloji yığınında kullanıyor.

7. OrientDB

Yine açık kaynaklı bir veritabanı olan OrientDB, grafik, belge, anahtar-değer ve nesne modellerini destekleyen çoklu model bir veritabanıdır. Bildirildiğine göre yalnızca 13 şirket teknoloji yığınında kullanıyor.

Sonuç

Bu blogda NoSQL veritabanlarının temel yönlerini ve günümüzün hızla büyüyen ortamlarında veri bilimi projelerinize nasıl fayda sağlayabileceklerini ele aldık. Kullanım senaryonuza uygun doğru veritabanını uygulamak için ihtiyaç duyduğunuz tüm araçlara sahipsiniz. Hâlâ kullanma konusunda tereddüt ediyorsanız, bu veritabanlarının gücünden siz ve ekip arkadaşlarınızın yararlanmasının tam zamanı. 

Daha fazlasını öğrenmek için, NoSQL kavramlarını kapsayan kursumuz, önceki bölümlerde ele aldığımız dört ana veritabanı hakkındaki bilginizi güçlendirecektir. 

Konular

İlgili