Bir süredir antrepo ile çalışıyorum.
Columnar Databases ve veri erişimi için sundukları hız ilgimi çekiyor.
Çok parçalı sorum var:
- Sütunlu Veritabanları nasıl çalışır?
- İlişkisel veritabanlarından nasıl farklıdırlar?
Bir süredir antrepo ile çalışıyorum.
Columnar Databases ve veri erişimi için sundukları hız ilgimi çekiyor.
Çok parçalı sorum var:
Yanıtlar:
Sütunlu Veritabanları nasıl çalışır?
Sütunlu veritabanı, belirli bir mimari / uygulamadan ziyade bir kavramdır . Diğer bir deyişle, bu veritabanlarının nasıl çalıştığına dair belirli bir açıklama yoktur; aslında, birçoğu geleneksel, satır yönelimli DBMS üzerine inşa edilmiştir, basitçe bilgileri bir (veya daha ziyade iki) sütunlu tablolarda depolamaktadır (ve sütunlu verilere kolay bir şekilde erişmek için gerekli katmanı ekleyerek).
İlişkisel veritabanlarından nasıl farklıdırlar? Genellikle geleneksel (satır odaklı) veritabanlarından farklıdırlar ...
... DBMS'lerin belirli kullanım durumlarında .
Özellikle, belirli bir varlık için tüm / çoğu sütunları denemek ve almak yerine, tipik kullanım sınırlı sayıda sütunda toplam değerleri hesaplamak olduğunda belirtilen alanlarda avantajlar sunarlar.
Oynamak için yükleyebileceğim sütunlu bir veritabanının deneme sürümü var mı? (Windows 7 kullanıyorum)
Evet, sütunlu veritabanlarının ticari, ücretsiz ve ayrıca açık kaynaklı uygulamaları var. Başlangıçiçin Wikipedia makalesinin sonundaki listeye bakın.
Bu uygulamalardan birkaçının ele almak için tanıtıldığına dikkat edin. , genel amaçlı sütun odaklı bir DBMS sağlamaktan ziyade belirli bir ihtiyacı (örneğin çok küçük ayak izi, yüksek oranda sıkıştırılabilir veri dağıtımı veya yedek matris öykünmesi vb.) Karşılamak .
Not: Çeşitli sütunlu DBMS'lerin "tek amaçlı yönelimi" hakkındaki açıklama, bu uygulamaların bir eleştirisi değil, DBMS'ler için böyle bir yaklaşımın daha "doğal" (ve kesinlikle daha geniş olarak kullanılan) kayıt varlıklarının depolanması. Sonuç olarak, bu yaklaşım, sıra odaklı yaklaşım tatmin edici olmadığında kullanılır ve bu nedenle
a) belirli bir amaç için hedeflendiğinde b) "Genel Amaçlı", "Denenmiş ve Test edilmiş ", tablo yaklaşımı.
Geçici olarak, Varlık-Öznitelik-Değer (EAV) veri modeli, göz önünde bulundurmak isteyebileceğiniz alternatif bir depolama stratejisi olabilir. "Saf" Columnar DB modelinden farklı olmasına rağmen, EAV Columnar DB'lerin birkaç özelliğini paylaşır.
Sütunlu veritabanları nasıl çalışır? Bir sütun deposunun tanımlayıcı kavramı, bir tablonun değerlerinin sütun ile bitişik olarak depolanmasıdır. Böylece CJ Date'in tedarikçi ve parça veritabanındaki klasik tedarikçi tablosu:
SNO STATUS CITY SNAME
--- ------ ---- -----
S1 20 London Smith
S2 10 Paris Jones
S3 30 Paris Blake
S4 20 London Clark
S5 30 Athens Adams
diskte veya bellekte şu şekilde depolanır:
S1S2S3S4S5;2010302030;LondonParisParisLondonAthens;SmithJonesBlakeClarkAdams
Bu, verileri daha çok şu şekilde depolayan geleneksel bir satır deposunun tersidir:
S120LondonSmith;S210ParisJones;S330ParisBlake;S420LondonClark;S530AthensAdams
Bu basit konseptten, bir sütun deposu ve bir sıra deposu arasındaki iyi ya da kötü performansın tüm temel farklılıkları akar. Örneğin, bir sütun deposu, toplamlar ve ortalamalar gibi toplamalar yapmakta mükemmeldir, ancak tek bir satır eklemek pahalı olabilirken, tersi satır depoları için geçerlidir. Bu, yukarıdaki diyagramdan anlaşılmalıdır.
İlişkisel veritabanlarından nasıl farklıdırlar? İlişki veri tabanı mantıklı bir kavramdır. Sütunlu bir veritabanı veya sütun deposu fiziksel bir kavramdır. Bu nedenle, iki terim hiçbir anlamlı şekilde karşılaştırılamaz. Sütun yönelimli DMBS'ler ilişkisel olabilir veya olmayabilir, tıpkı satır yönelimli DBMS'lerin ilişkisel ilkelere az çok bağlı olması gibi.
Sütun tabanlı veritabanları hakkında anlaşılması gereken en iyi adayın HBase'yi ( Apache Hbase ) kontrol etmek olduğunu söyleyebilirim . Kodu kontrol edin ve uygulama hakkında daha fazlasını keşfedin.
Ayrıca, Columnar DB'ler, veri sıkıştırma için yerleşik bir afiniteye sahiptir ve yükleme işlemi benzersizdir. İşte 2008'de yazdığım ve biraz daha fazlasını açıklayan bir makale .
IDC'den Carl Olofson'un 3. nesil DBMS teknolojisi üzerine yeni bir raporu da ilginizi çekebilir. Sütunlu, vd. IDC müşterisi değilseniz sitemizden ücretsiz olarak edinebilirsiniz. O da 16 Haziran'da bir web semineri yapıyor (ayrıca sitemizde).
(BTW, yukarıdaki bir yorum asterdata'yı listeliyor, ancak bunların sütunlu olduklarını düşünmüyorum.)
Sütun odaklı veritabanının ne olduğunu anlamak için, onu satır odaklı veritabanıyla karşılaştırmak daha iyidir.
Satır odaklı veritabanları (örn. MS SQL Server ve SQLite), tüm satır için verimli bir şekilde veri döndürmek üzere tasarlanmıştır. Bunu, bir satırın tüm sütun değerlerini birlikte depolayarak yapar. Satır odaklı veritabanları, OLTP sistemleri için çok uygundur (örneğin, perakende satışlar ve finansal işlem sistemleri).
Sütun odaklı veritabanları , sınırlı sayıda sütun için verimli bir şekilde veri döndürmek üzere tasarlanmıştır. Bunu, bir sütunun tüm değerlerini birlikte depolayarak yapar. Yaygın olarak kullanılan iki Sütun odaklı veritabanı Apache Hbase ve Google BigTable'dır (Google tarafından Arama, Analytics, Haritalar ve Gmail için kullanılır). Büyük veri projeleri için uygundurlar. Sütun tabanlı bir veritabanı, sınırlı sayıda sütunda okuma işlemlerinde üstünlük sağlayacaktır, ancak yazma işlemi satır tabanlı veri tabanlarına kıyasla pahalı olacaktır.
Daha fazlası için: https://en.wikipedia.org/wiki/Column-oriented_DBMS
Ürün Bilgisi. Bu yardımcı olabilir. Bunlar, bir Google aramasında öne çıkan ürünler içindi.
kx , örneğin finans sektöründe kullanılan başka bir sütun veritabanıdır. Yine de son kontrol ettiğimde lisans biraz 50 bin dolar. Hiçbir optimizasyon ihtiyacı yok indeks ihtiyacı kx güçlü operatörler olduğundan (matlab eşdeğerleri: .*, kron, bsxfun, ...).