MDX 데이터 조작 - UPDATE CUBE
UPDATE CUBE 문은 SUM 집계를 사용하여 부모에 집계되는 큐브의 모든 셀에 데이터를 다시 쓰는 데 사용됩니다. 자세한 설명과 예제는 이 블로그 게시물에서 "할당 이해"를 참조하세요. Analysis Services를 사용하여 쓰기 저장 애플리케이션 빌드(블로그).
구문
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]
]
인수
Cube_Name
큐브의 이름을 제공하는 유효한 문자열입니다.
Tuple_Expression
튜플을 반환하는 유효한 MDX(다차원 식) 식입니다.
New_Value
유효한 숫자 식입니다.
Weight_Expression
0에서 1 사이의 10진수 값을 반환하는 유효한 MDX(다차원 식) 숫자 식입니다.
설명
큐브의 지정된 리프 또는 리프가 아닌 셀의 값을 업데이트할 수 있습니다. 지정된 리프가 아닌 셀 값을 종속되는 여러 리프 셀에 할당할 수도 있습니다. 튜플 식으로 지정되는 셀은 다차원 공간의 유효한 셀일 수 있으며, 리프 셀일 필요가 없습니다. 그러나 Sum 집계 함수를 사용하여 셀을 집계해야 하며 셀을 식별하는 데 사용되는 계산 멤버를 튜플에 포함해서는 안 됩니다.
UPDATE CUBE 문을 지정된 합계로 롤업할 리프 및 비 리프 셀에 대한 일련의 개별 셀 쓰기 저장 작업을 자동으로 생성하는 서브루틴으로 생각하면 도움이 될 수 있습니다.
다음은 할당 방법에 대한 설명입니다.
USE_EQUAL_ALLOCATION: 업데이트된 셀에 기여하는 모든 리프 셀에는 다음 식에 따라 동일한 값이 할당됩니다.
<leaf cell value> =
<New Value> / Count(leaf cells that are contained in <tuple>)
USE_EQUAL_INCREMENT: 업데이트된 셀에 기여하는 모든 리프 셀은 다음 식에 따라 변경됩니다.
<leaf cell value> = <leaf cell value> +
(<New Value > - <existing value>) /
Count(leaf cells contained in <tuple>)
USE_WEIGHTED_ALLOCATION: 업데이트된 셀에 기여하는 모든 리프 셀에는 다음 식을 기반으로 하는 동일한 값이 할당됩니다.
<leaf cell value> = < New Value> * Weight_Expression
USE_WEIGHTED_INCREMENT: 업데이트된 셀에 기여하는 모든 리프 셀은 다음 식에 따라 변경됩니다.
<leaf cell value> = <leaf cell value> +
(<New Value> - <existing value>) * Weight_Expression
가중치 식을 지정 하지 않으면 UPDATE CUBE 문은 암시적으로 다음 식을 사용합니다.
Weight_Expression = <leaf cell value> / <existing value>
가중치 식은 0에서 1 사이의 10진수 값으로 표현되어야 합니다. 이 값은 할당의 영향을 받는 리프 셀에 할당하려는 할당된 값의 비율을 지정합니다. 클라이언트 애플리케이션 프로그래머는 해당 롤업 집계 값이 식의 할당된 값과 동일하도록 식을 만들어야 합니다.
주의
클라이언트 애플리케이션은 잘못된 롤업 값 또는 일관되지 않은 데이터를 포함하여 예기치 않은 결과를 방지하려면 모든 차원의 할당을 동시에 고려해야 합니다.
각 UPDATE CUBE 할당은 트랜잭션을 위해 원자성으로 간주되어야 합니다. 즉, 식이나 보안 위배 오류 등의 어떤 이유로 인해 할당 작업 중 하나라도 실패하면 전체 UPDATE CUBE 작업이 실패합니다. 개별 할당 작업의 계산을 처리하기 전에 데이터의 스냅샷을 사용하여 결과 계산이 올바른지 확인해야 합니다.
주의
정수가 포함된 측정값에서 사용되는 경우 USE_WEIGHTED_ALLOCATION 메서드는 증분적인 반올림 변화로 인한 부정확한 결과를 반환할 수 있습니다.
Important
업데이트된 셀이 겹치지 않으면 Update Isolation Level 연결 문자열 속성을 사용하여 UPDATE CUBE의 성능을 향상시킬 수 있습니다.