큐브(OLAP 서버)
Cubes (OLAP server)원저작자 | 스테판 우르바넥[1] |
---|---|
초기 릴리즈 | 2011년 3월 27일, | 전(
안정된 릴리스 | 1.1 / 2016년 7월 , 전( |
저장소 | github |
기입처 | 파이썬 |
운영 체제 | 크로스 플랫폼 |
유형 | OLAP |
면허증. | MIT 라이선스[2] |
웹 사이트 | cubes |
큐브스는 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 툴킷을 사용하여 쿼리를 구성합니다.
「 」를 참조해 주세요.
레퍼런스
- ^ Stefan Urbanek는 Cubes and Data Brewery의 창시자입니다.
- ^ "DataBrewery / cubes / blob / master / LICENSE". Github. Retrieved 21 February 2015.
- ^ 국제 투명성 슬로바키아의 공공 조달
- ^ PyData NYC 2014의 큐브 1.0 개요(비디오).
- ^ 큐브 뷰어