Video: Introduction to Amazon Web Services by Leo Zhadanovsky 2024
Aslen "Just Say No to SQL" (SQL'e Sadece Say Hayır) kavramına abone olan NoSQL veri mağazaları 1980'lerde uyuşturucu karşıtı reklamcılık kampanyası) ve bunlar (SQL tabanlı) ilişkisel veritabanlarının algılanan sınırlamaları için bir tepki oluşturuyordu. Bu milletlerin SQL'den nefret etmesi değil, ilişkisel veritabanları için tasarlanmamış sorunları çözerek yuvarlak deliklere meydan okumaktan bıktık.
İlişkisel bir veritabanı güçlü bir araçtır, ancak bazı veri çeşitleri (anahtar-değer çiftleri veya grafikler gibi) ve bazı kullanım desenleri (son derece büyük ölçekli depolama gibi) için bir ilişkisel veritabanı sadece ' pratik değil. Yüksek hacimli depolama alanına gelince, ilişkisel veritabanı veritabanı lisans maliyetleri ve donanım maliyetleri açısından pahalı olabilir. (İlişkisel veritabanları kurumsal düzeyde donanımla çalışacak şekilde tasarlanmıştır.)
Böylece NoSQL hareketi ile yaratıcı programcılar, farklı veri depolama ve işleme problemleri için onlarca çözüm geliştirdiler. Bu NoSQL veritabanları genellikle kümeleme yolu ile muazzam ölçeklenebilirlik sağlar ve genellikle yüksek verimlilik ve düşük gecikme süresi sağlamak için tasarlanmıştır.
kategorisine uyan birçok veri tabanı ("NoSQL" desteği değil) SQL desteğine sahip olduğundan NoSQL adı yanıltıcıdır. Adını bunun yerine "Yalnızca değil SQL" olarak düşünün. “
Günümüzde mevcut olan NoSQL teklifleri, tasarımlarına ve amaçlarına göre dört farklı kategoriye ayrılabilir:
-
Anahtar / değerli mağazalar: Bu teklif her türlü saklamanın bir yolunu sunar Bir şema kullanmadan veri. Bu, herhangi bir veri eklenmeden önce şemayı (tablo yapısı) tanımlamanız gereken ilişkisel veritabanlarının aksine. Anahtar değerli depolarda bir şemaya ihtiyaç duyulmadığından, verileri birçok biçimde depolamanız büyük esnekliğe sahiptir.
Bir anahtar / değerli bellekte, bir satır yalnızca bir anahtarla (tanımlayıcı) ve bir tamsayıdan büyük bir ikili veri dizesine kadar herhangi bir sayı olan bir değerden oluşur. Anahtar değerli mağazaların pek çok uygulaması Amazon'un Dinamo kağıdına dayanıyor.
-
Sütun ailesinin mağazaları: Burada, sütunların sütun ailelerine gruplandığı ve diskte bir arada depolandığı veritabanlarınız var.
Kesinlikle, bu veritabanlarından birçoğu sütuna yönelik değil, çünkü Google'ın BigTable kağıdına dayanıyor ve bu veriler çok boyutlu bir sıralı harita olarak depolanıyor.
-
Doküman mağazaları: Bu teklif, verimliliği artırmak için benzer şekilde kodlanmış ve biçimlendirilmiş belgelerin koleksiyonlarına dayanır.Belge mağazaları, bir koleksiyon içindeki tek tek belgelerin yalnızca alanların bir alt kümesini içermesini sağlar, bu nedenle yalnızca gerekli olan veriler saklanır. Seyrek veri kümeleri için, çoğu alanda doldurulmayan veri kümeleri için bu, önemli miktarda yerden tasarruf anlamına gelir.
Buna karşılık, ilişkisel veritabanı tablolarındaki boş sütunlar yer kaplar. Belge depoları şema esnekliği sağlar, çünkü yalnızca ihtiyaç duyulan alanlar saklanır ve yeni alanlar eklenebilir. İlişkisel veritabanlarının tersine, tablo yapıları veri depolanmadan önce ön tanımlanır ve sütunlar değiştirilirken tüm veri kümesini etkileyen sıkıcı bir görevdir.
-
Grafik veritabanları: Burada, grafik yapılarını - depolayan veritabanlarında varlıklar (köşeler veya düğümler) ve ilişkileri (kenarlar) birbirleriyle koleksiyonlarını gösteren temsiller bulunur. Bu yapılar, grafik veritabanlarının, bilinen tüm web sayfaları arasındaki bağlantı ilişkileri gibi karmaşık yapıları depolamak için oldukça iyi olmasını sağlar. (Örneğin, tek tek web sayfaları düğümlerdir ve bunları birbirine bağlayan kenarlar bir sayfadan diğerine bağlantılardır.)
Tabii ki, Google, grafik teknolojisi üzerindedir ve PageRank'ı güçlendirmek için Pregel adlı bir grafik işleme motoru icat etmiştir. algoritması. (Ve evet, Pregel hakkında beyaz bir yazı var.) Hadoop topluluğunda, HDFS'de saklanan grafikleri işlemek üzere tasarlanmış bir grafik işleme motoru olan Giraph (Pregel kağıdına dayanan) bir Apache projesi var.
Hadoop'ta bulunan veri depolama ve işleme seçenekleri, birçok durumda, burada listelenen NoSQL kategorilerinin uygulanımlarıdır. Bu, kullanabileceğiniz çözümleri daha iyi değerlendirmenize ve Hadoop'un geleneksel veri ambarlarını nasıl tamamlayabildiğini görmenize yardımcı olacaktır.