KR102001409B1 - Dynamic n-dimensional cubes for hosted analytics - Google Patents

Dynamic n-dimensional cubes for hosted analytics Download PDF

Info

Publication number
KR102001409B1
KR102001409B1 KR1020177001694A KR20177001694A KR102001409B1 KR 102001409 B1 KR102001409 B1 KR 102001409B1 KR 1020177001694 A KR1020177001694 A KR 1020177001694A KR 20177001694 A KR20177001694 A KR 20177001694A KR 102001409 B1 KR102001409 B1 KR 102001409B1
Authority
KR
South Korea
Prior art keywords
hierarchy
data
data points
computing
subset
Prior art date
Application number
KR1020177001694A
Other languages
Korean (ko)
Other versions
KR20170033303A (en
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
Priority claimed from US14/494,506 external-priority patent/US10430438B2/en
Application filed by 아마존 테크놀로지스, 인크. filed Critical 아마존 테크놀로지스, 인크.
Publication of KR20170033303A publication Critical patent/KR20170033303A/en
Application granted granted Critical
Publication of KR102001409B1 publication Critical patent/KR102001409B1/en

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/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • G06F16/278Data partitioning, e.g. horizontal or vertical partitioning
    • 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)
  • Computing Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Analysing Materials By The Use Of Radiation (AREA)

Abstract

온라인 분석 프로세싱 시스템은 각각의 슬라이스가 데이터 포인트의 하나 이상의 계층구조를 포함하는 슬라이스-기반 파티셔닝을 사용하여 구조화된 n-차원 큐브를 포함할 수 있다. 계층구조의 영역은 영역과 연관된 계산 수요에 따라 분류될 수 있다. 스케일링 또는 복제 메커니즘은 그 영역과 연관된 계산 수요에 기반하여 영역에 적용될 수 있다.The online analysis processing system can include an n-dimensional cube structured using slice-based partitioning, where each slice comprises one or more hierarchies of data points. The regions of the hierarchy can be classified according to the computational demands associated with the regions. A scaling or replication mechanism can be applied to an area based on the computational demand associated with that area.

Description

호스팅된 분석계를 위한 동적 N-차원 큐브{DYNAMIC N-DIMENSIONAL CUBES FOR HOSTED ANALYTICS}DYNAMIC N-DIMENSIONAL CUBES FOR HOSTED ANALYTICS}

관련 출원에 대한 상호-참조Cross-Reference to the Related Application

본 출원은 2014년 6월 20일자로 출원된 미국 가특허출원 제62/015,312호(발명의 명칭 "DYNAMIC CUBES FOR CLOUD-BASED ANALYTICS"); 2014년 9월 23일자로 출원된 미국 특허출원 제14/494,506호(발명의 명칭 "DYNAMIC N-DIMENSIONAL CUBES FOR HOSTED ANALYTICS"); 2014년 9월 23일자로 출원된 미국 특허출원 제14/494,513호(발명의 명칭 "USE OF DEPENDENCY GRAPHS TO DYNAMICALLY UPDATE N-DIMENSIONAL CUBES"); 및 2014년 9월 23일자로 출원된 미국 특허출원 제14/494,524호("DATA INTEREST ESTIMATION FOR N-DIMENSIONAL CUBE COMPUTATIONS")의 이익을 주장하며, 그 내용은 그 전체가 참조에 의해 여기에 편입된다.This application is directed to U.S. Provisional Patent Application No. 62 / 015,312, filed June 20, 2014 (named “DYNAMIC CUBES FOR CLOUD-BASED ANALYTICS”); US patent application Ser. No. 14 / 494,506, filed Sep. 23, 2014 (named “DYNAMIC N-DIMENSIONAL CUBES FOR HOSTED ANALYTICS”); US patent application Ser. No. 14 / 494,513, filed Sep. 23, 2014 (named “USE OF DEPENDENCY GRAPHS TO DYNAMICALLY UPDATE N-DIMENSIONAL CUBES”); And US Patent Application No. 14 / 494,524, filed September 23, 2014 ("DATA INTEREST ESTIMATION FOR N-DIMENSIONAL CUBE COMPUTATIONS"), the contents of which are hereby incorporated by reference in their entirety. .

본 출원은 동시 계류 중인 2014년 6월 20일자로 출원된 미국 가특허출원 제62/015,302호(발명의 명칭 "EMBEDDABLE CLOUD ANALYTICS")와는 물론, 동시 계류 중인 2014년 6월 20일자로 출원된 미국 가특허출원 제62/015,308호(발명의 명칭 "AUTOMATED HIERARCHY DETECTION FOR CLOUD-BASED ANALYTICS")와도, 동시 계류 중인 2014년 6월 20일자로 출원된 미국 가특허출원 제62/015,294호("REAL-TIME HOSTED SYSTEM ANALYTICS")와도, 그리고 동시 계류 중인 2014년 6월 20일자로 출원된 미국 가특허출원 제62/015,307호(발명의 명칭 "CLOUD ANALYTICS MARKETPLACE")와도 관련되며, 그 전체가 참조에 의해 여기에 편입된다.The present application is filed on June 20, 2014, as well as co-pending U.S. Provisional Patent Application No. 62 / 015,302, filed June 20, 2014 (named "EMBEDDABLE CLOUD ANALYTICS" of the invention). Provisional Patent Application No. 62 / 015,308 (named "AUTOMATED HIERARCHY DETECTION FOR CLOUD-BASED ANALYTICS"), and U.S. Provisional Patent Application No. 62 / 015,294 filed June 20, 2014 ("REAL- Also related to TIME HOSTED SYSTEM ANALYTICS "and also to U.S. Provisional Patent Application No. 62 / 015,307 filed on June 20, 2014, entitled" CLOUD ANALYTICS MARKETPLACE ", which is hereby incorporated by reference in its entirety. It is incorporated here.

데이터 웨어하우스 및 온라인 분석 프로세싱("OLAP") 시스템은 데이터 마이닝, 보고, 및 예측과 관련된 다양한 기능을 수행하는데 사용될 수 있다. OLAP 시스템은 전형적으로는 관계형 데이터베이스와 같은 트랜잭션형 시스템으로부터 획득되고 다차원 큐브 구조로 로딩되는 데이터의 다차원 분석을 가능하게 할 수 있다. 다양한 총계 값과 같은 데이터 포인트는 n-차원 큐브 구조 내에서 그것이 포함하고 있는 다양한 차원의 각각의 교차점에서 계산될 수 있다. 따라서, 다차원 큐브 구조를 파퓰레이팅하는 프로세스는 상당한 양의 계산을 수반할 수 있다. 부가적으로, n-차원 큐브는 새로운 데이터를 편입하기 위해 주기적 기반으로 업데이트될 수 있다. n-차원 큐브를 업데이트하는 것은 그 차원의 각각의 교차점에서 데이터 포인트를 리컴퓨팅하는 것을 수반할 수 있다. 리컴퓨팅은 n-차원 큐브에 새로운 차원이 추가되어야 할 때 훨씬 더 부담스러울 수 있다. 따라서, 이들 유형의 n-차원 큐브 구조는 동적 데이터 환경에 그다지 적당하지는 않다.Data warehouse and online analytics processing (“OLAP”) systems can be used to perform various functions related to data mining, reporting, and forecasting. OLAP systems may enable multidimensional analysis of data typically obtained from transactional systems such as relational databases and loaded into multidimensional cube structures. Data points, such as various aggregate values, can be calculated at each intersection of the various dimensions it contains within the n-dimensional cube structure. Thus, the process of populating a multidimensional cube structure can involve a significant amount of computation. In addition, the n-dimensional cube can be updated on a periodic basis to incorporate new data. Updating the n-dimensional cube may involve recomputing a data point at each intersection of that dimension. Recomputing can be even more burdensome when new dimensions need to be added to the n-dimensional cube. Thus, these types of n-dimensional cube structures are not very suitable for dynamic data environments.

이하의 상세한 설명은 첨부 도면과 함께 읽을 때 더 잘 이해될 수 있다. 예시의 목적으로, 본 발명의 태양의 다양한 예가 도면에 도시된다; 그렇지만, 본 발명은 개시된 특정 방법 및 수단으로 한정되지 않는다.
도 1a는 클라우드-기반 분석계와 연관하여 사용가능한 n-차원 큐브를 유지하기 위한 시스템의 일 실시형태를 묘사하는 블록 선도,
도 1b는, 클라우드-기반 분석계와 연관하여 사용가능한 n-차원 큐브를 유지하기 위한 시스템의 일 실시형태의 연산으로서, 실시간 데이터 스트림에서 관찰된 새로운 차원의 추가와 관련 있는 연산을 묘사하는 블록 선도,
도 2a는, 클라우드-기반 분석계를 수행하기 위한 시스템의 일 실시형태의 연산으로서, n-차원 큐브에 새로운 차원의 추가시 종속성 그래프의 유지를 수반하는 연산을 묘사하는 블록 선도,
도 2b는, 클라우드-기반 분석계를 수행하기 위한 시스템의 일 실시형태의 연산으로서, n-차원 큐브에 속성의 추가를 수반하는 연산을 묘사하는 블록 선도,
도 2c는 슬라이스 내에 포함되어 있는 계층구조 데이터에 대한 스케일링가능한 저장 메커니즘의 일 실시형태를 묘사하는 선도,
도 3a는 클라우드-기반 분석계에 적응된 n-차원 큐브를 유지하기 위한 프로세스의 일 실시형태를 묘사하는 순서도,
도 3b는 n-차원 큐브에서 데이터 포인트의 계산을 연기하기 위한 프로세스의 일 실시형태를 묘사하는 순서도,
도 4는 클라우드-기반 분석계에 적응된 n-차원 큐브에서 연기된 컴퓨팅을 수행하기 위한 프로세스의 일 실시형태를 묘사하는 순서도,
도 5a는 호스팅된 분석계 서비스를 제공하기 위한 시스템의 일 실시형태를 묘사하는 블록 선도,
도 5b는 실시간 데이터 소스로부터의 데이터의 유입 및 프로세싱을 위한 프로세스의 묘사도,
도 6은 본 발명의 태양이 실시될 수 있는 컴퓨팅 환경의 일례를 묘사하는 블록 선도, 및
도 7은 본 발명의 태양이 실시될 수 있는 컴퓨팅 시스템의 일 실시형태를 묘사하는 블록 선도.
The following detailed description may be better understood when read in conjunction with the accompanying drawings. For purposes of illustration, various examples of aspects of the invention are shown in the drawings; However, the invention is not limited to the specific methods and means disclosed.
1A is a block diagram depicting one embodiment of a system for maintaining an n-dimensional cube usable in association with a cloud-based analytics system;
1B is a block diagram depicting an operation related to the addition of a new dimension observed in a real-time data stream, as an operation of one embodiment of a system for maintaining an n-dimensional cube usable in conjunction with a cloud-based analysis system;
2A is a block diagram depicting an operation of one embodiment of a system for performing a cloud-based analysis system, the operation involving the maintenance of a dependency graph upon addition of a new dimension to an n-dimensional cube, FIG.
2B is a block diagram depicting operations involving the addition of attributes to an n-dimensional cube as operations in one embodiment of a system for performing a cloud-based analysis system;
2C is a diagram depicting one embodiment of a scalable storage mechanism for hierarchical data contained within a slice;
3A is a flowchart depicting one embodiment of a process for maintaining an n-dimensional cube adapted to a cloud-based analytics system;
3B is a flowchart depicting one embodiment of a process for deferring the calculation of data points in an n-dimensional cube;
4 is a flowchart depicting one embodiment of a process for performing deferred computing in an n-dimensional cube adapted to a cloud-based analysis system;
5A is a block diagram depicting one embodiment of a system for providing a hosted analytics system service;
5B is a depiction of a process for the inflow and processing of data from a real time data source;
6 is a block diagram depicting an example of a computing environment in which aspects of the invention may be practiced, and
7 is a block diagram depicting one embodiment of a computing system in which aspects of the invention may be practiced.

본 발명의 태양은, 호스팅된 분석계 플랫폼을 포함하는, 동적 데이터 환경에 적합한 구조를 사용하여 n-차원 큐브를 유지하도록 채용될 수 있다. 실시형태는, n-차원 큐브에 포함되면 분석계에 유용할 수 있는, 새로운 속성, 차원 또는 계층구조(hierachy)를 도입할 수 있는 데이터의 스트림과 함께 분석계를 제공하도록 채용될 수 있다. 실시형태는 슬라이스-기반 파티셔닝 기법을 사용하여 구조화된 n-차원 큐브를 채용할 수 있다. 각각의 슬라이스는 슬라이스를 가로질러 고정된 차원 값 세트 및 가변이 허용되는 차원 값 세트에 대응하는 데이터 포인트를 포함할 수 있다. 속성, 차원 또는 계층구조는 새로운 슬라이스의 추가 또는 기존 슬라이스의 수정에 의해 n-차원 큐브에 추가될 수 있다. n-차원 큐브의 뷰는 슬라이스들, 슬라이스 영역들, 및 개개의 데이터 포인트들 간 종속성 링크를 형성함으로써 부분적으로 예비 컴퓨팅될 수 있다. 여기에서 설명되는 접근법은 n-차원 큐브의 대규모의 완전 재계산 또는 리컴퓨팅을 요구하지 않고 추가적 차원 및 속성에 대해 확장 또는 수축될 수 있는 n-차원 큐브 구조를 가능하게 하도록 채용될 수 있다.Aspects of the invention may be employed to maintain n-dimensional cubes using structures suitable for dynamic data environments, including hosted analytical platform. Embodiments may be employed to provide an analytical system with streams of data that may introduce new attributes, dimensions, or hierarchies, which may be useful for analytical systems when included in an n-dimensional cube. Embodiments may employ n-dimensional cubes structured using slice-based partitioning techniques. Each slice can include a fixed set of dimension values across the slice and data points corresponding to the set of dimension values that are allowed to vary. Attributes, dimensions or hierarchies can be added to the n-dimensional cube by adding new slices or modifying existing slices. The view of the n-dimensional cube may be partially precomputed by forming dependency links between slices, slice regions, and individual data points. The approach described herein can be employed to enable an n-dimensional cube structure that can be expanded or shrunk for additional dimensions and attributes without requiring massive full recalculation or recomputing of the n-dimensional cube.

도 1a는 클라우드-기반 분석계와 연관하여 사용가능한 n-차원 큐브(100)를 유지하기 위한 시스템의 일 실시형태를 묘사하는 블록 선도이다. 클라우드-기반 분석계 시스템의 사용자는 교차점 포인트에서 총계 데이터 및 관련 속성을 포함하고 있는 다차원 어레이로서 분석 데이터를 볼 수 있다. 다차원 어레이는 희소할 수 있는데, 그러한 경우에, 비교적 적은 수의 교차점 포인트가 데이터와 연관됨을 의미한다.1A is a block diagram depicting one embodiment of a system for maintaining an n-dimensional cube 100 usable in conjunction with a cloud-based analysis system. A user of a cloud-based analytics system can view the analytics data as a multidimensional array containing aggregate data and related attributes at the intersection point. Multidimensional arrays can be sparse, meaning that a relatively small number of intersection points are associated with the data.

클라우드-기반 분석계 시스템은, 개념적으로는 그 사용자에 의해 다차원 어레이로서 보일 수 있기는 하지만, 복수의 슬라이스(102-106) 및 리파지토리(repository)(108)를 포함할 수 있는 n-차원 큐브(100)를 포함할 수 있다. 슬라이스(102)는 n-차원 큐브의 나머지 차원에 고정된 어레이 교차점의 1-차원 리스트에 대한 총계 데이터 세트 및 속성 세트를 포함할 수 있다. 다양한 실시형태에서, 다차원 "슬라이스"가 채용될 수 있는데, 즉, 슬라이스는 n-차원 큐브의 나머지 차원에 고정된 다차원 구조를 또한 포함할 수 있다.The cloud-based analytical system, although conceptually seen by the user as a multidimensional array, may include an n-dimensional cube 100, which may include a plurality of slices 102-106 and a repository 108. ) May be included. Slice 102 may include an aggregate data set and a set of attributes for a one-dimensional list of array intersections fixed to the remaining dimensions of the n-dimensional cube. In various embodiments, multidimensional “slices” may be employed, ie, slices may also include multidimensional structures that are fixed to the remaining dimensions of the n-dimensional cube.

리파지토리(108)는 슬라이스(102-106)에 관한 정보의 집합을 유지하고 있는, 관계형 또는 비-관계형 데이터베이스와 같은, 데이터 리파지토리를 포함할 수 있다. 리파지토리(108)에 유지될 수 있는 데이터의 비-한정적 예는 슬라이스 식별자, 고정 차원의 식별자, 가변 차원의 식별자, 종속성 정보, 리프레시 또는 진부함 데이터 등을 포함한다.Repository 108 may include a data repository, such as a relational or non-relational database, that maintains a collection of information about slices 102-106. Non-limiting examples of data that may be maintained in repository 108 include slice identifiers, fixed dimension identifiers, variable dimension identifiers, dependency information, refresh or banality data, and the like.

슬라이스(102-106)는 파티션(110, 112)과 같은 하나 이상의 파티션 상에 유지될 수 있다. 파티션은 슬라이스(102-106) 중 하나 이상의 구성 데이터를 유지하기 위한 데이터베이스 관리 시스템 또는 다른 메커니즘을 호스팅하는 서버 또는 다른 컴퓨팅 노드를 포함할 수 있다. 다양한 파티셔닝 기법은 파티션(110, 112) 간 작업부하 및 저장 요건을 분배하도록 채용될 수 있다.Slices 102-106 may be maintained on one or more partitions, such as partitions 110, 112. The partition may include a server or other computing node that hosts a database management system or other mechanism for maintaining configuration data of one or more of the slices 102-106. Various partitioning techniques can be employed to distribute the workload and storage requirements between partitions 110 and 112.

실시형태는 또한 복제본(114, 116)으로 파티션(110, 112)의 복제를 수행할 수 있다. 실시형태는 n-차원 큐브(100)를 채용하는 클라우드-기반 분석계 시스템의 신뢰도 및 성능을 개선하도록 복제를 사용할 수 있다. 슬라이스, 계층구조, 또는 계층구조의 영역과 같은, n-차원 큐브의 부분들은 n-차원 큐브에서 데이터 포인트를 유지하는 것과 연관된 계산 수요에 부응하기 위해 파티셔닝 또는 복제될 수 있다. 예를 들어, 높은 판독 활동을 받게 되는 n-차원 큐브의 부분은 기록가능한 파티션을 호스팅하는 컴퓨팅 노드 및 판독-전용 파티션을 호스팅하는 여러 추가적 컴퓨팅 노드를 포함하도록 아웃-스케일링될 수 있다. 높은 기록 활동과 연관된 n-차원 큐브의 부분은 부-부분으로 더 분할되고 여러 컴퓨팅 노드들 간에 파티셔닝될 수 있다.Embodiments may also perform replication of partitions 110 and 112 to replicas 114 and 116. Embodiments can use replication to improve the reliability and performance of cloud-based analytical systems employing n-dimensional cube 100. Portions of the n-dimensional cube, such as slices, hierarchies, or regions of the hierarchy, may be partitioned or replicated to meet the computational demands associated with maintaining data points in the n-dimensional cube. For example, the portion of the n-dimensional cube that will be subjected to high read activity may be out-scaled to include a computing node hosting a recordable partition and several additional computing nodes hosting a read-only partition. The portion of the n-dimensional cube associated with the high recording activity may be further partitioned into sub-parts and partitioned among several computing nodes.

일 실시형태에서, 데이터는 액세스 패턴에 기반하여 노드들 간에 할당될 수 있다. 할당은 파티셔닝 기법을 식별 및 구현하는 것, 요청되면 복제를 가능하게 하는 것, 부하 밸런싱 메커니즘을 구성하는 것 등을 수반할 수 있다. 파티셔닝 및 복제는, 여기에서 설명되는 바와 같이, 슬라이스에 의한, 계층구조에 의한, 계층구조의 영역에 의한 등과 같은 다양한 레벨에서 발생할 수 있다. 액세스 패턴은 특정 슬라이스 상에서 또는 n-차원 큐브에 의해 수행된 질의의 패턴 및 동향을 수반할 수 있다. 액세스 패턴에 관한 다양한 통계 및 다른 메트릭은 할당을 위해 수집 및 사용될 수 있다. 이것들은 업데이트 연산의 빈도 및 비율, 계산을 요구하는 연산의 빈도 및 비율, 데이터 이동을 수반하는 연산의 빈도 및 비율 등을 레코딩하는 메트릭을 포함한다.In one embodiment, data may be allocated between nodes based on the access pattern. Allocation may involve identifying and implementing partitioning techniques, enabling replication when requested, configuring load balancing mechanisms, and the like. Partitioning and replication may occur at various levels, such as by slices, by hierarchies, by regions of the hierarchy, and the like, as described herein. Access patterns may involve patterns and trends of queries performed on particular slices or by n-dimensional cubes. Various statistics and other metrics regarding access patterns can be collected and used for assignment. These include metrics that record the frequency and rate of update operations, the frequency and rate of operations requiring calculation, the frequency and rate of operations involving data movement, and the like.

일 실시형태에서, 슬라이스 부분과 관련된 계산 수요는 파티션 호스트의 성능 특성에 비교되고, 그리고 그에 따라 데이터는 파티션 호스트들 간에 할당될 수 있다. 예를 들어, 높은 정도의 데이터 이동에 참가하고 있는 슬라이스는 동일한 컴퓨팅 노드 상에 병설되거나, 네트워크의 동일한 브랜치에 접속된 컴퓨팅 노드 상에 배치되거나, 또는 더 높은-속도 네트워크에 의해 접속된 컴퓨팅 노드 상에 배치될 수 있다. 다른 일례는 성능 특성이 최적화된 양의 CPU 능력 및/또는 메모리를 포함하는 컴퓨팅 노드 상에서의 높은 정도의 컴퓨팅을 수반하는 데이터를 할당하는 것을 수반한다.In one embodiment, the computational demand associated with the slice portion is compared to the performance characteristics of the partition host, and thus data can be allocated between partition hosts. For example, a slice participating in a high degree of data movement may be placed on the same computing node, placed on a computing node connected to the same branch of the network, or on a computing node connected by a higher-speed network. Can be placed in. Another example involves assigning data that involves a high degree of computing on a computing node where the performance characteristic includes an optimized amount of CPU capability and / or memory.

일 실시형태에서, 데이터는 보안 고려사항에 기반하여 노드들 간에 할당될 수 있다. 계층구조의 어떤 차원 또는 레벨이 컴퓨팅에 사용되지만 n-차원 큐브의 사용자에게는 보일 수 있지 않는 것이 사실일 수 있다. 데이터는 각각의 컴퓨팅 노드와 연관된 보안 속성에 기반하여 컴퓨팅 노드들 간에 할당될 수 있다. 예를 들어, 컴퓨팅 노드는 (컴퓨팅이 수행될 수 있도록) n-차원 큐브의 부분을 호스팅하는 컴퓨팅 노드에 의해 기원된 요청을 프로세싱하도록 구성될 수 있고, 그리고, n-차원 큐브의 고객으로부터 기원하는 것들과 같은, 다른 당사자에 의해 발행된 요청에 응답하지 않도록 더 예비-구성될 수 있다. 이러한 컴퓨팅 노드에는 컴퓨팅에 요구되지만 사용자에 의해 보일 수 있지는 않은 데이터가 할당될 수 있다. 그렇게 구성되지 않은 다른 컴퓨팅 노드는 사용자에 의해 보일 수 있는 데이터를 호스팅할 수 있다. In one embodiment, data may be allocated between nodes based on security considerations. It may be true that some dimension or level of the hierarchy is used for computing but may not be visible to the user of the n-dimensional cube. Data may be allocated between computing nodes based on security attributes associated with each computing node. For example, the computing node may be configured to process a request originated by the computing node hosting a portion of the n-dimensional cube (so that computing may be performed), and originating from a customer of the n-dimensional cube. It may be further pre-configured to not respond to requests issued by other parties, such as those. Such computing nodes may be assigned data that is required for computing but may not be visible to the user. Other computing nodes that are not so configured can host data that can be viewed by the user.

도 1b는 클라우드-기반 분석계와 연관하여 사용가능한 n-차원 큐브를 유지하기 위한 시스템의 일 실시형태의 연산을 묘사하는 블록 선도로서, 연산은 실시간 데이터 스트림에서 관찰된 새로운 차원의 추가와 관련 있다. 데이터 스트림(160)은 트랜잭션형 데이터, 실시간 데이터, 로그 정보 등을 포함할 수 있다. 데이터 스트림(160)에서 도착하는 데이터는 데이터의 도착 이전에는 n-차원 큐브(150)에 포함되지 않은 속성 및 차원을 포함할 수 있다.1B is a block diagram depicting the operation of one embodiment of a system for maintaining an n-dimensional cube usable in connection with a cloud-based analysis system, where the operation involves the addition of a new dimension observed in a real-time data stream. The data stream 160 may include transactional data, real time data, log information, and the like. Data arriving from data stream 160 may include attributes and dimensions that are not included in n-dimensional cube 150 prior to arrival of data.

실시형태는 기존 n-차원 큐브 상에서 파괴적 연산을 수행함이 없이 새로운 차원(162)을 반영하는 분석계를 가능하게 함으로써 새로운 차원(162)의 도착에 응답할 수 있다. n-차원 큐브의 종래 기술 실시형태는, 각각의 교차점에서의 총계, 또는 다양한 유도된 값과 같은, n-차원 큐브 내에서의 기존 데이터 포인트의 실체적 리컴퓨팅을 수행함이 없이 새로운 차원을 편입할 수 없을 수 있다.Embodiments may respond to the arrival of a new dimension 162 by enabling an analysis system that reflects the new dimension 162 without performing destructive operations on the existing n-dimensional cube. Prior art embodiments of n-dimensional cubes may incorporate new dimensions without performing substantial recomputing of existing data points within the n-dimensional cube, such as totals at each intersection, or various derived values. It may not be possible.

도 1b에 묘사된 바와 같이, n-차원 큐브(150)는 슬라이스(152-156)를 포함할 수 있으며, 여기서 각각의 슬라이스는 n-차원 큐브의 차원의 서브세트에 고정되고 나머지 차원에 걸쳐 가변이다. 리파지토리(158)는, 위치, 마지막 리프레시 시간, 종속성 정보 등과 같은, 슬라이스(152-156)에 관한 정보를 유지하고 있을 수 있다.As depicted in FIG. 1B, n-dimensional cube 150 may include slices 152-156, where each slice is fixed to a subset of dimensions of the n-dimensional cube and varies across the remaining dimensions. to be. Repository 158 may maintain information about slices 152-156, such as location, last refresh time, dependency information, and the like.

