컬럼 형 데이터베이스 란 무엇입니까?


97

나는 한동안 창고 작업을 해왔습니다.

저는 Columnar Databases와 그들이 데이터 검색을 위해 제공해야하는 속도에 흥미가 있습니다.

여러 부분으로 구성된 질문이 있습니다.

  • Columnar Database는 어떻게 작동합니까?
  • 관계형 데이터베이스와 어떻게 다릅니 까?

1
답변에 언급 된 검색 횟수 감소 외에도 일부 구현 (예 : SQL 서버의 열 저장소)은 데이터를 압축합니다. 이는 행 필터링을 방지하지만 쿼리 성능을 추가로 향상시킬 수 있습니다.
Pace

답변:


49

Columnar Database는 어떻게 작동합니까?
컬럼 형 데이터베이스는특정 아키텍처 / 구현이 아닌 개념 입니다. 즉, 이러한 데이터베이스의 작동 방식에 대한 특별한 설명이 하나도 없습니다. 실제로 일부는 기존의 행 지향 DBMS를 기반으로 구축되어 단순히 하나 (또는 ​​종종 두 개) 열이있는 테이블에 정보를 저장하고 열 데이터에 쉽게 액세스하는 데 필요한 계층을 추가합니다.

관계형 데이터베이스와 어떻게 다릅니 까? 일반적으로 기존 (행 지향) 데이터베이스와는 다음과 같이 다릅니다.

  • 공연...
  • 저장 요구 사항 ...
  • 스키마 수정 용이성 ...

... DBMS의 특정 사용 사례에서 .
특히 특정 엔터티에 대해 모든 / 대부분의 열을 검색하고 검색하는 것과는 반대로 일반적인 사용이 제한된 수의 열에서 집계 값을 계산하는 데 언급 된 영역에서 이점을 제공합니다.

플레이하기 위해 설치할 수있는 컬럼 형식 데이터베이스의 평가판이 있습니까? (저는 Windows 7을 사용 중입니다.) 예, 열 기반 데이터베이스의 상용, 무료 및 오픈 소스 구현이 있습니다. 우선 Wikipedia 기사 끝에있는 목록을 참조하십시오.
이러한 구현 중 일부는범용 컬럼 지향 DBMS를 제공하기보다는 특정 요구 사항 (예 : 매우 작은 풋 프린트, 압축 가능한 데이터 배포 또는 예비 매트릭스 에뮬레이션 등)을 해결하기 위해 도입되었습니다.

참고 : 여러 컬럼 형 DBMS의 "단일 목적 지향"에 대한 언급은 이러한 구현에 대한 비판이 아니라 DBMS에 대한 이러한 접근 방식이보다 "자연스러운"(확실히 더 광범위하게 사용되는) 접근 방식에서 벗어났다는 추가 표시입니다. 레코드 엔티티 저장. 결과적으로이 접근 방식은 행 지향 접근 방식이 만족스럽지 않을 때 사용되며, 따라서
a) 특정 목적을 목표로하는 경향이 있습니다. b) "범용", "시도 및 시도"에 대한 작업보다 적은 자원 / 관심을받는 경향이 있습니다. 테스트 완료 ", 표 형식 접근.

잠정적으로 EAV ( Entity-Attribute-Value ) 데이터 모델은 고려할 수있는 대체 스토리지 전략 일 수 있습니다. "순수한"Columnar DB 모델과는 다르지만 EAV는 Columnar DB의 몇 가지 특성을 공유합니다.


253

컬럼 형 데이터베이스는 어떻게 작동합니까? column-store의 정의 개념은 테이블의 값이 열별로 연속적으로 저장된다는 것입니다. 따라서 CJ Date의 공급 업체 및 부품 데이터베이스의 클래식 공급 업체 테이블 :

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 

이것은 다음과 같이 데이터를 더 많이 저장하는 기존의 rowstore와는 대조적입니다.

S120LondonSmith;S210ParisJones;S330ParisBlake;S420LondonClark;S530AthensAdams

이 간단한 개념에서 열 저장소와 행 저장소 사이에 좋든 나쁘 든 성능의 모든 근본적인 차이점이 있습니다. 예를 들어 열 저장소는 합계 및 평균과 같은 집계를 수행하는 데 탁월하지만 단일 행을 삽입하는 데는 비용이 많이들 수 있지만 행 저장소의 경우 역이 적용됩니다. 이것은 위의 다이어그램에서 분명합니다.

관계형 데이터베이스와 어떻게 다릅니 까? 관계 데이터베이스는 논리적 개념입니다. 열 데이터베이스 또는 열 저장소는 물리적 개념입니다. 따라서 두 용어는 의미있는 방식으로 비교할 수 없습니다. 열 지향 DMBS는 행 지향 DBMS가 관계형 원칙을 어느 정도 준수 할 수있는 것처럼 관계형 일 수도 있고 아닐 수도 있습니다.


