Sütun ailelerinin anlamı nedir?


9

RocksDB gibi NoSQL veritabanı sistemlerinin sütun aileleri adı verilen bir özellik sunduğunu gördüm . Kavramın ne anlama geldiğini anladığımı düşünüyorum, ancak bunları kullanmanın gerçek (pratik) faydaları nelerdir? Bazı durumlarda arama performansını artırabileceklerini veya en azından anahtar / değer çiftinin girdiği yerin yerini geliştirebileceklerini varsayıyorum. Ancak, anladığım kadarıyla, veritabanı erişiminin gerçek anlambilimini etkilemiyor gibi görünüyor. Bu doğru mu? Kaçırdığım bir şey var mı?

Yanıtlar:


3

RocksDB SSS bölümünden bazı ilginç bilgiler buldum . (RocksDB bir KV mağazasıdır.)

İşte bazı ilgili alıntılar.

S: Sütun aileleri ne için kullanılır?

C: Sütun ailelerini kullanmanın en yaygın nedenleri: (1) verilerin farklı bölümlerinde farklı sıkıştırma ayarları, karşılaştırıcılar, sıkıştırma türleri, birleştirme işleçleri veya sıkıştırma filtreleri kullanma; (2) verilerini silmek için bir sütun ailesi bırakın; (3) meta verileri depolamak için bir sütun ailesi ve verileri depolamak için bir sütun ailesi.

S: Verileri birden çok sütun ailesinde ve birden çok rocksdb veritabanında depolamak arasındaki fark nedir?

C: Başlıca farklılıklar yedekleme, atomik yazma ve yazma performansı olacaktır. Birden çok veritabanı kullanmanın avantajı: veritabanı yedekleme veya kontrol noktası birimidir. Veritabanını başka bir ana bilgisayara kopyalamak sütun ailesinden daha kolaydır. Birden çok sütun ailesi kullanmanın avantajları: (1) yazma grupları, bir veritabanında birden çok sütun ailesi arasında atomiktir. Birden fazla RocksDB veritabanı kullanarak bunu başaramazsınız. (2) WAL'a senkronizasyon yazmaları yaparsanız, çok fazla veritabanı performansa zarar verebilir.

S: Farklı anahtar boşluklarım var. Bunları öneklerle ayırmalı mıyım yoksa farklı sütun aileleri mi kullanmalıyım?

C: Her bir anahtar alan oldukça büyükse, bunları farklı sütun ailelerine yerleştirmek iyi bir fikirdir. Küçük olabiliyorsa, çok fazla sütun ailesinin bakımını yapmaktan kaçınmak için bir sütun ailesine birden fazla anahtar alan yerleştirmeyi düşünmelisiniz.


2

SQL ile paralel bir arama yapmadığınızı biliyorum, ancak bu makalede Sütun Ailelerinin amacını ve pratik faydalarını açıklıyor.

Gönderen SQL Açısından Cassandra Veri modeli anlama RubyScale tarih:

O zaman Sütun Ailesi nedir? Sadece bir tablo öneki mi? Bir Sütun Ailesi, davranışını değiştiren bir dizi ayara sahiptir. Anahtarlar için önbellek ayarları (bu örnekteki UUID'ler), tüm satırlar için önbellek ayarları (bu örnekte tüm tablo) ve en önemlisi sıralama vardır. Cassandra'da OFSET yok, sadece LIMIT ve BETWEEN eşdeğeri var . Bu örnekte, sütun adları yalnızca dizelerdir, ancak tamsayı veya zaman damgası da olabilir ve her zaman sıralama düzeninde saklanırlar. Bir Sütun Ailesi, zaman dilimine göre şeyleri sorguladığınız zaman damgası sıralı verilere sahip olabilir ve diğeri, şeyleri alfabetik olarak sorguladığınız adres defteri verileri olabilir. Gerçekten sonra yapabileceğiniz tek sıralama belirli bir dilimi tersine çevirmektir.


İlginç. Dediğiniz gibi, soruyu tam olarak cevaplamıyor, ancak bir ipucu veriyor. Teşekkürler.
Noldorin
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.