새로운 슬라이스(164)는 데이터 스트림(160)을 통해 새로운 차원(162)의 도착에 응답하여 n-차원 큐브(150)에 추가될 수 있다. 새로운 차원(162)을 포함하는 새로운 슬라이스(164)는 하나 이상의 차원이 달라질 수 있다. 새로운 슬라이스(164)를 기술하는 엔트리는 리파지토리(158)에 추가될 수 있다. 기존 슬라이스(152-156)는 그들 슬라이스의 사용 이전에 발생하는 실체적 리컴퓨팅 없이 사용 중인 채로 있을 수 있다. 실시형태는 새로운 슬라이스(164)를 나타내는 정보를 리파지토리(158)에 추가할 수 있다. 실시형태는 또한 기존 슬라이스(152-156)와 새로운 슬라이스(164)에서의 데이터 간 종속성 관계를 나타내는 정보를 추가할 수 있다. 종속성 정보는 슬라이스에 유지되는 데이터의 종속성 그래프를 포함할 수 있다. 종속성 그래프는 슬라이스들, 차원들, 슬라이스 영역들, 데이터 포인트들 등 간 종속성을 나타낼 수 있다. 실시형태는 또한 슬라이스, 슬라이스 영역, 슬라이스 내의 데이터 포인트 등에 대한 계산 우선순위를 나타내는 정보를 리파지토리(158)에 추가할 수 있다. 우선순위는, 데이터 포인트에서의 관심의 추정된 개연성, 다른 데이터가 계산에 종속하는 정도 등을 포함하는, 다양한 인자에 기반할 수 있다.The new slice 164 may be added to the n-dimensional cube 150 in response to the arrival of the new dimension 162 via the data stream 160. The new slice 164 including the new dimension 162 may vary in one or more dimensions. An entry describing the new slice 164 may be added to the repository 158. Existing slices 152-156 may remain in use without the substantial recomputing that occurs prior to their use. Embodiments may add information representing the new slice 164 to repository 158. Embodiments may also add information indicating dependency relationships between existing slices 152-156 and data in new slices 164. The dependency information may include a dependency graph of the data maintained in the slice. The dependency graph may represent dependencies between slices, dimensions, slice regions, data points, and the like. Embodiments may also add information to repository 158 that indicates computational priorities for slices, slice regions, data points within slices, and the like. The priority may be based on various factors, including the estimated probability of interest at the data point, the degree to which other data depends on the calculation, and the like.

도 2a는 클라우드-기반 분석계를 수행하기 위한 시스템의 일 실시형태의 연산을 묘사하는 블록 선도로서, 연산은 n-차원 큐브에 새로운 차원의 추가시 종속성 그래프의 유지를 수반한다. 도 2a는 국가 차원 및 주 차원을 처음에 포함하고 있는 n-차원 큐브의 일례의 수반을 묘사한다. 하나 이상의 척도 또는 다른 값 또는 속성은 이들 차원의 각각의 교차점에서 연관될 수 있다. 슬라이스(218)는, 고정 차원("국가 A")(222)에 의해 표시된 바와 같이, 국가 차원에서의 "A"에 고정될 수 있다. 슬라이스(218)는, 가변 차원 엔트리(224-230)에 의해 도 2a에 묘사된 바와 같이, 비-고정 차원을 따른 하나 이상의 엔트리를 더 포함하고 있을 수 있다. 다양한 데이터 포인트는 차원 엔트리(224-230)와 연관될 수 있다. 예를 들어, 가변 차원 엔트리(226)는 데이터 포인트(238)와 연관될 수 있다. 데이터 포인트(238)는, "국가 A"의 "주 B"에서의 총 판매와 같은, 다양한 척도를 표현할 수 있다. 도 2a에서는 데이터 포인트(238)만이 특히 불러 내어져 있지만, 다른 가변 차원 엔트리(224, 228, 230)의 각각은 유사한 데이터 포인트를 가질 수 있다. 유사하게, 슬라이스(220)는, 고정 차원("국가 B")(240)에 의해 표시된 바와 같이, 국가 차원에서의 국가 "B"에 고정될 수 있고, 가변 차원 엔트리(232-236)를 가질 수 있으며, 그 각각은 연관된 데이터 포인트를 가질 수 있다. 2A is a block diagram depicting an operation of one embodiment of a system for performing a cloud-based analysis system, which involves maintaining a dependency graph upon addition of a new dimension to an n-dimensional cube. FIG. 2A depicts the attendance of an example of an n-dimensional cube initially including a national dimension and a state dimension. One or more measures or other values or attributes may be associated at each intersection of these dimensions. Slice 218 may be fixed to "A" at the country level, as indicated by fixed dimension ("country A") 222. Slice 218 may further include one or more entries along non-fixed dimensions, as depicted in FIG. 2A by variable dimension entries 224-230. Various data points may be associated with dimension entries 224-230. For example, variable dimension entry 226 may be associated with data point 238. Data point 238 may represent various measures, such as total sales in "State B" of "Country A". Although only data point 238 is specifically called out in FIG. 2A, each of the other variable dimension entries 224, 228, 230 may have a similar data point. Similarly, slice 220 may be fixed to country "B" at the country level, as indicated by fixed dimension ("country B") 240, and have variable dimension entries 232-236. Each of which may have an associated data point.

실시형태는 n-차원 큐브에 새로운 데이터를 편입하도록 데이터 스트림(200)을 프로세싱할 수 있다. 들어오는 데이터는 기존 차원과 관련될 수 있고 관련 슬라이스, 슬라이스 영역, 데이터 포인트 등을 구식이거나 진부한 것으로 마킹함으로써 편입될 수 있다. 데이터 사전은 다양한 슬라이스, 슬라이스 영역, 및 데이터 포인트에 대한 진부함 데이터를 유지하는데 사용될 수 있다. 실시형태는 또한, 데이터 스트림(200)의 프로세싱을 통해, 새로운 차원(202)이 조우되었고 n-차원 큐브에 편입될 수 있다고 결정할 수 있다. 예를 들어, 도 2a는 새로운 차원(202), "지역" 차원의 추가를 묘사한다. 새로운 슬라이스(212)는 슬라이스(218, 220)를 이미 포함하고 있는 n-차원 큐브에 추가될 수 있다. 새로운 슬라이스(212)는 고정 차원("지역 R")(204)으로 지역 차원에서 일정하게 유지될 수 있고, 가변 차원 엔트리(208, 210)에 의해 묘사된 바와 같이, 주 차원과 같은 하나 이상의 다른 차원에서 가변일 수 있다.Embodiments can process data stream 200 to incorporate new data into n-dimensional cubes. Incoming data can be associated with existing dimensions and incorporated by marking associated slices, slice regions, data points, etc., as outdated or obsolete. The data dictionary can be used to maintain the banality data for various slices, slice regions, and data points. Embodiments may also determine, via processing of data stream 200, that new dimensions 202 have been encountered and can be incorporated into n-dimensional cubes. For example, FIG. 2A depicts the addition of a new dimension 202, the “region” dimension. The new slice 212 may be added to an n-dimensional cube that already contains slices 218 and 220. The new slice 212 may remain constant at the local dimension with a fixed dimension (“region R”) 204 and one or more other, such as the major dimension, as depicted by the variable dimension entries 208, 210. It can be variable in dimensions.

실시형태는 새로운 슬라이스(212)와 기존 슬라이스(218, 220) 간 종속성 관계를 확립할 수 있다. 예를 들어, 종속성 정보(214)는 슬라이스(220)에서의 정보 또는, 더 정밀하게는, 가변 차원 엔트리(232)에 대한 가변 차원 엔트리(208)와 연관된 데이터 포인트의 종속성을 나타낼 수 있다. 유사하게, 종속성 정보(216)는 슬라이스(218) 또는 가변 차원 엔트리(226)에 대한 가변 차원 엔트리(210)와 연관된 데이터 포인트의 종속성을 나타낼 수 있다. 실시형태는 종속성 관계를 확립함에 있어서 다양한 레벨의 세밀도 및 방향성을 이용할 수 있다. 예를 들어, 종속성 관계는 슬라이스들, 가변 차원 엔트리들, 고정된 데이터 포인트들 등 간 형성될 수 있고, 기존 슬라이스들 간 또는 기존 슬라이스와 새로운 슬라이스 간 어느 방향으로든 형성될 수 있다. 실시형태는 슬라이스, 슬라이스 영역, 데이터 포인트 등을 진부한 것으로 마킹하도록 종속성 관계를 이용할 수 있다. 실시형태는 또한 예비-계산된 총계 또는 계산된 추가적 총계, 다양한 유도된 값 등의 다른 컴포넌트의 위치를 찾아내도록 종속성 관계를 이용할 수 있다. 가변 차원 엔트리(208, 210)는, 관련 값의 계산이 연기될 수 있도록, 공백 또는 진부한 상태로 형성될 수 있음을 주목한다.Embodiments may establish dependency relationships between new slices 212 and existing slices 218 and 220. For example, dependency information 214 may indicate the dependency of information in slice 220 or, more precisely, data point associated with variable dimension entry 208 to variable dimension entry 232. Similarly, dependency information 216 may indicate a dependency of a data point associated with variable dimension entry 210 for slice 218 or variable dimension entry 226. Embodiments may use various levels of granularity and directionality in establishing dependency relationships. For example, dependency relationships may be formed between slices, variable dimension entries, fixed data points, and the like, and may be formed in either direction between existing slices or between an existing slice and a new slice. Embodiments can use dependency relationships to mark slices, slice regions, data points, and the like as stale. Embodiments can also use dependency relationships to locate other components, such as pre-computed totals or calculated additional totals, various derived values, and the like. Note that the variable dimension entries 208, 210 may be formed blank or banal so that the calculation of the associated value may be postponed.

도 2b는 클라우드-기반 분석계를 수행하기 위한 시스템의 일 실시형태의 연산을 묘사하는 블록 선도로서, 연산은 n-차원 큐브에 속성의 추가를 수반한다. 실시형태는 데이터 스트림(250)을 프로세싱하고 슬라이스(258)의 기존 요소와 연관된 새로운 속성의 존재를 결정하는데, 슬라이스(258)는 고정 차원("국가 B")(260) 및 가변 차원 엔트리(262-264)와 연관된다. 속성은, 개념적 레벨에서, n-차원 큐브에서의 차원의 교차점과 연관된 값이라고 생각될 수 있다. 실시형태는, 슬라이스 엔트리가 링크된 리스트 또는 다른 구조를 통하여, 속성 엔트리(256)와 같은, 하나 이상의 속성과 연관되는, 도 2b에서 묘사된 메커니즘을 사용하여 속성을 저장할 수 있다. "주 A"와 연관된 새로운 속성(252)을 검출시, 실시형태는 가변 차원 엔트리("주 A")(262)의 위치를 찾아내고 새로운 속성(254)을 연관된 속성의 리스트에 추가할 수 있다. 실시형태는 속성이 연관될 추가적 슬라이스 및 고정 차원 엔트리에 대해 이러한 연산을 다수 횟수 반복할 수 있다.2B is a block diagram depicting an operation of one embodiment of a system for performing a cloud-based analysis system, in which the operation involves adding an attribute to an n-dimensional cube. Embodiments process data stream 250 and determine the presence of new attributes associated with existing elements of slice 258, where slice 258 is a fixed dimension (" Country B ") 260 and variable dimension entry 262. -264). An attribute can be thought of at a conceptual level as a value associated with the intersection of a dimension in an n-dimensional cube. An embodiment may store an attribute using the mechanism depicted in FIG. 2B, associated with one or more attributes, such as attribute entry 256, through a linked list or other structure. Upon detecting a new attribute 252 associated with "Note A", an embodiment can locate the variable dimension entry ("Note A") 262 and add the new attribute 254 to the list of associated attributes. . Embodiments may repeat this operation a number of times for additional slices and fixed dimension entries to which attributes are to be associated.

종속성 정보는 속성에 대해 식별 및 저장될 수 있다. 예를 들어, 도 2b는 종속성 정보(266)를 묘사한다. 묘사된 종속성 정보(266)는 새로운 속성 엔트리(254)와 계층구조(268) 간 종속성 관계를 나타낼 수 있다. 종속성 관계는 또한 기존 속성과 계층구조 간 유지될 수 있다.Dependency information can be identified and stored for an attribute. For example, FIG. 2B depicts dependency information 266. The depicted dependency information 266 may represent a dependency relationship between the new attribute entry 254 and the hierarchy 268. Dependency relationships can also be maintained between existing attributes and hierarchies.

계층구조 및 다양한 유도된 또는 계산된 값은 다양한 속성 값 또는 속성 유형에 종속할 수 있다. 예를 들어, 계층구조는, 색상과 같은 속성으로 필터링된, 제품의 판매에 대한 총계 값을 포함할 수 있다. 속성의 값에 대한 변경은 계층구조의 리컴퓨팅을 요구할 수 있다. 따라서, 제품 색상 속성과 계층구조 간 종속성 관계가 있을 수 있다. 유사한 관계는 다른 유도된 또는 계산된 값에 대해 존재할 수 있다. 새롭게 추가된 속성은 또한 계층구조와의 관계를 가질 수 있다. 일례는 새롭게 추가된 속성이 기존 속성과 동일한 클래스이거나 본성이 유사할 때 발생할 수 있다. 기존 속성이 기존 계층구조의 요소인 경우, 새로운 속성은 기존 것과 병렬인 새로운 계층구조의 요소로 될 수 있다. 새로운 계층구조를 즉시 계산하기보다는, 새로운 속성과 새로운 계층구조 간 관계를 나타내도록 종속성 정보가 저장될 수 있어서, 순차로 새로운 계층구조의 연기된 또는 온-디맨드 컴퓨팅이 가능하게 할 수 있다.Hierarchies and various derived or calculated values may depend on various attribute values or attribute types. For example, the hierarchy may include aggregate values for sales of the product, filtered by attributes such as color. Changing the value of an attribute may require recomputing the hierarchy. Therefore, there may be a dependency relationship between the product color attribute and the hierarchy. Similar relationships can exist for other derived or calculated values. Newly added attributes can also have relationships with hierarchies. An example may occur when a newly added property is of the same class or similar nature as an existing property. If an existing attribute is an element of an existing hierarchy, the new attribute can be an element of the new hierarchy that is parallel to the existing hierarchy. Rather than calculating the new hierarchy immediately, dependency information can be stored to indicate the relationship between the new attribute and the new hierarchy, thereby enabling deferred or on-demand computing of the new hierarchy sequentially.

도 2c는 슬라이스 내에 포함되어 있는 계층구조 데이터에 대한 스케일링가능한 저장 메커니즘의 일 실시형태를 묘사하는 선도이다. 일부 경우 및 실시형태에서, 데이터의 각각의 슬라이스가 별개의 컴퓨팅 노드 상에 유지될 수 있도록, 슬라이스들 간 n-차원 큐브의 파티셔닝이 있을 수 있다. 일부 경우에 스케일링가능성은 슬라이스들 간 복제 및 부하 밸런싱을 수행함으로써 달성될 수 있다. 다른 실시형태에서, 슬라이스-기반 파티셔닝에 부가하여 또는 그 대신에, 슬라이스 내에서 파티셔닝이 행해질 수 있다.2C is a diagram depicting one embodiment of a scalable storage mechanism for hierarchical data contained within a slice. In some cases and embodiments, there may be partitioning of n-dimensional cubes between slices so that each slice of data may be maintained on a separate computing node. In some cases scalability may be achieved by performing replication and load balancing between slices. In other embodiments, partitioning may be done within a slice in addition to or instead of slice-based partitioning.

일부 실시형태에서, 슬라이스 내에 포함되어 있는 데이터 포인트의 계층구조는 영역에 의해 세분되고 여러 컴퓨팅 노드 상에 저장될 수 있다. 데이터 포인트의 계층구조의 영역은 계층구조의 서브세트라고 지칭될 수 있다. 스케일링 메커니즘은 영역 내에 포함되어 있는 데이터 포인트 또는 데이터 포인트들과 연관된 계산 수요에 기반하여 계층구조의 각각의 영역(또는 서브세트)에 대해 선택될 수 있다.In some embodiments, the hierarchy of data points contained within a slice may be broken down by regions and stored on various computing nodes. The area of the hierarchy of data points may be referred to as a subset of the hierarchy. The scaling mechanism may be selected for each region (or subset) of the hierarchy based on the computational demand associated with the data point or data points contained within the region.

n-차원 큐브의 슬라이스는 차원 데이터의 다양한 계층구조를 포함할 수 있다. 예를 들어, 슬라이스는 시간 단위로 총계한 판매 데이터를 포함할 수 있다. 예시적 목적으로, 도 2c는 시간 차원 및 판매 차원에 관하여 설명될 것이다. 그렇지만, 도 2c의 다양한 태양을 예시하기 위한 시간 및 판매의 사용은 본 발명의 범위를 한정하는 것으로 보여서는 안됨을 인식할 것이다. Slices of n-dimensional cubes may contain various hierarchies of dimensional data. For example, the slice may include sales data aggregated by time unit. For illustrative purposes, FIG. 2C will be described with respect to the time dimension and the sales dimension. However, it will be appreciated that the use of time and sales to illustrate the various aspects of FIG. 2C should not be seen as limiting the scope of the invention.

도 2c에서, 계층구조(281)은 계층구조 노드(286-298)를 포함할 수 있다. 계층구조에서의 각각의 노드는 값의 합의 저장된 표현일 수 있다. 일례로서 시간 및 판매 차원을 사용할 때, 계층구조 노드(292, 294, 296, 298)는 각각 6-시간 시간 기간 동안 판매 수치의 합을 포함하고 있을 수 있다. 계층구조 노드(288, 290)는 각각 6-시간 수치의 총계를 포함하고 있을 수 있다. 예를 들어, 계층구조 노드(288)는 12-시간 기간을 표현하고 계층구조 노드(292, 294)와 연관된 값의 총계를 포함하고 있을 수 있다. 유사하게, 계층구조 노드(290)는 제2의 12-시간 기간을 표현하고 계층구조 노드(296, 298)와 연관된 값의 총계를 포함하고 있을 수 있다. 계층구조 노드(286)는 계층구조 노드(288, 290)를 포함하는 24-시간 기간에 대한 총계를 포함하고 있을 수 있다. 실시형태는, 계층구조에 시간 차원의 포함으로부터, 더 많은 현재 시간 기간이 빈번한 기록을 수반할 개연성이 더 있다고 추론할 수 있다. 실시형태는 시간 차원으로부터 업데이트의 예측된 레벨로의 매핑을 이용하고, 그로써 계층구조의 영역 내 유지된 데이터 포인트에 수반될 개연성이 있는 계산 수요를 추정할 수 있다.In FIG. 2C, hierarchy 281 may include hierarchy nodes 286-298. Each node in the hierarchy may be a stored representation of a sum of values. Using the time and sales dimensions as an example, hierarchy nodes 292, 294, 296, and 298 may each contain a sum of sales figures for a six-hour time period. Hierarchy nodes 288 and 290 may each contain a total of six-hour figures. For example, hierarchy node 288 may represent a 12-hour period and contain a total of values associated with hierarchy nodes 292 and 294. Similarly, hierarchy node 290 may represent a second 12-hour period and include a total of values associated with hierarchy nodes 296 and 298. Hierarchy node 286 may include a total for a 24-hour period that includes hierarchy nodes 288 and 290. Embodiments can infer from the inclusion of the time dimension in the hierarchy that more current time periods are more likely to involve frequent recording. Embodiments can use the mapping from the time dimension to the predicted level of updates, thereby estimating the likely computational demands that will accompany data points maintained in the region of the hierarchy.

n-차원 큐브의 스케일링가능성은 트리-기반 저장 메커니즘을 사용하여 증가될 수 있다. 일 실시형태에서, 트리-기반 저장 메커니즘은, 도 2c에서의 계층구조(281)과 같이, 계층구조 트리를 병렬화할 수 있다. 계층구조에 대한 업데이트는, 일부 실시형태에서, 다음과 같이 진행된다: 1) 새로운 데이터가 잎 노드에 저장되고, 잎에서의 어느 총계 값이라도 조절될 수 있다; 2) 잎 노드의 부모의 총계 값이 조절될 수 있다; 그리고 3) 잎 노드의 부모의 부모의 총계 값이 조절될 수 있다, 등등. The scalability of the n-dimensional cube can be increased using a tree-based storage mechanism. In one embodiment, the tree-based storage mechanism may parallelize the hierarchical tree, such as hierarchy 281 in FIG. 2C. The update to the hierarchy, in some embodiments, proceeds as follows: 1) New data is stored in the leaf node and any total value in the leaf can be adjusted; 2) the total value of the parent of the leaf node can be adjusted; And 3) the total value of the parent of the leaf node's parent can be adjusted, and so on.

일례로서 시간 및 판매를 사용할 때, 현재 시간 기간을 표현하는 노드는 빈번하게 업데이트될 수 있다. 이것은 순차로, 총계 값에 대한 조절이 상속의 체인을 통해 위로 흐르므로, n-차원 큐브에서의 그 선조가 빈번하게 업데이트되게 야기할 수 있다. 예를 들어, 계층구조 노드(298)는 현재 6-시간 윈도를 표현할 수 있다. 현재 윈도에 대한 판매 데이터가 수집될 때, 계층구조 노드(298)와 연관된 값은 빈번하게 조절될 수 있다. 이것은 순차로 계층구조 노드(290, 286)가 조절되게 야기할 수 있다. 일부 실시형태는 계층구조의 다양한 레벨에서의 총계 계산을 연기할 수 있다.When using time and sales as an example, the node representing the current time period may be updated frequently. This in turn can cause the ancestors in the n-dimensional cube to be updated frequently, as adjustments to the aggregate values flow up through the chain of inheritance. For example, hierarchy node 298 may represent a current six-time window. When sales data for the current window is collected, the value associated with hierarchy node 298 may be adjusted frequently. This may in turn cause hierarchy nodes 290 and 286 to be adjusted. Some embodiments may postpone grand total calculation at various levels of the hierarchy.

계층구조 데이터에 대한 스케일링 메커니즘은 계층구조에서의 영역의 분류에 기반할 수 있다. 분류는 계층구조 중 일부 또는 전부를 호스팅하는 컴퓨팅 노드 상에 부과된 계산 수요와 같은 인자를 포함할 수 있다. 분류는 활동의 빈도 및 활동의 유형을 포함할 수 있다. 예를 들어, 높은 기록 활동과 연관된 영역(284)은, 물론, 다양한 경우 및 실시형태에서, 하나보다 많은 계층구조 노드가 이러한 방식으로 분류될 수 있기는 하지만, 계층구조 노드(298)와 연관될 수 있다. 높은 수의 기록은, 현재 시간 기간으로부터의 데이터를 포함하고 있는 계층구조 노드(298)와 같은, 계층구조에 포함되어 있는 데이터의 유형의 결과일 수 있다. 계층구조(281)의 다른 영역은 높은 계산 부하와 연관된 영역(280)인 것으로 분류될 수 있다. 이 영역(280)은 총계 값을 계산하는 것과 연관된 더 많은 수요와 연관될 수 있다. 예를 들어, 계층구조 노드(298)가 추가적 데이터를 포함하도록 업데이트되고 있으면, 그 선조 노드(290, 286)는 총계 또는 다른 유도된 값의 비교적 빈번한 재계산에 관여될 수 있다. 다른 분류는 낮은 기록 활동과 연관된 영역(282)을 식별시킬 수 있다. 추가적 분류는, 높은 판독 활동(283)과 연관된 영역과 같은, 빈번한 질의 및 검색 연산에 연루된 영역을 수반할 수 있다. 분류는 또한 비교적 적은 활동을 갖는 그들 영역을 수반할 수 있다.The scaling mechanism for the hierarchical data may be based on the classification of regions in the hierarchy. The classification may include factors such as computational demands imposed on computing nodes hosting some or all of the hierarchy. The classification may include the frequency of activities and the types of activities. For example, area 284 associated with high recording activity may, of course, be associated with hierarchy node 298, although in various cases and embodiments, more than one hierarchy node may be classified in this manner. Can be. The high number of records may be a result of the type of data included in the hierarchy, such as hierarchy node 298 containing data from the current time period. Other areas of hierarchy 281 may be classified as areas 280 associated with high computational load. This area 280 may be associated with more demand associated with calculating the aggregate value. For example, if hierarchy node 298 is being updated to include additional data, its ancestor nodes 290, 286 may be involved in the relatively frequent recalculation of totals or other derived values. Another classification may identify region 282 associated with low recording activity. Additional classification may involve areas involved in frequent query and search operations, such as areas associated with high read activity 283. Classification may also involve those areas with relatively little activity.

계층구조를 유지하기 위한 스케일링 메커니즘은 계산 수요의 전술한 분류 중 하나 이상에 기반할 수 있다. 일 실시형태에서, 높은 계산 부하와 연관된 영역(280)에서의 계층구조 노드는 그 영역에서의 노드와 연관된 계산을 더 세분함으로써 파티셔닝될 수 있다. 예를 들어, 계층구조 노드(286)와 관련된 계산은 계층구조 노드(290)와 관련된 것들과는 별개인 컴퓨팅 노드 상에서 수행될 수 있다. 계층구조 노드(286)와 관련된 계산은 여러 컴퓨팅 노드 간에 더 파티셔닝될 수 있다. 예를 들어, 계층구조 노드(288)로 시작하는 계층구조의 브랜치와 관련된 계산은 계층구조 노드(290)로 시작하는 브랜치와 관련된 것들과는 별개인 컴퓨팅 노드 상에서 수행될 수 있다.The scaling mechanism for maintaining the hierarchy may be based on one or more of the foregoing classifications of computational demands. In one embodiment, hierarchical nodes in region 280 associated with high computational load may be partitioned by further subdividing the computation associated with nodes in that region. For example, the calculations associated with hierarchy node 286 may be performed on a computing node separate from those associated with hierarchy node 290. Calculations associated with hierarchy node 286 may be further partitioned among the various computing nodes. For example, calculations associated with branches of a hierarchy starting with hierarchy node 288 may be performed on a computing node separate from those associated with branches starting with hierarchy node 290.

높은 기록 활동과 연관된 영역에서의 계층구조 노드는 다수의 컴퓨팅 노드에 걸쳐 기록 부하를 분산시키도록 수평으로 파티셔닝될 수 있다. 낮은 기록 활동을 갖지만 높은 판독 활동을 갖는 영역에 대해서는, 다수의 컴퓨팅 노드에 걸쳐 판독 부하를 분산시키도록 복제가 사용될 수 있다.Hierarchy nodes in the area associated with high recording activity may be partitioned horizontally to distribute the recording load across multiple computing nodes. For areas with low write activity but high read activity, replication may be used to distribute the read load across multiple computing nodes.

실시형태는 또한 전술한 분류에 기반하여 특정 자원 유형의 사용을 강조할 수 있다. 예를 들어, 빈번한 컴퓨팅 또는 기록과 연관된 계층구조를 유지하고 있는 컴퓨팅 노드는 데이터를 인-메모리 유지할 수 있는 한편, 낮은 활동과 연관된 것들은 관용적 저장소를 이용할 수 있다.Embodiments may also emphasize the use of specific resource types based on the foregoing classification. For example, a computing node maintaining a hierarchy associated with frequent computing or writing may keep data in-memory while those associated with low activity may utilize idiomatic storage.

다양한 경우 및 실시형태에서, 계층구조의 영역은 계층구조를 통한 경로로 이루어질 수 있다. 예를 들어, 영역은 제1 노드, 제1 노드의 부모 등으로 이루어질 수 있다. 계층구조에서의 경로는, 경로에서의 데이터가 빈번하게 액세스되는 동안, 주 시스템 메모리에, 또는 다른 비교적 낮은-레이턴시 저장 디바이스 상에 유지될 수 있다. 경로에서의 하위-레벨 노드 상에서 수행된 기록 연산은 캐스케이딩 업데이트를 트리거링할 수 있다. 실시형태는 이들 및 유사한 유형의 업데이트를 효율적으로 프로세싱하기 위해 빈번하게 기록된 노드의 부모를 주 시스템 메모리에 유지할 수 있다. 액세스 빈도, 특히 기록 빈도가 임계 레벨 위에 있을 때, 경로는 주 메모리에 유지될 수 있다. 액세스 빈도가 특정 레벨 아래로 떨어질 때, 경로는 비교적 높은 레이턴시를 갖는 디바이스 상에 유지될 수 있다. In various cases and embodiments, regions of the hierarchy may consist of paths through the hierarchy. For example, the region may include a first node, a parent of the first node, and the like. The path in the hierarchy can be maintained in main system memory, or on another relatively low-latency storage device, while the data in the path is frequently accessed. Write operations performed on lower-level nodes in the path may trigger cascading updates. Embodiments may maintain the parent of frequently written nodes in main system memory to efficiently process these and similar types of updates. When the access frequency, especially the write frequency, is above the threshold level, the path can be maintained in main memory. When the access frequency drops below a certain level, the path can be maintained on devices with relatively high latency.

