developer tip

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

optionbox 2020. 9. 2. 17:45
반응형

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


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

저는 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가 나열되어 있지만 컬럼 형이라고 생각하지 않습니다.)


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

http://www.vertica.com/

http://www.paraccel.com/

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


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


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

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

Column oriented databases are designed to efficiently return data for a limited number of columns. It does it by storing all of the values of a column together. Two widely used Column oriented databases are Apache Hbase and Google BigTable (used by Google for its Search, Analytics, Maps and Gmail). They are suitable for the big data projects. A column oriented database will excel at read operations on a limited number of columns, however write operation will be expensive compared to row oriented databases.

For more: https://en.wikipedia.org/wiki/Column-oriented_DBMS

참고URL : https://stackoverflow.com/questions/2133017/what-is-a-columnar-database

반응형