Video: Live Hacking - Internetwache CTF 2016 - crypto60, crypto70, crypto90 2024
Şimdiye kadar, NoSQL (sadece-SQL) veritabanlarının en basitleri büyük bir veri ortamında anahtar-değer çifti (KVP) modelini kullananlardır. KVP veritabanları bir şema (RDBMS gibi) gerektirmez ve mükemmel bir esneklik ve ölçeklenebilirlik sunar.
KVP veritabanları, ASID (Atomicity, Consistency, Isolation, Dayanıklılık) yeteneği sunmuyor ve uygulayıcılara, veri yerleşimi, replikasyon ve hata toleransı hakkında teknolojinin kendisi tarafından açıkça kontrol edilmediğinden düşünmelerini istiyor. KVP veritabanları girilmedi. Sonuç olarak, verilerin çoğu dizeler halinde saklanır.
Anahtar | Değer |
---|---|
Renk | Mavi |
Liberasyon | Bira |
Kahraman | Asker |
Bu çok basitleştirilmiş bir dizi anahtar ve değerler. Büyük bir veri uygulamasında birçok kişi renkler, libasyonlar ve kahramanlar hakkında farklı fikirlere sahip olacak.
Anahtar | Değer |
---|---|
FacebookUser12345_Color | Kırmızı |
TwitterUser67890_Color | Kahverengi |
Üçüncü BoyutUser45678_Libation | "Beyaz Şarap" |
Google + Kullanıcı24356_Libasyon | "Kuru martini bir bükülme ile " |
LinkedInUser87654_Hero | " En iyi satış elemanı " |
Kullanıcı sayısı arttıkça, hassas tuşları ve ilgili değerleri takip etmek zor olabilir. Milyonlarca kullanıcının görüşlerini takip etmeniz gerekiyorsa onlarla ilişkili anahtar / değer çifti sayısı katlanarak artabilir. Değerler için seçenekleri kısıtlamak istemiyorsanız, KVP'nin genel dize gösterimi esneklik ve okunabilirlik sağlar.
Bir anahtar / değer veri tabanında veri düzenleme konusunda ek yardıma ihtiyacınız olabilir. Çoğu, anahtarları (ve ilgili değerlerini) bir araya toplamak için yetenek sunar. Koleksiyonlar, herhangi bir sayıda anahtar / değer çifti içerebilir ve tek tek KVP öğelerinin özel kontrolü gerektirmez.
Bir yaygın olarak kullanılan açık kaynak kodlu anahtar / değer çift veritabanı Riak olarak adlandırılır. Basho Technologies adlı bir firma tarafından geliştirilmiş ve desteklenmiştir ve Apache Software License v2 kapsamında sunulmuştur. 0.
Riak, anahtar-değer veritabanının çok hızlı ve ölçeklenebilir bir uygulamasıdır. Hafif olduğu için hızla değişen verilerle yüksek hacimli bir ortamı destekliyor. Riak, özellikle finansal hizmet ticaretinin gerçek zamanlı analizinde etkilidir. Anahtar ve değer koleksiyonları için bir düzen mekanizması olarak "kova" kullanır.
Riak uygulamaları fiziksel ya da sanal düğümler kümeleri peer-to-peer şekilde düzenlenmiştir. Hiçbir ana düğüm yok, bu nedenle küme esnek ve yüksek derecede ölçeklenebilir.Tüm veriler ve işlemler kümede dağıtılır. Büyük küme daha az düğümlü kümelerden daha iyi ve daha hızlı performans gösterir. Kümedeki iletişim, Gossip adı verilen özel bir protokol aracılığıyla gerçekleştirilir. Dedikodu kümesiyle ilgili durum bilgilerini depolar ve kovalar hakkındaki bilgileri paylaşır.
Riak birçok özelliğe sahiptir ve aşağıdakilerden oluşan bir ekosistemin parçasıdır:
-
Paralel işleme: Riak, MapReduce kullanarak gerçek zamanlı analiz ve hesaplama için kümede sorguları ayrıştırma ve yeniden oluşturma kabiliyetini desteklemektedir.
-
Bağlantılar ve bağlantı yürüyüşü: Riak, bağlantıları kullanarak bir grafik veritabanını taklit edebilecek şekilde oluşturulabilir. Bir bağlantı, anahtar / değer çiftleri arasında tek yönlü bir bağlantı olarak düşünülebilir. Bağlantıları izlemek (takip etmek), anahtar / değer çifti arasındaki ilişkilerin bir haritasını sağlayacaktır.
-
Ara: Riak Search, hataya dayanıklı, dağıtılan tam metin arama özelliğine sahiptir. Kovalar, değerlerin tuşlara hızlı bir şekilde özünmesi için dizine eklenebilir.
-
İkincil indeksler: Geliştiriciler değerleri bir veya daha fazla anahtar alanı değeri ile etiketleyebilir. Uygulama daha sonra dizini sorgulayıp eşleşen anahtarların bir listesini döndürebilir. İşlem, atomik olduğundan ve gerçek zamanlı davranışları destekleyeceğinden büyük veri uygulamalarında çok yararlı olabilir.
Riak uygulamaları,
-
için uygundur Sosyal paylaşım ağları, topluluklar veya oyun için kullanıcı verileri
-
Çok miktarda, çok zengin ortamlı veri toplama ve depolama
-
RDBMS ve NoSQL veritabanlarını bağlamak için önbellek katmanları
-
Esneklik ve güvenilirlik gerektiren mobil uygulamalar