큐브(OLAP 서버)

Cubes (OLAP server)
큐브
원저작자스테판 우르바넥[1]
초기 릴리즈2011년 3월 27일, 11년 전(2011-03-27)
안정된 릴리스
1.1 / 2016년 7월 2일, 5년 전(2016-07-02)
저장소github.com/DataBrewery/cubes
기입처파이썬
운영 체제크로스 플랫폼
유형OLAP
면허증.MIT 라이선스[2]
웹 사이트cubes.databrewery.org

큐브스MIT 라이센스에 따라 출시된 파이썬 프로그래밍 언어로 작성된 통합 데이터를 탐색하고 개발 보고 애플리케이션을 위한 경량 오픈 소스 다차원 모델링 OLAP 툴킷입니다.

Cubes는 분석가 또는 애플리케이션 최종 사용자에게 "데이터 큐브의 개념을 사용한 이해하기 쉽고 자연스러운 보고서 방법(다차원 데이터 객체)"을 제공합니다.

큐브는 2011년 3월에 처음 공개되었다.이 프로젝트는 원래 [3]슬로바키아공공조달을 위해 개발되었습니다.큐브 1.0은 2014년 9월에 출시되어 뉴욕에서[4] 열린 PyData Conference에서 발표되었습니다.

특징들

  • OLAP 및 집약 브라우징(기본값은 ROLAP)
  • JSON 또는 외부 소스에서 제공되는 OLAP 큐브의 논리 모델
  • 계층적 차원(카테고리 서브카테고리나 국가 지역 등 계층적 종속성이 있는 속성
  • 한 차원에서의 다중 계층
  • 도출된 측정값과 집계를 계산하기 위한 산술식
  • 현지화 가능한 메타데이터 및 데이터

모델

큐브의 논리 개념 모델은 JSON을 사용하여 설명되며 파일, 디렉토리 번들 또는 외부 모델 공급자(예: 데이터베이스)에서 제공할 수 있습니다.기본 모델 개체는 큐브와 그 측정값과 집계, 치수 및 그 속성, 계층입니다.논리 모델에는 논리 속성에서 데이터베이스(또는 다른 데이터 원본)의 물리적 위치로의 매핑도 포함됩니다.

모델 예:

{     "실패": [         {             "이름: '세일즈',             "라벨": "당사의 영업",             "치수": [ "날짜", "고객님", "장소", "제품" ],             "조치": [ "금액" ]         }     ]     "치수": [         {             "이름: "제품",             "라벨": "제품",             "실패": [                 {                     "이름:"카테고리",                     "라벨":"카테고리",                     "속성: [ "category_id", "category_label" ],                 },                 {                     "이름:"제품",                     "라벨":"제품",                     "속성: [ "product_id", "product_label" ],                 }             ]         },         ...     ] } 

운용

큐브는 데이터 드릴링 및 필터링(슬라이싱다이싱)과 같은 기본 작업 세트를 제공합니다.조작은 Python 인터페이스 또는 Slicer라고 불리는 경량서버를 통해 접근할 수 있습니다.

python 인터페이스의 예:

수입품 큐브  워크스페이스 = 워크스페이스("companer.ini") 브라우저 = 워크스페이스.브라우저('세일즈')  결과 = 브라우저.집약하다()  인쇄물(결과.요약) 

서버

큐브는 HTTP 쿼리와 JSON 응답 API를 갖춘 기존 OLAP 서버가 아닙니다."2012년 1월부터 2016년 6월 사이의 모든 계약의 월별 총 금액"을 얻기 위한 쿼리 예:

http://localhost:cube/cube/cube/cut?cube=date&cut=date:2012,1-2012,6&order=date.month:desc

응답은 다음과 같습니다.

{     "실패": {         "계약_금액_합": 10000000.0     },     "실패": {},     "실패": [         {             "날짜.년": 2012,             "code.code": "ekonaj",             "계약_금액_합": 12345.0,             "description.description": "경제적으로 가장 좋은 제안",             "param.sdesc": "최고의 서비스",             "criteria.id": 3         },         {             "날짜.년": 2012,             "code.code": "cena",             "계약_금액_합": 23456.0,             "description.description": "정품 가격",             "param.sdesc": "정품 가격",             "criteria.id": 4         }, ...     "total_cell_count": 6,     "인증서": [         "계약_금액_합"     ],     "셀": [         {             "타입": "범위",             "실패": "날짜",             "실패": "디폴트",             "level_depth": 2,             "실패": 거짓의,             숨김: 거짓의,             "출처": ["2012", "1" ],             "to": ["2015", "6" ]         }     ],     "실패": {         "실패": [ "실패" ],         "날짜": [ "년" ]     } } 

단순한 HTTP/JSON 인터페이스를 통해 순수 HTML JavaScript로 작성된 웹 응용 프로그램에 OLAP 보고서를 쉽게 통합할 수 있습니다.

Slicer 서버에는 큐브 메타데이터를 설명하는 엔드포인트가 포함되어 있어 데이터베이스 모델 구조와 개념 계층을 사전에 알 필요가 없는 일반 보고 응용[5] 프로그램을 만들 수 있습니다.

슬라이서 서버는 플라스크(웹 프레임워크)를 사용하여 작성됩니다.

ROLAP 및 SQL

프레임워크에 내장된 SQL 백엔드는 릴레이셔널 데이터베이스 위에 ROLAP 기능을 제공합니다.큐브에는 보고 쿼리를 SQL 문으로 변환하는 SQL 조회 생성기가 포함되어 있습니다.쿼리 생성기는 별 또는 눈송이 스키마의 토폴로지를 고려하며 데이터 분석가가 요구하는 속성을 가져오는 데 필요한 조인만 수행합니다.

SQL 백엔드는 SQLLchemy Python 툴킷을 사용하여 쿼리를 구성합니다.

「 」를 참조해 주세요.

레퍼런스

  1. ^ Stefan Urbanek는 Cubes and Data Brewery의 창시자입니다.
  2. ^ "DataBrewery / cubes / blob / master / LICENSE". Github. Retrieved 21 February 2015.
  3. ^ 국제 투명성 슬로바키아공공 조달
  4. ^ PyData NYC 2014의 큐브 1.0 개요(비디오).
  5. ^ 큐브 뷰어

외부 링크