NoSQL'e Genel Bakış

click fraud protection

NoSQL kısaltması 1998'de ortaya çıktı. Birçok kişi NoSQL'in SQL'i dürtmek için yaratılmış aşağılayıcı bir terim olduğunu düşünüyor. Gerçekte, terim Sadece SQL Değil anlamına gelir. Buradaki fikir, her iki teknolojinin bir arada var olabileceği ve her birinin bir yeri olduğudur. Web 2.0 liderlerinin çoğu bir NoSQL teknolojisini benimsediği için NoSQL hareketi son birkaç yıldır haberlerde yer aldı. Facebook, Twitter, Digg, Amazon, LinkedIn ve Google gibi şirketlerin hepsi bir şekilde NoSQL kullanıyor. CIO'nuza ve hatta iş arkadaşlarınıza açıklayabilmeniz için NoSQL'i parçalayalım.

MYSQL veritabanı.

NoSQL Bir İhtiyaçtan Ortaya Çıktı

Veri depolama: Dünyanın depolanan dijital verileri eksabayt cinsinden ölçülür. Bir exabayt, bir milyar gigabayt (GB) veriye eşittir. Buna göre internet.com, 2006 yılında eklenen depolanan veri miktarı 161 eksabayttı. Sadece 4 yıl sonra 2010'da, depolanan veri miktarı %500'ün üzerinde bir artışla yaklaşık 1.000 ExaByte olacak. Başka bir deyişle, dünyada depolanan çok fazla veri var ve büyümeye devam edecek.

Birbirine Bağlı Veriler: Veriler daha bağlantılı hale gelmeye devam ediyor. Web'in yaratılması, hiper bağlantılarla desteklendi, blogların pingback'leri var ve her büyük sosyal ağ sisteminde, şeyleri birbirine bağlayan etiketler var. Ana sistemler birbirine bağlanacak şekilde inşa edilmiştir.

Karmaşık Veri Yapısı: NoSQL, hiyerarşik iç içe veri yapılarını kolayca işleyebilir. Aynı şeyi SQL'de gerçekleştirmek için, her tür anahtara sahip birden çok ilişkisel tabloya ihtiyacınız olacaktır. Ayrıca performans ve veri karmaşıklığı arasında bir ilişki vardır. Sosyal ağ uygulamalarında gerekli olan büyük miktarda veriyi depoladığımız için performans geleneksel bir RDBMS'de düşebilir. anlamsal ağ.

NoSQL nedir?

Sanırım NoSQL'i tanımlamanın bir yolu, onun ne olmadığını düşünmektir. SQL değil ve ilişkisel değil. Adından da anlaşılacağı gibi, bir RDBMS'nin yerine geçmez, ancak onu tamamlar. NoSQL, çok büyük ölçekli veri ihtiyaçları için dağıtılmış veri depoları için tasarlanmıştır. 500.000.000 kullanıcısıyla Facebook'u veya her gün Terabit veri biriktiren Twitter'ı düşünün.

NoSQL veritabanında sabit şema ve birleştirme yoktur. Bir RDBMS, daha hızlı donanım alarak ve bellek ekleyerek "ölçeklendirir". NoSQL ise "ölçeklendirme" avantajından yararlanabilir. Ölçeklendirme, yükü birçok emtia sistemine yaymak anlamına gelir. Bu, NoSQL'i büyük veri kümeleri için ucuz bir çözüm yapan bileşenidir.

NoSQL Kategorileri

