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

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

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

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

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


답변

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

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

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

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

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

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

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


답변

컬럼 형 데이터베이스는 어떻게 작동합니까?
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가 관계형 원칙을 어느 정도 준수 할 수있는 것처럼 관계형 일 수도 있고 아닐 수도 있습니다.


답변

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


답변

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

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

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


답변

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

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

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

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


답변

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

http://www.vertica.com/

http://www.paraccel.com/

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


답변

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