स्तंभ स्तंभ क्या है?


98

मैं कुछ समय के लिए वेयरहाउसिंग के साथ काम कर रहा हूं।

मैं स्तंभकार डेटाबेस और उस गति से सहमत हूं जो उन्हें डेटा पुनर्प्राप्ति के लिए पेश करना है।

मेरे पास बहु-भाग प्रश्न है:

  • स्तंभकार डेटाबेस कैसे काम करते हैं?
  • वे रिलेशनल डेटाबेस से कैसे भिन्न होते हैं?

1
जवाबों में वर्णित कम # खोज के अलावा, कुछ कार्यान्वयन (जैसे SQL सर्वर कॉलम स्टोर) डेटा को संपीड़ित करेगा। यह पंक्ति फ़िल्टरिंग को रोकता है लेकिन इसके अतिरिक्त क्वेरी प्रदर्शन में सुधार कर सकता है।
पेस

जवाबों:


49

स्तंभकार डेटाबेस कैसे काम करते हैं?
स्तंभकार डेटाबेस एक अवधारणा है बल्कि एक विशेष वास्तुकला / कार्यान्वयन है । दूसरे शब्दों में, इन डेटाबेसों के काम करने का एक विशेष विवरण नहीं है; वास्तव में, कई पारंपरिक, पंक्ति-उन्मुख, DBMS पर निर्मित होते हैं, बस एक (या अक्सर दो) कॉलम के साथ तालिकाओं में जानकारी संग्रहीत करते हैं (और एक आसान फैशन में स्तंभ डेटा तक पहुंचने के लिए आवश्यक परत जोड़ते हैं)।

वे रिलेशनल डेटाबेस से कैसे भिन्न होते हैं? वे आम तौर पर पारंपरिक (पंक्ति-उन्मुख) डेटाबेस से अलग होते हैं जिनके संबंध में ...

  • प्रदर्शन...
  • भंडारण आवश्यकताओं ...
  • स्कीमा के संशोधन में आसानी ...

... DBMSes के विशिष्ट उपयोग के मामलों में
विशेष रूप से वे उल्लेखित क्षेत्रों में लाभ प्रदान करते हैं जब विशिष्ट उपयोग स्तंभों की एक सीमित संख्या पर कुल मूल्यों की गणना करने के लिए होता है, जैसा कि किसी इकाई के लिए सभी / अधिकांश स्तंभों को आज़माने और प्राप्त करने के लिए विरोध किया जाता है।

क्या कोई स्तंभ डेटाबेस का परीक्षण संस्करण है जिसे मैं खेलने के लिए स्थापित कर सकता हूं? (मैं विंडोज 7 पर हूं) हां, स्तंभ डेटाबेस के वाणिज्यिक, मुक्त और ओपन-सोर्स कार्यान्वयन भी हैं। स्टार्टर के लिए विकिपीडिया लेख के अंत में सूची देखें।
सावधान रहें कि इनमें से कई कार्यान्वयन एक विशेष उद्देश्य (बहुत छोटे पदचिह्न, डेटा के अत्यधिक संपीड़ित वितरण, या अतिरिक्त मैट्रिक्स उत्सर्जन आदि)को संबोधित करने के लिए पेश किए गए थे, बजाय एक सामान्य उद्देश्य के कॉलम-उन्मुख डीबीएमएस प्रति-सी प्रदान करते हैं।

नोट: कई स्तंभ DBMSes के "एकल उद्देश्य अभिविन्यास" के बारे में टिप्पणी इन कार्यान्वयनों की आलोचना नहीं है, बल्कि एक अतिरिक्त संकेत है कि DBMSes के लिए ऐसा दृष्टिकोण "प्राकृतिक" (और निश्चित रूप से अधिक व्यापक रूप से उपयोग किए जाने वाले) दृष्टिकोण से आता है। रिकॉर्ड संस्थाओं को संग्रहीत करना। नतीजतन, यह दृष्टिकोण तब उपयोग किया जाता है जब पंक्ति-उन्मुख दृष्टिकोण संतोषजनक नहीं होता है, और इसलिए
(एक विशेष उद्देश्य के लिए लक्षित किया जाता है) बी) "सामान्य उद्देश्य", "की कोशिश की तुलना में कम संसाधन / ब्याज प्राप्त करते हैं। परीक्षण किया गया ", सारणीबद्ध दृष्टिकोण।

