KR20130083899A - 데이터 웨어하우스 상의 온라인 분석 처리(olap) 연산의 최적화된 시퀀싱을 위한 하이퍼 격자 모델 - Google Patents

데이터 웨어하우스 상의 온라인 분석 처리(olap) 연산의 최적화된 시퀀싱을 위한 하이퍼 격자 모델 Download PDF

Info

Publication number
KR20130083899A
KR20130083899A KR1020137002253A KR20137002253A KR20130083899A KR 20130083899 A KR20130083899 A KR 20130083899A KR 1020137002253 A KR1020137002253 A KR 1020137002253A KR 20137002253 A KR20137002253 A KR 20137002253A KR 20130083899 A KR20130083899 A KR 20130083899A
Authority
KR
South Korea
Prior art keywords
cuboid
cuboids
hyper
summarized
dimension
Prior art date
Application number
KR1020137002253A
Other languages
English (en)
Other versions
KR101526514B1 (ko
Inventor
나벤두 차키
소우미야 센
Original Assignee
유니버시티 오브 캘커타
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 유니버시티 오브 캘커타 filed Critical 유니버시티 오브 캘커타
Publication of KR20130083899A publication Critical patent/KR20130083899A/ko
Application granted granted Critical
Publication of KR101526514B1 publication Critical patent/KR101526514B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/283Multi-dimensional databases or data warehouses, e.g. MOLAP or ROLAP

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

데이터 웨어하우스 내에 포함되는 데이터의 온라인 분석 처리를 위한 시스템 및 방법이 제공된다. 일 예시에 따르면, 차원을 하이퍼 격자 구조에 추가하기 위한 방법이 제공되며, 방법은 새로운 기저 큐보이드를 데이터 웨어하우스의 기능을 설명하는 하이퍼 격자에 추가하는 단계를 포함한다. 다른 예시에 따르면, 기존의 하이퍼 격자를 통한 최적의 경로를 결정함으로써 소스 큐보이드로부터 목적 큐보이드를 생성하기 위한 방법이 또한 제공된다.

Description

데이터 웨어하우스 상의 온라인 분석 처리(OLAP) 연산의 최적화된 시퀀싱을 위한 하이퍼 격자 모델{HYPER-LATTICE MODEL FOR OPTIMIZED SEQUENCING OF ONLINE ANALYTICAL PROCESSING (OLAP) OPERATIONS ON DATA WAREHOUSES}
본 출원은 2010년 6월 28일에 인도에서 출원되고 출원번호 제699/KOL/2010호인 대응 특허출원에 대한 우선권을 주장하며, 그 모든 내용은 여기에서 참조로 포함된다.
본 출원은 일반적으로 데이터 웨어하우징(data warehousing) 기법 및 온라인 분석 처리(Online Analytical Processing(OLAP)) 방법 및 시스템에 관련된다.
여기에서 달리 언급하지 않으면, 본 섹션에서 기술된 내용은 본 출원에서의 청구항의 선행 기술이 아니며 본 섹션에 포함한 것에 의해 선행 기술로서 인정된 것이 아니다.
현명한 사업상의 결정을 하기 위해, 많은 조직들은 데이터 웨어하우징 및 분석 처리의 일부 방식을 이용한다. 데이터 웨어하우스(data warehouse)는 하나 이상의 데이터 소스로부터 수집된 정보의 전자 저장소이다. 보통, 데이터 웨어하우스는 대량의 정보를 포함할 것이며, 어느 시점에든, 그 정보의 특정 부분이 요구될 수 있다. 요구되는 데이터를 검색하고 데이터를 선호하는 방식으로 (예컨대, 컴퓨터 스크린 또는 기타 유형의 그래픽 사용자 인터페이스(GUI) 상에) 나타내기 위하여, 분석자는 웨어하우스 데이터의 온라인 분석 처리(OLAP)로 알려진 것을 수행할 수 있다.
예컨대, 판매조직은 어떤 판매원들이 특정 국가의 특정 지역에서 특정 기간 동안에 특정 유형의 상품을 일정 수 넘게 판매하였는지 알고 싶어할 수 있다. 판매조직의 데이터 웨어하우스 또는 데이터 저장소는 오랜 기간 및 전세계에 걸쳐 다수의 상품에 대하여 판매원 모두에 대응하는 판매 데이터를 포함할 수 있다. OLAP 기능은 웨어하우스 데이터를 처리하고, 데이터 중 희망하는 부분을 검색하고, 적절한 형태로 데이터를 나타내기 위한 방식을 제공한다.
조직이 성장하고 확장함에 따라, 그 데이터 저장소 또한 그러하다. 이는, (예컨대, 더 정교한 매장 기술, 향상된 마케팅 기법 등으로 인한) 데이터 수집의 증가하는 용이성과 결합되어, 데이터 웨어하우스 크기에 있어 기하급수적인 증가를 낳는다. 결과적으로, (예컨대, 처리 전력 및 시간에 의하여 측정되는) OLAP 쿼리(query)의 비용이 증가하여, 열악한 사용자 경험으로 이어진다. 이를 다루기 위하여, 보다 효율적인 데이터 저장, 보다 효율적인 데이터 표현(data representation) 기법 및 보다 효율적인 OLAP 루틴(routine)이 요구된다.
일 실시예에 따르면, 기존의 데이터 웨어하우스 격자 구조를 수정하기 위한 방법이 제공된다. 방법은 하이퍼 격자(hyper-lattice)의 기존의 차원(dimension)들 및 새로이 삽입되는 차원에 대한 기저(base) 큐보이드(cuboid)를 형성하는 추가적인 큐보이드를 생성하는 단계를 포함한다. 방법은 복수의 중간 차원 패턴을 추가적인 기저 큐보이드와 연관시키는 단계를 더 포함하며, 여기서 차원 패턴 중 적어도 하나는 기존의 격자 구조에 존재하고 차원 패턴 중 적어도 하나는 기존의 격자 구조에 현재 존재하지 않는다.
다른 실시예에서, 데이터 웨어하우스 격자를 통하는 최적의 경로를 결정하여 소스 큐보이드로부터 목적 큐보이드를 생성하기 위한 소프트웨어 명령어가 제공된다. 명령어는 소스 큐보이드로부터 생성될 수 있는 큐보이드의 세트를 결정하는 단계, 세트 내 어떤 큐보이드가 목적 큐보이드와 적어도 동일한 차원 상에 요약(summarized)되는지 결정하는 단계, 격자 내 목적 큐보이드와 적어도 동일한 차원 상에 요약되는 세트 내 각각의 큐보이드의 크기를 계산하는 단계 및 어떤 큐보이드가 최소의 크기를 가지는지 결정하는 단계를 포함한다. 최적의 경로는 이에 따라, 적어도 최소 크기의 큐보이드를 포함하는 경로로 결정된다.
추가적인 실시예에서, 하이퍼 격자를 통하는 최적의 경로를 결정하여 소스 큐보이드로부터 목적 큐보이드를 생성하기 위한 명령어가 저장된 소프트웨어를 가지는 OLAP 서버가 제공된다. 소스 큐보이드 및 목적 큐보이드는 하이퍼 격자 내 동일한 기저 큐보이드에 대응할 수 있거나 하이퍼 격자 내 상이한 기저 큐보이드에 대응할 수 있다.
전술한 요약은 예시적인 것일 뿐이고, 어떤 방식으로든 제한을 의도한 것은 아니다. 상술한 예시적인 태양, 실시예 및 특징들에 더하여, 추가의 태양, 실시예 및 특징들은 도면과 이하의 상세한 설명을 참조함으로써 분명하게 될 것이다.
도 1은 여기에서 제시된 실시예 중 적어도 일부가 수행될 수 있는 예시적인 시스템을 도시하는 블록도이다.
도 2는 예시적인 사실(fact) 및 차원 데이터 테이블을 도시한 도면이다.
도 3a는 사실 데이터가 1차원 상에 요약되는 예시적인 데이터 큐보이드를 도시한다.
도 3b는 사실 데이터가 2차원 상에 요약되는 예시적인 데이터 큐보이드를 도시한다.
도 4는 사실 데이터가 3차원 상에 요약되는 예시적인 데이터 큐보이드를 도시한다.
도 5는 사실 데이터가 4차원 상에 요약되는 예시적인 데이터 큐보이드를 도시한다.
도 6은 예시적인 큐보이드의 격자를 도시한다.
도 7은 여기에서 설명된 적어도 일부 실시예에 따라 구성되는 하이퍼 격자 구조 내에서의 최적의 경로 결정 알고리즘의 예시적인 단계를 도시하는 흐름도이다.
도 8은 2개의 기저 큐보이드를 포함하는 큐보이드의 예시적인 하이퍼 격자를 도시한다.
도 9는 3개의 기저 큐보이드를 포함하는 큐보이드의 예시적인 하이퍼 격자를 도시한다.
도 10은 여기에서 제시된 적어도 일부 실시예를 수행하기 위한 소프트웨어 명령어를 생성하기 위해 배열된 예시적인 컴퓨팅 장치를 도시하는 블록도이다.
도 11은 여기에서 제시된 적어도 일부 실시예에 따라 배열된, 컴퓨팅 장치 상의 컴퓨터 프로세스를 실행하기 위한 컴퓨터 프로그램을 포함하는 예시적인 컴퓨터 프로그램 제품의 개략적인 부분도이다.
이하의 상세한 설명에서, 여기의 일부를 구성하는 첨부 도면에 대한 참조가 이루어진다. 도면에서, 유사한 부호는, 문맥에서 다른 지시가 없다면, 일반적으로 유사한 구성요소를 식별한다. 상세한 설명, 도면, 및 청구항에서 기술된 실시예들은 제한하는 것으로 의미되지 않는다. 여기에 제시된 대상의 범위와 사상을 벗어나지 않고, 다른 실시예가 이용될 수 있고, 다른 변형이 이루어질 수 있다. 여기에서 일반적으로 기술되고 도면에서 도시된 바와 같은 본 개시의 태양들이 다양한 다른 구성으로 배열, 대체, 조합 및 설계될 수 있음과, 이 모두가 여기에서 명확히 고려되고 본 개시의 일부가 됨이 쉽게 이해될 것이다.
여기에서는 데이터 웨어하우징 및 온라인 분석 처리(OLAP)를 수행하기 위한 알고리즘 및 대응하는 시스템의 예시가 개시된다. 많은 예시 및 실시예가 설명되고, 이하의 설명 및 도면으로부터 분명하게 될 것이다.
도 1은 예시적인 데이터 웨어하우징 구성(100)을 도시하는 블록도이다. 구성(100)에서, 분석자(analyst)는 클라이언트 시스템(102)을 운용할 수 있으며 OLAP 쿼리들을 네트워크(104)를 통하여 OLAP 서버(106)로 발행할 수 있다. 클라이언트 시스템(102)은, 예컨대, 네트워크(104)에 결합된 임의의 컴퓨팅 장치(예컨대, 개인용 컴퓨터)일 수 있다. 네트워크(104)는 기업의 이더넷과 같은 근거리 통신망일 수 있거나, 인터넷과 같은 광역 통신망일 수 있다.
OLAP 서버(106) 및 데이터 웨어하우스(108)가 구성(100)에서 구분된 개체로서 도시되지만, 단일 개체(예컨대, 컴퓨터)를 구성할 수도 있다. OLAP 서버(106)는 웨어하우스(108)에 저장된 데이터를 처리하도록 설계된 소프트웨어 및 하드웨어를 포함할 수 있다. OLAP 서버는 또한 데이터 표현을 용이하게 하도록 설계된 소프트웨어, 메타데이터(metadata) 및 데이터 관계 테이블(data relationship table)을 포함하는 웨어하우스 데이터의 다양한 표현을 포함할 수 있다.
데이터 웨어하우스(108)는 데이터의 물리적인 저장소 및 데이터 간의 다양한 관계를 나타낸다. 웨어하우스(108)는 데이터 소스(110)에 의해 나타나는 조직의 전체 데이터 세트의 범주별(categorical) 서브세트(subset)를 저장할 수 있다. 예컨대, 데이터 소스(110)는 조직의 데이터 모두(예컨대, 종업원 데이터, 판매 데이터, 주주 데이터, 판매자 데이터 등)를 저장하는 하나 이상의 저장소를 포함할 수 있는 한편, 데이터 웨어하우스(108)는 단지 그 데이터의 일부 범주(예컨대, 판매 데이터)를 포함할 수 있다. 예컨대, 데이터 소스(110)는 또한 다른 데이터 웨어하우스들을 포함할 수 있다.
데이터 웨어하우스(108)와 같은 데이터 웨어하우스는 "사실"로 지칭되는 하나 이상의 중심 테마를 중심으로 정리된다. 사실은 보통 수치적인 측정 값(예컨대, 판매 수)이며, 하나 이상의 "차원"과 연관될 수 있다. 차원은 일반적으로 특정한 사실을 더 정의하는 다양한 범주 또는 클래스를 정의한다. 예컨대, 사실 중 한 유형은 총 매출일 수 있으며, 그 사실의 가능한 차원은 판매된 제품의 유형(예컨대, 장난감, 가정 용품), 기간(예컨대, 년, 월), 위치, 공급자 등을 포함할 수 있다.
사실 및 차원 데이터는 도 2에 의해 도시된 바와 같이 관계 데이터베이스 테이블을 이용하여 데이터 웨어하우스에 저장될 수 있다. 도 2는 예시적인 판매 사실 테이블(202) 및 대응하는 예시적인 제품(204), 시간(206), 위치(208) 및 공급자 차원 테이블(210)을 도시한다. 판매 사실 테이블(202)에서의 각 항목은 특정 판매 이벤트에 해당할 수 있으며, 그 세부 사항은 개별적인 차원 ID(즉, 제품 ID, 시간 ID, 위치 ID, 공급자 ID)에 의해 정의될 수 있다. 각각의 판매 이벤트는 또한 고유 판매 ID가 할당될 수 있으며 또한 다른 데이터(예컨대, 수익)와 연관될 수 있다.
예컨대, 판매 사실 테이블(202) 내 항목들은 특정한 제품과 연관될 수 있다. 제품 ID는 여러 가지 상이한 제품에 관한 정보(예컨대, 이름, 설명 등)를 포함할 수 있는 제품 차원 테이블(204)로의 링크(link)로서 역할한다. 판매 사실 테이블(202) 내 항목들은 또한 특정한 기간과 연관될 수 있다. 시간 ID는 여러 가지 상이한 기간에 관한 정보(예컨대, 년, 월, 일 등)를 포함할 수 있는 시간 차원 테이블(206)로의 링크로서 역할한다. 판매 사실 테이블(202) 내 항목들은 또한 특정한 위치와 연관될 수 있다. 위치 ID는 여러 가지 상이한 위치에 관한 정보(예컨대, 국가, 지역, 주, 도시 등)를 포함할 수 있는 위치 차원 테이블(208)로의 링크로서 역할한다. 판매 사실 테이블(202) 내 항목들은 또한 특정한 공급자와 연관될 수 있다. 공급자 ID는 여러 가지 상이한 공급자에 관한 정보(예컨대, 이름, 설명 등)를 포함할 수 있는 공급자 차원 테이블(210)로의 링크로서 역할한다.
사실 및 차원 테이블의 세트에 저장된 데이터(예컨대, 테이블(202-210)에 저장된 판매 데이터)는 이용 가능한 차원 중 하나 이상을 이용하여 시각적으로 표현될 수 있다. 'n'개의 차원을 이용하여 제시된 데이터는 n 차원의 "데이터 큐브" 또는 "큐보이드"로 지칭된다. 예컨대, 도 3a는 "유형" 차원에 걸쳐 요약된 판매 데이터를 이용하는 예시적인 1차원(1-D) 큐보이드(302)를 도시한다. "유형" 차원은 3개의 구분된 항목을 가지는 것으로 도시되며, 이를 위해 판매 사실을 "인형", "장난감 자동차" 및 "퍼즐"에 걸쳐 요약한다. 큐보이드(302)는 따라서 인형, 장난감 자동차 및 퍼즐에 대하여 각각 287, 276 및 299의 예시적인 판매 값을 포함하는 3개의 셀을 포함한다.
큐보이드의 크기는 얼마나 많은 셀이 큐보이드 내에 포함되는지에 따른다. 따라서, 사실 데이터를 포함하는 셀이 3개 있으므로 큐보이드(302)의 크기는 3이라 한다. 사실 데이터를 요약하는 유형이 3가지(즉, 인형, 장난감 자동차, 퍼즐) 있으므로, "유형" 차원의 크기는 또한 3이라 한다. 임의의 특정 차원의 크기는 대응하는 차원 테이블에서 고유 항목의 수를 계산함으로써 결정될 수 있다. 차원의 크기를 결정하는 다른 방법이 또한 가능하다.
모든 차원에 걸친 모든 판매의 합은 0차원(0-D) 큐보이드(도시되지 않음)로 지칭되고 단일 셀을 포함할 것이며, 도 3a의 예시에서는 862일 것이다.
도 3b는 "유형" 및 "시간" 차원에 걸쳐 요약된 판매 데이터를 이용하는 예시적인 2차원(2-D) 큐보이드(304)를 도시한다. 보통, 특정 차원은 그 차원과 연관된 사실을 표현하는 상이한 방법을 가질 수 있다. 본 예시에서, 시간 차원은 년, 월 또는 일을 이용하여 표현될 수 있으며, 도 3b는 년을 이용한 표현을 도시한다. 기타 2-D 큐보이드는 또한 기타 이용 가능한 차원 중 임의의 둘을 이용하여 조합하여 생성될 수 있다.
큐보이드(304)의 크기(즉, 큐보이드(304) 내 셀의 수)는 큐보이드(304)에 요약된 각각의 차원의 크기를 곱함으로서 결정될 수 있다. "유형" 차원의 크기는 3이며 "시간" 차원의 크기는 (사실 데이터를 요약하는 것이 3년이므로) 3이다. 따라서, 큐보이드(304)의 크기는 3x3 = 9이다.
도 4는 "유형", "시간" 및 "위치" 차원을 이용하는 시각적 또는 개념적인 3차원(3-D) 큐보이드(400)의 예시를 도시한다. 3-D 큐보이드는 병치된(juxtaposed) 2-D 큐보이드의 세트로 생각될 수 있다. 예컨대, 3-D 큐보이드(400)는 병치된 2-D 큐보이드(402, 404, 406 및 408)의 세트로 생각될 수 있다. 각각의 2-D 큐보이드(402-408)는 판매 사실을 3차원의 제한된 부분에 대하여 2차원에 걸쳐 도시한다. 따라서, 2-D 큐보이드들(402-408)의 세트는 함께 3차원을 완성하며 3-D 큐보이드(400)를 구성한다. 예컨대, 3D 큐보이드(400)의 전면은 2-D 큐보이드(406)에 해당하는 한편, 3-D 큐보이드(400)의 다음 "단(tier)"은 각각 2-D 큐보이드(408, 404 및 402)에 해당한다.
3-D 큐보이드(400)의 크기는 큐보이드(400)를 요약하는 각 차원의 크기를 곱함으로써 결정될 수 있다. 예컨대, "유형" 차원의 크기는 3이고, "시간" 차원의 크기는 3이며, "위치" 차원의 크기는 4이다. 따라서, 큐보이드(400)의 크기는 3x3x4 = 36이다.
도 5는 "유형," "시간," "위치" 및 "공급자" 차원을 이용하는 시각적 또는 개념적인 4차원(4-D) 큐보이드(500)의 예시를 도시한다. 4-D 큐보이드는 병치된 3-D 큐보이드의 세트로 생각될 수 있다. 예컨대, 도 5에서 도시된 바와 같이, 4-D 큐보이드(500)는 "공급자 3" 큐보이드와 병치된 "공급자 2" 큐보이드와 병치된 "공급자 1" 큐보이드로 구성될 수 있다.
차원들의 세트가 주어지면, 차원들의 각각의 가능한 조합을 나타내는 큐보이드들이 생성될 수 있다. 큐보이드들이 요구됨에 따라 그 큐보이드들의 생성을 용이하게 하기 위하여, 가능한 차원 패턴의 표현이 데이터 웨어하우스에 저장된다. 큐보이드 차원 패턴의 그러한 표현은 큐보이드의 격자, 또는 간단히 격자로 지칭된다. 도 6은 문자 A, B, C, 및 D로 표현되는 4차원에 해당하는 예시적인 격자(600)를 도시한다. 이러한 차원들은, 예컨대, 도 2에서 설명된 차원들에 해당할 수 있거나 다른 차원들에 해당할 수 있다. 요약의 가장 낮은 레벨을 유지하는 큐보이드는 격자의 기저, 또는 간단히 기저 큐보이드로 지칭된다. 격자(600)의 기저 큐보이드는 차원 패턴 <A, B, C, D>로 표현되며, 레벨 0에 놓인다. 격자(600)를 올라가면서, 중간 큐보이드들은 레벨 1, 2 및 3에 놓이며 요약의 다양한 레벨을 나타낸다. 예컨대, 레벨 2 큐보이드 <A, B>는 큐보이드(304)를 나타낼 수 있으며, 레벨 1 큐보이드 <A, B, C>는 큐보이드(400)를 나타낼 수 있다. 정상(apex)의 큐보이드는 <ALL>로 표시되며, 격자(600)에서, 레벨 4에 놓인다. 정상의 큐보이드는 모든 차원에 걸친 요약을 나타낸다.
격자는 또한 하위 레벨의 큐보이드로부터 상위 레벨의 큐보이드로의 요약을 위한 경로를 정의하는 로드맵(roadmap)으로서 역할할 수 있다. 그러한 요약은 롤업 연산(roll-up operation)으로 지칭된다. 또한, 격자는 상위 레벨의 큐보이드로부터 하위 레벨의 큐보이드로의 요약을 위한 경로를 정의하는 로드맵으로서 역할할 수 있다. 그러한 요약은 드릴다운 연산(drill-down operation)으로 지칭된다.
격자(600)에서, 화살표들이 하위 레벨의 큐보이드를 상위 레벨의 큐보이드로 요약하기 위한 경로를 도시한다. 예컨대, 레벨 2에서, 큐보이드 <A, C>는 기저 큐보이드로부터 레벨 1 큐보이드 <A, B, C> 또는 레벨 1 큐보이드 <A, C, D> 중 하나를 통하여 요약될 수 있다. 이러한 상이한 경로들은 중간 큐보이드들의 크기에 따라 계산의 양 및 저장 공간의 양이 변동하는 것에 관련한다. 예컨대, 더 큰 중간 큐보이드를 가지는 경로 상에 놓인 상위 레벨의 큐보이드는 더 작은 중간 큐보이드를 가지는 경로 상에 놓인 동일한 상위 레벨의 큐보이드보다 높은 계산 비용을 가질 수 있다. 보다 높은 계산 비용은 중간 큐보이드를 생성하기 위해 요구되는 시간 또는 처리 전력과 연관될 수 있다.
하위 레벨의 큐보이드와 상위 레벨의 큐보이드 (또는 그 반대) 사이에서의 상이한 요약 경로의 계산을 용이하게 하고 어떠한 경로가 낮은 처리 비용을 가지는지에 대한 결정을 용이하게 하기 위하여, OLAP 서버에 대응하는 데이터 웨어하우스 또는 일부 다른 개체는 고유의 정수 값을 격자의 각 차원과 연관시킬 수 있다. 정수 값은 태그 번호(tag number)로 지칭된다. 격자(600)의 차원들에 대한 (0으로 시작하고 각 차원마다 1씩 증가하는) 태그 번호의 예시가 예시적인 태그 번호 테이블(Tag Number Table(TNT))인 표 1에 도시된다.
표 1
차원 이름 태그 번호
A 0
B 1
C 2
D 3
격자의 차원 태그 번호는 그 격자의 개별 큐보이드에 대한 태그 값을 연산하는 데 이용될 수 있다. 격자 내 특정 큐보이드에 대한 태그 값을 계산하는 한 방법은 특정 큐보이드의 각 차원에 대한 태그 번호로 2의 지수를 취하여, 그 결과를 합하는 것이다. 예컨대, 격자(600) 내 큐보이드 <A, B, D>의 태그 값을 계산하기 위하여, 먼저, 그 큐보이드의 차원의 태그 번호가 결정된다. 표 1에 따르면, 차원 A, B 및 D의 태그 번호는 각각 0, 1 및 3이다. 따라서, 큐보이드 <A, B, D>에 대한 태그 값은 20+21+23=11로 계산될 수 있다. 마찬가지로, 큐보이드 <C, D>에 대한 태그 값은 22+23=12로 계산될 수 있다. 태그 값은 격자에서 큐보이드를 고유하게 식별하는 방법으로서, 그리고 어떤 차원들이 특정 큐보이드에 요약되는지 결정하는 방법으로서 역할할 수 있다.
OLAP 연산 중에, 상위 레벨의 큐보이드가 특정한 하위 레벨의 큐보이드로부터 생성되도록 요구되는 상황이 일어날 수 있다. 예컨대, 클라이언트 시스템(102)에서의 사용자는 데이터 웨어하우스(108)의 격자 내 특정 큐보이드를 보기 원할 수 있다. 특정 큐보이드는 (격자에서 그 표현을 제외한) 임의의 형태로 현재 존재하지 않을 수 있으며 따라서 특정 큐보이드는 하위 레벨의 큐보이드, 예를 들어, 기저 큐보이드로부터 생성되도록 요구될 것이다.
상술한 바와 같이, 격자에서, 상위 레벨의 큐보이드를 하위 레벨의 큐보이드로 연결하는 둘 이상의 경로가 존재할 수 있다. 이는 둘 이상의 경로 중 임의의 하나를 통하여 하위 레벨의 큐보이드로부터 상위 레벨의 큐보이드(또는 그 반대)를 생성하는 가능성을 나타낸다. 그러나, 이러한 가능한 경로 중에서, 예컨대 경로에 따른 중간 큐보이드의 크기에 따라, 일부는 다른 것들보다 (예컨대, 계산의 측면에서) 이용하기에 더 유리할 수 있다. 일반적으로, 큐보이드를 생성하기 위하여 개체(예컨대, OLAP 서버(106))에 요구되는 시간, 메모리 및/또는 처리 전력의 양은 그 큐보이드의 크기에 직접적으로 비례한다. 따라서, 상위 레벨의 큐보이드를 하위 레벨의 큐보이드로부터 (또는 그 반대로) 생성하는 경우, 하나 이상의 특히 큰 큐보이드를 포함하는 경로를 이용하는 것을 피하는 것이 바람직할 수 있다. 또한, 가장 작은 합계 큐보이드 크기를 가지는 경로를 이용하는 것이 바람직할 수 있다. 임의의 경우에, OLAP 서버 혹은 다른 개체는 경로 결정 알고리즘을 실행하여 격자 내 두 개의 큐보이드 사이에서 적절한 경로를 결정할 수 있다.
도 7은 소스 큐보이드 및 목적 큐보이드 사이에서 최적의 경로를 결정하기 위한 예시적인 알고리즘(700)을 도시하는 흐름도이다. 예시적인 알고리즘(700)은 블록(702, 704, 706, 708, 710, 712, 714, 716 및/또는 718) 중 하나 이상에 의해 도시되는 하나 이상의 동작, 기능 또는 작용을 포함할 수 있다. 흐름도가 본 실시예의 하나의 가능한 구현예의 기능 및 동작을 도시한다는 것을 이해하여야 한다. 이 때문에, 각 블록은 프로세스에서 특정 논리적인 기능 또는 단계를 구현하기 위하여 프로세서에 의해 실행 가능한 하나 이상의 명령어를 포함하는 모듈, 세그먼트 또는 프로그램 코드의 일부를 나타낼 수 있다. 프로그램 코드는 예컨대, 디스크 또는 하드 드라이브를 포함하는 저장 장치와 같은 임의의 유형의 컴퓨터 판독 가능 매체(예컨대, 컴퓨터 판독 가능 저장 매체 또는 비일시적인(non-transitory) 매체)에 저장될 수 있다. 또한, 각각의 블록은 프로세스에서 특정한 논리적 기능을 수행하도록 배선되는 회로를 나타낼 수 있다. 본 기술분야의 통상의 기술자에 의해 이해될 바와 같이, 대안적인 구현예가 본 출원의 예시적인 실시예의 범위 내에 포함되며, 수반되는 기능에 따라, 기능들은 도시되거나 논의된 순서를 벗어나 실행될 수 있으며, 이는 실질적으로 동시에 또는 반대 순서로 실행되는 것을 포함한다.
알고리즘(700)에 대한 프로세싱은 블록(702)에서 시작하여 목적 큐보이드와 소스 큐보이드의 표시(indication)를 수신할 수 있다. 예컨대, 클라이언트 시스템(102)에서의 사용자는 격자(600)의 목적 큐보이드 <B, C>의 표시를 네트워크(104)를 통하여 OLAP 서버(106)에 제공할 수 있다. 표시는 목적 큐보이드의 태그 값(즉, 6), 목적 큐보이드의 차원의 목록(즉, "B, C")의 형태 혹은 전체적으로 일부 다른 형태를 가질 수 있다. 사용자는, 예컨대 격자(600) 내 큐보이드 <A, B, C, D>일 수 있는, 소스 큐보이드의 표시를 또한 제공할 수 있다.
알고리즘은 블록(704)에서 계속해서 소스 큐보이드의 스플릿 태그 값(split tagged-value)을 결정하고 소스 어레이(Source Array)에 저장하며, 목적 큐보이드의 스플릿 태그 값을 결정하고 목적 어레이(Destination Array)에 저장한다. 큐보이드의 스플릿 태그 값은 그 큐보이드의 요약된 차원들의 태그 값들의 어레이를 지칭한다. 예컨대, 격자(600)의 소스 큐보이드 <A, B, C, D>는 차원 A, B, C 및 D 상에 요약된다. 따라서, 그 큐보이드의 스플릿 태그 값은 표 1에서 나타난 4개의 차원의 태그 번호에 따라 {20, 21, 22, 23} 또는 {1, 2, 4, 8}로 표현될 수 있다. 마찬가지로, 격자(600)의 목적 큐보이드 <B, C>는 차원 B 및 C 상에 요약된다. 따라서, 그 큐보이드의 스플릿 태그 값은 {21, 22} 또는 {2, 4}로 표현될 수 있다. 스플릿 태그 값 {1, 2, 4, 8}은 소스 어레이로서 저장되는 한편, 스플릿 태그 값 {2, 4}는 목표 어레이로서 저장될 수 있다.
블록(706)에서, 목적 어레이의 모든 스플릿 태그 값이 소스 어레이에 존재하는지에 대한 결정이 이루어진다. 이는 소스 큐보이드를 목적 큐보이드로 연결하는 대응하는 격자에 경로가 존재하는지에 대한 표시로서 역할한다. 경로가 없다면(즉, 스플릿 태그 값이 목적 어레이에 존재하지만 소스 어레이에 존재하지 않음), 알고리즘은 종료한다. 목적 어레이의 모든 스플릿 태그 값이 소스 어레이에 있으면, 알고리즘은 블록(708)에서 계속해서 경로 어레이(Path Array)에 소스 큐보이드의 태그 값을 저장한다.
알고리즘이 진행함에 따라, 경로 어레이는 중간 큐보이드의 태그 값으로 갱신되어 소스 큐보이드 및 목적 큐보이드 사이의 최적의 경로를 생성한다. 예컨대, 현재 소스 큐보이드가 격자(600)의 큐보이드 <A, B, C, D> 이면, 값 "15"가 경로 어레이에 더해진다.
알고리즘은 블록(710)에서 계속해서 소스 큐보이드로부터 생성될 수 있는 중간 상위 레벨 차원 패턴을 결정한다. 중간 큐보이드로도 지칭되는 이러한 상위 레벨 차원 패턴은 데이터 웨어하우스(108) 내 적절한 격자를 참고함으로써 결정될 수 있다. 예컨대, 현재 소스 큐보이드가 큐보이드 <A, B, C, D>이면, <A, B, C, D>로부터 생성될 수 있는 중간 상위 레벨 큐보이드는 <A, B, C>, <A, B, D>, <A, C, D> 및 <B, C, D>일 것이다.
블록(710)은 블록(712)으로 이어지며, 여기서 이전 블록에서 결정된 중간 상위 레벨 차원 패턴 중에서, 목적 어레이 내 스플릿 태그 값과 매칭하는 스플릿 태그 값을 가지는 서브세트가 결정된다. 이러한 서브세트에서의 각 큐보이드는 목적 큐보이드에 도달하기 위해 생성될 수 있는 가능한 중간 큐보이드를 나타낸다. 목적 큐보이드에 도달하기 위하여 생성할 중간 큐보이드가 무엇인지에 대한 선택이 있으면, 예컨대, 처리 시간 및 전력을 절약하도록 가능한 큐보이드 중 가장 작은 것을 생성하는 것이 유리할 것이다.
표 2는 격자(600) 내 소스 큐보이드 <A, B, C, D>로부터 생성될 수 있는 가능한 중간 큐보이드 및 그 큐보이드의 대응하는 스플릿 태그 값을 예시한다. 상술한 바와 같이, 격자(600) 내 목적 큐보이드는 {2, 4}의 스플릿 태그 값을 가지는 큐보이드 <B, C>일 수 있다. 따라서, 표 2에서의 스플릿 태그 값의 목록에 기초하여, 스플릿 태그 값 {2, 4}이 <A, B, C> 및 <B, C, D>의 각 스플릿 태그 값에 존재하므로, 큐보이드 <A, B, C> 및 <B, C, D>가 목적 큐보이드 <B, C>에 도달하기 위하여 생성될 수 있는 중간 큐보이드의 서브세트를 나타낸다.
표 2
큐보이드 스플릿 태그 값
<A, B, C> {1, 2, 4}
<A, B, D> {1, 2, 8}
<A, C, D> {1, 4, 8}
<B, C, D> {2, 4, 8}
블록(712)은 블록(714)으로 이어지며, 결정된 서브세트가 하나 초과의 차원 패턴을 포함하면, 서브세트 내 각 차원 패턴의 크기가 계산되며, 최소의 크기를 가지는 차원 패턴이 새로운 소스 큐보이드로서 설정된다. 서브세트에 하나의 큐보이드만 있으면, 그 큐보이드는 새로운 소스 큐보이드로서 설정된다. 상술한 바와 같이, 큐보이드의 크기는 특정 큐보이드에 요약된 개별 차원들의 크기를 함께 곱함으로써 결정될 수 있다. 예컨대, 차원 A, B, C 및 D의 크기가 각각 15, 6, 6 및 10이면, 큐보이드 <A, B, C>의 크기는 15x6x6 = 540으로 계산되는 한편, 큐보이드 <B, C, D>의 크기는 6x6x10 = 360으로 계산된다. 따라서, 큐보이드 <B, C, D>는 목적 큐보이드에 도달하기 위해 생성될 수 있는 큐보이드의 서브세트 중 최소의 큐보이드를 나타낸다. 이러한 큐보이드를 생성하는 것은 <A, B, C> 큐보이드를 생성하는 것과 비교하여 처리 시간 및 전력을 잠재적으로 절약할 것이다.
블록(714)은 블록(716)으로 이어지며, 여기서 중간 큐보이드의 태그 값이 경로 어레이에 더해진다. 예컨대, 큐보이드 <B, C, D>의 태그 값이 현재의 경로 어레이에 더해져, {15, 14}의 경로 어레이가 된다.
알고리즘은 블록(718)에서 계속해서 새로운 소스 큐보이드의 이러한 태그 값이 목적 어레이 내 태그 값과 동일한지를 결정한다. 동일하다면, 경로 어레이는 소스 큐보이드로부터 목적 큐보이드로의 최적의 경로를 포함하는 큐보이드의 태그 값들을 포함하며, 알고리즘은 종료한다. 새로운 소스 큐보이드의 태그 값이 목적 큐보이드의 태그 값과 동일하지 않으면, 알고리즘은 블록(710)으로 돌아가며, 여기서 새로운 소스 큐보이드로부터 생성될 수 있는 각각의 상위 레벨 차원 패턴이 결정된다. 본 예시에서, 큐보이드 <B, C, D>는 소스 및 목적 큐보이드 간의 최적의 경로의 중간 큐보이드로 설정된다. 상술한 예시에서, 큐보이드 <B, C, D>의 태그 값(즉, 14)이 목적 큐보이드 <B, C>의 태그 값(즉, 6)과 동일하지 않으므로, 알고리즘은 블록(710)으로 돌아가 블록(712, 714, 716 및 718)을 계속한다.
알고리즘이 종료하면, 특정 격자에서 소스 큐보이드로부터 목적 큐보이드를 생성하기 위한 최적의 경로가 경로 어레이에 표현될 것이다. 경로 어레이는 표 3과 같은 룩업 테이블(lookup table)에 저장될 수 있으며, 이는 소스 큐보이드의 태그 값, 목적 큐보이드의 태그 값 및 경로 결정 알고리즘(700)에 의해 결정된 최적의 경로를 나열한다. 격자 내 특정 큐보이드가 소스 큐보이드로부터 생성되도록 요구되면 룩업 테이블이 참고될 수 있다. 최적의 경로가 이미 얻어졌고 룩업 테이블에 나열된 경우, 경로 결정 알고리즘을 다시 실행할 필요가 없을 수 있다.
표 3
소스 큐보이드
태그 값
목적 큐보이드
태그 값
최적의 경로
{15} {6} {15, 14, 6}
사실 데이터가 격자 내 차원들의 임의의 조합에 걸쳐 요약될 수 있는 격자가 존재할 것이다. 예컨대, 격자(600)에서, 사실 데이터가 차원 A, B, C 및 D의 임의의 조합(예컨대, <A, B>, <A, C, D>, <D> 등) 상에 요약될 수 있다. 그러한 격자는 표 4와 같은 기저 큐보이드 테이블(Base Cuboid Table(BCT))에서 보여질 수 있는 단일의 기저 큐보이드를 가진다.
표 4
기저 큐보이드 패턴 태그 값 레벨
<A, B, C, D> {15} 0
도 8은 하이퍼 격자로 지칭되는 두 개의 기저 큐보이드를 가지는 개념적인 큐보이드 데이터 구조의 예시를 도시한다. "하이퍼 격자"라는 용어는 일반적으로 n개(n = 1 내지 무한임)의 기저 큐보이드를 가지는 데이터 구조를 설명하는 데 이용될 수 있다. 따라서, "격자"라는 용어는 n=1인 하이퍼 격자의 특정 유형을 설명하는데 이용된다.
하이퍼 격자(800)는 두 개의 격자를 포함하며, 하나는 기저 큐보이드 <A, B, E>를 가지며 다른 하나는 기저 큐보이드 <A, B, C, D>를 가진다. 하이퍼 격자(800)에 의하여 표현되는 사실 데이터는 하이퍼 격자 내 차원들의 모든 조합에 걸쳐 요약될 수 없다는 점에서, 하이퍼 격자(800)는 도 6에서의 격자(600)와 상이하다. 예컨대, 하이퍼 격자(800)는 새로운 차원 E의 추가를 도시하고, 여기서 차원 E에 대한 사실 데이터는 다른 차원, 즉 B 및 E의 제한된 서브세트만에 대하여 존재할 수 있다. 기저 큐보이드 <A, B, E> 및 6개의 중간 차원 패턴 <B, E>, <A, E>, <A, B>, <E>, <A> 및 <B>을 가지는 새로운 격자를 생성하고 저장하는 대신, 새로운 차원 패턴은 격자(600)의 기존의 차원 패턴과 융합되어 하이퍼 격자(800)를 형성할 수 있다. 이는 격자(600) 내에서 데이터 웨어하우스에 이미 존재하는 차원 패턴(즉, 차원 패턴 <A>, <B> 및 <A, B>)의 표시를 생성하고 저장해야 할 필요가 없음으로 인하여 데이터 웨어하우스 내 저장 공간 절약을 실현한다. 새로운 기저 큐보이드 <A, B, E> 및 새로운 차원 패턴 <B, E> 및 <A, E>는 격자(600)의 기존 차원 패턴을 가리키고 참조하여, 하이퍼 격자를 완성할 수 있다.
기저 큐보이드로부터 생성될 수 있는 차원 패턴은 그 기저 큐보이드에 대응한다고 한다. 따라서, 하이퍼 격자에서, 차원 패턴은 그 하이퍼 격자의 기저 큐보이드 중 하나, 일부 또는 전부에 대응할 수 있다. 예컨대, 하이퍼 격자(800)에서, 차원 패턴 <B, E>은 기저 큐보이드 <A, B, E>에 대응하는 한편, 차원 패턴 <A, B>는 기저 큐보이드 <A, B, E> 및 기저 큐보이드 <A, B, C, D> 둘 다에 대응한다.
예를 들어, 분석자는 특정 큐보이드, 즉 "유형" 차원 및 "시간" 차원 상에 요약된 사실 데이터를 도시하는 도 3b의 큐보이드(304)로 작업하고 있을 수 있다. 큐보이드(304)는 격자 내 특정 차원 패턴(예컨대, 레벨 2의 차원 패턴 <A, B>)에 의하여 하이퍼 격자(예컨대, 격자(600))로 표현될 수 있다. 분석자는 다른 차원들(예컨대, "유형" 및 "판매원")에 걸쳐 요약되는 사실 데이터를 보기 원할 수 있다. 그러한 큐보이드에 대한 요청에 응답하여, OLAP 서버는 데이터 웨어하우스 내 기존 격자를 조회(query)할 수 있으며 "판매원" 차원 데이터가 없음을 결정할 수 있다. OLAP 서버는 그에 따라 그러한 데이터가 존재하는지 결정하기 위하여 다른 데이터 웨어하우스를 조회할 수 있다. 그렇다면, OLAP 서버 및 대응하는 데이터 웨어하우스는 데이터를 검색하고 기존의 하이퍼 격자(예컨대, 격자(600))에 새로운 기저 큐보이드를 삽입하여 추가의 기저 큐보이드를 가지는 하이퍼 격자(예컨대, 두 개의 기저 큐보이드를 가지는 하이퍼 격자(800))를 형성할 수 있다. 새로운 기저 큐보이드는 삽입 지점의 기존의 차원 패턴의 1 레벨 아래에 삽입된다. 따라서, 삽입 지점이 레벨 2 차원 패턴 <A, B>이면, 새로운 기저 큐보이드 <A, B, E>가 하이퍼 격자의 레벨 1에 삽입될 것이다. (도 8에서 굵은 글씨체로 표시된) 차원 패턴 <B, E>, <A, E> 및 <E>가 형성될 수 있으며 새로운 기저 큐보이드 <A, B, E>와 적절히 링크될 수 있다. 새로운 기저 큐보이드 및 상위 레벨 차원 패턴은 또한 기존의 차원 패턴 <A, B>, <A> 및 <B>로 링크될 수 있다.
OLAP 서버는 또한 새로운 차원(즉, E)을 기존의 태그 번호 테이블에 더하고 새로운 차원에 표 5에서 도시되는 바와 같이 고유의 태그 번호를 할당할 수 있다.
표 5
차원 이름 태그 번호
A 0
B 1
C 2
D 3
E 4
표 6은 하이퍼 격자(800)에서 새로운 기저 큐보이드 <A, B, E>를 형성하는 것에 응답하여 갱신될 수 있는 기저 큐보이드 테이블을 예시한다. 기저 큐보이드 <A, B, E>의 태그 값은 또한 20+21+24=19로 계산되고 기저 큐보이드 테이블에 저장될 수 있다. 차원 E가 하이퍼 격자에서 상이한 위치에 다시 더해져 새로운 기저 큐보이드를 형성하면, 기저 큐보이드 테이블은 이에 따라 갱신되는 반면, 태그 번호 테이블은 갱신되지 않는다.
표 6
기저 큐보이드 패턴 태그 값 레벨
<A, B, C, D> {15} 0
<A, B, E> {19} 1
도 8은 두 개의 기저 큐보이드를 가지는 하이퍼 격자를 도시하지만, 하이퍼 격자에 있어서 임의의 수의 기저 큐보이드가 가능하다. 도 9는 3개의 기저 큐보이드 <A, B, C, D>, <A, B, E> 및 <C, F>를 가지는 예시적인 하이퍼 격자(900)를 도시한다. 하이퍼 격자(900)에서 차원 패턴 각각은 흐름도(700)를 참조하여 설명된 알고리즘과 같은, 최적의 경로 결정 알고리즘에서 소스 큐보이드 또는 목적 큐보이드로 이용될 수 있다.
예컨대, 큐보이드 <B>는 요구되는 목적 큐보이드일 수 있는 한편, 기저 큐보이드 <A, B, E>는 요구되는 소스 큐보이드일 수 있다. 상술한 바와 같이, 상위 레벨의 큐보이드를 하위 레벨의 큐보이드로부터 생성하는 것은 롤업 연산으로 지칭될 수 있다. 두 큐보이드들 간의 최적의 경로를 결정하기 위하여, 먼저 기저 큐보이드 <A, B, E>로부터 생성될 수 있는 큐보이드는 <B, E>, <A, E> 및 <A, B>로 결정된다. 이러한 3개의 결정된 큐보이드들 중, 목적 큐보이드를 생성하는데 이용될 수 있는 큐보이드는 <B, E> 및 <A, B>로 결정된다. 이러한 두 개의 결정된 큐보이드들 중 최소의 크기를 가지는 것이 결정된다. 예컨대, 큐보이드 <A, B>가 큐보이드 <B, E>보다 작은 크기를 가지면, 큐보이드 <A, B, E> 및 <B> 사이에서의 최적의 경로는 큐보이드 <A, B>를 포함한다. 이러한 경로는 태그 값의 어레이(즉, {19, 3, 2})로서 표현될 수 있다.
다른 예시로서, 큐보이드 <A>가 요구되는 소스 큐보이드일 수 있는 한편, 큐보이드 <A, B, E>가 요구되는 목적 큐보이드일 수 있다. 상술한 바와 같이, 하위 레벨의 큐보이드를 상위 레벨의 큐보이드로부터 생성하는 것은 드릴다운 연산으로 지칭될 수 있다. 두 큐보이드들 간의 최적의 경로를 결정하기 위하여, 먼저, 큐보이드 <A>로부터 드릴다운될 수 있는 큐보이드가 <A, E>, <A, B>, <A, C>, 및 <A, D>로 결정된다. 이러한 4개의 결정된 큐보이드들 중, 목적 큐보이드를 향하여 드릴다운하는데 이용될 수 있는 큐보이드는 <A, B> 및 <A, E>로 결정된다. 이러한 두 개의 결정된 큐보이드 중, 가장 작은 크기를 가지는 것이 결정된다. 예컨대, 큐보이드 <A, E>가 큐보이드 <A, B>보다 작은 크기를 가지면, 큐보이드 <A> 및 <A, B, E> 간의 최적의 경로는 큐보이드 <A, E>를 포함한다. 이러한 경로는 태그 값의 어레이(즉, {1, 17, 19})로 표현될 수 있다.
도 10은 개체(102, 104, 106, 108 및/또는 110) 중 임의의 것과 결합하거나, 임의의 것에 집적되거나, 임의의 것에 의해 실시될 수 있는 예시적인 컴퓨팅 장치(1000)를 나타낸 블록도이다. 매우 기본적인 구성(1001)에서, 컴퓨팅 장치(1000)는 일반적으로 하나 이상의 프로세서(1010) 및 시스템 메모리(1020)를 포함한다. 프로세서(1010) 및 시스템 메모리(1020) 사이의 통신을 위하여 메모리 버스(1030)가 사용될 수 있다.
요구되는 구성에 따라, 프로세서(1010)는 마이크로 프로세서(μP), 마이크로 컨트롤러(μC), 디지털 신호 프로세서(DSP), 또는 그들의 임의의 조합을 포함하는 임의의 유형의 것일 수 있으나, 이에 제한되지는 않는다. 프로세서(1010)는 레벨 1 캐시(1011), 레벨 2 캐시(1012)와 같은 하나 이상의 레벨(level)의 캐시(cache), 프로세서 코어(1013), 및 레지스터(1014)를 포함할 수 있다. 프로세서 코어(1013)는 산술 논리 연산장치(arithmetic logic unit; ALU), 부동 소수점 장치(floating point unit; FPU), 디지털 신호 처리 코어(DSP Core), 또는 그들의 임의의 조합을 포함할 수 있다. 메모리 컨트롤러(1015)는 또한 프로세서(1010)와 함께 사용될 수 있고, 또는 일부 구현예에서 메모리 컨트롤러(1015)는 프로세서(1010)의 내적인 일부일 수 있다.
요구되는 구성에 따라, 시스템 메모리(1020)는 (RAM과 같은) 휘발성 메모리, (ROM, 플래시 메모리 등과 같은) 비휘발성 메모리, 또는 그들의 임의의 조합을 포함하는 임의의 유형일 수 있으나, 이에 제한되지는 않는다. 시스템 메모리(1020)는 보통 운영 체제(1021), 하나 이상의 어플리케이션(application)(1022), 및 프로그램 데이터(1024)를 포함한다. 시스템 메모리(1020)는 도 11에 대하여 일반적으로 설명될 바와 같은 하나 이상의 컴퓨터 프로그램 제품을 저장할 수 있다.
컴퓨팅 장치(1000)는 기본적인 구성(1001) 및 기타 개체들 사이에서 통신을 용이하게 하도록 추가적인 특징 또는 기능, 및 추가적인 인터페이스를 가질 수 있다. 예를 들어, 버스/인터페이스 컨트롤러(1040)가 저장 인터페이스 버스(1041)를 통한 기본적인 구성(1001) 및 하나 이상의 데이터 저장 장치(1050) 사이의 통신을 용이하게 하도록 사용될 수 있다. 데이터 저장 장치(1050)는 이동식 저장 장치(1051), 고정식 저장 장치(1052), 또는 그 조합일 수 있다. 이동식 저장 장치 및 고정식 저장 장치의 예를 몇 가지 들자면, 플렉서블 디스크 드라이브(flexible disk drive) 및 하드 디스크 드라이브(HDD)와 같은 자기 디스크 장치, 컴팩트 디스크(CD) 드라이브 또는 디지털 다목적 디스크(DVD) 드라이브와 같은 광 디스크 드라이브, 고체 상태 드라이브(SSD), 및 테이프 드라이브 등을 포함한다. 예시적인 컴퓨터 저장 매체는 컴퓨터 판독가능 명령, 데이터 구조, 프로그램 모듈(program module), 또는 기타 데이터와 같은 정보의 저장을 위한 임의의 방법 또는 기술로 구현되는 휘발성 및 비휘발성의 이동식 및 고정식 매체를 포함할 수 있다. 여기에서 설명된 적어도 일부 실시예에 따르면, 데이터 저장 장치(1050)는 데이터 웨어하우스(108)에 저장되는 데이터를 위한 저장소로 역할할 수 있다. 추가적으로 또는 대안적으로, 데이터 저장 장치(1050)는 데이터 격자(예컨대, 격자(600) 또는 하이퍼 격자(800))의 표현을 저장할 수 있다.
시스템 메모리(1020), 이동식 저장 장치(1051) 및 고정식 저장 장치(1052)는 모두 컴퓨터 저장 매체의 예이다. 컴퓨터 저장 매체는 RAM, ROM, EEPROM, 플래시 메모리 또는 기타 메모리 기술, CD-ROM, 디지털 다목적 디스크(DVD) 또는 기타 광 저장 장치, 자기 카세트, 자기 테이프, 자기 디스크 저장 장치 또는 기타 자기 저장 장치, 또는 요구되는 정보를 저장하도록 사용될 수 있고 컴퓨팅 장치(1000)에 의해 접근될 수 있는 임의의 기타 매체를 포함하나, 이에 제한되지는 않는다. 임의의 그러한 컴퓨터 저장 매체는 컴퓨팅 장치(1000)의 일부일 수 있다.
컴퓨팅 장치(1000)는 또한 버스/인터페이스 컨트롤러(1040)를 통한 다양한 인터페이스 장치(예컨대, 출력 인터페이스, 주변 인터페이스, 통신 인터페이스 및/또는 안테나, 루시페린 방송 메커니즘, 스니퍼 등과 같은 로봇과 직접적으로 연관된 인터페이스)로부터 기본적인 구성(1001)으로의 통신을 용이하게 하기 위한 인터페이스 버스(1042)를 포함할 수 있다. 예시적인 출력 인터페이스(1060)는 그래픽 처리 유닛(1061) 및 오디오 처리 유닛(1062)을 포함하며, 이는 하나 이상의 A/V 포트(1063)를 통하여 디스플레이 또는 스피커와 같은 다양한 외부 장치로 통신하도록 구성될 수 있다. 예시적인 주변 인터페이스(1070)는 직렬 인터페이스 컨트롤러(1071) 또는 병렬 인터페이스 컨트롤러(1072)를 포함하며, 이는 하나 이상의 I/O 포트(1073)를 통하여 입력 장치(예컨대, 키보드, 마우스, 펜, 음성 입력 장치, 터치 입력 장치 등) 또는 기타 주변 장치(예컨대, 프린터, 스캐너 등)와 같은 외부 장치와 통신하도록 구성될 수 있다.
예시적인 통신 인터페이스(1080)는 네트워크 컨트롤러(1081)를 포함하며, 이는 하나 이상의 통신 포트(1082)를 통하여 네트워크 통신에 걸쳐 하나 이상의 다른 컴퓨팅 장치(1090)와의 통신을 용이하게 하도록 배열될 수 있다. 통신 연결은 통신 매체의 하나의 예시이다. 통신 매체는 일반적으로 컴퓨터 판독가능 명령, 데이터 구조, 프로그램 모듈, 또는 반송파 또는 기타 수송 메커니즘(transport mechanism)과 같은, 변조된 데이터 신호에서의 기타 데이터에 의해 구현될 수 있고 임의의 정보 전달 매체를 포함한다. "변조된 데이터 신호"는 신호 내에 정보를 인코딩하는 방식으로 설정되거나 변경된 하나 이상의 특성을 갖는 신호일 수 있다. 예를 들어, 통신 매체는 유선 네트워크 또는 직접 유선 연결(direct-wired connection)과 같은 유선 매체, 및 음향, 라디오 주파수(RF), 적외선(IR) 및 기타 무선 매체와 같은 무선 매체를 포함할 수 있으나, 이에 제한되지 않는다. 여기에서 사용된 컴퓨터 판독 가능 매체라는 용어는 저장 매체를 포함할 수 있으며, 컴퓨터 통신은 통신 매체를 포함할 수 있다.
컴퓨팅 장치(1000)는 휴대 전화기, 개인 휴대용 단말기(personal data assistant; PDA), 개인 미디어 재생 장치, 무선 웹워치 장치(wireless web-watch device), 개인 헤드셋 장치, 특정 용도 장치, 또는 상기 기능 중 임의의 것을 포함하는 융합 장치와 같은 소형 폼팩터 휴대용(모바일) 전자 장치의 일부로 구현될 수 있다. 컴퓨팅 장치(1000)는 또한 랩탑 컴퓨터와 랩탑이 아닌 컴퓨터 구성 둘 다를 포함하는 개인용 컴퓨터로 구현될 수 있다.
도 11은 여기에 제시된 적어도 일부 실시예에 따라 배열된 컴퓨팅 장치 상에서 컴퓨터 프로세스를 실행하기 위한 컴퓨터 프로그램을 포함하는 예시적인 컴퓨터 프로그램 제품(1100)의 개념적인 부분도이다. 예시적인 컴퓨터 프로그램 제품(1100)의 예시적인 실시예는 신호 베어링 매체(1102)를 이용하여 제공된다. 신호 베어링 매체(1102)는 예컨대, 프로세서에 의하여 실행되면, 도 1 내지 도 10에 대하여 위에서 설명한 기능 또는 기능 또는 기능의 일부를 제공할 수 있는 하나 이상의 명령어(1104)를 포함할 수 있다. 따라서, 예컨대, 흐름도(700)를 참조하면, 도 7의 블록(702, 704, 706, 708, 710, 712, 714, 716 및/또는 718)의 하나 이상의 특징들은 신호 베어링 매체(1102)와 연관된 하나 이상의 명령어에 의해 수행될 수 있다.
하나 이상의 명령어는, 예컨대, 컴퓨터 실행 가능 명령어 및/또는 로직 구현된 명령어일 수 있다. 일부 실시예에서, 하나 이상의 컴퓨터 프로그램 제품(1100)의 신호 베어링 매체(1102)는 컴퓨터 판독 가능 매체(1106), 기록 가능 매체(1108) 및/또는 통신 매체(1110)를 포함한다. 일부 예시에서, 도 10의 컴퓨팅 장치(1000)와 같은 컴퓨팅 장치는 매체(1102)에 의해 컴퓨팅 장치(1000)로 전달되는 명령어(1104)에 응답하여 다양한 동작, 기능 또는 작용을 제공하도록 구성될 수 있다.
일부 구현예에서, 신호 베어링 매체(1102)는 하드 디스크 드라이브, CD(Compact Disk), DVD(Digital Video Disk), 디지털 테이프, 메모리 등과 같은 컴퓨터 판독 가능 매체(1106)를 포함할 수 있으나, 이에 제한되지는 않는다. 일부 구현예에서, 신호 베어링 매체(1102)는 메모리, 읽기/쓰기(R/W) CD, R/W DVD 등과 같은 기록 가능 매체(1108)를 포함할 수 있으나, 이에 제한되지는 않는다. 일부 구현예에서, 신호 베어링 매체(1102)는 디지털 및/또는 아날로그 통신 매체(예컨대, 광섬유 케이블, 도파관(waveguide), 유선 통신 링크, 무선 통신 링크 등)와 같은 통신 매체(1110)를 포함할 수 있으나, 이에 제한되지는 않는다. 따라서, 예컨대, 프로그램 제품(1100)은 RF 신호 베어링 매체(1102)에 의하여 기술된 시스템의 하나 이상의 모듈에 전달될 수 있으며, 신호 베어링 매체(1102)는 무선 통신 매체(1110)(예컨대, IEEE 802.11 표준에 따르는 무선 통신 매체)에 의해 전달된다.
본 개시는 다양한 태양의 예시로서 의도된 본 출원에 기술된 특정 실시예들에 제한되지 않을 것이다. 당업자에게 명백할 바와 같이, 많은 수정과 변형들이 그 사상과 범위를 벗어나지 않으면서 이루어질 수 있다. 여기에 열거된 것들에 더하여, 본 개시의 범위 안에서 기능적으로 균등한 방법과 장치가 위의 설명으로부터 당업자에게 명백할 것이다. 그러한 수정과 변형들은 첨부된 청구항의 범위에 들어가도록 의도된 것이다. 본 개시는 첨부된 청구항과 그러한 청구항에 부여된 균등물의 전 범위에 의해서만 제한될 것이다. 본 개시가 물론 다양할 수 있는 특정 방법, 시약, 합성 구성 또는 생물학적 시스템에 제한되지 않는 것으로 이해될 것이다. 또한, 여기에서 사용된 용어는 특정 실시예를 기술하기 위한 목적이고, 제한하는 것으로 의도되지 않음이 이해될 것이다.
여기에서 실질적으로 임의의 복수 및/또는 단수의 용어의 사용에 대하여, 당업자는 맥락 및/또는 응용에 적절하도록, 복수를 단수로 및/또는 단수를 복수로 해석할 수 있다. 다양한 단수/복수의 치환은 명확성을 위해 여기에서 명시적으로 기재될 수 있다.
당업자라면, 일반적으로 본 개시에 사용되며 특히 첨부된 청구범위(예를 들어, 첨부된 청구범위)에 사용된 용어들이 일반적으로 "개방적(open)" 용어(예를 들어, 용어 "포함하는"은 "포함하지만 이에 제한되지 않는"으로, 용어 "갖는"는 "적어도 갖는"으로, 용어 "포함하다"는 "포함하지만 이에 한정되지 않는" 등으로 해석되어야 함)로 의도되었음을 이해할 것이다. 또한, 당업자라면, 도입된 청구항의 기재사항의 특정 수가 의도된 경우, 그러한 의도가 청구항에 명시적으로 기재될 것이며, 그러한 기재사항이 없는 경우, 그러한 의도가 없음을 또한 이해할 것이다.
예를 들어, 이해를 돕기 위해, 이하의 첨부 청구범위는 "적어도 하나" 및 "하나 이상" 등의 도입 구절의 사용을 포함하여 청구항 기재사항을 도입할 수 있다. 그러나, 그러한 구절의 사용이, 부정관사 "하나"("a" 또는 "an")에 의한 청구항 기재사항의 도입이, 그러한 하나의 기재사항을 포함하는 실시예로, 그러한 도입된 청구항 기재사항을 포함하는 특정 청구항을 제한함을 암시하는 것으로 해석되어서는 안되며, 동일한 청구항이 도입 구절인 "하나 이상" 또는 "적어도 하나" 및 "하나"("a" 또는 "an")과 같은 부정관사(예를 들어, "하나"는 "적어도 하나" 또는 "하나 이상"을 의미하는 것으로 일반적으로 해석되어야 함)를 포함하는 경우에도 마찬가지로 해석되어야 한다. 이는 청구항 기재사항을 도입하기 위해 사용된 정관사의 경우에도 적용된다. 또한, 도입된 청구항 기재사항의 특정 수가 명시적으로 기재되는 경우에도, 당업자라면 그러한 기재가 일반적으로 적어도 기재된 수(예를 들어, 다른 수식어가 없는 "두개의 기재사항"을 단순히 기재한 것은, 일반적으로 적어도 두 개의 기재사항 또는 두 개 이상의 기재사항을 의미함)를 의미하도록 해석되어야 함을 이해할 것이다.
또한, "A, B 및 C 등 중의 적어도 하나"와 유사한 규칙이 사용된 경우에는, 일반적으로 그러한 해석은 당업자가 그 규칙을 이해할 것이라는 전제가 의도된 것이다(예를 들어, "A, B 및 C 중의 적어도 하나를 갖는 시스템"은, A만을 갖거나, B만을 갖거나, C만을 갖거나, A 및 B를 함께 갖거나, A 및 C를 함께 갖거나, B 및 C를 함께 갖거나, A, B, 및 C를 함께 갖는 시스템을 포함하지만 이에 제한되지 않음). "A, B 또는 C 중의 적어도 하나"와 유사한 규칙이 사용된 경우에는, 일반적으로 그러한 해석은 당업자가 그 규칙을 이해할 것이라는 전제가 의도된 것이다(예를 들어, "A, B 또는 C 중의 적어도 하나를 갖는 시스템"은, A만을 갖거나, B만을 갖거나, C만을 갖거나, A 및 B를 함께 갖거나, A 및 C를 함께 갖거나, B 및 C를 함께 갖거나, A, B, 및 C를 함께 갖는 시스템을 포함하지만 이에 제한되지 않음). 또한 당업자라면, 실질적으로 어떠한 이접 접속어(disjunctive word) 및/또는 두 개 이상의 대안적인 용어들을 나타내는 구절은, 그것이 상세한 설명, 청구범위 또는 도면에 있는지와 상관없이, 그 용어들 중의 하나, 그 용어들 중의 어느 하나, 또는 그 용어들 두 개 모두를 포함하는 가능성을 고려했음을 이해할 것이다. 예를 들어, "A 또는 B"라는 구절은 "A" 또는 "B" 또는 "A 및 B"의 가능성을 포함하는 것으로 이해될 것이다.
서면의 기재를 제공하는 것과 같은 어떠한 그리고 모든 목적을 위해서, 본 개시에 기재된 모든 범위는 모든 어떠한 가능한 하위범위 및 그 하위범위의 조합을 또한 포괄함이 이해 되어야 한다. 임의의 나열된 범위는, 그 동일한 범위가 적어도 동일한 이분 범위, 삼분 범위, 사분 범위, 오분 범위, 십분 범위 등으로 분할될 수 있으며, 그러한 동일 범위를 충분히 기술하는 것으로 용이하게 인식될 수 있다. 제한되지 않은 예로서, 본 개시에 기재된 각 범위는, 하위 삼분, 중간 삼분, 상위 삼분 등으로 용이하게 분할될 수 있다. 또한, "까지(up to)," "적어도(at least)," "더 큰(greater than)," "더 적은(less than)" 등과 같은 모든 언어는 인용된 수를 포함하며, 상술한 바와 같은 하위 범위로 분할될 수 있는 범위들을 나타냄이 이해되어야 한다. 마지막으로, 범위는 각 개별 구성요소를 포함됨이 이해되어야 한다. 따라서, 예를 들어, 1 내지 3 셀(cell)을 가지는 그룹은 1, 2 또는 3 셀을 가지는 그룹을 나타낸다. 유사하게, 1 내지 5 셀을 가지는 그룹은 1, 2, 3, 4 또는 5 셀을 가지는 그룹을 나타내는 등이다.
다양한 양상 및 실시예들이 본 개시에서 기술되었지만, 다른 양상 및 실시예들이 당업자에게 명확할 것이다. 본 개시에 기재된 다양한 양상 및 실시예는 예시의 목적으로 제시된 것이고, 제한하려고 의도된 것은 아니며, 진정한 범위 및 사상은 이하 청구범위에 의해 나타낸다.

Claims (20)

  1. 저장된 명령어를 가지는 컴퓨터 판독가능 저장 매체로서, 컴퓨팅 장치에 의하여 실행되면, 상기 컴퓨팅 장치로 하여금,
    가능한 큐보이드 차원 패턴(cuboid dimension pattern)의 하이퍼 격자(hyper-lattice) 표현에서, 상기 하이퍼 격자 내 소스 큐보이드로부터 생성될 수 있는, 차원 상에 요약되는 데이터를 표현하는 중간 큐보이드의 세트를 결정하는 것;
    상기 세트에서 어떤 중간 큐보이드가 상기 하이퍼 격자 내 목적 큐보이드와 적어도 동일한 차원 상에 요약되는지 결정하는 것;
    상기 하이퍼 격자 내 상기 목적 큐보이드와 적어도 동일한 차원 상에 요약되는 상기 세트 내 각각의 중간 큐보이드의 크기를 계산하는 것;
    상기 계산된 크기에 기초하여, 최소의 크기를 가지는 소정의 중간 큐보이드를 결정하는 것; 및
    적어도 상기 소정의 중간 큐보이드를 포함하는 경로를 상기 하이퍼 격자를 통하는 상기 소스 큐보이드로부터 상기 목적 큐보이드로의 최적의 경로로서 결정하는 것
    을 포함하는 기능을 수행하도록 하는, 컴퓨터 판독가능 저장 매체.
  2. 제1항에 있어서,
    상기 하이퍼 격자는 두 개 이상의 기저 큐보이드(base cuboid)를 포함하며, 상기 가능한 큐보이드 차원 패턴 중 적어도 하나의 차원 패턴은 제1 기저 큐보이드에 대응하며, 상기 가능한 큐보이드 차원 패턴 중 적어도 하나의 다른 차원 패턴은 제2 기저 큐보이드에 대응하는, 컴퓨터 판독가능 저장 매체.
  3. 제2항에 있어서,
    상기 목적 큐보이드는 상기 제1 기저 큐보이드 및 상기 제2 기저 큐보이드의 각각에 대응하는, 컴퓨터 판독가능 저장 매체.
  4. 제2항에 있어서,
    상기 소스 큐보이드 및 상기 목적 큐보이드는 각각 상이한 기저 큐보이드에 대응하는, 컴퓨터 판독가능 저장 매체.
  5. 제1항 내지 제4항 중 어느 한 항에 있어서,
    상기 기능은,
    상기 하이퍼 격자 내 소스 큐보이드로부터 생성될 수 있는, 차원 상에 요약되는 데이터를 표현하는 중간 큐보이드의 제2 세트를 결정하는 것;
    상기 제2 세트에서 어떤 중간 큐보이드가 상기 하이퍼 격자 내 목적 큐보이드와 적어도 동일한 차원 상에 요약되는지 결정하는 것;
    상기 하이퍼 격자 내 상기 목적 큐보이드와 적어도 동일한 차원 상에 요약되는 상기 제2 세트 내 각각의 중간 큐보이드의 크기를 계산하는 것;
    상기 계산된 크기에 기초하여, 최소의 크기를 가지는 소정의 제2 중간 큐보이드를 결정하는 것; 및
    적어도 (i)상기 소정의 중간 큐보이드 및 (ii)상기 소정의 제2 중간 큐보이드를 포함하는 경로를 상기 하이퍼 격자를 통하는 상기 소스 큐보이드로부터 상기 목적 큐보이드로의 최적의 경로로서 결정하는 것
    을 더 포함하는, 컴퓨터 판독가능 저장 매체.
  6. 제1항 내지 제4항 중 어느 한 항에 있어서,
    상기 중간 큐보이드의 상기 세트의 각각의 큐보이드는 상기 소스 큐보이드가 요약되는 차원의 수보다 하나 적은 차원 상에 요약되는, 컴퓨터 판독가능 저장 매체.
  7. 제1항 내지 제4항 중 어느 한 항에 있어서,
    상기 하이퍼 격자는 하나 이상의 기저 큐보이드를 포함하는, 컴퓨터 판독가능 저장 매체.
  8. 제1항 내지 제4항 중 어느 한 항에 있어서,
    상기 각각의 중간 큐보이드의 크기를 계산하는 것은 각각의 중간 큐보이드와 연관된 데이터 셀의 수를 계산하는 것을 포함하는, 컴퓨터 판독가능 저장 매체.
  9. 제1항에 있어서,
    상기 기능은,
    상이한 태그 번호(tag number)를 상기 하이퍼 격자 내 상기 가능한 큐보이드 차원 패턴이 요약되는 각각의 상이한 차원에 할당하는 것 - 각각의 상이한 태그 번호는 고유한 정수임 -; 및
    상이한 태그 값(tagged-value)을 상기 하이퍼 격자 내 각각의 소정의 차원 패턴에 할당하는 것
    을 더 포함하며,
    각각의 소정의 차원 패턴의 각각의 태그 값은 2의 지수를 취한 태그 번호의 특정 세트의 합이며, 상기 태그 번호의 특정 세트는 상기 소정의 차원 패턴이 요약되는 차원에 할당된 상기 태그 번호를 포함하는, 컴퓨터 판독가능 저장 매체.
  10. 제9항에 있어서,
    상기 세트에서 어떤 중간 큐보이드가 상기 하이퍼 격자 내 목적 큐보이드와 적어도 동일한 차원 상에 요약되는지를 결정하는 것은,
    상기 세트 내 각각 소정의 큐보이드에 대하여, 상기 소정의 큐보이드가 요약되는 상기 차원의 태그 값을 결정하는 것; 및
    상기 목적 큐보이드에 할당된 상기 태그 값을 적어도 포함하는 태그 값이 할당되는 큐보이드를 상기 목적 큐보이드와 적어도 동일한 차원 상에 요약되는 큐보이드로서 결정하는 것을 포함하는, 컴퓨터 판독가능 저장 매체.
  11. 데이터 웨어하우스와 결합되거나 상기 데이터 웨어하우스에 통합된 컴퓨팅 장치에서, 기존의 하이퍼 격자 구조를 수정하기 위한 방법으로서, 상기 하이퍼 격자 구조는 기저 큐보이드로부터 생성될 수 있는 가능한 큐보이드 차원 패턴의 표현을 포함하며, 상기 방법은,
    상기 기존의 하이퍼 격자 구조에 추가적인 기저 큐보이드를 추가하는 단계 - 상기 추가적인 기저 큐보이드는 상기 기존의 하이퍼 격자 구조 내에 없는 적어도 하나의 차원 상에 요약됨-; 및
    복수의 중간 차원 패턴을 상기 추가적인 기저 큐보이드와 연관시키는 단계
    를 포함하고,
    상기 복수의 중간 차원 패턴 중 적어도 하나는 상기 기존의 하이퍼 격자 구조 내에 있고, 상기 복수의 중간 차원 패턴 중 적어도 하나는 상기 기존의 하이퍼 격자 구조 내에 없는, 방법.
  12. 제11항에 있어서,
    요구된 차원을 상기 기존의 하이퍼 격자에 추가하기 위한 요청을 제2의 컴퓨팅 장치로부터의 수신하는 것에 응답하여, 상기 기존의 하이퍼 격자 구조에 추가적인 기저 큐보이드를 추가하는 단계를 더 포함하며, 상기 추가적인 기저 큐보이드는 상기 요구되는 차원 상에 요약되며 상기 기저 큐보이드가 요약되는 적어도 하나의 다른 차원 상에 요약되는, 방법.
  13. 온라인 분석 처리(online analytical processing(OLAP)) 서버로서,
    컴퓨팅 장치;
    상기 컴퓨팅 장치에 결합된 메모리 저장 장치; 및
    상기 메모리 저장 장치에 저장된 명령어를 포함하며,
    상기 명령어는 상기 컴퓨팅 장치에 의하여 실행되면, 상기 컴퓨팅 장치로 하여금,
    소스 큐보이드로부터 목적 큐보이드를 생성하기 위한 하이퍼 격자를 통하는 최적의 경로를 결정하는 단계 - 상기 하이퍼 격자는 가능한 큐보이드 차원 패턴을 표현하며, 상기 최적의 경로는 하나 이상의 중간 큐보이드를 포함함-;
    상기 결정된 최적의 경로를 통하여 상기 목적 큐보이드를 생성하는 단계; 및
    상기 생성된 목적 큐보이드의 표현을 클라이언트 장치에 제공하는 단계
    를 포함하는 동작을 수행하도록 하는, OLAP 서버.
  14. 제13항에 있어서,
    소스 큐보이드로부터 목적 큐보이드를 생성하기 위한 상기 하이퍼 격자를 통하는 상기 최적의 경로는 상기 하이퍼 격자를 통하는 복수의 경로 중 특정 경로이며, 상기 하이퍼 격자를 통하는 상기 복수의 경로 중 각각의 경로는 상기 소스 큐보이드로부터 상기 목적 큐보이드를 생성하기 위한 경로인, OLAP 서버.
  15. 제14항에 있어서,
    상기 하이퍼 격자를 통하는 상기 복수의 경로 중 각각의 경로는 하나 이상의 가능한 큐보이드 차원 패턴을 포함하며, 상기 최적의 경로는 최소의 합계(aggregate) 큐보이드 크기를 포함하는, OLAP 서버.
  16. 제13항에 있어서,
    소스 큐보이드로부터 목적 큐보이드를 생성하기 위한 하이퍼 격자를 통하는 최적의 경로를 결정하는 단계는,
    상기 하이퍼 격자에 기초하여, 상기 하이퍼 격자 내 상기 소스 큐보이드로부터 생성될 수 있는 중간 큐보이드의 세트를 결정하는 단계;
    상기 세트에서 어떤 중간 큐보이드가 상기 하이퍼 격자 내 상기 목적 큐보이드와 적어도 동일한 차원 상에 요약되는지를 결정하는 단계;
    상기 하이퍼 격자 내 상기 목적 큐보이드와 적어도 동일한 차원 상에 요약되는 상기 세트 내 각각의 중간 큐보이드의 크기를 계산하는 단계;
    상기 계산된 크기에 기초하여, 최소 크기를 가지는 소정의 중간 큐보이드를 결정하는 단계; 및
    상기 소정의 중간 큐보이드를 포함하는 경로를 상기 소스 큐보이드로부터 상기 목적 큐보이드로의 상기 하이퍼 격자를 통하는 최적의 경로로서 결정하는 단계를 포함하는, OLAP 서버.
  17. 제16항에 있어서,
    상기 명령어는,
    상이한 태그 번호를 상기 하이퍼 격자 내 상기 가능한 큐보이드 차원 패턴이 요약되는 각각의 상이한 차원에 할당하는 단계 - 각각의 상이한 태그 번호는 고유한 정수임-;
    상이한 태그 값을 상기 하이퍼 격자 내 각각의 소정의 차원 패턴에 할당하는 단계
    를 더 포함하며,
    상기 각각의 소정의 차원 패턴의 각각의 태그 값은 2의 지수를 취한 태그 번호의 특정 세트의 합이며, 상기 태그 번호의 특정 세트는 상기 소정의 차원 패턴이 요약되는 차원에 할당되는 상기 태그 번호를 포함하는, OLAP 서버.
  18. 제17항에 있어서,
    상기 세트에서 어떤 중간 큐보이드가 상기 하이퍼 격자 내 목적 큐보이드와 적어도 동일한 차원 상에 요약되는지를 결정하는 단계는,
    상기 세트 내 각각의 소정의 큐보이드에 대하여, 상기 소정의 큐보이드가 요약되는 상기 차원의 태그 값을 결정하는 단계; 및
    상기 목적 큐보이드에 할당된 상기 태그 값을 적어도 포함하는 태그값이 할당되는 큐보이드를 상기 목적 큐보이드와 적어도 동일한 차원 상에 요약되는 큐보이드로서 결정하는 단계를 포함하는, OLAP 서버.
  19. 제13항 내지 제18항 중 어느 한 항에 있어서,
    상기 하이퍼 격자는 둘 이상의 기저 큐보이드를 포함하며, 각각의 기저 큐보이드는 차원의 상이한 세트 상에 요약되며, 상기 소스 큐보이드 및 상기 목적 큐보이드는 각각 상기 하이퍼 격자의 상이한 기저 큐보이드에 대응하는, OLAP 서버.
  20. 제13항 내지 제18항 중 어느 한 항에 있어서,
    상기 하이퍼 격자는 둘 이상의 기저 큐보이드를 포함하고, 각각의 기저 큐보이드는 차원의 상이한 세트 상에 요약되며, 상기 소스 큐보이드 및 상기 목적 큐보이드는 각각 상기 하이퍼 격자의 동일한 기저 큐보이드에 대응하는, OLAP 서버.
KR1020137002253A 2010-06-28 2010-11-30 데이터 웨어하우스 상의 온라인 분석 처리(olap) 연산의 최적화된 시퀀싱을 위한 하이퍼 격자 모델 KR101526514B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
IN699KO2010 2010-06-28
IN699/KOL/2010 2010-06-28
PCT/IB2010/003058 WO2012001455A1 (en) 2010-06-28 2010-11-30 Hyper-lattice model for optimized sequencing of online analytical processing (olap) operations on data warehouses

Publications (2)

Publication Number Publication Date
KR20130083899A true KR20130083899A (ko) 2013-07-23
KR101526514B1 KR101526514B1 (ko) 2015-06-05

Family

ID=45401456

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020137002253A KR101526514B1 (ko) 2010-06-28 2010-11-30 데이터 웨어하우스 상의 온라인 분석 처리(olap) 연산의 최적화된 시퀀싱을 위한 하이퍼 격자 모델

Country Status (4)

Country Link
US (1) US9002782B2 (ko)
JP (1) JP5629821B2 (ko)
KR (1) KR101526514B1 (ko)
WO (1) WO2012001455A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101521348B1 (ko) * 2013-10-17 2015-05-18 고려대학교 산학협력단 맵리듀스를 이용한 데이터 큐브 생성 방법 및 장치

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9530226B2 (en) * 2014-02-18 2016-12-27 Par Technology Corporation Systems and methods for optimizing N dimensional volume data for transmission
US10353923B2 (en) 2014-04-24 2019-07-16 Ebay Inc. Hadoop OLAP engine
US11023485B2 (en) * 2018-09-18 2021-06-01 International Business Machines Corporation Cube construction for an OLAP system

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5978788A (en) * 1997-04-14 1999-11-02 International Business Machines Corporation System and method for generating multi-representations of a data cube
US6535872B1 (en) * 1999-04-08 2003-03-18 International Business Machines Corporation Method and apparatus for dynamically representing aggregated and segmented data views using view element sets
JP2002007435A (ja) 2000-06-20 2002-01-11 Nec Corp 対話的分析データベースシステム及び対話的分析プログラムを記録した記録媒体
US6829621B2 (en) * 2000-10-06 2004-12-07 International Business Machines Corporation Automatic determination of OLAP cube dimensions
US7587410B2 (en) 2005-03-22 2009-09-08 Microsoft Corporation Dynamic cube services
US20090055439A1 (en) 2007-08-24 2009-02-26 Ketera Technologies, Inc. Flexible Dimension Approach In A Data Warehouse
KR20090059656A (ko) 2007-12-07 2009-06-11 최성욱 오엘에이피 기반의 다차원 디비를 통한 실시간 사용자성향분석에 따른 경력개발 및 관리 시스템
US8024287B2 (en) * 2008-06-27 2011-09-20 SAP France S.A. Apparatus and method for dynamically materializing a multi-dimensional data stream cube

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101521348B1 (ko) * 2013-10-17 2015-05-18 고려대학교 산학협력단 맵리듀스를 이용한 데이터 큐브 생성 방법 및 장치

Also Published As

Publication number Publication date
JP5629821B2 (ja) 2014-11-26
KR101526514B1 (ko) 2015-06-05
JP2013535049A (ja) 2013-09-09
US20120179643A1 (en) 2012-07-12
WO2012001455A1 (en) 2012-01-05
US9002782B2 (en) 2015-04-07

Similar Documents

Publication Publication Date Title
Kaur et al. Modeling and querying data in NoSQL databases
US9009159B2 (en) Population and/or animation of spatial visualization(s)
Dourish No SQL: The shifting materialities of database technology
US7698349B2 (en) Dimension member sliding in online analytical processing
RU2623809C2 (ru) Автоматический анализ элементов данных
US20140280241A1 (en) Methods and Systems to Organize Media Items According to Similarity
US9542473B2 (en) Tagged search result maintainance
US8819069B2 (en) Automatic layout derivation and implementation
CN103562917A (zh) 用于可视化关系数据库的基于图的方法
JP2013513144A (ja) ビュー内でデータ項目の注釈を取り出すための方法、装置、およびコンピュータ・プログラム
CN104699742A (zh) 使能扩展大型数据集的极端可视化
JP2009508232A (ja) 異なる情報システムのデータで協働アプリケーションにおけるドキュメントに注釈付与すること
US20140324827A1 (en) Search result organizing based upon tagging
Cao et al. KORS: Keyword-aware optimal route search system
CN111078689B (zh) 一种非连续型预排序遍历树算法的数据处理方法及系统
JP2006172446A (ja) 複合データアクセス
Safra et al. Location‐based algorithms for finding sets of corresponding objects over several geo‐spatial data sets
CN104239395A (zh) 搜索的方法和系统
CN106095738A (zh) 推荐表单片段
KR20150011261A (ko) 계층적 컨텍스트 모델을 이용하여 컨텐츠를 추천하기 위한 장치 및 그 방법
KR101526514B1 (ko) 데이터 웨어하우스 상의 온라인 분석 처리(olap) 연산의 최적화된 시퀀싱을 위한 하이퍼 격자 모델
US20160364426A1 (en) Maintenance of tags assigned to artifacts
US20140324828A1 (en) Search result tagging
CN109189777A (zh) 一种存储及查询多维信息的方法、装置及设备
US20180330422A1 (en) Recommender systems and methods for pricing and evaluation of fine art works

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E90F Notification of reason for final refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20180329

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20190515

Year of fee payment: 5