다양한 실시형태에서, 계층구조의 영역은 컴퓨팅 노드의 분류에 기반하여 컴퓨팅 노드에 매핑될 수 있다. 계층구조는 잠재적 가변 구성을 갖는 여러 컴퓨팅 노드 상에 호스팅될 수 있다. 컴퓨팅 노드 중 일부는, 예를 들어, 컴퓨팅 노드가 계산을 수행함에 있어서 개선된 효율을 제공하도록 구성됨을 나타낼 수 있는, 계산-집약적 노드로서 구성될 수 있다. 다른 컴퓨팅 노드는 데이터를 저장하는 것에 대해 개선된 효율을 제공하도록 구성될 수 있다. In various embodiments, regions of the hierarchy may be mapped to computing nodes based on the classification of the computing nodes. The hierarchy can be hosted on several computing nodes with potentially variable configurations. Some of the computing nodes may be configured as compute-intensive nodes, which may indicate, for example, that the computing nodes are configured to provide improved efficiency in performing computations. Other computing nodes can be configured to provide improved efficiency for storing data.

도 3a는 클라우드-기반 분석계에 적응된 n-차원 큐브를 유지하기 위한 프로세스의 일 실시형태를 묘사하는 순서도이다. 연산의 시퀀스로서 묘사되기는 하지만, 당업자는 묘사된 순서가 본 발명의 범위를 한정하는 것으로 해석되지 않아야 함과 그리고 묘사된 연산 중 적어도 일부는 개조, 생략, 순서변경, 부가적 연산으로 보충, 또는 병렬로 수행될 수 있음을 인식할 것이다. 묘사된 프로세스의 실시형태는, 여기에서 설명된 컴퓨팅 시스템과 같은, 컴퓨팅 시스템에 의해 실행되는 컴퓨터-실행가능한 명령어의 다양한 조합을 사용하여 구현될 수 있다. 3A is a flowchart depicting one embodiment of a process for maintaining an n-dimensional cube adapted to a cloud-based analysis system. Although described as a sequence of operations, one of ordinary skill in the art should not interpret the described order as limiting the scope of the present invention, and at least some of the described operations may be modified, omitted, reordered, supplemented with additional operations, or parallelized. Will be appreciated. Embodiments of the depicted process may be implemented using various combinations of computer-executable instructions executed by a computing system, such as the computing system described herein.

연산(300)은 n-차원 큐브에 편입될 수 있는 새로운 차원, 속성, 척도, 또는 다른 값을 식별하는 것을 묘사한다. 실시형태는 새로운 차원, 속성, 척도, 또는 다른 값을 추가하는 것을 나타내는 새로운 데이터에 대한 데이터 스트림을 프로세싱할 수 있다. 데이터 스트림은 전형적으로는 데이터의 연속형 또는 반-연속형 스트림과 연관된 실시간 데이터 소스, 로그 파일, 또는 다른 데이터 소스에 대응할 수 있다. 이들 데이터 소스는 일반적으로는 증분 기반으로 데이터를 제공하는 것으로 설명될 수 있다.Operation 300 depicts identifying a new dimension, attribute, measure, or other value that can be incorporated into an n-dimensional cube. Embodiments can process data streams for new data indicating adding new dimensions, attributes, measures, or other values. The data stream may correspond to a real time data source, log file, or other data source that is typically associated with a continuous or semi-continuous stream of data. These data sources can generally be described as providing data on an incremental basis.

데이터 스트림은 또한, 연속형 기반으로보다는 주기적으로 n-차원 큐브에 편입 또는 업데이트될 수 있는, 이력 데이터, 트랜잭션 데이터 등과 연관될 수 있다. 이러한 유형의 데이터 소스는 일반적으로는 벌크 부하 데이터를 제공하는 것으로 설명될 수 있다.The data stream may also be associated with historical data, transaction data, and the like, which may be incorporated or updated periodically in the n-dimensional cube rather than on a continuous basis. This type of data source can generally be described as providing bulk load data.

n-차원 큐브로의 편입을 위해 새로운 데이터를 식별하기 위한 프로세스는 증분적으로 로딩된 데이터 및 벌크-부하 데이터 양자에 대해 유사하게 동작할 수 있다. 연산(302)은 새롭게 발견된 차원에 기반하여 n-차원 큐브에 새로운 슬라이스를 추가하는 것을 묘사한다. 도 1a를 참조하면, 새로운 슬라이스의 추가는, 도 1a에서의 파티션(110)과 같은, 슬라이스를 호스팅할 파티션을 배정하는 것, 슬라이스를 복제본(114)과 같은 복제본으로 복제하는 것, 및 리파지토리(108)를 업데이트하는 것을 수반할 수 있다. 다양한 실시형태에서, 새로운 차원을 편입시키는 분석계는 이들 단계가 완료되기 이전에 수행될 수 있다.The process for identifying new data for incorporation into an n-dimensional cube can operate similarly for both incrementally loaded data and bulk-loaded data. Operation 302 depicts adding a new slice to an n-dimensional cube based on the newly found dimension. Referring to FIG. 1A, the addition of a new slice includes assigning a partition to host the slice, such as partition 110 in FIG. 1A, replicating the slice to a replica, such as replica 114, and a repository ( 108) may involve updating. In various embodiments, analytical systems incorporating new dimensions may be performed before these steps are completed.

연산(304)은 데이터 스트림으로부터 들어오는 데이터에서 식별된 새로운 속성, 척도, 또는 다른 값에 기반하여 하나 이상의 슬라이스를 업데이트하는 것을 묘사한다. 실시형태는 파티션 상에 유지된 슬라이스 데이터를 업데이트하고 데이터의 복제를 트리거링할 수 있다. Operation 304 depicts updating one or more slices based on new attributes, measures, or other values identified in data coming from the data stream. Embodiments can update slice data maintained on a partition and trigger the replication of the data.

실시형태는 또한, 슬라이스, 슬라이스 영역, 및 데이터 포인트를, 그것들이 새롭게 도착된 데이터에 기인하여 구식으로 렌더링되면, 진부한 것으로 마킹하는 것을 포함하여, 데이터 사전이 업데이트된 데이터의 존재를 반영하도록 업데이트되게 야기할 수 있다. 연산(306)은 슬라이스, 슬라이스 영역, 및 데이터 포인트의 리프레시 상태 및 종속성 정보를 유지하는 것을 묘사한다. 실시형태는 종속성 정보에 대해 여러 다른 레벨의 세밀도를 채용할 수 있다. 일 실시형태는, 예를 들어, 데이터 슬라이스 레벨에서만 거친 세밀도를 유지할 수 있다.Embodiments also allow data dictionaries to be updated to reflect the presence of updated data, including marking slices, slice regions, and data points as obsolete if they are rendered outdated due to newly arrived data. Can cause. Operation 306 depicts maintaining the refresh status and dependency information of slices, slice regions, and data points. Embodiments may employ several different levels of granularity for dependency information. One embodiment may maintain coarse granularity only at the data slice level, for example.

연산(308)은 새롭게 추가된 슬라이스를 증분적으로 파퓰레이팅하는 것 및 기존 슬라이스를 증분적으로 리프레시하는 것을 묘사한다. 실시형태는 새로운 차원의 존재의 발견시 새로운 슬라이스를 추가할 수 있는데, 그때 비교적 작은 양의 관련 데이터가 - 하나 또는 심지어 영만큼 적은 데이터 포인트가 - 이용가능할 수 있다. 따라서, 슬라이스는 본질적으로 공백 상태로 생성되고 슬라이스와 관련 있는 데이터가 데이터 스트림을 통해 도착함에 따라 파퓰레이팅될 수 있다. Operation 308 depicts incrementally populating a newly added slice and incrementally refreshing an existing slice. Embodiments may add new slices upon discovery of a new dimension of existence, where a relatively small amount of relevant data—one or even zero as few data points—is available. Thus, a slice is created essentially empty and can be populated as data associated with the slice arrives through the data stream.

연산(310)에 의해 묘사된 바와 같이, 다양한 실시형태는 새로운 슬라이스로부터, 또는 새로운 슬라이스 내의 슬라이스 영역 또는 데이터 포인트로부터 기존 슬라이스, 슬라이스 영역 또는 데이터 포인트로의 종속성 링크를 형성함으로써 새롭게 추가된 슬라이스에서의 뷰를 부분적으로 실체화할 수 있다. 새로운 슬라이스는 링크의 가용성이 새로운 슬라이스 내의 데이터 포인트의 응답적 계산에 대해 그것이 필요로 될 때 허용할 수 있기 때문에 부분적으로 실체화된다고 생각될 수 있다.As depicted by operation 310, various embodiments may be used in a newly added slice by forming a dependency link from a new slice or from a slice region or data point within a new slice to an existing slice, slice region or data point. You can partially materialize the view. The new slice can be considered partially materialized because the availability of the link can tolerate when it is needed for the responsive calculation of data points in the new slice.

연산(312)에 의해 묘사된 바와 같이, 실시형태는 계산을 위한 우선순위에 기반하여 추가된 슬라이스에서의 데이터 포인트를 부분적으로 컴퓨팅할 수 있다. 실시형태는 우선순위를 결정하기 위한 다양한 인자를 이용할 수 있다. 일 실시형태에서, 사용자 관심은 계산의 우선순위를 결정하기 위한 다양한 인자에 의해 추정될 수 있다. 사용자 관심은, 예를 들어, 데이터 포인트 위로의 호버링과 같은, 마우스 움직임을 모니터링함으로써 추정될 수 있다. 클라이언트 애플리케이션은 마우스 움직임을 모니터링하고 대응하는 정보를 클라우드-기반 분석계 플랫폼에 송신할 수 있다. 정보는, 데이터로의 드릴-다운(drill-down) 소망을 나타낼 수 있는, 사용자가 마우스를 사용하여 위로 호버링하고 있었던 슬라이스 데이터의 영역을 나타낼 수 있다. 실시형태는 그때 드릴-다운에 필요한 데이터의 계산을 트리거링할 수 있다. 일 실시형태는 또한 우선순위결정되도록 데이터를 분류하고 카테고리를 각각의 카테고리에 대한 관심의 추정된 레벨에 상관시킴으로써 관심을 추정할 수 있다. 다양한 추가적 기술은, 다른 데이터와의 종속성 정도와 같이, 우선순위를 결정하도록 채용될 수 있다. As depicted by operation 312, an embodiment may partially compute data points in an added slice based on priorities for computation. Embodiments may use various factors for determining priorities. In one embodiment, user interest may be estimated by various factors for prioritizing calculations. User interest can be estimated by monitoring mouse movements, such as hovering over data points, for example. The client application can monitor mouse movements and send corresponding information to the cloud-based analytics platform. The information may indicate the area of slice data that the user was hovering over with the mouse, which may indicate a drill-down desire to the data. Embodiments may then trigger the calculation of data needed for drill-down. One embodiment may also estimate interest by classifying the data to be prioritized and correlating the categories to the estimated levels of interest for each category. Various additional techniques may be employed to determine priorities, such as the degree of dependency with other data.

연산(314)은 총계 데이터를 재사용함으로써 슬라이스의 컴퓨팅을 최적화하는 것을 묘사한다. 슬라이스 내의 다양한 데이터 포인트의 계산은 더 많은 수의 값들의 총계를 형성하도록 조합되거나, 또는 더 적은 수의 값들의 총계를 형성하도록 분할될 수 있는 총계 값을 수반할 수 있다. 실시형태는 총계 재사용과 함께 사용하기 위해 종속성 그래프 정보를 유지할 수 있다. Operation 314 depicts optimizing the computing of the slice by reusing aggregate data. The calculation of the various data points in the slice may involve total values that may be combined to form a larger number of values, or divided to form a smaller number of values. Embodiments may maintain dependency graph information for use with aggregate reuse.

연산(316)은 반영에 기반하여 슬라이스 컴퓨팅을 최적화하는 것을 묘사한다. 여기에서, 용어 반영은 관련된 차원들 간 형성된 대각선 축 상에서 (하나 이상의 슬라이스 상으로 투영될 수 있는) n-차원 큐브 매트릭스를 프로세싱하는 것, 및 대각선의 하나의 절반 상에서의 완료된 컴퓨팅을 사용하여 다른 절반 상에서의 컴퓨팅을 완료하는 것을 수반하는 기술을 지칭할 수 있다. 예를 들어, 모델-년-판매를 수반하는 계산은 년-모델-판매를 수반하는 계산을 수행하는데 재사용될 수 있다. 이러한 기술은 수가 임계 값 위에 있는 속성의 분포에 걸쳐 분산된 (판매와 같은) 단일 키 성능 표시자가 있는 것에 응답하여 적용될 수 있다.Operation 316 depicts optimizing slice computing based on reflection. Here, the term reflection refers to processing an n-dimensional cube matrix (which can be projected onto one or more slices) on a diagonal axis formed between related dimensions, and the other half using completed computing on one half of the diagonal. It may refer to a technique that involves completing computing on the screen. For example, calculations involving model-year-sales can be reused to perform calculations involving year-model-sales. This technique can be applied in response to having a single key performance indicator (such as sales) distributed over a distribution of attributes whose number is above a threshold.

다양한 실시형태에서, 새로운 차원은 n-차원 큐브에 추가될 수 있다. 새로운 차원은, 새로운 차원을 추가하라는 요청을 수신하는 것, n-차원 큐브에 이미 표현되지 않은 차원에 대응하는 데이터 스트림으로부터의 데이터를 수신하는 것 등과 같은, 다양한 이벤트 또는 조건에 응답하여 추가될 수 있다. 실시형태는 데이터 슬라이스를 형성하고 그것을 n-차원 큐브를 구성할 수 있는 복수의 추가적 데이터 슬라이스에 추가함으로써 새로운 차원을 추가할 수 있다. 슬라이스가 호스팅되는 컴퓨팅 노드에 대한 정보를 포함할 수 있는, 새로운 데이터 슬라이스를 기술하는 정보는 n-차원 큐브에 대한 정보를 포함하고 있는 리파지토리에 추가될 수 있다. 리파지토리는 슬라이스-간 종속성 정보를 포함할 수 있다.In various embodiments, new dimensions can be added to the n-dimensional cube. The new dimension can be added in response to various events or conditions, such as receiving a request to add a new dimension, receiving data from a data stream corresponding to a dimension that is not already represented in the n-dimensional cube. have. Embodiments may add new dimensions by forming a data slice and adding it to a plurality of additional data slices that may constitute an n-dimensional cube. Information describing the new data slice, which may include information about the computing node on which the slice is hosted, may be added to the repository containing information about the n-dimensional cube. The repository may include inter-slice dependency information.

데이터 슬라이스는 새로운 차원과 n-차원 큐브에 이미 표현된 하나 이상의 다른 차원의 교차점에 대응하는 복수의 데이터 포인트를 포함할 수 있다. 총계 및 다른 유도된 값과 같은 값은 데이터 포인트와 연관될 수 있다.The data slice may include a plurality of data points corresponding to the intersections of the new dimension with one or more other dimensions already represented in the n-dimensional cube. Values such as totals and other derived values can be associated with the data points.

새로운 데이터 슬라이스를 형성하는 것은 n-차원 큐브에서 데이터 포인트의 계층구조를 부분적으로 실체화하는 것을 포함할 수 있다. 부분적으로 실체화된 계층구조는 계층구조에서의 데이터 포인트와 연관된 값 중 영 개 이상을 계산하는 것을 포함할 수 있다. 이들 데이터 포인트의 계산은 그것들이 필요로 될 때까지 연기될 수 있다. 데이터 포인트의 각각을 예비-계산하는 대신에, 실시형태는 데이터 포인트에 대한 종속성 정보를 예비-계산할 수 있다. 예를 들어, 제1 데이터 포인트와 연관된 값은 제2 데이터 포인트와 연관된 값을 계산하는데 사용될 수 있다. 실시형태는 n-차원 큐브에 새로운 차원의 추가시 이러한 종속성을 식별하고, 또한 종속성을 기술하는 정보를 저장할 수 있다. 종속성을 기술하는 정보는 데이터 슬라이스 내에, 또는 외부에 리파지토리에 저장될 수 있다. 일부 경우에는, 슬라이스-간 종속성이 있을 수 있다. 그러한 경우에, 실시형태는, 데이터 슬라이스를 호스팅하는 컴퓨팅 노드 상에보다는, 중앙 리파지토리에 종속성 정보를 저장할 수 있다.Forming a new data slice may include partially materializing a hierarchy of data points in the n-dimensional cube. The partially materialized hierarchy may include calculating zero or more of the values associated with the data points in the hierarchy. The calculation of these data points can be postponed until they are needed. Instead of pre-computing each of the data points, embodiments can pre-calculate the dependency information for the data points. For example, the value associated with the first data point can be used to calculate the value associated with the second data point. Embodiments may identify this dependency upon the addition of a new dimension to the n-dimensional cube and may also store information describing the dependency. Information describing the dependency may be stored in the repository within or outside the data slice. In some cases, there may be an inter-slice dependency. In such a case, an embodiment can store dependency information in a central repository, rather than on the computing node hosting the data slice.

실시형태는 결정된 우선순위에 기반하여 데이터 포인트와 연관된 값을 계산할 수 있다. 계산을 위한 우선순위는 데이터 포인트와 연관된 값을 계산하기 위한 상대적 순서를 나타낼 수 있고, 또한 값을 판독하라는 요청에 응답할 필요가 있을 때까지 또는 없는 한 값이 컴퓨팅되지 않아야 함을 나타낼 수 있다.An embodiment can calculate a value associated with a data point based on the determined priority. The priority for the calculation may indicate a relative order for calculating the value associated with the data point, and may also indicate that the value should not be computed until or until it needs to respond to a request to read the value.

실시형태는 다양한 인자에 기반하여 연기된 계산의 우선순위를 조절할 수 있다. 이것은 계산을 즉시 수행하는 것을 포함할 수 있다. 실시형태는, 국한되는 것은 아니지만, 계산될 데이터 포인트를 포함하고 있는 계층구조와 개념상 유사할 수 있는 계층구조에서의 데이터와 같은, 동일한 데이터 상의 또는 유사한 데이터 상의 이전 액세스 패턴, 사용자 조치 등을 포함하는 인자에 대한 우선순위를 조절할 수 있다. 예를 들어, 실시형태는 특정 유형의 드릴-다운, 드릴-업, 또는 피벗 연산이 공통적으로 수행된다고 결정하고 관련된 계산은 고도로 우선순위결정 또는 즉시 수행할 수 있다.Embodiments can adjust the priority of deferred calculations based on various factors. This may include performing the calculation immediately. Embodiments include, but are not limited to, previous access patterns on the same data or similar data, user actions, and the like, such as data in a hierarchy that may be conceptually similar to the hierarchy containing the data points to be calculated. You can adjust the priority of the arguments. For example, an embodiment may determine that certain types of drill-down, drill-up, or pivot operations are performed in common and the associated calculations may be highly prioritized or performed immediately.

계산의 우선순위를 결정하는데 이용될 수 있는 다른 인자는 보안이다. 실시형태는, 예를 들어, 차원, 계층구조 또는 n-차원 큐브와 연관된 것들과 같은, 다양한 보안 속성에 기반하여 데이터 포인트를 계산하기 위한 우선순위를 결정할 수 있다.Another factor that can be used to prioritize computation is security. Embodiments may determine priorities for calculating data points based on various security attributes, such as those associated with dimensions, hierarchies, or n-dimensional cubes, for example.

실시형태는 계산을 위한 결정된 우선순위를 나타내는 값을 정렬하는 것에 기반하여 데이터 포인트를 계산 아니면 컴퓨팅하도록 결정할 수 있다. 예를 들어, 실시형태는 데이터 포인트에(또는 데이터 포인트와 연관된 슬라이스 또는 계층구조의 영역에) 우선순위 스코어를 배정하고, 그에 따라 데이터 포인트를 정렬할 수 있다. 다양한 기술은 데이터 포인트와 연관된 우선순위 값을 표현하는 콤팩트, 정렬가능한 구조를 생성하도록 채용될 수 있다.An embodiment may determine to calculate or compute a data point based on sorting values indicative of the determined priority for calculation. For example, an embodiment may assign a priority score to a data point (or an area of a slice or hierarchy associated with the data point) and arrange the data points accordingly. Various techniques may be employed to create a compact, orderable structure that represents a priority value associated with a data point.

실시형태는 경로의 베이스에서의 값에 대한 변경 다음에 재계산을 필요로 할 수 있는 데이터 포인트의 계층구조에서의 경로를 식별하도록 종속성 정보를 채용할 수 있다. 예를 들어, 계층구조의 베이스에서의 값이 업데이트될 때, 그 선조는 재계산을 요구할 수 있다. 실시형태는 변경된 값과 연관된 데이터 포인트와 선조 간 경로를 식별하고, 그 경로를 따른 데이터 포인트를 후손에 대해 구식인 것으로 마킹할 수 있다. 선조 데이터 포인트의 계산은 그 후 여기에서 개시된 다양한 기술을 사용하여 우선순위결정될 수 있다.Embodiments may employ dependency information to identify a path in a hierarchy of data points that may require recalculation following a change to a value at the base of the path. For example, when a value at the base of the hierarchy is updated, the ancestor may require recalculation. Embodiments may identify paths between ancestors and data points associated with the changed values, and mark data points along that path as outdated for descendants. The calculation of ancestor data points can then be prioritized using the various techniques disclosed herein.

일부 경우에, 데이터 포인트는 데이터의 불완전 세트에 종속할 수 있다. 예를 들어, 현재 24-시간 기간 동안의 총계 값은 그 24-시간 기간이 경과할 때까지는 불완전할 수 있다. 실시형태는 불완전한 데이터 세트와 연관된 데이터 포인트를 추적하고 데이터 세트가 완전하다고 생각될 수 있을 때에 적어도 부분적으로 기반하여 컴퓨팅 우선순위를 조절할 수 있다. 예를 들어, 불완전한 데이터 세트에 종속하는 데이터 포인트의 선조는 데이터세트가 불완전한 동안 리컴퓨팅을 위한 낮은 우선순위로서 마킹될 수 있다. 그 후, 우선순위는 데이터세트가 완전하게 될 때 상향 조절될 수 있다.In some cases, the data point may depend on an incomplete set of data. For example, the total value for the current 24-hour period may be incomplete until the 24-hour period elapses. Embodiments can track data points associated with an incomplete data set and adjust computing priorities based at least in part on when the data set can be considered complete. For example, the ancestors of the data points that depend on the incomplete data set may be marked as low priority for recomputing while the data set is incomplete. The priority can then be adjusted up when the dataset is complete.

일 실시형태에서, 데이터 포인트는 컴퓨팅될 데이터 포인트의 후손과 연관된 값을 외삽하는 것에 기반하여 컴퓨팅될 수 있다. 예를 들어, 현재 주간 판매 수치에 대한 총계 값은 그 주의 마지막 날 이전에는 불완전할 수 있다. 그렇지만, 빠져 있는 데이터 포인트에 대한 값은, 예를 들어, 이전 주에서의 대응하는 날에 기반하여 외삽될 수 있다.In one embodiment, data points may be computed based on extrapolating values associated with descendants of data points to be computed. For example, the total value for the current weekly sales figures may be incomplete before the last day of the week. However, values for missing data points may be extrapolated based on, for example, the corresponding day in the previous week.

도 3b는 n-차원 큐브에서 데이터 포인트의 계산을 연기하기 위한 프로세스의 일 실시형태를 묘사하는 순서도이다. 연산의 시퀀스로서 묘사되기는 하지만, 당업자는 묘사된 순서가 본 발명의 범위를 한정하는 것으로 해석되지 않아야 함과 그리고 묘사된 연산 중 적어도 일부는 개조, 생략, 순서변경, 부가적 연산으로 보충, 또는 병렬로 수행될 수 있음을 인식할 것이다. 묘사된 프로세스의 실시형태는, 여기에서 설명된 컴퓨팅 시스템과 같은, 컴퓨팅 시스템에 의해 실행되는 컴퓨터-실행가능한 명령어의 다양한 조합을 사용하여 구현될 수 있다.3B is a flow chart depicting one embodiment of a process for deferring the calculation of data points in an n-dimensional cube. Although described as a sequence of operations, one of ordinary skill in the art should not interpret the described order as limiting the scope of the present invention, and at least some of the described operations may be modified, omitted, reordered, supplemented with additional operations, or parallelized. Will be appreciated. Embodiments of the depicted process may be implemented using various combinations of computer-executable instructions executed by a computing system, such as the computing system described herein.

연산(350)은 제1 데이터 포인트와 제2 데이터 포인트 간 종속성을 식별하는 일 실시형태를 묘사한다. 종속성은, 제1 데이터 포인트가 제2 데이터 포인트에 대한 값을 유도하는데 사용되는 계산으로의 입력으로서 역할하는 것과 같은, 2개의 값들 간 관계를 반영할 수 있다. 제1 데이터 포인트가 변경될 때, 제2 데이터 포인트는 정확한 채로 있기 위해 재계산될 필요가 있을 수 있다. 그렇지만, 실시형태는, 여기에서 제시되는 바와 같이, 제2 데이터 포인트의 계산을 연기하고 다양한 기술 및 메커니즘을 사용하여 계산을 스케줄링할 수 있다.Operation 350 depicts one embodiment of identifying a dependency between a first data point and a second data point. The dependency may reflect the relationship between the two values, such as the first data point serving as input to the calculation used to derive the value for the second data point. When the first data point is changed, the second data point may need to be recalculated to remain accurate. However, embodiments may defer the calculation of the second data point and schedule the calculation using various techniques and mechanisms, as presented herein.

연산(352)은 제2 데이터 포인트가 액세스될 확률을 결정하는 것을 묘사한다. 데이터 포인트의 액세스는 다른 데이터 포인트와 관련된 컴퓨팅에서의 그 사용을 수반할 수 있다. 이러한 목적으로 액세스의 확률은 종속성 그래프 또는 유사한 구조를 사용하여, 다양한 실시형태에 의해, 계산될 수 있다. 다양한 다른 인자는 제2 데이터 포인트가 액세스될 확률을 결정하도록 다양한 실시형태에 의해 이용될 수 있다. Operation 352 depicts determining the probability that a second data point will be accessed. Access of a data point may involve its use in computing in connection with other data points. For this purpose, the probability of access can be calculated by various embodiments, using a dependency graph or similar structure. Various other factors may be used by various embodiments to determine the probability that a second data point will be accessed.

일 실시형태에서, 제2 데이터 포인트가 액세스될 확률은 현재 또는 장래 드릴-다운, 드릴-업, 또는 피벗 연산을 나타내거나 시사하는 인터페이스와의 사용자 상호작용을 나타내는 정보를 수신하는 것에 적어도 부분적으로 기반하여 결정될 수 있다. 더 일반적 관점에서, 사용자는 데이터 포인트가 액세스될 증가된 확률 또는 확실성을 나타내는 방식으로 사용자 인터페이스와 상호작용할 수 있다. 이들 조치는 데이터 필드 위로의 마우스 호버링, 드릴-다운, 드릴-업, 또는 피벗이 수행되어야 함을 나타내는 버튼 위로의 호버링 또는 클릭킹 등을 포함할 수 있다.In one embodiment, the probability that the second data point is accessed is based at least in part on receiving information indicative of user interaction with an interface representing or suggesting a current or future drill-down, drill-up, or pivot operation. Can be determined. In a more general aspect, the user can interact with the user interface in a manner that indicates increased probability or certainty that the data point will be accessed. These actions may include hovering over a data field, drilling down, drilling up, or hovering over a button indicating that pivoting should be performed, and the like.

