MDX 데이터 조작-UPDATE CUBEMDX Data Manipulation - UPDATE CUBE

이 항목은 다음에 적용됩니다.예SQL Server(2008부터)아니요Azure SQL Database아니요Azure SQL Data Warehouse 아니요병렬 데이터 웨어하우스 THIS TOPIC APPLIES TO:yesSQL Server (starting with 2008)noAzure SQL DatabasenoAzure SQL Data Warehouse noParallel Data Warehouse

UPDATE CUBE 문은 SUM 집계를 사용하여 부모에 집계하는 큐브의 셀에 데이터를 쓰기 저장하는 데 사용됩니다.The UPDATE CUBE statement is used to write back data to any cell in a cube that aggregates to its parent using the SUM aggregation. 자세한 설명 및 예에 대 한이 블로그 게시물의 "할당 이해"를 참조: Analysis Services (블로그)로 쓰기 저장 응용 프로그램 빌드합니다.For more explanation and an example, see "Understanding Allocations" in this blog post: Building a Writeback Application with Analysis Services (blog).

구문Syntax


UPDATE [ CUBE ] Cube_Name   
   SET   
            <update clause>   
           [, <update clause> ...n ]  

<update clause> ::=   
      Tuple_Expression[.VALUE]= New_Value  
      [   
        USE_EQUAL_ALLOCATION   
        | USE_EQUAL_INCREMENT   
        | USE_WEIGHTED_ALLOCATION [ BY Weight_Expression]   
        | USE_WEIGHTED_INCREMENT [ BY Weight_Expression]  
      ]  

인수Arguments

Cube_NameCube_Name
큐브의 이름을 지정하는 유효한 문자열입니다.A valid string that provides the name of a cube.

Tuple_ExpressionTuple_Expression
튜플을 반환하는 유효한 MDX 식입니다.A valid Multidimensional Expressions (MDX) expression that returns a tuple.

New_ValueNew_Value
유효한 숫자 식입니다.A valid numeric expression.

Weight_ExpressionWeight_Expression
0에서 1 사이의 10진수 값을 반환하는 유효한 MDX 숫자 식입니다.A valid Multidimensional Expressions (MDX) numeric expression that returns a decimal value between 0 and 1.

주의Remarks

큐브의 지정된 리프 또는 리프가 아닌 셀의 값을 업데이트할 수 있습니다. 지정된 리프가 아닌 셀 값을 종속되는 여러 리프 셀에 할당할 수도 있습니다.You can update the value of a specified leaf or nonleaf cell in a cube, optionally allocating the value for a specified non-leaf cell across dependent leaf cells. 튜플 식으로 지정되는 셀은 다차원 공간의 유효한 셀일 수 있으며, 리프 셀일 필요가 없습니다.The cell specified by the tuple expression can be any valid cell in the multidimensional space (that is, the cell does not have to be a leaf cell). 하지만 셀을 집계 해야는 Sum 집계 함수 및 셀을 식별 하는 데 사용 되는 튜플의 계산된 멤버를 포함 하지 않아야 합니다.However, the cell must be aggregated with the Sum aggregate function and must not include a calculated member in the tuple that is used to identify the cell.

개념으로 생각 될 수 있습니다는 UPDATE CUBE 문은 일련의 개별 셀 쓰기 저장 작업은 지정 된 합계로 롤업되는 리프 멤버 및 리프가 아닌 셀에 자동으로 생성 하는 서브루틴으로 합니다.It may be helpful to think of the UPDATE CUBE statement as a subroutine that will automatically generate a series of individual cell writeback operations to leaf and non-leaf cells that will roll up into a specified sum.

다음은 대 한 할당 방법 설명 합니다.The following is a description of the methods of allocation.

USE_EQUAL_ALLOCATION: 업데이트 된 셀에 영향을 주는 모든 리프 셀에 다음 식에 따른 동일 값 할당 됩니다.USE_EQUAL_ALLOCATION: Every leaf cell that contributes to the updated cell will be assigned an equal value based on the following expression.

<leaf cell value> =   
<New Value> / Count(leaf cells that are contained in <tuple>)  