Tentatively, इकाई-मूल्य-मान (EAV) डेटा मॉडल, एक वैकल्पिक भंडारण रणनीति हो सकती है, जिस पर आप विचार करना चाहते हैं। हालांकि "शुद्ध" कॉलमिनर डीबी मॉडल से अलग, ईएवी कॉलमीनर डीबी की कई विशेषताओं को साझा करता है।


253

स्तंभ डेटाबेस कैसे काम करते हैं? स्तंभ-स्टोर की परिभाषित अवधारणा यह है कि तालिका के मान स्तंभ द्वारा संचित रूप से संग्रहीत किए जाते हैं। इस प्रकार CJ Date's आपूर्तिकर्ता और भागों डेटाबेस से क्लासिक आपूर्तिकर्ता तालिका:

SNO  STATUS CITY    SNAME
---  ------ ----    -----
S1       20 London  Smith
S2       10 Paris   Jones
S3       30 Paris   Blake
S4       20 London  Clark
S5       30 Athens  Adams

डिस्क या मेमोरी में कुछ इस तरह संग्रहीत किया जाएगा:

S1S2S3S4S5;2010302030;LondonParisParisLondonAthens;SmithJonesBlakeClarkAdams 

यह एक पारंपरिक रोस्टोर के विपरीत है जो डेटा को इस तरह अधिक संग्रहित करेगा:

S120LondonSmith;S210ParisJones;S330ParisBlake;S420LondonClark;S530AthensAdams

इस सरल अवधारणा से, कॉलम-स्टोर और रो-स्टोर के बीच, बेहतर या बदतर के लिए, प्रदर्शन के सभी मूलभूत अंतरों का प्रवाह होता है। उदाहरण के लिए, एक स्तंभ स्टोर कुल योग और औसत जैसे एकत्रीकरण करने में उत्कृष्टता प्राप्त करेगा, लेकिन एक पंक्ति सम्मिलित करना महंगा हो सकता है, जबकि उलटा पंक्ति-भंडार के लिए सही रहता है। यह उपरोक्त आरेख से स्पष्ट होना चाहिए।

वे रिलेशनल डेटाबेस से कैसे भिन्न होते हैं? एक संबंध डेटाबेस एक तार्किक अवधारणा है। एक स्तंभ डेटाबेस, या स्तंभ-स्टोर, एक भौतिक अवधारणा है। इस प्रकार दो शब्द किसी भी सार्थक तरीके से तुलनीय नहीं हैं। कॉलम-ओरिएंटेड डीएमबीएस रिलेशनल हो सकते हैं या नहीं, जैसे कि रि-ओरिएंटेड डीबीएमएस रिलेशनल सिद्धांतों का अधिक या कम पालन कर सकते हैं।


22
यह स्वीकार किए गए उत्तर से बेहतर लगता है, लेकिन मैं कोई विशेषज्ञ नहीं हूं। वोट दें।
रोब ग्रांट

2
कॉलम ओरिएंटेड डेटाबेस का उपयोग किया जाता है, जहां विशिष्ट कॉलमों पर एकत्रीकरण को बिक्री रिपोर्ट की तरह उद्धृत किया जाता है। यहाँ बिंदु यह है कि यदि आप पंक्ति उन्मुख डेटाबेस का उपयोग करते हैं, तो सभी पंक्तियों (ब्लॉक) को मुख्य मेमोरी में लाने की आवश्यकता होती है, जिसमें डिस्क से लेकर रैम तक सभी ब्लॉक लाने के लिए डिस्क से बहुत समय लगता है, भले ही आप केवल कॉलम में रुचि रखते हों जो आपको बिक्री रिपोर्ट प्रदान करने में मदद करता है। जबकि कॉलम ओरिएंटेड स्कीम के कॉलमों को ब्लॉक में संचित रूप से संग्रहीत किया जाता है, जो ब्लॉक की कम संख्या के कारण कम प्रयास करता है। तो स्तंभ डेटाबेस का उपयोग OLAP के लिए किया जाता है, जबकि पंक्ति उन्मुख का उपयोग OLTP सामान के लिए किया जाता है।
भर्तृज

4

मैं कहूंगा कि स्तंभ उन्मुख डेटाबेस के बारे में समझने के लिए सबसे अच्छा उम्मीदवार HBase ( Apache Hbase ) की जांच करना है। आप कोड की जांच करते हैं और कार्यान्वयन के बारे में जानने के लिए आगे की खोज करते हैं।


2

इसके अलावा, स्तंभ डीबी में डेटा संपीड़न के लिए आत्मीयता का निर्माण होता है, और लोडिंग प्रक्रिया अद्वितीय होती है। यहां एक लेख मैंने 2008 में लिखा था जो थोड़ा और समझाता है।