실시형태는 또한 사용자에 디스플레이를 위해 클라이언트 애플리케이션에 송신되었던 데이터를 고려할 수 있다. 예를 들어, 계층구조의 레벨 "N"에서의 데이터가 클라이언트 애플리케이션에서 디스플레이 중이면, 레벨 "N-1" 및 "N+1"에서의 데이터 포인트는 액세스의 증가된 개연성을 가질 수 있다.Embodiments may also consider data that has been sent to the client application for display to a user. For example, if data at level "N" of the hierarchy is being displayed in the client application, data points at levels "N-1" and "N + 1" may have increased likelihood of access.

실시형태는 데이터 포인트를 계산함에 있어서 경과할 수 있는 시간과 데이터 포인트를 계산하는 비용의 비교를 이용할 수 있다. 일부 경우에서, 호스팅된 데이터 분석계 서비스의 고객은 비용 대비 성능에 대한 선호를 나타낼 수 있다. 그러한 경우에, 일 실시형태는 지연을 최소화하도록 컴퓨팅을 공격적으로 우선순위결정할 수 있다. 다른 경우에, 고객은 데이터 분석계 서비스를 이용하는 비용을 감축하기를 바랄 수 있고, 비용 절약에 대한 선호를 나타낼 수 있다. 비용 절약은, 일부 경우에, 계산을 연기하는 것으로부터 초래될 수 있는 감소된 성능과의 절충으로서 달성될 수 있다. Embodiments can use a comparison of the time that can elapse in calculating data points with the cost of calculating the data points. In some cases, customers of hosted data analytics services may indicate a preference for performance versus cost. In such case, one embodiment may aggressively prioritize computing to minimize latency. In other cases, the customer may wish to reduce the cost of using the data analytics service and may indicate a preference for cost savings. Cost savings can be achieved, in some cases, as a compromise with the reduced performance that may result from delaying the calculation.

실시형태는 n-차원 큐브와 관련된 트랜잭션 데이터 소스에 대한 또는 n-차원 큐브에 대한 액세스 패턴을 이용할 수 있다. 예를 들어, n-차원 큐브에 대비하여 또는 트랜잭션 데이터 소스에 대비하여 수행된 이전 질의는 다른 것들보다 더 큰 중요도를 갖는 특정 총계 또는 다른 값을 나타낼 수 있다. 그러한 총계 또는 다른 값과 관련된 데이터 포인트는 액세스될 증가된 개연성을 가질 수 있다. 이들 데이터 포인트는, 그에 따라, 다른 데이터 포인트보다 계산을 위한 더 높은 우선순위를 배정받을 수 있다. Embodiments may use access patterns for transactional data sources associated with n-dimensional cubes or for n-dimensional cubes. For example, a previous query performed against an n-dimensional cube or against a transactional data source may represent a specific total or other value with greater importance than others. Data points associated with such totals or other values may have increased probability to be accessed. These data points may therefore be assigned a higher priority for calculation than other data points.

도 4는 클라우드-기반 분석계에 적응된 n-차원 큐브에서 연기된 컴퓨팅을 수행하기 위한 프로세스의 일 실시형태를 묘사하는 순서도이다. 연산의 시퀀스로서 묘사되기는 하지만, 당업자는 묘사된 순서가 본 발명의 범위를 한정하는 것으로 해석되지 않아야 함과 그리고 묘사된 연산 중 적어도 일부는 개조, 생략, 순서변경, 부가적 연산으로 보충, 또는 병렬로 수행될 수 있음을 인식할 것이다. 묘사된 프로세스의 실시형태는, 여기에서 설명된 컴퓨팅 시스템과 같은, 컴퓨팅 시스템에 의해 실행되는 컴퓨터-실행가능한 명령어의 다양한 조합을 사용하여 구현될 수 있다.4 is a flow diagram depicting one embodiment of a process for performing deferred computing in an n-dimensional cube adapted to a cloud-based analysis system. Although described as a sequence of operations, one of ordinary skill in the art should not interpret the described order as limiting the scope of the present invention, and at least some of the described operations may be modified, omitted, reordered, supplemented with additional operations, or parallelized. Will be appreciated. Embodiments of the depicted process may be implemented using various combinations of computer-executable instructions executed by a computing system, such as the computing system described herein.

실시형태는, 연산(400)에 의해 묘사된 바와 같이, 데이터를 기존 메모리 구조에 첨부함으로써 새롭게 식별된 속성 및 관련된 총계 좌표를 n-차원 큐브에 추가할 수 있다. 실시형태는 램("RAM")과 같은 시스템 메모리에 슬라이스 데이터 구조를 유지할 수 있다. 실시형태는, 부가적 파티션에 복제될 수 있는, 배킹 파티션(backing partition) 상에 슬라이스 데이터 구조의 사본을 더 유지할 수 있다.Embodiments may add newly identified attributes and associated aggregate coordinates to the n-dimensional cube by attaching data to existing memory structures, as depicted by operation 400. Embodiments may maintain slice data structures in system memory, such as RAM ("RAM"). Embodiments may further maintain a copy of the slice data structure on a backing partition, which may be replicated to additional partitions.

다양한 실시형태에서, 새로운 차원은 최종 사용자에 의해 자동-발견가능하도록 될 수 있다. 실시형태는, 새로운 차원의 표시를 최종 사용자에 디스플레이할 수 있는, 내장가능한 분석계 모듈을 동작시키는 클라이언트 디바이스에 새로운 차원을 나타내는 정보를 송신할 수 있다. 마우스 움직임 또는 마우스 클릭과 같은, 새로운 차원에 대한 사용자의 반응은 새로운 차원에 대한 사용자의 관심을 측정하고 n-차원 큐브에서의 데이터 포인트를 컴퓨팅하기 위한 우선순위를 조절하도록 사용될 수 있다. In various embodiments, the new dimension can be made auto-discoverable by the end user. An embodiment can send information indicative of a new dimension to a client device operating an embeddable analyzer system that can display an indication of the new dimension to an end user. The user's response to the new dimension, such as mouse movements or mouse clicks, can be used to measure the user's interest in the new dimension and adjust priorities for computing data points in the n-dimensional cube.

연산(402)에 의해 묘사된 바와 같이, 실시형태는 중앙집중화된 데이터 사전을 통해 슬라이스를 첨부 및 교체할 수 있다. 데이터 사전은 데이터베이스 관리 시스템에서의 하나 이상의 테이블을 포함할 수 있다. 데이터 사전은 개선된 부하 밸런싱 능력 및 증가된 신뢰도를 제공할 목적으로 파티셔닝 및 복제될 수 있다. 연산(404)에 의해 묘사된 바와 같이, 실시형태는, 용어 매트릭스 또는 매트릭스들에 의해 지칭될 수 있는, n-차원 큐브의 영역을 나타내는 다양한 인덱스 구조를 유지할 수 있다. 실시형태는 또한 슬라이스, 슬라이스 영역, 및 데이터 포인트에 대한 인덱스 구조를 유지할 수 있다. As depicted by operation 402, an embodiment can attach and replace slices through a centralized data dictionary. The data dictionary may include one or more tables in a database management system. Data dictionaries can be partitioned and replicated for the purpose of providing improved load balancing capabilities and increased reliability. As depicted by operation 404, an embodiment may maintain various index structures that represent regions of an n-dimensional cube, which may be referred to by the term matrix or matrices. Embodiments may also maintain index structures for slices, slice regions, and data points.

실시형태는, 연산(406)에 의해 묘사된 바와 같이, 종속성 트리를 구축함으로써 n-차원 큐브의 뷰를 부분적으로 실체화할 수 있다. 종속성 트리를 구축하는 것은 n-차원 큐브에서의 각각의 좌표 교차점에서 데이터 포인트를 직접 계산하는 대신에 수행될 수 있다. 다양한 기술은, 연산(408, 410)에 의해 묘사된 것들과 같이, 종속성 트리를 구축하도록 채용될 수 있다.Embodiments may partially materialize views of n-dimensional cubes by building a dependency tree, as depicted by operation 406. Building the dependency tree can be performed instead of directly calculating the data points at each coordinate intersection in the n-dimensional cube. Various techniques may be employed to build the dependency tree, such as those depicted by operations 408 and 410.

연산(408)은 종속성 트리를 구축하도록 차원 속성 내에서의 고유 계층구조를 이용하는 것을 묘사한다. 실시형태는 가장 거친 입도에서의 총계보다 더 높은 우선순위로 가장 미세한 입도에서의 총계를 계산할 수 있다. 미세-입도 총계는 그 후 거친-입도 총계를 형성하도록 투영될 수 있다. 실시형태는, 사용자 관심의 표시에 응답하여서와 같이, 필요로 될 때까지 거친-입도 총계의 계산을 연기할 수 있다.Operation 408 depicts using a unique hierarchy within the dimensional attribute to build a dependency tree. Embodiments may calculate the total at the finest granularity with a higher priority than the total at the coarsest particle size. The fine-particle totals can then be projected to form coarse-grained totals. Embodiments may postpone the calculation of coarse-grained totals until needed, such as in response to an indication of user interest.

연산(410)은 유사한 종속성 트리가 적용되어야 하는 n-차원 큐브 구조를 식별하기 위해 추론, 추정, 분류 모델, 및 다른 유사한 기술을 사용하는 것을 묘사한다. 새로운 차원, 척도 또는 속성은, 추가적 개조와 함께 또는 없이, 그 종속성 모델이 클로닝될 수 있도록 기존 차원성과의 유사성을 가질 수 있다. 실시형태는, 일부 경우에, 새로운 속성들 간 고유한 대응을 식별할 수 있을 수 있다. 예를 들어, 새로운 스토어는 기존 스토어와 동일한 데이터 종속성을 가질 수 있다. 고유한 대응이 발견되지 않는 경우, 가장 가까운 이웃이, 분류와 같은, 기술을 사용하여 발견될 수 있다. 가장 가까운 이웃의 종속성 트리가 그 후 발견되고 새로운 차원, 척도, 또는 속성에 적용을 위해 필요에 따라 조절될 수 있다.Operation 410 depicts the use of inference, estimation, classification models, and other similar techniques to identify n-dimensional cube structures to which similar dependency trees should be applied. New dimensions, measures, or attributes may have similarities to existing dimensions so that the dependency model can be cloned, with or without additional modifications. An embodiment may, in some cases, identify a unique correspondence between new attributes. For example, a new store can have the same data dependencies as an existing store. If no unique correspondence is found, the nearest neighbor can be found using a technique, such as a classification. The dependency tree of the nearest neighbor can then be found and adjusted as needed for application to a new dimension, measure, or property.

분류 및 추론 기술은 클로닝되어야 하는 n-차원 큐브 구조를 식별하기 위해 n-차원 큐브의 액세스 패턴에 적용될 수 있다. 예를 들어, n-차원 큐브의 사용자는 그룹으로 분류될 수 있다. 그룹 내의 사용자의 액세스 패턴은, 예를 들어, 어느 n-차원 큐브 구조가 가장 빈번하게 액세스되는지 결정하는 것, 전형적 드릴-다운 깊이를 식별하는 것, 공통적 피벗을 식별하는 것 등에 의해 분석될 수 있다. 동일한 그룹 내에 드는 새로운 사용자에 대한 n-차원 큐브 구조를 구축할 때, 이러한 정보는, 컴퓨팅 우선순위와 같은, 새로운 n-차원 큐브 구조의 다양한 태양에서 반영될 수 있다.Classification and inference techniques can be applied to the access pattern of the n-dimensional cube to identify the n-dimensional cube structure to be cloned. For example, users of n-dimensional cubes can be classified into groups. The access patterns of users in a group can be analyzed, for example, by determining which n-dimensional cube structure is accessed most frequently, identifying typical drill-down depths, identifying common pivots, and the like. . When building an n-dimensional cube structure for new users within the same group, this information can be reflected in various aspects of the new n-dimensional cube structure, such as computing priority.

도 5a는 호스팅된 분석계 서비스를 제공하기 위한 시스템의 일 실시형태를 묘사하는 블록 선도이다. 호스팅된 분석계 시스템(500)은 시스템의 다양한 모듈의 활동을 조정하는 제어 평면(502)에 의해 관리될 수 있다. 5A is a block diagram depicting one embodiment of a system for providing a hosted analytics system service. The hosted analyzer system 500 may be managed by a control plane 502 that coordinates the activities of the various modules of the system.

이미지 렌더링(504) 모듈은, 그래프 및 차트와 같은, 매립형 사용자-인터페이스 컴포넌트에 대한 렌더링 서비스를 제공할 수 있다. 결과 세트 관리(506) 모듈은 분석을 수행한 결과와 관련 있는 이력 정보, 데이터 캐시 등을 유지하고 있을 수 있다. 사용자 인터페이스 카탈로그(508) 모듈은, 매립형 분석계 특징을 포함하는 애플리케이션의 사용자 인터페이스에 삽입될 수 있는, 이미지 등과 같은, 매립형 분석계에 대한 사용자 인터페이스 요소의 리파지토리를 유지하고 있을 수 있다. 보고 파라미터 관리(510) 모듈은, 시간 기간, 지리적 지역, 보고에 포함할 차원, 소망의 드릴-다운 레벨 등과 같은, 분석 보고를 발생시키는데 사용될 파라미터의 리파지토리를 포함할 수 있다.The image rendering 504 module may provide rendering services for embedded user-interface components, such as graphs and charts. The result set management 506 module may maintain historical information, data caches, and the like related to the results of performing the analysis. The user interface catalog 508 module may maintain a repository of user interface elements for an embedded analysis system, such as images, that may be inserted into the user interface of an application that includes embedded analysis system features. The reporting parameter management 510 module may include a repository of parameters to be used to generate an analysis report, such as time period, geographic region, dimensions to include in the report, desired drill-down levels, and the like.

총계(512) 모듈은 다양한 차원 및 차원의 조합에서 총계 값을 계산하기 위한 연산을 수행할 수 있다. 예를 들어, 총계(512) 모듈은 특정 상점, 지리적 지역, 및 주에 대한 매월, 매주, 및 매일 판매 데이터를 계산할 수 있다. The aggregate 512 module may perform operations to calculate aggregate values in various dimensions and combinations of dimensions. For example, the total 512 module can calculate monthly, weekly, and daily sales data for a particular store, geographic region, and week.

유도된 계산(514) 모듈은 총계 데이터 및 다른 정보에 기반하여 2차 계산을 수행할 수 있다. 맞춤형 계산(516) 모듈은 보고-특정적 또는 사용자-제공된 계산을 수행할 수 있다. 맞춤형 계산은, 예를 들어, 애플리케이션 발행자에 의해 제공될 수 있다.The derived calculation 514 module may perform secondary calculations based on the aggregate data and other information. The custom calculation 516 module can perform report-specific or user-provided calculations. Custom calculations may be provided, for example, by the application publisher.

시나리오 층(518) 모듈은 "홧-이프(what-if)" 시나리오의 시뮬레이션, 프로젝션 또는 다른 유형과 관련된 연산을 수행할 수 있다. 이것들은, 예를 들어, 애플리케이션 발행자에 의해 제공된 맞춤형 시나리오일 수 있다.The scenario layer 518 module may perform operations related to simulation, projection, or other types of “what-if” scenarios. These may be, for example, custom scenarios provided by the application publisher.

소스 및 접속 파라미터 카탈로그(520)는 다양한 정보 소스의 위치를 찾아내고 그에 접속하는데 사용되는 정보를 유지하고 있을 수 있다. 소스의 위치를 찾아내기 위한 정보는 네트워크 주소, 유니폼 리소스 로케이터("URL") 등을 포함할 수 있다. 접속하기 위한 정보는 다양한 형태의 크리덴셜, 계정, 사용자 이름 등을 포함할 수 있다.The source and connection parameter catalog 520 may maintain information used to locate and access various information sources. Information for locating the source may include a network address, a uniform resource locator (“URL”), and the like. Information for access may include various forms of credentials, accounts, user names, and the like.

메타데이터 관리(522) 모듈은, 관계형 데이터 소스(528), 비-관계형 데이터 소스(530), 파일-기반 소스(532), 스트리밍 소스(534), 및 클라우드-기반 데이터 소스(536)와 같은, 다양한 데이터 소스와 인터페이싱하는데 사용되는 다양한 형태의 메타데이터 및 다른 정보를 유지하고 있을 수 있다. 실시형태는 데이터 변환(524) 모듈과 함께 메타데이터 관리(522) 모듈로부터 메타데이터를 채용할 수 있다. 데이터 변환(524) 모듈은 들어오는 데이터 상에 데이터 변환 및 데이터 정화 연산을 수행할 수 있다.The metadata management 522 module is such as relational data source 528, non-relational data source 530, file-based source 532, streaming source 534, and cloud-based data source 536. It may maintain various forms of metadata and other information used to interface with various data sources. Embodiments may employ metadata from the metadata management 522 module in conjunction with the data transformation 524 module. The data transformation 524 module may perform data transformation and data cleansing operations on incoming data.

스케줄러(526) 모듈은 호스팅된 분석계 시스템(500)에 의해 수행되는 다양한 활동의 타이밍을 조정할 수 있다. 조정은 n-차원 큐브 재구축을 스케줄링하는 것, 데이터 검색을 스케줄링하는 것 등을 수반할 수 있다.The scheduler 526 module can adjust the timing of various activities performed by the hosted analyzer system 500. Coordination may involve scheduling n-dimensional cube reconstruction, scheduling data retrieval, and the like.

다양한 데이터 소스가 채용될 수 있다. 이것들은 SQL-기반 관계형 데이터베이스 관리 시스템과 같은 관계형 데이터 소스(528)는 물론 비-관계형 데이터 소스(530)도 포함한다. 다양한 비-관계형 데이터 소스(530)는 NoSQL 데이터베이스 시스템, 키-값 쌍 데이터베이스, 객체-관계형 데이터베이스 등을 포함할 수 있다. 문서 리파지토리, 로그 파일 등과 같은 다양한 파일-기반 소스(532)가 사용될 수 있다. 로그 파일은 또한, 데이터가 진행 중 기반으로 업데이트될 수 있는 데이터 소스의 다른 유형을 또한 포함할 수 있는, 스트리밍 데이터 소스(534)로서 처리될 수 있다. 다른 스트리밍 데이터 소스(534)로 분류될 수 있는 다른 일례는, 멀티-플레이어 비디오 게임과 같은, 비디오게임으로부터 발생된 데이터이다. Various data sources can be employed. These include non-relational data sources 530 as well as relational data sources 528, such as SQL-based relational database management systems. Various non-relational data sources 530 may include NoSQL database systems, key-value pair databases, object-relational databases, and the like. Various file-based sources 532 can be used, such as document repositories, log files, and the like. The log file may also be processed as streaming data source 534, which may also include other types of data sources from which data may be updated on an ongoing basis. Another example that may be classified as another streaming data source 534 is data generated from a videogame, such as a multi-player video game.

다양한 유형의 클라우드-기반 데이터 소스(536)가 사용될 수 있다. 이것들은 호스팅된 분석계 서비스의 제공자, 애플리케이션 발행자, 애플리케이션의 사용자, 또는 제3자에 의해 유지되는 다양한 웹 사이트 또는 데이터 소스를 포함할 수 있다. Various types of cloud-based data sources 536 may be used. These may include various web sites or data sources maintained by a provider of hosted analytics services, an application publisher, a user of an application, or a third party.

도 5b는 실시간 데이터 소스로부터의 데이터의 유입 및 프로세싱을 위한 프로세스를 묘사한다. 데이터 소스(560)는 어댑터(556) 및 정화 파이프라인(552)에 통신 결합될 수 있다. 데이터 소스(562)와 같은 부가적 데이터 소스는, 어댑터(558) 및 정화 파이프라인(554)과 같은, 다른 어댑터 및 파이프라인에 통신 결합될 수 있다.5B depicts a process for the inflow and processing of data from a real time data source. Data source 560 may be communicatively coupled to adapter 556 and purification pipeline 552. Additional data sources, such as data source 562, may be communicatively coupled to other adapters and pipelines, such as adapter 558 and purification pipeline 554.

어댑터(556)는 데이터 소스(560)로부터의 데이터를 정화 파이프라인(552)에 의한 프로세싱에 적합한 포맷으로 변환할 수 있다. 정화 파이프라인(552)에 의해 수행되는 연산은 들어오는 데이터 상에 하나 이상의 번역 또는 변환을 수행하는 것을 포함할 수 있다. 예는 어간 찾기, 기본형 찾기 등을 포함한다. 정화 파이프라인(552)은 멀티플렉싱일 수 있다. 이것은 각각의 수신지 n-차원 큐브에서 사용된 정규화된 포맷과 매칭하는 정규화된 포맷으로 데이터를 산출하기 위해 다수의 경로를 따라 정화를 수행하는 것을 포함할 수 있다. The adapter 556 may convert the data from the data source 560 into a format suitable for processing by the purification pipeline 552. The operations performed by the purification pipeline 552 may include performing one or more translations or transformations on the incoming data. Examples include stem finding, primitive finding, and the like. Purification pipeline 552 may be multiplexed. This may involve purging along multiple paths to produce data in a normalized format that matches the normalized format used in each destination n-dimensional cube.

도 5b는 분석계 및 저장(550) 모듈을 묘사한다. 이것은, 도 5a에서의 모듈(502-526)과 같은, 분석계를 수행하기 위한 다양한 컴포넌트를 지칭할 수 있다. 정화 파이프라인(552, 554)으로부터 들어오는 정화된 데이터는 분석계 및 저장(550) 모듈에 의해 프로세싱될 수 있다. 프로세싱은 총계를 수행하는 것, 맞춤형 계산을 수행하는 것, 시나리오 모델링 등과 같은 연산을 포함할 수 있다. 정화 파이프라인(552, 554)으로부터의 데이터뿐만 아니라, 어느 계산된 또는 유도된 값이라도, 적합한 n-차원 큐브에 라우팅 및 저장될 수 있다. 5B depicts the analyzer and storage 550 module. This may refer to various components for performing the analysis system, such as modules 502-526 in FIG. 5A. Purified data coming from the purge pipelines 552, 554 may be processed by the analyzer and storage 550 module. Processing may include operations such as performing totals, performing custom calculations, scenario modeling, and the like. Any calculated or derived value, as well as data from the purification pipelines 552, 554, can be routed and stored in a suitable n-dimensional cube.

본 발명의 실시형태는 많은 유형의 데이터베이스 관리 시스템("DBMS")과 함께 채용될 수 있다. DBMS는 저장 및 검색 연산이 수행될 수 있는 데이터의 조직된 집합을 유지하기 위한 소프트웨어 및 하드웨어 시스템이다. DBMS에서, 데이터는 전형적으로는 키 값과 추가적 데이터 간 연관에 의해 조직된다. 연관의 본성은 데이터의 집합에서 존재하는 현실-세계 관계에 기반할 수도 있고, 그것은 임의일 수도 있다. 데이터 정의, 질의, 업데이트 및 관리를 포함하는 다양한 연산이 DBMS에 의해 수행될 수 있다. 일부 DBMS는 구조화된 질의 언어("SQL")와 같은 질의 언어를 사용하여 데이터베이스와의 상호작용을 위해 제공되는 한편, 다른 것들은 put 및 get 등과 같은 연산을 포함하고 있는 API를 사용한다. 데이터베이스와의 상호작용은 또한, 하이퍼텍스트 마크업 언어("HTML") 및 확장 마크업 언어("XML")와 같은, 다양한 프로토콜 또는 표준에 기반할 수 있다. DBMS는 고체-상태 드라이브와 같은 하나 이상의 저장 디바이스 상에 데이터를 저장하도록 역할하는 저장 엔진과 같은 다양한 아키텍처 컴포넌트를 포함할 수 있다.Embodiments of the present invention may be employed with many types of database management system (“DBMS”). DBMSs are software and hardware systems for maintaining an organized set of data on which storage and retrieval operations can be performed. In a DBMS, data is typically organized by the association between key values and additional data. The nature of the association may be based on the real-world relationships that exist in the set of data, which may be arbitrary. Various operations can be performed by the DBMS, including data definitions, queries, updates, and management. Some DBMSs provide for interacting with the database using a query language such as Structured Query Language ("SQL"), while others use APIs that include operations such as put and get. Interaction with the database may also be based on various protocols or standards, such as hypertext markup language ("HTML") and extended markup language ("XML"). DBMSs may include various architectural components, such as storage engines, which serve to store data on one or more storage devices, such as solid-state drives.

도 6은 본 발명의 태양이 실시될 수 있는 분산형 컴퓨팅 환경의 일례를 묘사하는 선도이다. 다양한 사용자(600a)는 데이터 센터(620) 내의 다양한 컴퓨팅 노드(610a, 610b, 610c) 상에서 실행되는 프로세스로 통신 네트워크(604)를 통하여 통신하도록, 어느 유형의 컴퓨팅 디바이스(602a) 상에서라도 동작하는, 다양한 클라이언트 애플리케이션과 상호작용할 수 있다. 대안으로, 클라이언트 애플리케이션(602b)은 사용자 개입 없이 통신할 수 있다. 통신 네트워크(604)는, 인터넷, 유선 및 무선 랜, 광섬유 네트워크, 위성 통신 등을 포함하는, 통신 기술의 어느 조합이라도 포함할 수 있다. 어느 수의 네트워킹 프로토콜이라도 채용될 수 있다.6 is a diagram depicting an example of a distributed computing environment in which aspects of the present invention may be practiced. Various users 600a operate on any type of computing device 602a to communicate over communications network 604 in a process running on various computing nodes 610a, 610b, 610c in data center 620, Interact with a variety of client applications. Alternatively, client application 602b can communicate without user intervention. The communication network 604 may include any combination of communication technologies, including the Internet, wired and wireless LANs, fiber optic networks, satellite communications, and the like. Any number of networking protocols may be employed.

데이터 센터(620) 내에서 동작하는 컴퓨팅 노드(610a, 610b, 610c) 상에서 실행되는 프로세스와의 통신은 게이트웨이(606) 및 라우터(608)를 통하여 제공될 수 있다. 수많은 다른 네트워크 구성이 또한 채용될 수 있다. 도 6에 명시적으로 묘사되지는 않지만, 다양한 인증 메커니즘, 웹 서비스 층, 비즈니스 객체, 또는 다른 중간 층이 컴퓨팅 노드(610a, 610b, 610c) 상에서 실행되는 프로세스와의 통신을 중개하도록 제공될 수 있다. 이들 중간 층 중 일부는 자체가 컴퓨팅 노드 중 하나 이상 상에서 실행되는 프로세스를 포함할 수 있다. 컴퓨팅 노드(610a, 610b, 610c) 및 거기서 실행되는 프로세스는 또한 라우터(608)를 통하여 서로 통신할 수 있다. 대안으로, 별개의 통신 경로가 채용될 수 있다. 일부 실시형태에서, 데이터 센터(620)는, 컴퓨팅 노드 및 거기서 실행되는 프로세스가 다른 데이터 센터 내에서 동작하는 컴퓨팅 노드 및 프로세스와 통신할 수 있도록, 부가적 데이터 센터와 통신하도록 구성될 수 있다. Communication with processes running on computing nodes 610a, 610b, 610c operating within data center 620 may be provided through gateway 606 and router 608. Numerous other network configurations may also be employed. Although not explicitly depicted in FIG. 6, various authentication mechanisms, web services layers, business objects, or other intermediate layers may be provided to mediate communication with processes running on computing nodes 610a, 610b, 610c. . Some of these middle layers may themselves include processes running on one or more of the computing nodes. Computing nodes 610a, 610b, 610c and the processes running therein may also communicate with one another via router 608. Alternatively, separate communication paths may be employed. In some embodiments, data center 620 may be configured to communicate with additional data centers such that computing nodes and processes running therein may communicate with computing nodes and processes operating within other data centers.