22
이것은 받아 들인 대답보다 나아 보이지만 전문가는 아닙니다. 찬성.
Rob Grant

2
열 지향 데이터베이스는 특정 열에 대한 집계가 판매 보고서와 같이 쿼리되는 경우에 사용됩니다. 여기서 요점은 행 지향 데이터베이스를 사용하는 경우 모든 행 (블록)을 주 메모리로 가져와야합니다. 여기에는 열에 만 관심이 있더라도 디스크에서 모든 블록을 램으로 가져 오기 위해 디스크에서 많은 탐색 시간이 포함됩니다. 판매 보고서를 제공하는 데 도움이됩니다. 반면 열 지향 스키마에서는 열이 블록에 연속적으로 저장되므로 블록 수가 적기 때문에 검색 횟수가 줄어 듭니다. 따라서 열 데이터베이스는 OLAP에 사용되는 반면 행 지향은 OLTP에 사용됩니다.
bharatj

4

열 지향 데이터베이스에 대해 이해하기 가장 좋은 후보는 HBase ( Apache Hbase ) 를 확인하는 것 입니다. 코드를 확인하고 구현에 대해 자세히 알아보십시오.


2

또한 Columnar DB에는 데이터 압축에 대한 선호도가 내장되어 있으며로드 프로세스가 고유합니다. 여기에 제가 2008 년에 썼던 기사가 있습니다.

3 세대 DBMS 기술에 대한 IDC의 Carl Olofson의 새로운 보고서에 관심이있을 수도 있습니다. 그것은 원주 등을 논의합니다. IDC 클라이언트가 아닌 경우 당사 사이트에서 무료로받을 수 있습니다. 그는 또한 6 월 16 일에 웹 세미나를 진행하고 있습니다.

(BTW, 위의 한 댓글에는 asterdata가 나열되어 있지만 컬럼 형이라고 생각하지 않습니다.)


IDC 보고서는 다음에서 얻을 수 있습니다. paraccel.com/press/3rd_generation_database_technology
kim stanick

Aster Data는 MPP 관계형 데이터베이스이며 열 테이블을 기본적으로 지원합니다.
topchef

@kimstanick, paraccel URL이 죽었습니다.
user674669 2014 년

2

열 지향 데이터베이스가 무엇인지 이해하려면 행 지향 데이터베이스와 대조하는 것이 좋습니다.

행 지향 데이터베이스 (예 : MS SQL Server 및 SQLite)는 전체 행에 대한 데이터를 효율적으로 반환하도록 설계되었습니다. 행의 모든 ​​열 값을 함께 저장하여 수행합니다. 행 지향 데이터베이스는 OLTP 시스템 (예 : 소매 판매 및 금융 거래 시스템)에 적합합니다.

열 지향 데이터베이스 는 제한된 수의 열에 대한 데이터를 효율적으로 반환하도록 설계되었습니다. 열의 모든 값을 함께 저장하여 수행합니다. 널리 사용되는 두 가지 열 지향 데이터베이스는 Apache Hbase 및 Google BigTable입니다 (Google에서 검색, 분석,지도 및 Gmail에 사용). 빅 데이터 프로젝트에 적합합니다. 열 지향 데이터베이스는 제한된 수의 열에 대한 읽기 작업에 탁월하지만 쓰기 작업은 행 지향 데이터베이스에 비해 비용이 많이 듭니다.

추가 정보 : https://en.wikipedia.org/wiki/Column-oriented_DBMS


1

제품 정보. 도움이 될 수 있습니다. 이것은 Google 검색에서 추천 제품이었습니다.

http://www.vertica.com/

http://www.paraccel.com/

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


Vertica에 대해 주목해야 할 점은 웹에서 라이센스 비용이 $ 150,000 / TB 데이터가 저장된다는 언급을 본 적이 있다는 것입니다. 그래서 싸지 않습니다.
Mark

@Mark : 비용은 문제가 아닙니다. 정보가 문제입니다. OP가 정보를 원하면 공급 업체가 가장 좋은 소스가되는 경우가 많습니다.
S.Lott

1
Amazon은 특별히 Columnar를 찾고 있지 않은 경우 연간 테라 바이트 당 $ 1,000 미만의 초고속 RedShift 데이터 스토리지를 제공합니다.
mevdiven

1

kx 는 금융 부문에서 사용되는 또 다른 열 데이터베이스입니다. 그래도 라이센스는 지난번에 확인했을 때 $ 50,000입니다. 어떤 최적화 필요가, 인덱스가 필요하지, KX는 강력한 사업자가 없기 때문에 (matlab에 상응하는 : .*, kron, bsxfun, ...).

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.