तीसरी पीढ़ी के डीबीएमएस प्रौद्योगिकी पर आईडीसी के कार्ल ओलोफसन की एक नई रिपोर्ट में भी आपकी रुचि हो सकती है। यह स्तंभ, एट अल पर चर्चा करता है। यदि आप आईडीसी ग्राहक नहीं हैं, तो आप इसे हमारी साइट पर निःशुल्क प्राप्त कर सकते हैं। वह 16 जून को एक वेबिनार कर रहा है, वह भी (हमारी साइट पर)।

(बीटीडब्लू, एक टिप्पणी ऊपर सूचीबद्ध सूची में है, लेकिन मुझे नहीं लगता कि वे स्तंभ हैं।)


आप आईडीसी रिपोर्ट यहां प्राप्त कर सकते हैं: paraccel.com/press/3rd_generation_database_technology
किम स्टेनिक

एस्टर डेटा एमपीपी रिलेशनल डेटाबेस है और इसमें स्तंभ तालिका के लिए मूल समर्थन है।
टॉपचेफ

@kimstanick, paraccel URL मृत है।
user674669

2

स्तंभ उन्मुख डेटाबेस क्या है, यह समझने के लिए, पंक्ति उन्मुख डेटाबेस के साथ इसके विपरीत करना बेहतर है।

पंक्ति उन्मुख डेटाबेस (जैसे MS SQL सर्वर और SQLite) को कुशलतापूर्वक संपूर्ण पंक्ति के लिए डेटा वापस करने के लिए डिज़ाइन किया गया है। यह एक पंक्ति के सभी कॉलम मानों को एक साथ संग्रहीत करके करता है। आरओ-उन्मुख डेटाबेस ओएलटीपी सिस्टम (जैसे, खुदरा बिक्री, और वित्तीय लेनदेन प्रणाली) के लिए अच्छी तरह से अनुकूल हैं।

स्तंभ उन्मुख डेटाबेस को सीमित संख्या में स्तंभों के लिए कुशलता से डेटा वापस करने के लिए डिज़ाइन किया गया है। यह एक कॉलम के सभी मानों को एक साथ संग्रहीत करके करता है। दो व्यापक रूप से उपयोग किए जाने वाले कॉलम ओरिएंटेड डेटाबेस Apache Hbase और Google BigTable हैं (Google द्वारा इसका उपयोग सर्च, एनालिटिक्स, मैप्स और जीमेल के लिए किया जाता है)। वे बड़ी डेटा परियोजनाओं के लिए उपयुक्त हैं। एक कॉलम ओरिएंटेड डेटाबेस सीमित संख्या के कॉलम पर रीड ऑपरेशंस को एक्सेल करेगा, हालांकि पंक्ति ओरिएंटेड डेटाबेस की तुलना में राइट ऑपरेशन महंगा होगा।

अधिक के लिए: https://en.wikipedia.org/wiki/Column-oriented_DBMS


1

उत्पाद की जानकारी। यह मदद कर सकता है। ये Google खोज पर चुनिंदा उत्पाद थे।

http://www.vertica.com/

http://www.paraccel.com/

http://www.asterdata.com/index.php


वर्टिका के बारे में एक बात ध्यान देने वाली है कि मैंने वेब पर लाइसेंस लागत $ 150k / TB डेटा संग्रहीत होने का संदर्भ देखा है। इसलिए यह सस्ता नहीं है।
मार्क

@ मर्क: लागत मुद्दा नहीं है। सूचना मुद्दा है। यदि ओपी जानकारी चाहता है, तो विक्रेता अक्सर सबसे अच्छा संभव स्रोत होते हैं।
२.५१

1
यदि आप विशेष रूप से Columnar एक की तलाश में नहीं हैं, तो Amazon प्रति वर्ष 1,000 डॉलर प्रति टेराबाइट के तहत अपना सुपर फास्ट RedShift डेटा स्टोरेज प्रदान करता है।
mevdiven

1

kx एक अन्य स्तंभ डेटाबेस है, उदाहरण के लिए वित्तीय क्षेत्र में उपयोग किया जाता है। लाइसेंस कुछ समय $ 50K है जब मैंने पिछली बार चेक किया था। कोई अनुकूलन की जरूरत है, कोई सूचकांक की जरूरत है, KX शक्तिशाली ऑपरेटरों है क्योंकि (matlab समकक्ष: .*, kron, bsxfun, ...)।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.