USE_EQUAL_INCREMENT:업데이트 된 셀에 영향을 주는 모든 리프 셀을 다음 식에 따라 변경 됩니다.USE_EQUAL_INCREMENT:Every leaf cell that contributes to the updated cell will be changed according to the following expression.

<leaf cell value> = <leaf cell value> +   
(<New Value > - <existing value>) /  
Count(leaf cells contained in <tuple>)  

USE_WEIGHTED_ALLOCATION: 업데이트 된 셀에 영향을 주는 모든 리프 셀에 다음 식을 기반으로 하는 같은 값이 할당 됩니다.USE_WEIGHTED_ALLOCATION: Every leaf cell that contributes to the updated cell will be assigned an equal value that is based on the following expression.

<leaf cell value> = < New Value> * Weight_Expression  

USE_WEIGHTED_INCREMENT: 업데이트 된 셀에 영향을 주는 모든 리프 셀을 다음 식에 따라 변경 됩니다.USE_WEIGHTED_INCREMENT: Every leaf cell that contributes to the updated cell will be changed according to the following expression.

<leaf cell value> = <leaf cell value> +   
(<New Value> - <existing value>)  * Weight_Expression  

가중치 식이 지정 되지 않은 경우는 UPDATE CUBE 문은 암시적으로 다음 식을 사용 합니다.If a weight expression is not specified, the UPDATE CUBE statement implicitly uses the following expression.

Weight_Expression = <leaf cell value> / <existing value>  

가중치 식은 영(0)과 1 사이의 10진수 값으로 표현해야 합니다.A weight expression should be expressed as a decimal value between zero (0) and 1. 이 값은 할당의 영향을 받는 리프 셀에 할당하려는 할당 값의 비율을 지정합니다.This value specifies the ratio of the allocated value that you want to assign to the leaf cells that are affected by the allocation. 클라이언트 응용 프로그램 프로그래머는 해당 롤업 집계 값이 식의 할당된 값과 동일하도록 식을 만들어야 합니다.The client application programmer's has the responsibility of creating expressions whose rollup aggregate values will equal the allocated value of the expression.

주의

클라이언트 응용 프로그램에서는 잘못된 롤업 값이나 일관적이지 않은 데이터 등의 발생 가능한 예기치 않은 결과를 방지하기 위해 모든 차원에 대한 할당을 동시에 고려해야 합니다.The client application must consider the allocation of all dimensions concurrently to avoid possible unexpected results, including incorrect rollup values or inconsistent data.

UPDATE CUBE 할당을 원자 트랜잭션에 있어서 핵심적인 요소로 고려 되어야 합니다.Each UPDATE CUBE allocation should be considered to be atomic for transactional purposes. 즉, 식이나 보안 위배 오류 등의 어떤 이유로 인해 할당 작업 중 하나라도 실패하면 전체 UPDATE CUBE 작업이 실패합니다.This means, that if any one of the allocation operations fails for any reason, such as an error in a formula or a security violation, the whole UPDATE CUBE operation will fail. 개별 할당 작업의 계산을 처리하기 전에 데이터의 스냅숏을 사용하여 결과 계산이 올바른지 확인해야 합니다.Before the calculations of the individual allocation operations are processed, a snapshot of the data is taken to ensure that the resulting calculations are correct.

주의

정수가 포함된 측정값에서 사용되는 경우 USE_WEIGHTED_ALLOCATION 메서드는 증분적인 반올림 변화로 인한 부정확한 결과를 반환할 수 있습니다.When used on a measure that contains integers, the USE_WEIGHTED_ALLOCATION method can return imprecise results caused by incremental rounding changes.

중요

업데이트된 셀이 겹치지 않을 경우 Update Isolation Level 연결 문자열 속성을 사용하여 UPDATE CUBE의 성능을 향상시킬 수 있습니다.When updated cells do not overlap, the Update Isolation Level connection string property can be used to enhance performance for UPDATE CUBE.

참고 항목See Also

ConnectionStringConnectionString
MDX 데이터 조작 문 ( Mdx)MDX Data Manipulation Statements (MDX)