Mevcut NoSQL dünyası 4 temel kategoriye uyar.

  1. Anahtar/değer çiftleri Mağazaları öncelikle dayanmaktadır Amazon'un Dinamo Kağıdı hangi 2007 yılında yazılmıştır. Ana fikir, benzersiz bir anahtarın ve belirli bir veri öğesine bir işaretçinin bulunduğu bir karma tablonun varlığıdır. Bu eşlemelere genellikle performansı en üst düzeye çıkarmak için önbellek mekanizmaları eşlik eder.
    1. Sütun Ailesi Mağazaları birçok makineye dağıtılmış çok büyük miktarda veriyi depolamak ve işlemek için yaratılmıştır. Hâlâ anahtarlar var ama birden çok sütuna işaret ediyorlar. BigTable (Google'ın Sütun Ailesi NoSQL modeli) durumunda, satırlar bir satır anahtarıyla tanımlanır ve veriler bu anahtar tarafından sıralanır ve depolanır. Sütunlar, sütun ailesine göre düzenlenmiştir.
  2. Belge Veritabanları ilham aldı Nilüfer Notları ve anahtar/değer mağazalarına benzer. Model, temel olarak, diğer anahtar/değer koleksiyonlarının koleksiyonları olan sürümlenmiş belgelerdir. Yarı yapılandırılmış belgeler JSON gibi formatlarda saklanır.
  3. Grafik Veritabanıdüğümlerle, notlar arasındaki ilişkilerle ve düğümlerin özellikleriyle oluşturulur. Satır ve sütun tabloları ve SQL'in katı yapısı yerine, birçok makinede ölçeklenebilen esnek bir grafik modeli kullanılır.

Başlıca NoSQL Oyuncuları

NoSQL'deki büyük oyuncular, öncelikle onları benimseyen kuruluşlar nedeniyle ortaya çıktı. En büyük NoSQL teknolojilerinden bazıları şunlardır:

  • Dinamo: Dinamo, Amazon.com tarafından oluşturulmuştur ve en önde gelen Anahtar-Değer NoSQL veritabanıdır. Amazon, e-ticaret işletmeleri için yüksek düzeyde ölçeklenebilir dağıtılmış bir platforma ihtiyaç duyduğundan Dynamo'yu geliştirdi. Amazon S3, depolama mekanizması olarak Dinamo'yu kullanır.
  • Cassandra:cassandra Facebook tarafından açık kaynaklıydı ve sütun odaklı bir NoSQL veritabanıdır.
  • Buyuk masa: BigTable, Google'ın tescilli sütun odaklı veritabanıdır. Google, BigTable'ın kullanımına izin verir, ancak yalnızca Google App Engine için.
  • BasitDB: SimpleDB başka bir Amazon veritabanıdır. Amazon EC2 ve S3 için kullanılır, kullanıma bağlı olarak ücret alan Amazon Web Services'in bir parçasıdır.
  • Kanepe DB:KanepeDB MongoDB ile birlikte açık kaynak kodlu NoSQL veritabanlarıdır.
  • Neo4J:Neo4j açık kaynaklı bir grafik veritabanıdır.

NoSQL sorgulama

Bir NoSQL veritabanının nasıl sorgulanacağı sorusu çoğu geliştiricinin ilgilendiği şeydir. Sonuçta, büyük bir veritabanında saklanan veriler, alıp son kullanıcılara veya web servislerine gösteremezseniz, kimseye bir faydası olmaz. NoSQL veritabanları, SQL gibi üst düzey bir bildirimsel sorgu dili sağlamaz. Bunun yerine, bu veritabanlarını sorgulamak veri modeline özgüdür.

NoSQL platformlarının çoğu, verilere RESTful arabirimlerine izin verir. Diğer teklif sorgu API'leri. Birden çok NoSQL veritabanını sorgulamaya çalışan, geliştirilmiş birkaç sorgulama aracı vardır. Bu araçlar genellikle tek bir NoSQL kategorisinde çalışır. Bir örnek SPARQL'dir. SPARQL, grafik veritabanları için tasarlanmış bildirimsel bir sorgu özelliğidir. İşte belirli bir blog yazarının URL'sini alan bir SPARQL sorgusu örneği (nezaket IBM):

ÖNEK: 
?url'yi SEÇ
İTİBAREN
NEREDE {
?Katkıda bulunan foaf: "Jon Foobar" adını verin.
?katkıda bulunan foaf: web günlüğü ?url .
}

NoSQL'in Geleceği

Büyük veri depolama ihtiyaçları olan kuruluşlar, NoSQL'e ciddi şekilde bakıyor. Görünüşe göre, konsept daha küçük organizasyonlarda çok fazla ilgi görmüyor. Information Week tarafından yürütülen bir ankette, iş BT uzmanlarının %44'ü NoSQL'i duymamış. Ayrıca, ankete katılanların yalnızca %1'i NoSQL'in stratejik yönlerinin bir parçası olduğunu bildirdi. Açıkça, NoSQL'in bağlantılı dünyamızda yeri var, ancak birçok kişinin sahip olabileceğini düşündüğü kitlesel çekiciliği elde etmek için gelişmeye devam etmesi gerekecek.