컴퓨팅 노드(610a)는 하나 이상의 프로세서(616), 하나 이상의 메모리(618), 및 하나 이상의 저장 디바이스(614)를 포함하는 물리적 하드웨어 상에 상주하는 것으로 묘사된다. 컴퓨팅 노드(610a) 상의 프로세스는 운영 체제와 함께 실행될 수 있거나 대안으로, 프로세서(616), 메모리(618) 또는 저장 디바이스(614)와 같은, 물리적 자원과 직접 상호작용하는 베어-메탈 프로세스(bare-metal process)로서 실행될 수 있다.Computing node 610a is depicted as residing on physical hardware that includes one or more processors 616, one or more memories 618, and one or more storage devices 614. The process on computing node 610a may be executed with an operating system or, alternatively, a bare-metal process that directly interacts with a physical resource, such as processor 616, memory 618, or storage device 614. metal process).

컴퓨팅 노드(610b, 610c)는, 물리적 프로세서, 메모리 및 저장 디바이스와 같은 다양한 물리적 자원으로의 공유된 액세스를 제공할 수 있는, 가상 머신 호스트(612) 상에서 동작하는 것으로 묘사된다. 어느 수의 가상화 메커니즘이라도 컴퓨팅 노드를 호스팅하도록 채용될 수 있다.Computing nodes 610b, 610c are depicted as operating on virtual machine host 612, which can provide shared access to various physical resources such as physical processors, memory, and storage devices. Any number of virtualization mechanisms can be employed to host the computing nodes.

도 6에 묘사된 다양한 컴퓨팅 노드는 웹 서비스, 데이터베이스 관리 시스템, 비즈니스 객체, 모니터링 및 진단 기능 등을 호스팅하도록 구성될 수 있다. 컴퓨팅 노드는 퍼스널 컴퓨터, 서버, 클러스터링된 컴퓨팅 디바이스 등과 같은 다양한 유형의 컴퓨팅 자원을 지칭할 수 있다. 컴퓨팅 노드는, 예를 들어, 셀 폰, 스마트폰, 태블릿, 임베디드 디바이스 등과 같은 다양한 컴퓨팅 디바이스를 지칭할 수 있다. 하드웨어 형태로 구현될 때, 컴퓨팅 노드는 일반적으로는 컴퓨터-판독가능한 명령어를 저장하도록 구성된 하나 이상의 메모리 및 명령어를 판독 및 실행하도록 구성된 하나 이상의 프로세서와 연관된다. 하드웨어-기반 컴퓨팅 노드는 또한 하나 이상의 저장 디바이스, 네트워크 인터페이스, 통신 버스, 사용자 인터페이스 디바이스 등을 포함할 수 있다. 컴퓨팅 노드는 또한, 하이퍼바이저와 함께 또는 없이 구현된 가상 머신, 가상화된 베어-메탈 환경 등과 같은 가상화된 컴퓨팅 자원을 망라한다. 가상화-기반 컴퓨팅 노드는 하드웨어 자원으로의 가상화된 액세스는 물론 비-가상화된 액세스도 가질 수 있다. 컴퓨팅 노드는 운영 체제는 물론 하나 이상의 애플리케이션 프로그램도 실행하도록 구성될 수 있다. 일부 실시형태에서, 컴퓨팅 노드는 또한 베어-메탈 애플리케이션 프로그램을 포함할 수 있다.The various computing nodes depicted in FIG. 6 may be configured to host web services, database management systems, business objects, monitoring and diagnostic functions, and the like. Computing nodes may refer to various types of computing resources, such as personal computers, servers, clustered computing devices, and the like. A computing node may refer to a variety of computing devices, such as, for example, cell phones, smartphones, tablets, embedded devices, and the like. When implemented in hardware form, a computing node is generally associated with one or more processors configured to store computer-readable instructions and one or more processors configured to read and execute instructions. The hardware-based computing node may also include one or more storage devices, network interfaces, communication buses, user interface devices, and the like. Computing nodes also encompass virtualized computing resources, such as virtual machines, virtualized bare-metal environments, and the like, implemented with or without a hypervisor. Virtualization-based computing nodes may have virtualized access to hardware resources as well as non-virtualized access. The computing node may be configured to execute one or more application programs as well as an operating system. In some embodiments, the computing node may also include a bare-metal application program.

적어도 일부 실시형태에서, 여기에서 설명되는 기술 중 하나 이상 중 일부 또는 전부를 구현하는 서버는 하나 이상의 컴퓨터-액세스가능한 매체를 포함하거나 그에 액세스하도록 구성되는 범용 컴퓨터 시스템을 포함할 수 있다. 도 7은 하나 이상의 컴퓨터-액세스가능한 매체를 포함하거나 그에 액세스하도록 구성되는 범용 컴퓨터 시스템을 묘사한다. 예시된 실시형태에서, 컴퓨팅 디바이스(700)는 입/출력(I/O) 인터페이스(730)를 통하여 시스템 메모리(720)에 결합된 (여기에서는 단수형으로 프로세서(710)로 또는 복수형으로 프로세스(710)들로 지칭될 수 있는) 하나 이상의 프로세서(710a, 710b, 및/또는 710n)를 포함한다. 컴퓨팅 디바이스(700)는 I/O 인터페이스(730)에 결합된 네트워크 인터페이스(740)를 더 포함한다. In at least some embodiments, a server implementing some or all of one or more of the techniques described herein can include a general purpose computer system configured to include or be configured to access one or more computer-accessible media. 7 depicts a general purpose computer system configured to include or be configured to access one or more computer-accessible media. In the illustrated embodiment, computing device 700 is coupled to system memory 720 via input / output (I / O) interface 730 (here, in singular to processor 710 or plural to process 710). One or more processors (710a, 710b, and / or 710n), which may be referred to as < RTI ID = 0.0 > Computing device 700 further includes a network interface 740 coupled to I / O interface 730.

다양한 실시형태에서, 컴퓨팅 디바이스(700)는 하나의 프로세서(710)를 포함하는 유니프로세서, 또는 수 개의 프로세서(710)(예를 들어, 2개, 4개, 8개 또는 다른 적합한 수)를 포함하는 멀티프로세서 시스템일 수 있다. 프로세서(710)는 명령어를 실행할 수 있는 어느 적합한 프로세서라도 될 수 있다. 예를 들어, 다양한 실시형태에서, 프로세서(610)는, x86, PowerPC, SPARC, 또는 MIPS ISA, 또는 어느 다른 적합한 ISA와 같은 각종 명령어 세트 아키텍처(ISA) 중 어느 것이라도 구현하는 범용 또는 내장 프로세서일 수 있다. 멀티프로세서 시스템에서, 프로세서(610)의 각각은, 반드시는 아니지만, 공통으로 동일한 ISA를 구현할 수 있다.In various embodiments, computing device 700 includes a uniprocessor including one processor 710, or several processors 710 (eg, two, four, eight, or other suitable numbers). May be a multiprocessor system. Processor 710 may be any suitable processor capable of executing instructions. For example, in various embodiments, processor 610 is a general purpose or embedded processor that implements any of a variety of instruction set architectures (ISAs), such as x86, PowerPC, SPARC, or MIPS ISA, or any other suitable ISA. Can be. In a multiprocessor system, each of the processors 610 may implement, but not necessarily, the same ISA in common.

일부 실시형태에서, 그래픽 프로세싱 유닛("GPU")(712)은 그래픽 렌더링 및/또는 물리 프로세싱 능력을 제공하는데 참가할 수 있다. GPU는, 예를 들어, 그래픽 계산에 전문적인 고도로 병렬화된 프로세서 아키텍처를 포함할 수 있다. 일부 실시형태에서, 프로세서(710) 및 GPU(712)는 동일한 유형의 디바이스 중 하나 이상으로서 구현될 수 있다. In some embodiments, graphics processing unit (“GPU”) 712 may participate in providing graphics rendering and / or physical processing capabilities. The GPU may include, for example, a highly parallelized processor architecture that is specialized in graphics computation. In some embodiments, processor 710 and GPU 712 may be implemented as one or more of the same type of device.

시스템 메모리(720)는 프로세서(들)(610)가 액세스가능한 데이터 및 명령어를 저장하도록 구성될 수 있다. 다양한 실시형태에서, 시스템 메모리(720)는, 정적 램("SRAM"), 동기식 동적 RAM("SDRAM"), 비휘발성/플래시®-유형 메모리, 또는 어느 다른 유형의 메모리와 같은, 어느 적합한 메모리 기술이라도 사용하여 구현될 수 있다. 예시된 실시형태에서, 위에서 설명된 그들 방법, 기술 및 데이터와 같은, 하나 이상의 소망 기능을 구현하는 프로그램 명령어 및 데이터는 코드(725) 및 데이터(726)로서 시스템 메모리(720) 내에 저장되는 것으로 도시되어 있다.System memory 720 may be configured to store data and instructions that processor (s) 610 may access. In various embodiments, system memory 720 may be any suitable memory, such as static RAM ("SRAM"), synchronous dynamic RAM ("SDRAM"), nonvolatile / flash®-type memory, or any other type of memory. Even techniques can be implemented using. In the illustrated embodiment, program instructions and data that implement one or more desired functions, such as those methods, techniques, and data described above, are shown to be stored in system memory 720 as code 725 and data 726. It is.

일 실시형태에서, I/O 인터페이스(730)는 프로세서(710)와, 시스템 메모리(720)와, 네트워크 인터페이스(들)(740) 또는 다른 주변 인터페이스를 포함하는, 디바이스 내 어느 주변장치 간 I/O 트래픽을 조정하도록 구성될 수 있다. 일부 실시형태에서, I/O 인터페이스(730)는 어느 필요한 프로토콜, 타이밍, 또는 다른 데이터 변환이라도 수행하여 하나의 컴포넌트(예를 들어, 시스템 메모리(720))로부터의 데이터 신호를 다른 컴포넌트(예를 들어, 프로세서(610))에 의한 사용에 적합한 포맷으로 변환할 수 있다. 일부 실시형태에서, I/O 인터페이스(730)는, 예를 들어, 주변 컴포넌트 상호접속(PCI) 버스 표준 또는 범용 직렬 버스(USB) 표준의 변종과 같이 다양한 유형의 주변 버스를 통해 배속된 디바이스에 대한 지원을 포함할 수 있다. 일부 실시형태에서, I/O 인터페이스(730)의 기능은, 예를 들어, 노스 브리지 및 사우스 브리지와 같은 2개 이상의 별개 컴포넌트로 나뉠 수 있다. 또한, 일부 실시형태에서, 시스템 메모리(620)로의 인터페이스와 같은, I/O 인터페이스(730)의 기능성 중 일부 또는 전부는 프로세서(710)에 직접 편입될 수 있다. In one embodiment, I / O interface 730 includes I / O interface between any peripherals in the device, including processor 710, system memory 720, network interface (s) 740, or other peripheral interface. O traffic can be configured to adjust. In some embodiments, I / O interface 730 may perform any necessary protocol, timing, or other data conversion to convert data signals from one component (eg, system memory 720) to another component (eg, For example, it may convert to a format suitable for use by the processor 610. In some embodiments, I / O interface 730 is connected to devices attached through various types of peripheral buses, such as, for example, a peripheral component interconnect (PCI) bus standard or a variant of the universal serial bus (USB) standard. Support may be included. In some embodiments, the functionality of I / O interface 730 may be divided into two or more separate components, such as, for example, a north bridge and a south bridge. In addition, in some embodiments, some or all of the functionality of I / O interface 730, such as the interface to system memory 620, may be incorporated directly into processor 710.

네트워크 인터페이스(들)(740)는 컴퓨팅 시스템(700)과, 예를 들어, 다른 컴퓨터 시스템 또는 디바이스와 같이 네트워크 또는 네트워크들(750)에 배속된 다른 디바이스 또는 디바이스들(760) 간 데이터가 교환될 수 있게 하도록 구성될 수 있다. 다양한 실시형태에서, 네트워크 인터페이스(들)(740)는, 예를 들어, 이더넷 네트워크 유형과 같은 어느 적합한 유선 또는 무선 일반 데이터 네트워크라도 통하여 통신을 지원할 수 있다. 부가적으로, 네트워크 인터페이스(들)(740)는 아날로그 음성 네트워크 또는 디지털 광섬유 통신 네트워크와 같은 원격통신/전화 네트워크를 통하여, 광섬유 채널 SAN(저장소 영역 네트워크)과 같은 저장소 영역 네트워크를 통하여, 또는 어느 다른 적합한 유형의 네트워크 및/또는 프로토콜이라도 통하여 통신을 지원할 수 있다.Network interface (s) 740 may be used to exchange data between computing system 700 and other devices or devices 760 attached to the network or networks 750, such as, for example, other computer systems or devices. It may be configured to enable. In various embodiments, network interface (s) 740 may support communication via any suitable wired or wireless general data network, such as, for example, an Ethernet network type. Additionally, network interface (s) 740 may be via a telecommunications / telephone network, such as an analog voice network or a digital fiber optic communications network, through a storage area network, such as a fiber channel SAN (storage area network), or any Any type of network and / or protocol may support communication.

일부 실시형태에서, 시스템 메모리(720)는 대응하는 방법 및 장치의 실시형태를 구현하도록 위에서 설명된 바와 같은 프로그램 명령어 및 데이터를 저장하도록 구성된 컴퓨터-액세스가능한 매체의 일 실시형태일 수 있다. 그렇지만, 다른 실시형태에서, 프로그램 명령어 및/또는 데이터는 여러 다른 유형의 컴퓨터-액세스가능한 매체 상에서 수신, 송신 또는 저장될 수 있다. 일반적으로 말하면, 컴퓨터-액세스가능한 매체는 자기 또는 광학 매체, 예를 들어, I/O 인터페이스(730)를 통하여 컴퓨팅 디바이스(700)에 결합된 디스크 또는 DVD/CD와 같은 메모리 매체 또는 비-일시적 저장 매체를 포함할 수 있다. 비-일시적 컴퓨터-액세스가능한 저장 매체는 또한 시스템 메모리(720) 또는 다른 유형의 메모리로서 컴퓨팅 디바이스(700)의 일부 실시형태에 포함될 수 있는 RAM(예를 들어, SDRAM, DDR SDRAM, RDRAM, SRAM 등), ROM 등과 같은 어느 휘발성 또는 비-휘발성 매체라도 포함할 수 있다. 더욱, 컴퓨터-액세스가능한 매체는 네트워크 인터페이스(740)를 통하여 구현될 수 있는 것들과 같은 네트워크 및/또는 무선 링크와 같은 통신 매체를 통하여 전해지는 전기, 전자기 또는 디지털 신호와 같은 신호 또는 전송 매체를 포함할 수 있다. 도 7에 예시된 것과 같은 다수의 컴퓨팅 디바이스 중 일부 또는 전부는 다양한 실시형태에서 설명된 기능성을 구현하도록 사용될 수 있다; 예를 들어, 다양한 다른 디바이스 및 서버 상에서 실행되는 소프트웨어 컴포넌트는 기능성을 제공하도록 협업할 수 있다. 일부 실시형태에서, 설명된 기능성 중 일부는, 범용 컴퓨터 시스템을 사용하여 구현되는 대신에 또는 그에 부가하여, 특수용 컴퓨터 시스템, 네트워크 디바이스, 또는 저장 디바이스를 사용하여 구현될 수 있다. 용어 "컴퓨팅 디바이스"는, 여기에서 사용될 때, 적어도 모든 이들 유형의 디바이스를 지칭하고, 이들 유형의 디바이스로 한정되지는 않는다.In some embodiments, system memory 720 may be one embodiment of computer-accessible media configured to store program instructions and data as described above to implement embodiments of the corresponding methods and apparatus. However, in other embodiments, program instructions and / or data may be received, transmitted, or stored on various other types of computer-accessible media. Generally speaking, computer-accessible media are magnetic or optical media, eg, memory media such as DVD or CD or non-transitory storage coupled to computing device 700 via I / O interface 730. Media may be included. Non-transitory computer-accessible storage media may also be included in some embodiments of computing device 700 as system memory 720 or other type of memory (eg, SDRAM, DDR SDRAM, RDRAM, SRAM, etc.). ), ROM, or any other volatile or non-volatile media. Moreover, computer-accessible media includes signals or transmission media, such as electrical, electromagnetic or digital signals transmitted over a communications medium, such as a network and / or a wireless link, such as those that may be implemented via network interface 740. can do. Some or all of a number of computing devices, such as those illustrated in FIG. 7, may be used to implement the functionality described in various embodiments; For example, software components running on various other devices and servers can collaborate to provide functionality. In some embodiments, some of the described functionality may be implemented using special purpose computer systems, network devices, or storage devices instead of or in addition to using general purpose computer systems. The term "computing device", as used herein, refers to at least all these types of devices, and is not limited to these types of devices.

컴퓨팅 노드라고도 지칭될 수 있는 컴퓨트 노드는, 태블릿 컴퓨터, 퍼스널 컴퓨터, 스마트폰, 게임 콘솔, 상품-하드웨어 컴퓨터, 가상 머신, 웹 서비스, 컴퓨팅 클러스터, 및 컴퓨팅 기기와 같은, 광범위한 다양한 컴퓨팅 환경 상에서 구현될 수 있다. 이들 컴퓨팅 디바이스 또는 환경 중 어느 것이라도, 편의상, 컴퓨트 노드라고 또는 컴퓨팅 노드라고 기술될 수 있다.Compute nodes, which may also be referred to as computing nodes, are implemented on a wide variety of computing environments, such as tablet computers, personal computers, smartphones, game consoles, commodity-hardware computers, virtual machines, web services, computing clusters, and computing devices. Can be. Any of these computing devices or environments may be described as a compute node or computing node for convenience.

인터넷 및/또는 다른 네트워크를 통하여 분산형 클라이언트 세트에 액세스가능한 (다양한 유형의 클라우드-기반 컴퓨팅 또는 저장과 같은) 하나 이상의 웹 서비스를 제공하도록 공중 부문 조직 또는 회사와 같은 개체에 의해 셋업된 네트워크는 제공자 네트워크라고 칭해질 수 있다. 그러한 제공자 네트워크는, 제공자 네트워크에 의해 제공되는 기반구조 및 웹 서비스를 구현 및 분산시키는데 필요로 되는, 물리적 및/또는 가상화된 컴퓨터 서버, 저장 디바이스, 네트워킹 장비 등의 집합과 같은, 다양한 자원 풀을 호스팅하는 수많은 데이터 센터를 포함할 수 있다. 자원은 일부 실시형태에서, 저장소에 대한 소정 양의 저장 용량, 프로세싱을 위한 프로세싱 능력, 인스턴스, 관련 서비스 세트 등과 같은, 웹 서비스와 관련된 다양한 유닛으로 클라이언트에 제공될 수 있다. 가상 컴퓨팅 인스턴스는, 예를 들어, (CPU의 유형 및 수, 주 메모리 사이즈 등을 나타냄으로써 특정될 수 있는) 특정된 계산 능력 및 특정된 소프트웨어 스택(예를 들어, 순차로 하이퍼바이저 위에서 실행될 수 있는 특정 버전의 운영 체제)을 갖는 하나 이상의 서버를 포함할 수 있다.A network set up by an entity, such as a public sector organization or company, to provide one or more web services (such as various types of cloud-based computing or storage) accessible to a set of distributed clients over the Internet and / or other networks. It may be called a network. Such provider networks may host a variety of resource pools, such as a collection of physical and / or virtualized computer servers, storage devices, networking equipment, etc. that are required to implement and distribute the infrastructure and web services provided by the provider network. It can include numerous data centers. The resources may be provided to the client in various embodiments in various units associated with the web service, such as a certain amount of storage capacity for the repository, processing capability for processing, instances, a set of related services, and the like. A virtual computing instance can be run on a specified software stack (e.g., sequentially on a hypervisor) and on a specified software stack (e.g., by specifying the type and number of CPUs, main memory size, etc.) One or more servers with a particular version of the operating system).

여러 다른 유형의 컴퓨팅 디바이스는, 범용 또는 특수용 컴퓨터 서버, 저장 디바이스, 네트워크 디바이스 등을 포함하여, 여러 다른 실시형태에서 제공자 네트워크의 자원을 구현하도록 조합으로 또는 단독으로 사용될 수 있다. 일부 실시형태에서, 클라이언트 또는 사용자에게는, 예를 들어, 관리책임자 로그인 및 패스워드를 사용자에 부여함으로써 자원 인스턴스로의 직접 액세스가 제공될 수 있다. 다른 실시형태에서, 제공자 네트워크 운용자는, 예를 들어, 클라이언트가 인스턴스 또는 실행 플랫폼에 직접 액세스할 것을 요구함이 없이, 클라이언트가 특정된 클라이언트 애플리케이션에 대한 실행 요건을 특정할 수 있게 하고 애플리케이션에 적합한 (애플리케이션 서버 인스턴스, JavaTM 가상 머신(JVM), 범용 또는 특수용 운영 체제, 다양한 해석된 또는 컴파일링된 프로그래밍 언어를 지원하는 플랫폼 - 루비(Ruby), 펄(Perl), 파이선(Python), C, C++ 등 - 또는 고성능 컴퓨팅 플랫폼과 같은) 실행 플랫폼 상에서 클라이언트를 대리하여 애플리케이션의 실행을 스케줄링할 수 있다. 소정 실행 플랫폼은 일부 구현에서는 하나 이상의 자원 인스턴스를 이용할 수 있다; 다른 구현에서는 다수의 실행 플랫폼이 단일 자원 인스턴스에 매핑될 수 있다.Various other types of computing devices may be used alone or in combination to implement the resources of a provider network in various other embodiments, including general purpose or special purpose computer servers, storage devices, network devices, and the like. In some embodiments, the client or user may be provided direct access to the resource instance, for example, by granting the administrator login and password to the user. In another embodiment, the provider network operator may allow a client to specify execution requirements for a specified client application and make it suitable for the application (eg, without requiring the client to access the instance or execution platform directly). Support for server instances, Java TM virtual machines (JVMs), general purpose or special purpose operating systems, and various interpreted or compiled programming languages-Ruby, Perl, Python, C, C ++, etc. Or may schedule the execution of an application on behalf of a client on an execution platform (such as a high performance computing platform). Certain execution platforms may utilize one or more resource instances in some implementations; In other implementations, multiple execution platforms can be mapped to a single resource instance.

많은 환경에서, 여러 다른 유형의 가상화된 컴퓨팅, 저장, 및/또는 다른 네트워크-액세스가능한 기능성을 구현하는 제공자 네트워크의 운용자는 고객이 다양한 자원 취득 모드로 자원으로의 액세스를 예약 또는 구입할 수 있게 할 수 있다. 컴퓨팅 자원 제공자는 고객이 소망 컴퓨팅 자원을 선택 및 론칭하고, 애플리케이션 컴포넌트를 컴퓨팅 자원에 전개하고, 그리고 환경에서 실행되는 애플리케이션을 유지하기 위한 기능을 제공할 수 있다. 부가적으로, 컴퓨팅 자원 제공자는, 애플리케이션에 대한 수요 또는 그 용량 요건이 변화함에 따라, 수동으로든 자동 스케일링을 통해서든, 고객이 애플리케이션에 할당된 자원의 수 및 유형을 신속하고 용이하게 업 스케일링 또는 다운 스케일링하기 위한 추가적 기능을 제공할 수 있다. 컴퓨팅 자원 제공자에 의해 제공된 컴퓨팅 자원은, 인스턴스라고 지칭될 수 있는, 개별 유닛에서 이용가능하게 될 수 있다. 인스턴스는 물리적 서버 하드웨어 플랫폼, 서버 상에서 실행되는 가상 머신 인스턴스, 또는 그 둘의 어떤 조합을 표현할 수 있다. 여러 다른 운영 체제(OS) 및/또는 하이퍼바이저를 실행하는 자원의 여러 다른 사이즈를 포함하는, 그리고 다양한 설치된 소프트웨어 애플리케이션, 런타임 등을 갖는, 인스턴스의 다양한 유형 및 구성이 이용가능하게 될 수 있다. 인스턴스는, 예를 들어, 논리적 영역, 결함 내성 영역, 데이터 센터, 또는 기저 컴퓨팅 하드웨어의 다른 지리적 장소를 표현하는 특정 가용성 구역에서 더 이용가능할 수 있다. 인스턴스는 인스턴스의 중복을 개선하도록 가용성 구역을 가로질러 또는 가용성 구역 내에 복사될 수 있고, 인스턴스는 특정 가용성 구역 내에서 또는 가용성 구역을 가로질러 이주될 수 있다. 일례로서, 가용성 구역에서의 특정 서버와의 클라이언트 통신에 대한 레이턴시는 다른 서버와의 클라이언트 통신에 대한 레이턴시보다 더 작을 수 있다. 그와 같이, 인스턴스는 전반적 클라이언트 경험을 개선하기 위해 더 높은 레이턴시 서버로부터 더 낮은 레이턴시 서버로 이주될 수 있다.In many environments, operators of provider networks that implement different types of virtualized computing, storage, and / or other network-accessible functionality can enable customers to reserve or purchase access to resources in various resource acquisition modes. have. The computing resource provider may provide functionality for customers to select and launch the desired computing resources, deploy application components to the computing resources, and maintain applications running in the environment. Additionally, computing resource providers can quickly and easily upscale or downsize the number and type of resources allocated to an application, either manually or through automatic scaling, as the demand for the application or its capacity requirements change. It can provide additional functionality for scaling. Computing resources provided by a computing resource provider may be made available to individual units, which may be referred to as instances. An instance can represent a physical server hardware platform, a virtual machine instance running on a server, or some combination of both. Various types and configurations of instances may be available, including different sizes of resources running different operating systems and / or hypervisors, and with various installed software applications, runtimes, and the like. The instance may be further available in a particular availability zone, for example, representing a logical zone, fault tolerance zone, data center, or other geographic location of the underlying computing hardware. Instances can be copied across or within an availability zone to improve redundancy of the instances, and instances can be migrated within or across specific availability zones. As an example, the latency for client communication with a particular server in an availability zone may be less than the latency for client communication with another server. As such, instances can be migrated from higher latency servers to lower latency servers to improve the overall client experience.

일부 실시형태에서, 제공자 네트워크는 복수의 지리적 지역으로 조직될 수 있고, 각각의 지역은 하나 이상의 가용성 구역을 포함할 수 있다. 순차로 (가용성 컨테이너라고도 지칭될 수 있는) 가용성 구역은 소정 가용성 구역에서의 자원이 다른 가용성 구역에서의 장애로부터 격리 또는 고립될 수 있는 그러한 방식으로 구성된 하나 이상의 구별되는 장소 또는 데이터 센터를 포함할 수 있다. 즉, 하나의 가용성 구역에서의 장애는 어느 다른 가용성 구역에서의 장애도 초래할 것으로 예상되지 않을 수 있다. 그리하여, 자원 인스턴스의 가용성 프로파일은 다른 가용성 구역에서의 자원 인스턴스의 가용성 프로파일과는 독립적이도록 의도된다. 클라이언트는 각각의 가용성 구역에서 다수의 애플리케이션 인스턴스를 론칭함으로써 단일 장소에서의 장애로부터 그들 애플리케이션을 보호할 수 있을 수 있다. 동시에, 일부 구현에서는 저렴하고 낮은 레이턴시 네트워크 접속성이 동일한 지리적 지역 내에 상주하는 자원 인스턴스들 간에 제공될 수 있다(그리고 동일한 가용성 구역의 자원들 간 네트워크 송신은 훨씬 더 빠를 수 있다).In some embodiments, the provider network may be organized into a plurality of geographic regions, each of which may include one or more availability zones. Availability zones (which may also be referred to as availability containers) in turn may include one or more distinct locations or data centers configured in such a way that resources in a given availability zone may be isolated or isolated from failures in other availability zones. have. That is, a failure in one availability zone may not be expected to result in a failure in any other availability zone. Thus, the availability profile of the resource instance is intended to be independent of the availability profile of the resource instance in another availability zone. Clients may be able to protect their applications from failures in a single location by launching multiple application instances in each availability zone. At the same time, in some implementations inexpensive and low latency network connectivity may be provided between resource instances residing within the same geographic area (and network transmission between resources in the same availability zone may be much faster).

