2017-10-23 32 views
0
나는 데이터 큐브가 무엇인지에 읽어 봤는데

을 구현/구조하는 방법과 그것이 무엇인지말 많은 리소스가 왜 특정 컬럼에 (OLAP/비즈니스 인텔리전스/집계) 하나만 사용 하겠지만 어떻게.는 다차원 데이터/데이터 큐브

대부분의 리소스는 referencing relational data 점인 것처럼 보이지만 RDBMS를 사용해야하는 것은 아닙니다.

그러나 아무것도 스키마를 구조화하는 방법과이 데이터를 모두 집계하는 느린 실행 시간을 피하기 위해 효율적으로 쿼리하는 방법을 보여주지는 않습니다. 내가 찾을 수있는 가장 좋은 것은 "현재 사용 가능하지 않은"edx 클래스입니다 : Developing a Multidimensional Data Model.

답변

0

당신은 아마 이미 2 개의 다른 OLAP 접근 방식이 있다는 것을 알고 수 집계를 처리하기 위해 데이터로드 단계가 필요

  • MOLAP은 (이전에 '큐브'로 정의). 내부적으로 MOLAP 기반 솔루션은 가능한 집계에 대한 측정 값을 미리 계산하므로 결과적으로 OLAP 쿼리를 매우 빠르게 실행할 수 있습니다. 이 접근법의 가장 중요한 단점은 MOLAP이 캐시 역할을한다는 것입니다. 큐브를 새로 고치기 위해 입력 데이터를 다시로드해야합니다 (예 : 시간이 오래 걸릴 수 있음). 새로운 차원/측정 값을 큐브에 추가하기로 결정하십시오. 또한 데이터 세트 크기 + 큐브 구성의 자연 한도가 있습니다.
  • ROLAP은 입력 데이터를 사전 처리하지 않습니다. 대신 OLAP 쿼리를 데이터베이스 집계 쿼리로 변환하여 즉시 값을 계산합니다. "R"은 관계형을 의미하지만 집계 쿼리 (예 : MongoDb)를 지원하는 NoSQL 데이터베이스에서도 접근 방식을 사용할 수 있습니다. 데이터 캐시가 없기 때문에 사용자는 항상 실제 데이터를 가져 오지만 (MOLAP과는 달리) DB는 집계 쿼리를 빠르게 실행할 수 있어야합니다. 상대적으로 작은 데이터 세트의 경우 OLTP 데이터베이스는 정상적으로 작동 할 수 있지만 (SQL Server, PostgreSql, MySql 등) 큰 데이터 세트의 경우에는 Amazon Redshift와 같은 특수 DB 엔진이 사용됩니다. 효율적인 분산 된 사용 시나리오를 지원하고 수초 내에 많은 TB를 처리 할 수 ​​있습니다.

요즘은 MOLAP 솔루션을 개발하는 데 약간의 의미가 있습니다. 이 접근법은 서버가 소량의 RAM으로 제한되고 HDD의 SQL 데이터베이스가 GROUP BY 쿼리를 충분히 빠르게 처리 할 수없는 10 년 전의 실제 사례였습니다. MOLAP은 실제로 '온라인 분석 처리'를 수행하는 유일한 방법이었습니다. 현재 우리는 매우 빠른 NVMe SSD를 사용하고 있으며 서버에 수백 기가 바이트의 RAM과 수십 개의 CPU 코어가있을 수 있으므로 상대적으로 작은 데이터베이스 (최대 TB 또는 그 이상)의 일반 OLTP 데이터베이스는 ROLAP 백엔드로 충분히 빠르게 작동 할 수 있습니다 초); 실제로 큰 데이터의 경우 MOLAP은 어떤 식 으로든 거의 사용할 수 없으며 특별한 분산 데이터베이스를 사용해야합니다.

0

일반적으로 큐브는 RDBMS에서 종종 (항상 그런 것은 아니지만) 구현되는 '차원 모델'인 별표 스키마를 기반으로 할 때 가장 잘 작동한다는 것이 일반적입니다. 이러한 모델은 쿼리 및 집계에 빠르게 사용할 수 있도록 설계되어있어 의미가 있습니다.

대부분의 큐브는 사용자와 상호 작용하기 전에 집계를 수행하므로 사용자 관점에서 보면 큐브 자체의 집계/쿼리 시간이 원본 테이블의 구조보다 더 흥미 롭습니다. 그러나 일부 큐브 기술은 쿼리를 통해 기본 데이터베이스로 전달되는 '의미 계층 (semantic layer)'에 불과하며 ROLAP이라고도합니다. 이러한 경우 기본 데이터 구조가 더욱 중요해진다.

큐브 사용자에게 제공되는 데이터 인터페이스는 OLTP 시스템의 데이터베이스 구조에서 직접 큐브를 기반으로하는 것과 같은 차원이 아닌 모델을 배제하는 관점에서 단순해야합니다.