선행하는 절에서 설명된 프로세스, 방법 및 알고리즘의 각각은 하나 이상의 컴퓨터 또는 컴퓨터 프로세서에 의해 실행되는 코드 모듈에서 구체화되고, 그리고 그에 의해 완전히 또는 부분적으로 자동화될 수 있다. 코드 모듈은, 하드 드라이브, 고체 상태 메모리, 광학 디스크 등과 같은, 어느 유형의 비-일시적 컴퓨터-판독가능한 매체 또는 컴퓨터 저장 디바이스 상에라도 저장될 수 있다. 프로세스 및 알고리즘은 부분적으로 또는 전적으로 애플리케이션-특정 회로에서 구현될 수 있다. 개시된 프로세스 및 프로세스 단계의 결과는, 예를 들어, 휘발성 또는 비-휘발성 저장소와 같은 어느 유형의 비-일시적 컴퓨터 저장소에라도, 영속적으로 또는 달리, 저장될 수 있다.Each of the processes, methods and algorithms described in the preceding sections may be embodied in a code module executed by one or more computers or computer processors, and thereby be fully or partially automated. The code module may be stored on any type of non-transitory computer-readable medium or computer storage device, such as a hard drive, solid state memory, optical disk, or the like. Processes and algorithms may be implemented in part or in whole in application-specific circuits. The results of the disclosed processes and process steps can be stored, either permanently or otherwise, in any type of non-transitory computer storage, such as, for example, volatile or non-volatile storage.

위에서 설명된 다양한 특징 및 프로세스는 서로 독립적으로 사용될 수 있거나, 다양한 방식으로 조합될 수 있다. 모든 가능한 조합 및 하위-조합은 본 발명의 범위 내에 들도록 의도된다. 부가적으로, 특정 방법 또는 프로세스 블록은 일부 구현에서는 생략될 수 있다. 여기에서 설명된 방법 및 프로세스는 또한 어느 특정 시퀀스로도 한정되지 않고, 그리고 그와 관련된 블록 또는 상태는 적합한 다른 시퀀스로 수행될 수 있다. 예를 들어, 설명된 블록 또는 상태는 구체적으로 개시된 것과는 다른 순서로 수행될 수 있거나, 또는 다수의 블록 또는 상태는 단일 블록 또는 상태로 조합될 수 있다. 그 예의 블록 또는 상태는 직렬로, 병렬로, 또는 어떤 다른 방식으로 수행될 수 있다. 블록 또는 상태는 개시된 예의 실시형태에 부가되거나 그로부터 제거될 수 있다. 여기에서 설명된 예의 시스템 및 컴포넌트는 설명된 것과는 다르게 구성될 수 있다. 예를 들어, 요소는 개시된 예의 실시형태에 부가되거나, 그로부터 제거되거나, 또는 그에 비해 재배열될 수 있다.The various features and processes described above can be used independently of one another or can be combined in a variety of ways. All possible combinations and sub-combinations are intended to be within the scope of the present invention. In addition, certain method or process blocks may be omitted in some implementations. The methods and processes described herein are also not limited to any particular sequence, and blocks or states associated therewith may be performed in other suitable sequences. For example, the blocks or states described may be performed in a different order than specifically disclosed, or multiple blocks or states may be combined into a single block or state. The block or state of the example can be performed in series, in parallel, or in some other way. Blocks or states may be added to or removed from the disclosed example embodiments. The systems and components of the examples described herein can be configured differently than described. For example, elements may be added to, removed from, or rearranged relative to the disclosed example embodiments.

다양한 항목이 사용되고 있는 동안 저장소 상에 또는 메모리에 저장되어 있는 것으로 예시됨과, 그리고 이들 항목 또는 그 일부는 메모리 관리 및 데이터 무결성의 목적으로 메모리와 다른 저장 디바이스 간에 전송될 수 있음을 또한 인식할 것이다. 대안으로, 다른 실시형태에서, 소프트웨어 모듈 및/또는 시스템 중 일부 또는 전부는 다른 디바이스 상의 메모리에서 실행될 수 있고 컴퓨터-간 통신을 통하여 예시된 컴퓨팅 시스템과 통신할 수 있다. 더욱, 일부 실시형태에서, 시스템 및/또는 모듈의 일부 또는 전부는, 국한되는 것은 아니지만, 하나 이상의 주문형 반도체(ASIC), 표준 집적 회로, 컨트롤러(예를 들어, 적합한 명령어를 실행하는 것에 의함, 그리고 마이크로컨트롤러 및/또는 내장형 컨트롤러를 포함함), 필드-프로그래머블 게이트 어레이(FPGA), 콤플렉스 프로그래머블 로직 디바이스(CPLD) 등을 포함하는 펌웨어 및/또는 하드웨어에 적어도 부분적으로와 같이, 다른 방식으로 제공 또는 구현될 수 있다. 모듈, 시스템 및 데이터 구조 중 일부 또는 전부는, 적합한 접속을 통하여 또는 적합한 디바이스에 의해 판독될 하드 디스크, 메모리, 네트워크, 또는 포터블 미디어 물품과 같은, 컴퓨터-판독가능한 매체 상에 (예를 들어, 소프트웨어 명령어 또는 구조화된 데이터로서) 저장될 수 있다. 시스템, 모듈 및 데이터 구조는 또한, 무선-기반 및 유선/케이블-기반 매체를 포함하는, 다양한 컴퓨터-판독가능한 전송 매체 상에서 (예를 들어, 반송파 또는 다른 아날로그 또는 디지털 전파되는 신호의 일부분으로서) 발생된 데이터 신호로서 전송될 수 있고, (예를 들어, 단일 또는 멀티플렉싱된 아날로그 신호의 일부분으로서, 또는 다수의 이산 디지털 패킷 또는 프레임으로서) 다양한 형태를 취할 수 있다. 그러한 컴퓨터 프로그램은 또한 다른 실시형태에서는 다른 형태를 취할 수 있다. 따라서, 본 발명은 다른 컴퓨터 시스템 구성으로 실시될 수 있다.It will also be appreciated that various items are illustrated as being stored on or in memory while being used, and that these items or portions thereof may be transferred between memory and other storage devices for memory management and data integrity purposes. Alternatively, in other embodiments, some or all of the software modules and / or systems may be executed in memory on other devices and may communicate with the illustrated computing system via computer-to-computer communication. Furthermore, in some embodiments, some or all of the systems and / or modules may be, but are not limited to, one or more application specific semiconductors (ASICs), standard integrated circuits, controllers (eg, by executing appropriate instructions, and In other ways, such as at least in part, in firmware and / or hardware including microcontrollers and / or embedded controllers), field-programmable gate arrays (FPGAs), complex programmable logic devices (CPLDs), and the like. Can be. Some or all of the modules, systems, and data structures may be placed on a computer-readable medium (eg, software) such as a hard disk, memory, network, or portable media article to be read through a suitable connection or by a suitable device. Instructions or structured data). The system, modules and data structures also occur on a variety of computer-readable transmission media (eg, as part of a carrier wave or other analog or digital propagated signal), including wireless-based and wired / cable-based media. And may take various forms (eg, as part of a single or multiplexed analog signal, or as multiple discrete digital packets or frames). Such computer programs may also take other forms in other embodiments. Thus, the present invention may be practiced with other computer system configurations.

상기한 것은 이하의 조항을 고려하여 더 잘 이해될 수 있다:The foregoing may be better understood in view of the following provisions:

1. 데이터 분석계를 수행하기 위한 시스템으로서, 시스템은 개선된 스케일링 특성을 보유하고, 시스템은1. A system for performing a data analysis system, the system having improved scaling characteristics and the system

제1 하나 이상의 컴퓨팅 노드 및 제2 하나 이상의 컴퓨팅 노드를 포함하는 복수의 컴퓨팅 노드로서, 복수의 컴퓨팅 노드는, 활성화될 때, n-차원 큐브의 슬라이스를 유지하고, 슬라이스는 데이터 포인트의 계층구조를 포함하고, 데이터 포인트는 하나 이상의 고정 차원과 하나 이상의 가변 차원의 교차점에 대응하는 복수의 컴퓨팅 노드; 및 A plurality of computing nodes comprising a first one or more computing nodes and a second one or more computing nodes, wherein the plurality of computing nodes, when activated, maintain slices of the n-dimensional cube, the slices maintaining a hierarchy of data points. Wherein the data points comprise a plurality of computing nodes corresponding to intersections of at least one fixed dimension and at least one variable dimension; And

컴퓨터-판독가능한 명령어를 저장해 놓은 하나 이상의 메모리를 포함하고, 컴퓨터-판독가능한 명령어는, 실행시, 시스템으로 하여금 적어도And one or more memories having stored thereon computer-readable instructions, wherein the computer-readable instructions, when executed, cause the system to at least

데이터 포인트의 계층구조의 제1 서브세트를 제1 하나 이상의 컴퓨팅 노드 상에 유지하되, 데이터 포인트는 계층구조의 데이터 포인트가 계산 수요의 제1 분류와 연관되는 것에 적어도 부분적으로 기반하여 제1 서브세트에 포함되고; Maintain a first subset of the hierarchy of data points on the first one or more computing nodes, wherein the data points are based on at least in part the association of the data points of the hierarchy with the first classification of computational demand. Included in;

데이터 포인트의 계층구조의 제2 서브세트를 제2 하나 이상의 컴퓨팅 노드 상에 유지하되, 데이터 포인트는 계층구조의 데이터 포인트가 계산 수요의 제2 분류와 연관되는 것에 적어도 부분적으로 기반하여 제2 서브세트에 포함되고; 그리고Maintain a second subset of the hierarchy of data points on the second one or more computing nodes, wherein the data points are based on at least in part the association of the data points of the hierarchy with a second classification of computational demand. Included in; And

계층구조의 데이터 포인트에 액세스하라는 제1 요청을 제1 하나 이상의 컴퓨팅 노드 상에서 프로세싱함으로써 요청을 프로세싱하되, 제1 하나 이상의 컴퓨팅 노드는 계산 수요의 제1 분류에 적어도 부분적으로 기반하여 스케일링 메커니즘으로 구성되게 하는, 시스템.Process the request by processing on the first one or more computing nodes a first request to access a data point of the hierarchy, wherein the first one or more computing nodes are configured with a scaling mechanism based at least in part on the first classification of computational demand. System.

2. 제1 조항에 있어서, 제1 분류는 높은 기록 빈도에 기반하고 그리고 스케일링 메커니즘은 계층구조의 제1 서브세트에서의 데이터 포인트를 제1 하나 이상의 컴퓨팅 노드 간에 수평으로 파티셔닝하는 것을 포함하는, 시스템.2. The system of clause 1, wherein the first classification is based on a high write frequency and the scaling mechanism comprises horizontally partitioning data points in the first subset of the hierarchy between the first one or more computing nodes. .

3. 제1 조항에 있어서, 제1 분류는 높은 판독 빈도에 기반하고 그리고 스케일링 메커니즘은 제1 하나 이상의 컴퓨팅 노드가 기록가능한 파티션의 적어도 하나의 판독-전용 복제본을 포함하는 것을 포함하는, 시스템.3. The system of clause 1, wherein the first classification is based on a high read frequency and the scaling mechanism comprises the first one or more computing nodes including at least one read-only copy of a partition that is writable.

4. 제1 조항에 있어서, 실행시, 시스템으로 하여금 적어도 4. The system of clause 1, wherein, when executed, causes the system to at least

계층구조와 연관된 차원과 차원과 연관된 하나 이상의 계산 수요 간 매핑에 적어도 부분적으로 기반하여 계층구조의 영역을 분류하게 하는 컴퓨터-판독가능한 명령어를 저장해 놓은 하나 이상의 메모리를 더 포함하는, 시스템.And at least one memory storing computer-readable instructions for classifying regions of the hierarchy based at least in part on a mapping associated with a hierarchy and one or more computational demands associated with the dimensions.

5. 제1 조항에 있어서, 실행시, 시스템으로 하여금 적어도5. The system of clause 1, wherein, when executed, causes the system to at least

경로에서의 데이터 포인트에 대한 액세스의 빈도에 적어도 부분적으로 기반하여 계층구조에서의 경로를 식별하고; 그리고Identify a path in the hierarchy based at least in part on the frequency of access to data points in the path; And

액세스의 빈도가 임계 레벨 위에 있는 동안 경로와 연관된 데이터 포인트를 주 메모리에 유지하게 하는 컴퓨터-판독가능한 명령어를 저장해 놓은 하나 이상의 메모리를 더 포함하는, 시스템. Further comprising one or more memories storing computer-readable instructions for maintaining data points associated with a path in main memory while the frequency of access is above a threshold level.

6. n-차원 큐브를 유지하기 위한 컴퓨터-구현 방법으로서,6. A computer-implemented method for maintaining n-dimensional cubes,

n-차원 큐브에서 데이터 포인트의 계층구조의 제1 서브세트를 식별하는 단계로서, 서브세트는 계층구조의 제1 서브세트에서의 데이터 포인트와 연관된 계산 수요에 적어도 부분적으로 기반하여 식별되는 식별하는 단계;identifying a first subset of the hierarchy of data points in the n-dimensional cube, wherein the subset is identified based at least in part on computational demand associated with the data points in the first subset of hierarchy ;

데이터 포인트와 연관된 계산 수요에 적어도 부분적으로 기반하여 스케일링 메커니즘을 선택하는 단계; 및Selecting a scaling mechanism based at least in part on computational demand associated with the data point; And

계층구조의 제1 서브세트를 적어도 제1 컴퓨팅 노드 및 제2 컴퓨팅 노드 상에 유지하는 단계로서, 계층구조의 제1 서브세트는 선택된 스케일링 메커니즘에 기반하여 적어도 제1 컴퓨팅 노드와 제2 컴퓨팅 노드 간에 파티셔닝 또는 복제되는 유지하는 단계를 포함하는, 방법.Maintaining a first subset of the hierarchy on at least the first computing node and the second computing node, wherein the first subset of the hierarchy is between at least the first computing node and the second computing node based on the selected scaling mechanism. Maintaining partitioning or replicating.

7. 제6 조항에 있어서, 스케일링 메커니즘은 판독 빈도에 비해 기록 빈도가 높은 것에 적어도 부분적으로 기반하여 선택되는, 방법.7. The method of clause 6, wherein the scaling mechanism is selected based at least in part on the higher write frequency relative to the read frequency.

8. 제7 조항에 있어서,8. In accordance with paragraph 7,

계층구조의 제1 서브세트에서의 데이터 포인트를 적어도 제1 컴퓨팅 노드와 제2 컴퓨팅 노드 간에 수평으로 파티셔닝하는 단계를 더 포함하는, 방법.Partitioning data points in the first subset of the hierarchy horizontally between at least the first computing node and the second computing node.

9. 제6 조항에 있어서, 스케일링 메커니즘은 계층구조의 제1 서브세트에서의 데이터를 판독하라는 요청에 응답하기 위한 제1 컴퓨팅 노드의 용량에 비해 판독 빈도가 높은 것에 적어도 부분적으로 기반하여 선택되는, 방법.9. The clause of clause 6, wherein the scaling mechanism is selected based at least in part on the high frequency of reading relative to the capacity of the first computing node to respond to a request to read data in the first subset of the hierarchy. Way.

10. 제9 조항에 있어서,10. The provision of paragraph 9,

계층구조의 제1 서브세트의 적어도 일부를 제2 컴퓨팅 노드 상에 복제하는 단계로서, 계층구조의 제1 서브세트의 적어도 일부는 제1 컴퓨팅 노드 상에 유지되는 복제하는 단계를 더 포함하는, 방법.Replicating at least a portion of the first subset of the hierarchy on the second computing node, further comprising replicating at least a portion of the first subset of the hierarchy maintained on the first computing node. .

11. 제6 조항에 있어서,11. In the case of paragraph 6,

계층구조와 연관된 차원과 차원과 연관된 계산 수요 간 매핑에 적어도 부분적으로 기반하여 계층구조의 영역을 분류하는 단계를 더 포함하는, 방법.Classifying the regions of the hierarchy based at least in part on the mapping between the dimension associated with the hierarchy and the computational demand associated with the dimension.

12. 제6 조항에 있어서,12. The provision of paragraph 6,

경로에서의 데이터 포인트에 대한 액세스의 빈도에 적어도 부분적으로 기반하여 계층구조에서의 경로를 식별하는 단계; 및Identifying a path in the hierarchy based at least in part on the frequency of access to data points in the path; And

액세스의 빈도가 임계 레벨 위에 있는 동안 경로와 연관된 데이터 포인트를 주 메모리에 유지하는 단계를 더 포함하는, 방법. Maintaining the data point associated with the path in main memory while the frequency of access is above a threshold level.

13. 제6 조항에 있어서,13. In the case of paragraph 6,

추가적 서브세트에서의 데이터 포인트와 연관된 계산 수요에 적어도 부분적으로 기반하여, 계층구조의 추가적 서브세트에 대한 제2 스케일링 메커니즘을 선택하는 단계를 더 포함하는, 방법. Selecting a second scaling mechanism for the further subset of the hierarchy based at least in part on the computational demand associated with the data points in the additional subset.

14. 비-일시적 컴퓨터-판독가능한 저장 매체로서, 하나 이상의 컴퓨팅 디바이스에 의한 실행시, 하나 이상의 컴퓨팅 디바이스로 하여금 적어도14. A non-transitory computer-readable storage medium, wherein when executed by one or more computing devices, causes the one or more computing devices to at least

데이터 포인트의 계층구조를 적어도 제1 컴퓨팅 노드 및 제2 컴퓨팅 노드 상에 저장하기로 결정하고;Determine to store a hierarchy of data points on at least a first computing node and a second computing node;

데이터 포인트의 계층구조의 제1 서브세트를 제1 하나 이상의 컴퓨팅 노드 상에 저장하되, 데이터 포인트는 계층구조에서의 데이터 포인트가 계산 수요의 제1 분류와 연관되는 것에 적어도 부분적으로 기반하여 제1 서브세트에 포함되고; 그리고Store a first subset of the hierarchy of data points on the first one or more computing nodes, wherein the data points are based on at least in part the association of the data points in the hierarchy with the first classification of computational demand. Included in the set; And

데이터 포인트의 계층구조의 제2 서브세트를 제2 하나 이상의 컴퓨팅 노드 상에 저장하되, 데이터 포인트는 계층구조에서의 데이터 포인트가 계산 수요의 제2 분류와 연관되는 것에 적어도 부분적으로 기반하여 제2 서브세트에 포함되게 하는 명령어를 저장해 놓은 비-일시적 컴퓨터-판독가능한 저장 매체.Store a second subset of the hierarchy of data points on the second one or more computing nodes, wherein the data points are based on at least in part the association of the data points in the hierarchy with a second classification of computational demand. A non-transitory computer-readable storage medium having stored thereon instructions for inclusion in a set.

15. 제14 조항에 있어서, 하나 이상의 컴퓨팅 디바이스에 의한 실행시, 하나 이상의 컴퓨팅 디바이스로 하여금 적어도15. The method of clause 14, wherein, when executed by one or more computing devices, causes the one or more computing devices to at least

제1 컴퓨팅 노드 및 제2 컴퓨팅 노드를 포함하는 복수의 컴퓨팅 노드 상에 n-차원 큐브의 슬라이스를 저장하기로 결정하되, 슬라이스는 하나 이상의 고정 차원과 하나 이상의 가변 차원의 교차점에 대응하는 데이터 포인트 및 추가적 데이터 포인트의 계층구조를 포함하게 하는 추가적 명령어를 포함하는, 비-일시적 컴퓨터-판독가능한 저장 매체.Determine to store a slice of an n-dimensional cube on a plurality of computing nodes including a first computing node and a second computing node, the slice being a data point corresponding to an intersection of at least one fixed dimension and at least one variable dimension; A non-transitory computer-readable storage medium comprising additional instructions for including a hierarchy of additional data points.

16. 제14 조항에 있어서, 하나 이상의 컴퓨팅 디바이스에 의한 실행시, 하나 이상의 컴퓨팅 디바이스로 하여금 적어도16. The method of clause 14, wherein when executed by one or more computing devices, at least one computing device causes at least

제1 하나 이상의 컴퓨팅 노드로부터 데이터 포인트의 계층구조의 제1 서브세트의 일부를 재위치시키기로 결정하게 하는 추가적 명령어를 포함하고, 결정은 데이터 포인트와 연관된 계산 수요를 모니터링하는 것에 적어도 부분적으로 기반하는, 비-일시적 컴퓨터-판독가능한 저장 매체.And additional instructions for determining to reposition a portion of the first subset of the hierarchy of data points from the first one or more computing nodes, wherein the determination is based at least in part on monitoring computational demand associated with the data point; Non-transitory Computer-readable Storage Media.

17. 제14 조항에 있어서, 제1 분류는 높은 기록 빈도에 기반하고 그리고 계층구조의 제1 서브세트의 데이터 포인트는 제1 하나 이상의 컴퓨팅 노드 간에 수평으로 파티셔닝되는, 비-일시적 컴퓨터-판독가능한 저장 매체.17. The non-transitory computer-readable storage of clause 14, wherein the first classification is based on a high write frequency and the data points of the first subset of the hierarchy are partitioned horizontally between the first one or more computing nodes. media.

18. 제14 조항에 있어서, 제1 분류는 높은 판독 빈도에 기반하고 그리고 제1 하나 이상의 컴퓨팅 노드는 기록가능한 파티션 및 판독-전용 복제본을 포함하는, 비-일시적 컴퓨터-판독가능한 저장 매체.18. The non-transitory computer-readable storage medium of clause 14, wherein the first classification is based on a high read frequency and the first one or more computing nodes include a recordable partition and a read-only copy.

19. 제14 조항에 있어서, 하나 이상의 컴퓨팅 디바이스에 의한 실행시, 하나 이상의 컴퓨팅 디바이스로 하여금 적어도 19. The method of clause 14, wherein, when executed by one or more computing devices, causes the one or more computing devices to at least

계층구조와 연관된 차원과 차원과 연관된 하나 이상의 계산 수요 간 매핑에 적어도 부분적으로 기반하여 계층구조의 영역을 분류하게 하는 추가적 명령어를 포함하는, 비-일시적 컴퓨터-판독가능한 저장 매체.A non-transitory computer-readable storage medium comprising additional instructions for classifying regions of a hierarchy based at least in part on a mapping associated with a hierarchy and one or more computational demands associated with the dimensions.

20. 제14 조항에 있어서, 하나 이상의 컴퓨팅 디바이스에 의한 실행시, 하나 이상의 컴퓨팅 디바이스로 하여금 적어도20. The method of clause 14, wherein when executed by one or more computing devices, cause the one or more computing devices to at least

경로에서의 데이터 포인트에 대한 액세스의 빈도에 적어도 부분적으로 기반하여 계층구조에서의 경로를 식별하고; 그리고Identify a path in the hierarchy based at least in part on the frequency of access to data points in the path; And

액세스의 빈도가 임계 레벨 위에 있는 동안 경로와 연관된 데이터 포인트를 주 메모리에 유지하게 하는 추가적 명령어를 포함하는, 비-일시적 컴퓨터-판독가능한 저장 매체.Non-transitory computer-readable storage medium comprising additional instructions for maintaining a data point associated with a path in main memory while the frequency of access is above a threshold level.

그리고 상기한 것은 이하의 추가적 세트의 조항을 고려하여 더 잘 이해될 수 있다:And the above may be better understood in view of the following additional set of provisions:

1. 실시간 데이터 스트림을 수반하는 데이터 상에 온라인 분석 프로세싱을 수행하기 위한 시스템으로서, 시스템은1. A system for performing on-line analytics processing on data involving a real-time data stream, the system comprising

복수의 차원을 포함하는 n-차원 큐브를 유지하는 복수의 컴퓨팅 노드; 및A plurality of computing nodes holding an n-dimensional cube comprising a plurality of dimensions; And

컴퓨터 판독가능한 명령어를 저장해 놓은 하나 이상의 메모리를 포함하고, 컴퓨터 판독가능한 명령어는, 하나 이상의 컴퓨팅 노드에 의한 실행시, 시스템으로 하여금 적어도One or more memories having stored thereon computer readable instructions, wherein the computer readable instructions, when executed by the one or more computing nodes, cause the system to at least

추가적 차원을 n-차원 큐브에 추가하는 것을 나타내는 정보를 수신하고;Receive information indicating adding an additional dimension to the n-dimensional cube;

데이터 슬라이스를 형성하고, 데이터 슬라이스는 적어도 추가적 차원과 복수의 차원 중 적어도 하나의 교차점에 대응하는 복수의 데이터 포인트를 포함하고; 그리고Forming a data slice, the data slice comprising a plurality of data points corresponding to intersections of at least one of the additional dimension and the plurality of dimensions; And

복수의 데이터 포인트의 계층구조를 부분적으로 실체화하게 하되, 계층구조를 부분적으로 실체화하는 것은 복수의 데이터 포인트 중 제1 데이터 포인트와 복수의 데이터 포인트 중 제2 데이터 포인트 간 종속성을 식별하는 것을 포함하되, 부분적 실체화 동안 복수의 데이터 포인트 중 전부 미만이 컴퓨팅되고 있는, 시스템.Partially materializing the hierarchy of the plurality of data points, and partially materializing the hierarchy includes identifying a dependency between a first data point of the plurality of data points and a second data point of the plurality of data points, Less than all of the plurality of data points are being computed during partial materialization.

2. 제1 조항에 있어서, 하나 이상의 컴퓨팅 노드에 의한 실행시, 시스템으로 하여금 적어도2. The system of clause 1, wherein, when executed by one or more computing nodes, causes the system to at least

종속성을 나타내는 정보를 복수의 컴퓨팅 노드 중 적어도 하나 상에 유지된 리파지토리에 저장하게 하는 컴퓨터-판독가능한 명령어를 저장해 놓은 하나 이상의 메모리를 더 포함하는, 시스템.And at least one memory having stored computer-readable instructions for storing information indicative of the dependency in a repository maintained on at least one of the plurality of computing nodes.

3. 제2 조항에 있어서, 리파지토리는 데이터 슬라이스와 n-차원 큐브의 추가적 데이터 슬라이스 간 제2 종속성을 나타내는 정보를 포함하는, 시스템.3. The system of clause 2, wherein the repository includes information indicating a second dependency between the data slice and additional data slices of the n-dimensional cube.

4. 제1 조항에 있어서, 하나 이상의 컴퓨팅 노드에 의한 실행시, 시스템으로 하여금 적어도4. The system of clause 1, wherein when executed by one or more computing nodes, causes the system to at least

계층구조의 제1 데이터 포인트와 연관된 값을 계산하고;Calculate a value associated with the first data point of the hierarchy;

제1 데이터 포인트로부터 계층구조의 추가적 데이터 포인트로의 경로를 식별하고, 추가적 데이터 포인트는 제1 데이터 포인트의 선조이고; 그리고Identify a path from the first data point to additional data points in the hierarchy, wherein the additional data points are ancestors of the first data point; And

추가적 데이터 포인트가 제1 데이터 포인트에 대해 구식이라는 표시를 레코딩하게 하는 컴퓨터-판독가능한 명령어를 저장해 놓은 하나 이상의 메모리를 더 포함하는, 시스템.Further comprising one or more memory storing computer-readable instructions for causing the additional data point to record an indication that it is outdated for the first data point.

5. 제1 조항에 있어서, 추가적 차원을 n-차원 큐브에 추가하는 것을 나타내는 정보는 추가적 차원에 대응하는 데이터를 포함하는, 시스템.5. The system of clause 1, wherein the information indicating adding the additional dimension to the n-dimensional cube includes data corresponding to the additional dimension.

6. 제1 조항에 있어서, 하나 이상의 컴퓨팅 노드에 의한 실행시, 시스템으로 하여금 적어도6. The system of clause 1, wherein when executed by one or more computing nodes, causes the system to at least

추가적 데이터 포인트의 후손이 데이터의 불완전한 세트와 연관되는 것에 적어도 부분적으로 기반하여, 계층구조의 추가적 데이터 포인트의 계산을 연기하게 하는 컴퓨터-판독가능한 명령어를 저장해 놓은 하나 이상의 메모리를 더 포함하는, 시스템.Further comprising one or more memories storing computer-readable instructions that cause the descendant of additional data points to be associated with an incomplete set of data, at least in part, deferring the calculation of additional data points in the hierarchy.

7. n-차원 큐브를 복수의 컴퓨팅 노드 상에 유지하는 컴퓨터-구현된 방법으로서,7. A computer-implemented method of maintaining an n-dimensional cube on a plurality of computing nodes, wherein:

적어도 데이터 슬라이스를 복수의 컴퓨팅 노드 중 적어도 하나 상에 형성함으로써 추가적 차원을 n-차원 큐브에 추가하는 단계로서, 데이터 슬라이스는 적어도 추가적 차원과 n-차원 큐브의 복수의 차원 중 적어도 하나의 교차점에 대응하는 복수의 데이터 포인트를 포함하는 추가하는 단계; 및Adding an additional dimension to the n-dimensional cube by forming at least a data slice on at least one of the plurality of computing nodes, wherein the data slice corresponds to the intersection of at least one of the additional dimension and the plurality of dimensions of the n-dimensional cube. Adding a plurality of data points; And

복수의 데이터 포인트의 계층구조를 부분적으로 형성하는 단계를 포함하되, 계층구조를 부분적으로 형성하는 단계는 복수의 데이터 포인트 중 제1 데이터 포인트와 복수의 데이터 포인트 중 제2 데이터 포인트 간 종속성을 식별하는 단계를 포함하는, 컴퓨터-구현된 방법.Partially forming a hierarchy of the plurality of data points, wherein partially forming the hierarchy comprises identifying a dependency between a first data point of the plurality of data points and a second data point of the plurality of data points. Computer-implemented method comprising the steps.

8. 제7 조항에 있어서,8. In accordance with paragraph 7,

데이터 슬라이스와 복수의 컴퓨팅 노드 중 제2 적어도 하나 상에 유지된 다른 데이터 슬라이스 간 제2 종속성을 식별하는 단계; 및Identifying a second dependency between a data slice and another data slice maintained on a second at least one of the plurality of computing nodes; And

종속성을 나타내는 정보를 복수의 컴퓨팅 노드 중 제3 적어도 하나 상에 유지된 리파지토리에 저장하는 단계를 더 포함하는, 컴퓨터-구현된 방법.Storing information indicative of the dependency in a repository maintained on a third at least one of the plurality of computing nodes.

9. 제7 조항에 있어서,9. The provisions of paragraph 7 provided that

계층구조의 제1 데이터 포인트에 대한 값을 계산하는 단계;Calculating a value for a first data point in the hierarchy;

제1 데이터 포인트로부터 계층구조의 추가적 데이터 포인트로의 경로를 식별하는 단계로서, 추가적 데이터 포인트는 제1 데이터 포인트의 선조인 식별하는 단계; 및Identifying a path from the first data point to additional data points in the hierarchy, wherein the additional data points are ancestors of the first data point; And

추가적 데이터 포인트가 제1 데이터 포인트에 대해 구식이라는 표시를 레코딩하는 단계를 더 포함하는, 컴퓨터-구현된 방법.And recording an indication that the additional data point is outdated for the first data point.

10. 제7 조항에 있어서,10. The provision of paragraph 7,

추가적 차원을 n-차원 큐브에 추가하는 것을 나타내는 정보를 수신하는 단계를 더 포함하고, 정보는 추가적 차원에 대응하는 데이터를 포함하는, 컴퓨터-구현된 방법.Receiving information indicating adding the additional dimension to the n-dimensional cube, wherein the information comprises data corresponding to the additional dimension.

11. 제7 조항에 있어서,11. In the provisions of Article 7,

추가적 데이터 포인트의 후손이 데이터의 불완전한 세트와 연관되는 것에 적어도 부분적으로 기반하여, 계층구조의 추가적 데이터 포인트의 계산을 연기하는 단계를 더 포함하는, 컴퓨터-구현된 방법.Delaying the calculation of additional data points in the hierarchy based at least in part on the offspring of additional data points associated with the incomplete set of data.

12. 제11 조항에 있어서, 추가적 데이터 포인트는 시간 기간을 표현하는 총계 값과 연관되는, 컴퓨터-구현된 방법.12. The computer-implemented method of clause 11, wherein the additional data point is associated with a total value representing a time period.

13. 제11 조항에 있어서,13. The provisions of Article 11,

n-차원 큐브에서의 데이터에 대한 이전 액세스 패턴에 적어도 부분적으로 기반하여 추가적 데이터 포인트를 컴퓨팅하는 단계를 더 포함하는, 컴퓨터-구현된 방법.computing additional data points based at least in part on previous access patterns to data in the n-dimensional cube.

14. 제7 조항에 있어서,14. In the case of paragraph 7,

추가적 데이터 포인트의 후손과 연관된 값을 외삽하는 것에 적어도 부분적으로 기반하여 계층구조의 추가적 데이터 포인트를 컴퓨팅하는 단계를 더 포함하는, 컴퓨터-구현된 방법.Computing additional data points in the hierarchy based at least in part on extrapolating values associated with descendants of the additional data points.

15. 제7 조항에 있어서,15. The provision of paragraph 7 as follows:

계층구조가 변경된 속성 값에 대해 구식이라고 결정하는 단계;Determining that the hierarchy is outdated for changed attribute values;

변경된 속성 값에 대해 계층구조의 제1 레벨의 계산을 우선순위결정하는 단계; Prioritizing the calculation of the first level of the hierarchy for changed attribute values;

계층구조의 제2 레벨의 계산을 연기하는 단계로서, 제2 레벨은 제1 레벨에 종속하는 연기하는 단계; 및Deferring a calculation of a second level of the hierarchy, the second level being dependent on the first level; And

드릴-다운, 드릴-업, 또는 피벗 이벤트 중 적어도 하나에 응답하여 계층구조의 제2 레벨의 계산을 우선순위결정하는 단계를 더 포함하는, 컴퓨터-구현된 방법.Prioritizing the calculation of the second level of the hierarchy in response to at least one of a drill-down, drill-up, or pivot event.

16. 비-일시적 컴퓨터-판독가능한 저장 매체로서, 하나 이상의 컴퓨팅 디바이스에 의한 실행시, 하나 이상의 컴퓨팅 디바이스로 하여금 적어도16. A non-transitory computer-readable storage medium, wherein when executed by one or more computing devices, causes the one or more computing devices to at least

적어도 데이터 슬라이스를 복수의 컴퓨팅 노드 중 적어도 하나 상에 형성함으로써 추가적 차원을 n-차원 큐브에 추가하고, 데이터 슬라이스는 적어도 추가적 차원과 n-차원 큐브의 복수의 차원 중 적어도 하나의 교차점에 대응하는 복수의 데이터 포인트를 포함하고; 그리고Adding additional dimensions to the n-dimensional cube by forming at least data slices on at least one of the plurality of computing nodes, wherein the data slices correspond to at least one intersection of at least one of the additional dimensions and the plurality of dimensions of the n-dimensional cube; A data point of; And

복수의 데이터 포인트의 계층구조를 부분적으로 형성하되, 계층구조를 부분적으로 형성하는 것은 복수의 데이터 포인트 중 제1 데이터 포인트와 복수의 데이터 포인트 중 제2 데이터 포인트 간 종속성을 식별하는 것을 포함하게 하는 명령어를 저장해 놓은 비-일시적 컴퓨터-판독가능한 저장 매체.Partially forming a hierarchy of the plurality of data points, wherein partially forming the hierarchy includes identifying a dependency between a first data point of the plurality of data points and a second data point of the plurality of data points A non-transitory computer-readable storage medium having stored thereon.

17. 제16 조항에 있어서, 하나 이상의 컴퓨팅 디바이스에 의한 실행시, 하나 이상의 컴퓨팅 디바이스로 하여금 적어도17. The method of clause 16, wherein, when executed by one or more computing devices, causes the one or more computing devices to at least

데이터 슬라이스와 복수의 컴퓨팅 노드 중 제2 적어도 하나 상에 유지된 다른 데이터 슬라이스 간 제2 종속성을 식별하고; 그리고Identify a second dependency between a data slice and another data slice maintained on a second at least one of the plurality of computing nodes; And

종속성을 나타내는 정보를 복수의 컴퓨팅 노드 중 제3 적어도 하나 상에 유지된 리파지토리에 저장하게 하는 추가적 명령어를 포함하는, 비-일시적 컴퓨터-판독가능한 저장 매체.Non-transitory computer-readable storage medium comprising additional instructions for storing information indicative of the dependency in a repository maintained on a third at least one of the plurality of computing nodes.

18. 제16 조항에 있어서, 하나 이상의 컴퓨팅 디바이스에 의한 실행시, 하나 이상의 컴퓨팅 디바이스로 하여금 적어도18. The method of clause 16, wherein, when executed by one or more computing devices, causes the one or more computing devices to at least

계층구조의 제1 데이터 포인트에 대한 값을 계산하고;Calculate a value for a first data point in the hierarchy;

제1 데이터 포인트로부터 계층구조의 추가적 데이터 포인트로의 경로를 식별하고, 추가적 데이터 포인트는 제1 데이터 포인트의 선조이고; 그리고Identify a path from the first data point to additional data points in the hierarchy, wherein the additional data points are ancestors of the first data point; And

추가적 데이터 포인트와 연관된 추가적 값이 제1 데이터 포인트에 대해 구식이라는 표시를 레코딩하게 하는 추가적 명령어를 포함하는, 비-일시적 컴퓨터-판독가능한 저장 매체.Non-transitory computer-readable storage medium comprising additional instructions for causing the additional value associated with the additional data point to record an indication that it is outdated for the first data point.

19. 제16 조항에 있어서, 하나 이상의 컴퓨팅 디바이스에 의한 실행시, 하나 이상의 컴퓨팅 디바이스로 하여금 적어도19. The method of clause 16, wherein, when executed by one or more computing devices, causes the one or more computing devices to at least

추가적 차원을 n-차원 큐브에 추가하는 것을 나타내는 정보를 수신하게 하는 추가적 명령어를 포함하고, 정보는 추가적 차원에 대응하는 데이터를 포함하는, 비-일시적 컴퓨터-판독가능한 저장 매체.Non-transitory computer-readable storage medium comprising additional instructions for receiving information indicating adding the additional dimension to the n-dimensional cube, wherein the information comprises data corresponding to the additional dimension.

20. 제16 조항에 있어서, 하나 이상의 컴퓨팅 디바이스에 의한 실행시, 하나 이상의 컴퓨팅 디바이스로 하여금 적어도20. The method of clause 16, wherein when executed by one or more computing devices, cause the one or more computing devices to at least

추가적 데이터 포인트의 후손이 데이터의 불완전한 세트와 연관되는 것에 적어도 부분적으로 기반하여, 계층구조의 추가적 데이터 포인트와 연관된 값의 계산을 연기하게 하는 추가적 명령어를 포함하는, 비-일시적 컴퓨터-판독가능한 저장 매체.A non-transitory computer-readable storage medium comprising additional instructions for deferring the calculation of a value associated with additional data points in the hierarchy based at least in part on the offspring of the additional data points associated with the incomplete set of data. .

21. 제16 조항에 있어서, 하나 이상의 컴퓨팅 디바이스에 의한 실행시, 하나 이상의 컴퓨팅 디바이스로 하여금 적어도21. The method of clause 16, wherein, when executed by one or more computing devices, causes the one or more computing devices to at least

데이터의 불완전한 세트에 기반하여 계층구조의 추가적 데이터 포인트에 대한 총계 값을 컴퓨팅하고, 데이터의 불완전한 세트는 아직 경과하지 않은 시간의 기간에 대응하고; Compute a total value for additional data points in the hierarchy based on the incomplete set of data, wherein the incomplete set of data corresponds to a period of time that has not yet elapsed;

처음에 추가적 데이터 포인트의 선조와 연관된 값의 계산을 연기하고; 그리고Initially defer the calculation of values associated with the ancestors of additional data points; And

시간 기간이 경과하는 것에 응답하여 추가적 데이터 포인트의 선조와 연관된 값의 계산을 우선순위결정하게 하는 추가적 명령어를 포함하는, 비-일시적 컴퓨터-판독가능한 저장 매체.Non-transitory computer-readable storage medium comprising additional instructions for prioritizing the calculation of a value associated with an ancestor of additional data points in response to a passage of time.

22. 제16 조항에 있어서, 하나 이상의 컴퓨팅 디바이스에 의한 실행시, 하나 이상의 컴퓨팅 디바이스로 하여금 적어도22. The method of clause 16, wherein when executed by one or more computing devices, cause the one or more computing devices to at least

계층구조가 변경된 속성 값에 대해 구식이라고 결정하고;Determine that the hierarchy is outdated for changed attribute values;

변경된 속성 값에 대해 계층구조의 제1 레벨의 계산을 우선순위결정하고; 그리고Prioritizing the calculation of the first level of the hierarchy for changed attribute values; And

처음에 계층구조의 제2 레벨의 계산을 연기하고, 제2 레벨은 제1 레벨에 종속하고; 그리고Initially defer the calculation of the second level of the hierarchy, the second level dependent on the first level; And

드릴-다운, 드릴-업, 또는 피벗 이벤트 중 적어도 하나에 응답하여 계층구조의 제2 레벨의 계산을 우선순위결정하게 하는 추가적 명령어를 포함하는, 비-일시적 컴퓨터-판독가능한 저장 매체.Non-transitory computer-readable storage medium comprising additional instructions for prioritizing the calculation of the second level of the hierarchy in response to at least one of a drill-down, drill-up, or pivot event.

부가적으로, 상기한 것은 이들 추가적 조항을 고려하여 더 잘 이해될 수 있다:In addition, the foregoing may be better understood in view of these additional provisions:

1. 실시간 데이터 스트림을 수반하는 데이터 상에 온라인 분석 프로세싱을 수행하기 위한 시스템으로서, 시스템은1. A system for performing on-line analytics processing on data involving a real-time data stream, the system comprising

복수의 차원 및 복수의 차원의 적어도 하나의 서브세트의 교차점에 대응하는 복수의 데이터 포인트를 포함하는 n-차원 큐브를 유지하는 하나 이상의 컴퓨팅 노드로서, 복수의 데이터 포인트는 제1 데이터 포인트 및 제2 데이터 포인트를 포함하는 하나 이상의 컴퓨팅 노드; 및At least one computing node that maintains an n-dimensional cube comprising a plurality of data points and a plurality of data points corresponding to intersections of at least one subset of the plurality of dimensions, wherein the plurality of data points comprise a first data point and a second data point; One or more computing nodes including data points; And

컴퓨터-판독가능한 명령어를 저장해 놓은 하나 이상의 메모리를 포함하고, 컴퓨터-판독가능한 명령어는, 하나 이상의 컴퓨팅 노드에 의한 실행시, 시스템으로 하여금 적어도One or more memories that store computer-readable instructions, wherein the computer-readable instructions, when executed by one or more computing nodes, cause the system to at least

제1 데이터 포인트와 제2 데이터 포인트 간 종속성을 식별하고, 종속성은 제1 데이터 포인트에 기반하는 제2 데이터 포인트의 계산을 포함하고;Identify a dependency between the first data point and the second data point, the dependency including a calculation of a second data point based on the first data point;

제2 데이터 포인트를 계산하기 위한 우선순위를 결정하고, 우선순위는 제2 데이터 포인트에 액세스하라는 요청을 수신할 가망을 나타내는 정보에 적어도 부분적으로 기반하고; 그리고Determine a priority for calculating the second data point, the priority being based at least in part on information indicative of the likelihood of receiving a request to access the second data point; And

제1 데이터 포인트에 대한 변경에 그리고 우선순위에 적어도 부분적으로 기반하여 제2 데이터 포인트의 계산을 스케줄링하게 하는, 시스템.Schedule a calculation of a second data point based at least in part on a change to the first data point and on a priority.

2. 제1 조항에 있어서, 하나 이상의 컴퓨팅 노드에 의한 실행시, 시스템으로 하여금 적어도2. The system of clause 1, wherein, when executed by one or more computing nodes, causes the system to at least

사용자 인터페이스와의 상호작용을 나타내는 정보를 수신하는 것에 적어도 부분적으로 기반하여 제2 데이터 포인트에 액세스하라는 요청을 수신할 가망을 계산하게 하는 컴퓨터-판독가능한 명령어를 저장해 놓은 하나 이상의 메모리를 더 포함하는, 시스템.Further comprising one or more memories storing computer-readable instructions for computing a prospect to receive a request to access a second data point based at least in part on receiving information indicative of interaction with the user interface, system.

3. 제1 조항에 있어서, 하나 이상의 컴퓨팅 노드에 의한 실행시, 시스템으로 하여금 적어도3. The system of clause 1, wherein when executed by one or more computing nodes, causes the system to at least

n-차원 큐브 또는 n-차원 큐브와 관련된 트랜잭션 데이터 소스 중 적어도 하나에 대비하여 실행된 질의에 의해 내포된 액세스 패턴에 적어도 부분적으로 기반하여 제2 데이터 포인트에 액세스하라는 요청을 수신할 가망을 계산하게 하는 컴퓨터-판독가능한 명령어를 저장해 놓은 하나 이상의 메모리를 더 포함하는, 시스템.calculate a likelihood to receive a request to access a second data point based at least in part on an access pattern implied by a query executed against at least one of an n-dimensional cube or a transactional data source associated with the n-dimensional cube And at least one memory having stored thereon computer-readable instructions.

4. 제1 조항에 있어서, 하나 이상의 컴퓨팅 노드에 의한 실행시, 시스템으로 하여금 적어도4. The system of clause 1, wherein when executed by one or more computing nodes, causes the system to at least

드릴-다운, 드릴-업, 또는 피벗 중 적어도 하나를 수행하라는 요청에 적어도 부분적으로 기반하여 제2 데이터 포인트에 액세스하라는 요청을 수신할 가망을 계산하게 하는 컴퓨터-판독가능한 명령어를 저장해 놓은 하나 이상의 메모리를 더 포함하는, 시스템. One or more memories that store computer-readable instructions for calculating a prospect to receive a request to access a second data point based at least in part on a request to perform at least one of drill-down, drill-up, or pivot Further comprising, the system.

5. 제1 조항에 있어서, 하나 이상의 컴퓨팅 노드에 의한 실행시, 시스템으로 하여금 적어도5. The system of clause 1, wherein when executed by one or more computing nodes, causes the system to at least

제2 데이터 포인트를 계산하는 동안 경과된 시간에 적어도 부분적으로 기반하여 제2 값을 계산하기 위한 우선순위를 결정하게 하는 컴퓨터-판독가능한 명령어를 저장해 놓은 하나 이상의 메모리를 더 포함하는, 시스템.Further comprising one or more memories storing computer-readable instructions for determining a priority for calculating a second value based at least in part on elapsed time during calculating the second data point.

6. n-차원 큐브의 데이터 포인트와 연관된 값을 계산하기 위한 컴퓨터-구현된 방법으로서, 방법은6. A computer-implemented method for calculating a value associated with a data point of an n-dimensional cube, wherein the method is

제1 데이터 포인트와 제2 데이터 포인트 간 종속성을 식별하는 단계;Identifying a dependency between the first data point and the second data point;

제2 데이터 포인트를 계산하기 위한 우선순위를 결정하는 단계로서, 우선순위는 제2 데이터 포인트에 액세스하라는 요청을 수신할 가망을 나타내는 정보에 적어도 부분적으로 기반하는 결정하는 단계; 및Determining a priority to calculate a second data point, the priority being determined based at least in part on information indicative of the likelihood of receiving a request to access the second data point; And

제1 데이터 포인트에 대한 변경에 그리고 우선순위에 적어도 부분적으로 기반하여 제2 데이터 포인트의 계산을 스케줄링하는 단계를 포함하는, 컴퓨터-구현된 방법.Scheduling the calculation of the second data point based at least in part on a change to the first data point and on the priority.

7. 제6 조항에 있어서, 제2 데이터 포인트의 계산을 스케줄링하는 단계는 우선순위에 적어도 부분적으로 기반하여 제1 및 제2 데이터 포인트를 정렬하는 단계를 포함하는, 컴퓨터-구현된 방법.7. The computer-implemented method of clause 6, wherein scheduling the calculation of the second data point comprises aligning the first and second data points based at least in part on the priority.

8. 제6 조항에 있어서,8. In accordance with paragraph 6,

드릴-다운, 드릴-업, 또는 피벗 제어 중 적어도 하나와의 상호작용을 나타내는 정보를 수신하는 것에 적어도 부분적으로 기반하여 제2 데이터 포인트에 액세스하라는 요청을 수신할 가망을 계산하는 단계를 더 포함하는, 컴퓨터-구현된 방법.Calculating a likelihood to receive a request to access a second data point based at least in part on receiving information indicative of interaction with at least one of drill-down, drill-up, or pivot control. , Computer-implemented method.

9. 제6 조항에 있어서,9. In accordance with paragraph 6,

n-차원 큐브 또는 n-차원 큐브와 관련된 트랜잭션 데이터 소스 중 적어도 하나에 대비하여 실행된 질의에 의해 내포된 액세스 패턴에 적어도 부분적으로 기반하여 제2 데이터 포인트에 액세스하라는 요청을 수신할 가망을 계산하는 단계를 더 포함하는, 컴퓨터-구현된 방법.calculating a likelihood of receiving a request to access a second data point based at least in part on an access pattern implied by a query executed against at least one of an n-dimensional cube or a transactional data source associated with the n-dimensional cube And further comprising a step.

10. 제9 조항에 있어서, 액세스 패턴은 총계 값으로의 액세스를 포함하는, 컴퓨터-구현된 방법.10. The computer-implemented method of clause 9, wherein the access pattern comprises access to a total value.

11. 제6 조항에 있어서,11. In the case of paragraph 6,

제2 데이터 포인트를 컴퓨팅하는 비용에 적어도 부분적으로 기반하여 제2 데이터 포인트를 계산하기 위한 우선순위를 결정하는 단계를 더 포함하는, 컴퓨터-구현된 방법.Determining a priority for calculating the second data point based at least in part on the cost of computing the second data point.

12. 제6 조항에 있어서,12. The provision of paragraph 6,

제2 데이터 포인트에 액세스하라는 요청을 수신하는 것에 적어도 부분적으로 기반하여 제2 데이터 포인트를 계산하는 단계를 더 포함하는, 컴퓨터-구현된 방법.Calculating a second data point based at least in part on receiving a request to access the second data point.

13. 제6 조항에 있어서,13. In the case of paragraph 6,

제1 데이터 포인트가 사용자에게 디스플레이를 위해 컴퓨팅 디바이스에 송신되는 것에 적어도 부분적으로 기반하여, 제2 값에 액세스하라는 요청을 수신할 가망이 증가된다고 결정하는 단계를 더 포함하는, 컴퓨터-구현된 방법.And determining, based at least in part on the first data point being sent to the computing device for display to the user, an increased likelihood of receiving a request to access the second value.

14. 비-일시적 컴퓨터-판독가능한 저장 매체로서, 하나 이상의 컴퓨팅 디바이스에 의한 실행시, 하나 이상의 컴퓨팅 디바이스로 하여금 적어도14. A non-transitory computer-readable storage medium, wherein when executed by one or more computing devices, causes the one or more computing devices to at least

n-차원 큐브의 제1 데이터 포인트와 제2 데이터 포인트 간 종속성을 식별하고;identify a dependency between a first data point and a second data point of the n-dimensional cube;

제2 데이터 포인트를 계산하기 위한 우선순위를 결정하고, 우선순위는 제2 데이터 포인트에 액세스하라는 요청을 수신할 가망을 나타내는 정보에 적어도 부분적으로 기반하고; 그리고Determine a priority for calculating the second data point, the priority being based at least in part on information indicative of the likelihood of receiving a request to access the second data point; And

제1 데이터 포인트에 대한 변경에 그리고 우선순위에 적어도 부분적으로 기반하여 제2 데이터 포인트의 계산을 스케줄링하게 하는 명령어를 저장해 놓은 비-일시적 컴퓨터-판독가능한 저장 매체.A non-transitory computer-readable storage medium having stored thereon instructions for scheduling a calculation of a second data point based at least in part on a change to the first data point and based on a priority.

15. 제14 조항에 있어서, 하나 이상의 컴퓨팅 디바이스에 의한 실행시, 하나 이상의 컴퓨팅 디바이스로 하여금 적어도15. The method of clause 14, wherein, when executed by one or more computing devices, causes the one or more computing devices to at least

드릴-다운, 드릴-업, 또는 피벗 연산 중 적어도 하나를 수행하는 것을 나타내는 정보를 수신하는 것에 적어도 부분적으로 기반하여 제2 데이터 포인트에 액세스하라는 요청을 수신할 가망을 계산하게 하는 추가적 명령어를 포함하는, 비-일시적 컴퓨터-판독가능한 저장 매체.Additional instructions for calculating a prospect to receive a request to access a second data point based at least in part on receiving information indicative of performing at least one of a drill-down, drill-up, or pivot operation. , Non-transitory computer-readable storage medium.

16. 제14 조항에 있어서, 하나 이상의 컴퓨팅 디바이스에 의한 실행시, 하나 이상의 컴퓨팅 디바이스로 하여금 적어도16. The method of clause 14, wherein when executed by one or more computing devices, at least one computing device causes at least

n-차원 큐브 또는 n-차원 큐브와 관련된 트랜잭션 데이터 소스 중 적어도 하나에 대비하여 실행된 질의에 의해 내포된 액세스 패턴에 적어도 부분적으로 기반하여 제2 데이터 포인트에 액세스하라는 요청을 수신할 가망을 계산하게 하는 추가적 명령어를 포함하는, 비-일시적 컴퓨터-판독가능한 저장 매체.calculate a likelihood to receive a request to access a second data point based at least in part on an access pattern implied by a query executed against at least one of an n-dimensional cube or a transactional data source associated with the n-dimensional cube And a non-transitory computer-readable storage medium comprising additional instructions.

17. 제16 조항에 있어서, 액세스 패턴은 n-차원 큐브 또는 n-차원 큐브와 관련된 트랜잭션 데이터 소스 중 적어도 하나에 의해 프로세싱된 질의를 포함하고, 질의는 총계 절을 포함하는, 비-일시적 컴퓨터-판독가능한 저장 매체.17. The non-transitory computer- clause 16, wherein the access pattern comprises a query processed by at least one of an n-dimensional cube or a transactional data source associated with the n-dimensional cube, the query comprising a grand total clause. Readable Storage Media.

18. 제14 조항에 있어서, 하나 이상의 컴퓨팅 디바이스에 의한 실행시, 하나 이상의 컴퓨팅 디바이스로 하여금 적어도18. The method of clause 14, wherein when executed by one or more computing devices, at least one computing device causes at least

제2 데이터 포인트를 컴퓨팅하는 비용에 적어도 부분적으로 기반하여 제2 데이터 포인트를 계산하기 위한 우선순위를 결정하게 하는 추가적 명령어를 포함하는, 비-일시적 컴퓨터-판독가능한 저장 매체.Non-transitory computer-readable storage medium comprising additional instructions for determining a priority for calculating the second data point based at least in part on the cost of computing the second data point.

19. 제14 조항에 있어서, 하나 이상의 컴퓨팅 디바이스에 의한 실행시, 하나 이상의 컴퓨팅 디바이스로 하여금 적어도19. The method of clause 14, wherein, when executed by one or more computing devices, causes the one or more computing devices to at least

제2 데이터 포인트에 액세스하라는 요청을 수신하는 것에 적어도 부분적으로 기반하여 제2 데이터 포인트를 계산하게 하는 추가적 명령어를 포함하는, 비-일시적 컴퓨터-판독가능한 저장 매체.Non-transitory computer-readable storage medium comprising additional instructions for calculating a second data point based at least in part on receiving a request to access the second data point.

20. 제14 조항에 있어서, 하나 이상의 컴퓨팅 디바이스에 의한 실행시, 하나 이상의 컴퓨팅 디바이스로 하여금 적어도20. The method of clause 14, wherein when executed by one or more computing devices, cause the one or more computing devices to at least

제1 값이 사용자에게 디스플레이를 위해 컴퓨팅 디바이스에 송신되는 것에 적어도 부분적으로 기반하여, 제2 데이터 포인트에 액세스하라는 요청을 수신할 가망이 증가된다고 결정하게 하는 추가적 명령어를 포함하는, 비-일시적 컴퓨터-판독가능한 저장 매체.A non-transitory computer- comprising additional instructions that determine, based at least in part on the first value being sent to the computing device for display to the user, an increased likelihood of receiving a request to access the second data point. Readable Storage Media.

21. 제14 조항에 있어서, 하나 이상의 컴퓨팅 디바이스에 의한 실행시, 하나 이상의 컴퓨팅 디바이스로 하여금 적어도21. The method of clause 14, wherein when executed by one or more computing devices, at least one computing device causes at least

우선순위에 적어도 부분적으로 기반하여 제2 데이터 포인트를 계산하기로 결정하게 하는 추가적 명령어를 포함하고, 우선순위는 n-차원 큐브에서의 다른 데이터 포인트를 계산하기 위한 우선순위에 상대적인, 비-일시적 컴퓨터-판독가능한 저장 매체.A non-transitory computer comprising additional instructions that determine to calculate a second data point based at least in part on the priority, the priority being relative to the priority for calculating another data point in the n-dimensional cube. -Readable storage medium.

22. 제14 조항에 있어서, 하나 이상의 컴퓨팅 디바이스에 의한 실행시, 하나 이상의 컴퓨팅 디바이스로 하여금 적어도22. The method of clause 14, wherein when executed by one or more computing devices, causes the one or more computing devices to at least

제2 데이터 포인트, 차원, 계층구조, 또는 n-차원 큐브 중 적어도 하나와 연관된 보안 속성에 적어도 부분적으로 기반하여 제2 데이터 포인트를 계산하기로 결정하게 하는 추가적 명령어를 포함하는, 비-일시적 컴퓨터-판독가능한 저장 매체.A non-transitory computer- comprising additional instructions for determining to calculate a second data point based at least in part on a security attribute associated with at least one of the second data point, dimension, hierarchy, or n-dimensional cube. Readable Storage Media.

특히, "할 수 있다", "하였을 수 있다", "하였을 수도 있다", "할 수도 있다", "예를 들어" 등과 같은, 여기에서 사용된 조건법 언어는, 특히 달리 서술되거나, 아니면 사용된 대로 맥락 내에서 이해되지 않는 한, 일반적으로는 소정 특징, 요소 및/또는 단계를 소정 실시형태는 포함하지만 다른 실시형태는 포함하지 않음을 전하도록 의도된다. 그리하여, 그러한 조건법 언어는 일반적으로는 특징, 요소 및/또는 단계가 어떤 식으로라도 하나 이상의 실시형태에는 필요로 된다는 것 또는 하나 이상의 실시형태가, 저자 입력 또는 프롬프트가 있거나 없이, 이들 특징, 요소 및/또는 단계가 어느 특정 실시형태에서 수행되게 되거나 포함되는지 결정하기 위한 로직을 반드시 포함한다는 것을 내포하도록 의도되지는 않는다. 용어 "포함하고 있는", "포함하는", "갖는" 등은 동의어이고, 개방단 방식으로, 포함적으로 사용되고, 부가적 요소, 특징, 단계, 동작 등을 배제하지 않는다. 또한, 용어 "또는"은, 예를 들어, 소정 목록의 요소들을 연결하도록 사용될 때, 용어 "또는"이 목록 내 요소 중 하나, 일부 또는 전부를 의미하도록 (그 배타적 의미가 아니라) 그 포함적 의미로 사용된다.In particular, the conditional language used herein, such as “may”, “may”, “may”, “may”, “for example”, etc., is specifically described or otherwise used Unless otherwise understood within the context, it is generally intended to convey certain features, elements, and / or steps, including certain embodiments but not other embodiments. Thus, such conditional language generally requires that features, elements, and / or steps be in some way necessary for one or more embodiments, or one or more embodiments, with or without author input or prompts, It is not intended to imply that the steps necessarily include logic for determining in which particular embodiment to be performed or included. The terms "comprising", "comprising", "having" and the like are synonymous and used inclusively, in an open-ended manner, and do not exclude additional elements, features, steps, actions, and the like. In addition, the term “or”, when used to, for example, link elements of a list, includes, but not exclusively, the term “or” to mean one, some, or all of the elements in the list. Used as

특정 예의 실시형태가 설명되었지만, 이들 실시형태는 단지 예로서 제시되었을 뿐이고, 여기에서 개시된 발명의 범위를 한정하려는 의도는 아니다. 그리하여, 상기 설명에서의 어느 것도 어느 특정 특징, 특성, 단계, 모듈 또는 블록이 필수적이거나 불가피한 것임을 내포하려는 의도는 아니다. 실로, 여기에서 설명된 신규 방법 및 시스템은 다양한 다른 형태로 구체화될 수 있다; 더욱, 여기에서 설명된 방법 및 시스템의 형태에서의 다양한 생략, 대체, 및 변경이 여기에서 개시된 본 발명의 취지로부터 벗어남이 없이 이루어질 수 있다. 수반 청구범위 및 그 균등물은 여기에서 개시된 본 발명의 특정의 범위 및 취지 내에 드는 바와 같은 그러한 형태 또는 수정을 망라하도록 의도된다.While specific example embodiments have been described, these embodiments have been presented by way of example only, and are not intended to limit the scope of the inventions disclosed herein. Thus, nothing in the above description is intended to imply that any particular feature, characteristic, step, module or block is essential or inevitable. Indeed, the novel methods and systems described herein may be embodied in a variety of other forms; Moreover, various omissions, substitutions, and changes in the form of the methods and systems described herein may be made without departing from the spirit of the invention disclosed herein. The accompanying claims and their equivalents are intended to cover such forms or modifications as would fall within the specific scope and spirit of the inventions disclosed herein.

Claims (15)

데이터 분석계를 수행하기 위한 시스템으로서, 상기 시스템은
제1 하나 이상의 컴퓨팅 노드 및 제2 하나 이상의 컴퓨팅 노드를 포함하는 복수의 컴퓨팅 노드로서, 상기 복수의 컴퓨팅 노드는, 활성화될 때, n-차원 큐브의 슬라이스(a slice of an n-dimensional cube)를 저장하고, 상기 슬라이스는 데이터 포인트의 계층구조(hierachy)를 포함하고, 상기 데이터 포인트는 하나 이상의 고정 차원과 하나 이상의 가변 차원의 교차점에 대응하는 상기 복수의 컴퓨팅 노드; 및
컴퓨터-판독가능한 명령어를 저장해 놓은 하나 이상의 메모리를 포함하고, 상기 컴퓨터-판독가능한 명령어는, 실행시, 상기 시스템으로 하여금 적어도
데이터 포인트의 상기 계층구조의 제1 서브세트를 상기 제1 하나 이상의 컴퓨팅 노드 상에 저장하되, 데이터 포인트는 상기 계층구조의 데이터 포인트가 계산 수요(computational demands)의 제1 분류(a first classification)와 연관되는 것에 적어도 부분적으로 기반하여 상기 제1 서브세트에 포함되고;
데이터 포인트의 상기 계층구조의 제2 서브세트를 상기 제2 하나 이상의 컴퓨팅 노드 상에 저장하되, 데이터 포인트는 상기 계층구조의 데이터 포인트가 계산 수요의 제2 분류와 연관되는 것에 적어도 부분적으로 기반하여 상기 제2 서브세트에 포함되고; 그리고
상기 제1 하나 이상의 컴퓨팅 노드 상에서 상기 계층구조의 데이터 포인트에 액세스하되, 상기 제1 하나 이상의 컴퓨팅 노드는 계산 수요의 상기 제1 분류에 적어도 부분적으로 기반하여 스케일링 메커니즘(a scaling mechanism)으로 구성되게 하는, 시스템.
A system for performing a data analysis system, the system comprising
A plurality of computing nodes comprising a first one or more computing nodes and a second one or more computing nodes, wherein the plurality of computing nodes, when activated, comprise a slice of an n-dimensional cube. The slice comprises a hierarchy of data points, the data points corresponding to intersections of at least one fixed dimension and at least one variable dimension; And
One or more memories having stored thereon computer-readable instructions, wherein the computer-readable instructions, when executed, cause the system to:
Store a first subset of the hierarchy of data points on the first one or more computing nodes, wherein data points of the hierarchy are associated with a first classification of computational demands. Included in the first subset based at least in part on the associated;
Store a second subset of the hierarchy of data points on the second one or more computing nodes, wherein the data points are based at least in part on the data points of the hierarchy associated with a second classification of computational demand. Is included in the second subset; And
Accessing the hierarchical data points on the first one or more computing nodes, wherein the first one or more computing nodes are configured into a scaling mechanism based at least in part on the first classification of computational demand. , system.
제1항에 있어서, 상기 제1 분류는 높은 기록 빈도에 기반하고 그리고 상기 스케일링 메커니즘은 상기 계층구조의 상기 제1 서브세트에서의 데이터 포인트를 상기 제1 하나 이상의 컴퓨팅 노드 간에 수평으로 파티셔닝하는 것을 포함하는, 시스템.The method of claim 1, wherein the first classification is based on a high write frequency and the scaling mechanism includes partitioning data points in the first subset of the hierarchy horizontally between the first one or more computing nodes. System. 제1항에 있어서, 상기 제1 분류는 높은 판독 빈도에 기반하고 그리고 상기 스케일링 메커니즘은 상기 제1 하나 이상의 컴퓨팅 노드가 기록가능한 파티션의 적어도 하나의 판독-전용 복제본을 포함하는 것을 포함하는, 시스템.The system of claim 1, wherein the first classification is based on a high read frequency and the scaling mechanism comprises the first one or more computing nodes include at least one read-only copy of a partition that is writable. 제1항에 있어서, 실행시, 상기 시스템으로 하여금 적어도
상기 계층구조와 연관된 차원과 상기 차원과 연관된 하나 이상의 계산 수요 간 매핑에 적어도 부분적으로 기반하여 상기 계층구조의 영역을 분류하게 하는 컴퓨터-판독가능한 명령어를 저장해 놓은 하나 이상의 메모리를 더 포함하는, 시스템.
The system of claim 1, wherein, when executed, causing the system to at least
And at least one memory storing computer-readable instructions for classifying regions of the hierarchy based at least in part on a mapping between a dimension associated with the hierarchy and one or more computational demands associated with the dimension.
제1항에 있어서, 실행시, 상기 시스템으로 하여금 적어도
경로에서의 데이터 포인트에 대한 액세스의 빈도에 적어도 부분적으로 기반하여 상기 계층구조에서의 상기 경로를 식별하고; 그리고
액세스의 상기 빈도가 임계 레벨 위에 있는 동안 상기 경로와 연관된 상기 데이터 포인트를 주 메모리에 유지하게 하는 컴퓨터-판독가능한 명령어를 저장해 놓은 하나 이상의 메모리를 더 포함하는, 시스템.
The system of claim 1, wherein, when executed, causing the system to at least
Identify the path in the hierarchy based at least in part on the frequency of access to data points in the path; And
And at least one memory having stored computer-readable instructions for maintaining the data point associated with the path in main memory while the frequency of access is above a threshold level.
n-차원 큐브를 유지하기 위한 컴퓨터-구현 방법으로서,
상기 n-차원 큐브에서 데이터 포인트의 계층구조의 제1 서브세트를 식별하는 단계로서, 상기 서브세트는 상기 계층구조의 상기 제1 서브세트에서의 데이터 포인트와 연관된 계산 수요에 적어도 부분적으로 기반하여 식별되는 상기 식별하는 단계;
상기 데이터 포인트와 연관된 상기 계산 수요에 적어도 부분적으로 기반하여 스케일링 메커니즘을 선택하는 단계; 및
상기 계층구조의 상기 제1 서브세트를 적어도 제1 컴퓨팅 노드 및 제2 컴퓨팅 노드 상에 저장하는 단계로서, 상기 계층구조의 상기 제1 서브세트는 선택된 상기 스케일링 메커니즘에 기반하여 적어도 상기 제1 컴퓨팅 노드와 상기 제2 컴퓨팅 노드 간에 파티셔닝 또는 복제되는, 상기 저장하는 단계를 포함하는, n-차원 큐브를 유지하기 위한 컴퓨터-구현 방법.
A computer-implemented method for maintaining an n-dimensional cube,
Identifying a first subset of a hierarchy of data points in the n-dimensional cube, wherein the subset is identified based at least in part on computational demands associated with data points in the first subset of the hierarchy. Identifying said being;
Selecting a scaling mechanism based at least in part on the computational demand associated with the data point; And
Storing the first subset of the hierarchy on at least a first computing node and a second computing node, wherein the first subset of the hierarchy is based on at least the scaling mechanism selected. And storing the partitioned or replicated between the second computing node and the second computing node.
제6항에 있어서, 상기 스케일링 메커니즘은 판독 빈도에 비해 기록 빈도가 높은 것에 적어도 부분적으로 기반하여 선택되는, n-차원 큐브를 유지하기 위한 컴퓨터-구현 방법.7. The computer-implemented method of claim 6, wherein the scaling mechanism is selected based at least in part on a higher write frequency relative to the read frequency. 제7항에 있어서,
상기 계층구조의 상기 제1 서브세트에서의 데이터 포인트를 적어도 상기 제1 컴퓨팅 노드와 상기 제2 컴퓨팅 노드 간에 수평으로 파티셔닝하는 단계를 더 포함하는, n-차원 큐브를 유지하기 위한 컴퓨터-구현 방법.
The method of claim 7, wherein
Partitioning data points in the first subset of the hierarchy at least horizontally between at least the first computing node and the second computing node.
제6항에 있어서, 상기 스케일링 메커니즘은 상기 계층구조의 상기 제1 서브세트에서의 데이터를 판독하라는 요청에 응답하기 위한 상기 제1 컴퓨팅 노드의 용량에 비해 판독 빈도가 높은 것에 적어도 부분적으로 기반하여 선택되는, n-차원 큐브를 유지하기 위한 컴퓨터-구현 방법.7. The method of claim 6, wherein the scaling mechanism is selected based at least in part on a high frequency of reading relative to the capacity of the first computing node to respond to a request to read data in the first subset of the hierarchy. Computer-implemented method for maintaining an n-dimensional cube. 제9항에 있어서,
상기 계층구조의 상기 제1 서브세트의 적어도 일부를 상기 제2 컴퓨팅 노드 상에 복제하는 단계로서, 상기 계층구조의 상기 제1 서브세트의 상기 적어도 일부는 상기 제1 컴퓨팅 노드 상에 유지되는, 상기 복제하는 단계를 더 포함하는, n-차원 큐브를 유지하기 위한 컴퓨터-구현 방법.
The method of claim 9,
Replicating at least a portion of the first subset of the hierarchy on the second computing node, wherein the at least a portion of the first subset of the hierarchy is maintained on the first computing node. Further comprising replicating the computer-implemented method for maintaining an n-dimensional cube.
제6항에 있어서,
상기 계층구조와 연관된 차원과 상기 차원과 연관된 계산 수요 간 매핑에 적어도 부분적으로 기반하여 상기 계층구조의 영역을 분류하는 단계를 더 포함하는, n-차원 큐브를 유지하기 위한 컴퓨터-구현 방법.
The method of claim 6,
Classifying an area of the hierarchy based at least in part on a mapping between the dimension associated with the hierarchy and the computational demand associated with the dimension.
제6항에 있어서,
경로에서의 데이터 포인트에 대한 액세스의 빈도에 적어도 부분적으로 기반하여 상기 계층구조에서의 상기 경로를 식별하는 단계; 및
액세스의 상기 빈도가 임계 레벨 위에 있는 동안 상기 경로와 연관된 상기 데이터 포인트를 주 메모리에 유지하는 단계를 더 포함하는, n-차원 큐브를 유지하기 위한 컴퓨터-구현 방법.
The method of claim 6,
Identifying the path in the hierarchy based at least in part on the frequency of access to data points in the path; And
Maintaining the data point associated with the path in main memory while the frequency of access is above a threshold level.
제6항에 있어서,
추가적 서브세트에서의 데이터 포인트와 연관된 계산 수요에 적어도 부분적으로 기반하여, 상기 계층구조의 상기 추가적 서브세트에 대한 제2 스케일링 메커니즘을 선택하는 단계를 더 포함하는, n-차원 큐브를 유지하기 위한 컴퓨터-구현 방법.
The method of claim 6,
Selecting a second scaling mechanism for the additional subset of the hierarchy based at least in part on the computational demand associated with the data points in the additional subset. How to implement.
시스템으로서,
프로세서; 및
비-일시적 컴퓨터-판독가능한 저장 매체로서, 하나 이상의 컴퓨팅 디바이스에 의한 실행시, 상기 하나 이상의 컴퓨팅 디바이스로 하여금 적어도
데이터 포인트의 계층구조의 제1 서브세트를 하나 이상의 제1 컴퓨팅 노드 상에 저장하되, 데이터 포인트는 계층구조에서의 데이터 포인트가 계산 수요의 제1 분류와 연관되는 것에 적어도 부분적으로 기반하여 상기 제1 서브세트에 포함되고; 그리고
데이터 포인트의 계층구조의 제2 서브세트를 하나 이상의 제2 컴퓨팅 노드 상에 저장하되, 데이터 포인트는 계층구조에서의 데이터 포인트가 계산 수요의 제2 분류와 연관되는 것에 적어도 부분적으로 기반하여 상기 제2 서브세트에 포함되게 하는 명령어를 저장해 놓은 상기 비-일시적 컴퓨터-판독가능한 저장 매체를 포함하는, 시스템.
As a system,
A processor; And
A non-transitory computer-readable storage medium, wherein when executed by one or more computing devices, causes the one or more computing devices to at least
Store a first subset of the hierarchy of data points on one or more first computing nodes, wherein the data points are based at least in part on the association of the data points in the hierarchy with a first classification of computational demand. Is included in the subset; And
Store a second subset of the hierarchy of data points on one or more second computing nodes, wherein the data points are based at least in part on the association of the data points in the hierarchy with a second classification of computational demand. And the non-transitory computer-readable storage medium having stored thereon instructions for inclusion in a subset.
제14항에 있어서, 상기 하나 이상의 컴퓨팅 디바이스에 의한 실행시, 상기 하나 이상의 컴퓨팅 디바이스로 하여금 적어도
상기 제1 컴퓨팅 노드 및 상기 제2 컴퓨팅 노드를 포함하는 복수의 컴퓨팅 노드 상에 n-차원 큐브의 슬라이스를 저장하기로 결정하되, 상기 슬라이스는 하나 이상의 고정 차원과 하나 이상의 가변 차원의 교차점에 대응하는 데이터 포인트 및 추가적 데이터 포인트의 상기 계층구조를 포함하게 하는 추가적 명령어를 포함하는, 시스템.
15. The computer program product of claim 14, wherein when executed by the one or more computing devices, cause the one or more computing devices to at least
Determine to store a slice of an n-dimensional cube on a plurality of computing nodes including the first computing node and the second computing node, the slice corresponding to an intersection of at least one fixed dimension and at least one variable dimension. And additional instructions to include the hierarchy of data points and additional data points.
KR1020177001694A 2014-06-20 2015-06-19 Dynamic n-dimensional cubes for hosted analytics KR102001409B1 (en)

Applications Claiming Priority (9)

Application Number Priority Date Filing Date Title
US201462015312P 2014-06-20 2014-06-20
US62/015,312 2014-06-20
US14/494,506 2014-09-23
US14/494,506 US10430438B2 (en) 2014-06-20 2014-09-23 Dynamic n-dimensional cubes for hosted analytics
US14/494,513 US20150370882A1 (en) 2014-06-20 2014-09-23 Use of dependency graphs to dynamically update n-dimensional cubes
US14/494,524 2014-09-23
US14/494,524 US10776397B2 (en) 2014-06-20 2014-09-23 Data interest estimation for n-dimensional cube computations
US14/494,513 2014-09-23
PCT/US2015/036834 WO2015196176A1 (en) 2014-06-20 2015-06-19 Dynamic n-dimensional cubes for hosted analytics

Publications (2)

Publication Number Publication Date
KR20170033303A KR20170033303A (en) 2017-03-24
KR102001409B1 true KR102001409B1 (en) 2019-10-21

Family

ID=54936173

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020177001694A KR102001409B1 (en) 2014-06-20 2015-06-19 Dynamic n-dimensional cubes for hosted analytics

Country Status (8)

Country Link
EP (1) EP3158477B1 (en)
JP (1) JP6305645B2 (en)
KR (1) KR102001409B1 (en)
CN (1) CN106575296B (en)
AU (1) AU2015276830B2 (en)
CA (1) CA2952877C (en)
SG (1) SG11201610603TA (en)
WO (1) WO2015196176A1 (en)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6780576B2 (en) * 2017-04-27 2020-11-04 トヨタ自動車株式会社 Analysis method presentation system, method and program
CN109343791B (en) * 2018-08-16 2021-11-09 武汉元鼎创天信息科技有限公司 Big data all-in-one
KR102156439B1 (en) * 2018-11-06 2020-09-16 한국전자기술연구원 Cloud-edge system and method for processing data thereof
US11641371B2 (en) * 2021-02-17 2023-05-02 Saudi Arabian Oil Company Systems, methods and computer-readable media for monitoring a computer network for threats using OLAP cubes

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130125057A1 (en) 2010-07-08 2013-05-16 Alexey Kashik Analysis of complex data objects and multiple parameter systems

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3952518B2 (en) * 1996-03-29 2007-08-01 株式会社日立製作所 Multidimensional data processing method
JP2002108896A (en) * 2000-09-29 2002-04-12 Hitachi Kokusai Electric Inc Database accessing method and multidimensional database accessing system
DE60131900T2 (en) * 2000-10-26 2008-12-04 Flood, James C. jun., Portland METHOD AND SYSTEM FOR MANAGING DISTRIBUTED CONTENT AND RELATED METADATA
US7315946B1 (en) * 2003-04-14 2008-01-01 Aol Llc Out-of-band tokens for rights access
US7895191B2 (en) * 2003-04-09 2011-02-22 International Business Machines Corporation Improving performance of database queries
US7284011B1 (en) * 2004-12-28 2007-10-16 Emc Corporation System and methods for processing a multidimensional database
US20070022120A1 (en) * 2005-07-25 2007-01-25 Microsoft Corporation Caching and modifying portions of a multi-dimensional database on a user device
US7761407B1 (en) * 2006-10-10 2010-07-20 Medallia, Inc. Use of primary and secondary indexes to facilitate aggregation of records of an OLAP data cube
JP5046750B2 (en) * 2007-06-08 2012-10-10 キヤノン株式会社 Image processing apparatus, image processing method, program, and storage medium for performing access control of document including two-dimensional code
US8447722B1 (en) * 2009-03-25 2013-05-21 Mcafee, Inc. System and method for data mining and security policy management
US8732118B1 (en) * 2012-01-13 2014-05-20 Amazon Technologies, Inc. Distributed performance of data aggregation operations
CN103793422B (en) * 2012-10-31 2017-05-17 国际商业机器公司 Methods for generating cube metadata and query statements on basis of enhanced star schema
CN103281376B (en) * 2013-05-31 2015-11-11 武汉大学 The automatic buffer memory construction method of magnanimity sequential remote sensing image under a kind of cloud environment

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130125057A1 (en) 2010-07-08 2013-05-16 Alexey Kashik Analysis of complex data objects and multiple parameter systems

Also Published As

Publication number Publication date
EP3158477B1 (en) 2019-05-29
CN106575296A (en) 2017-04-19
WO2015196176A8 (en) 2017-01-12
KR20170033303A (en) 2017-03-24
CN106575296B (en) 2020-04-03
WO2015196176A1 (en) 2015-12-23
CA2952877C (en) 2021-01-19
EP3158477A1 (en) 2017-04-26
JP6305645B2 (en) 2018-04-04
AU2015276830A1 (en) 2017-02-02
CA2952877A1 (en) 2015-12-23
SG11201610603TA (en) 2017-01-27
AU2015276830B2 (en) 2018-09-06
JP2017526090A (en) 2017-09-07

Similar Documents

Publication Publication Date Title
US10776397B2 (en) Data interest estimation for n-dimensional cube computations
JP6697392B2 (en) Transparent discovery of semi-structured data schema
US20190102447A1 (en) System and method for metadata sandboxing and what-if analysis in a multidimensional database environment
US20160299919A1 (en) Management of Intermediate Data Spills during the Shuffle Phase of a Map-Reduce Job
EP3238097B1 (en) Identifying join relationships based on transactional access patterns
US11055352B1 (en) Engine independent query plan optimization
US9471657B1 (en) Range query capacity allocation
Humbetov Data-intensive computing with map-reduce and hadoop
US10769175B1 (en) Real-time hosted system analytics
US9330158B1 (en) Range query capacity allocation
KR102001409B1 (en) Dynamic n-dimensional cubes for hosted analytics
Merceedi et al. A comprehensive survey for hadoop distributed file system
Singh et al. Spatial data analysis with ArcGIS and MapReduce
Alves Peixoto et al. A framework for parallel map-matching at scale using Spark
US10169083B1 (en) Scalable method for optimizing information pathway
US10311019B1 (en) Distributed architecture model and management
US11947537B1 (en) Automatic index management for a non-relational database
US11868372B1 (en) Automated hierarchy detection for cloud-based analytics
US11868496B1 (en) Nested row access policies
Cugnasco et al. The OTree: Multidimensional indexing with efficient data sampling for HPC
Nidzwetzki BBoxDB–A Distributed Key-Bounding-Box-Value Store
Malensek Low-Latency, Query-Driven Analytics Over Voluminous Multidimensional, Spatiotemporal Datasets
WO2023097270A1 (en) Detecting idle periods at network endpoints for management actions at processing clusters for managed databases
Tapdiya Large Scale Data Management for Enterprise Workloads
WO2024064578A1 (en) Location-constrained storage and analysis of large data sets

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right