Microsoft SQL Server Analysis Services에서 처리는 비즈니스 분석을 위한 정보로 데이터를 전환하는 단계 또는 일련의 단계입니다. 처리는 개체 유형에 따라 다르지만 처리는 항상 데이터를 정보로 전환하는 과정의 일부입니다.
Analysis Services 개체를 처리하려면 프로세스 명령을 사용할 수 있습니다. 이 Process 명령은 Analysis Services 인스턴스에서 다음 개체를 처리할 수 있습니다.
큐브
데이터베이스
치수
측정값 그룹
마이닝 모델
마이닝 구조
파티션
개체 Process 처리를 제어하기 위해 명령에는 설정할 수 있는 다양한 속성이 있습니다. 이 Process 명령에는 처리의 양, 처리할 개체, 아웃오션 바인딩을 사용할지 여부, 오류 처리 방법 및 쓰기 저장 테이블을 관리하는 방법을 제어하는 속성이 있습니다.
처리 옵션 지정
명령의 ProcessType 속성은 개체를 처리할 때 사용할 처리 옵션을 지정합니다. 처리 옵션에 대한 자세한 내용은 처리 옵션 및 설정(Analysis Services)을 참조하세요.
다음 표에서는 속성의 상수와 각 상 Type 수로 처리할 수 있는 다양한 개체를 나열합니다.
Type 값 |
적용 가능한 개체 |
|---|---|
| ProcessFull | 큐브, 데이터베이스, 차원, 측정값 그룹, 마이닝 모델, 마이닝 구조, 파티션 |
| ProcessAdd | 차원, 파티션 |
| ProcessUpdate | 차원 |
| ProcessIndexes | 차원, 큐브, 측정값 그룹, 파티션 |
| ProcessData | 차원, 큐브, 측정값 그룹, 파티션 |
| ProcessDefault | 큐브, 데이터베이스, 차원, 측정값 그룹, 마이닝 모델, 마이닝 구조, 파티션 |
| ProcessClear | 큐브, 데이터베이스, 차원, 측정값 그룹, 마이닝 모델, 마이닝 구조, 파티션 |
| ProcessStructure | 큐브, 마이닝 구조 |
| ProcessClearStructureOnly | 마이닝 구조 |
| ProcessScriptCache | 큐브 |
Analysis Services 개체 처리에 대한 자세한 내용은 다차원 모델 개체 처리를 참조하세요.
처리할 개체 지정
명령의 ProcessObject 속성에는 처리할 개체의 개체 식별자가 포함됩니다. 명령에는 하나의 개체만 지정할 Process 수 있지만 개체를 처리하면 자식 개체도 처리됩니다. 예를 들어 큐브에서 측정값 그룹을 처리하면 해당 측정값 그룹에 대한 모든 파티션이 처리되고 데이터베이스를 처리하는 동안 데이터베이스에 포함된 큐브, 차원 및 마이닝 구조를 비롯한 모든 개체가 처리됩니다.
명령의 Process 특성을 true로 설정 ProcessAffectedObjects 하면 지정된 개체를 처리하여 영향을 받는 모든 관련 개체도 처리됩니다. 예를 들어 명령에서 ProcessUpdate 처리 옵션을 Process 사용하여 차원이 증분 업데이트되는 경우 true로 설정된 경우 ProcessAffectedObjects 멤버가 추가되거나 삭제되어 집계가 무효화되는 파티션도 Analysis Services에서 처리됩니다. 이 경우 단일 Process 명령은 Analysis Services 인스턴스에서 여러 개체를 처리할 수 있지만 Analysis Services는 명령에 지정된 단일 개체 외에 Process 처리해야 하는 개체를 결정합니다.
그러나 명령 내에서 Batch 여러 명령을 사용하여 차원과 같은 여러 Process 개체를 동시에 처리할 수 있습니다. 일괄 처리 작업은 특성을 사용하는 ProcessAffectedObjects 것보다 Analysis Services 인스턴스에서 개체의 직렬 또는 병렬 처리를 위한 보다 세부적인 제어 수준을 제공하고 더 큰 Analysis Services 데이터베이스에 대한 처리 방법을 조정할 수 있도록 합니다. 일괄 처리 작업을 수행하는 방법에 대한 자세한 내용은 XMLA(Batch 작업) 수행을 참조하세요.
줄 바꿈 바인딩 지정
Process 명령에 명령이 포함되지 Batch 않은 경우 필요에 따라 처리할 개체에 대한 명령의 Bindings, DataSource 및 DataSourceView 속성 Process 에서 아웃 오브 라인 바인딩을 지정할 수 있습니다. 줄 바깥쪽 바인딩은 명령 실행 중에만 바인딩이 존재하고 처리 중인 개체와 연결된 기존 바인딩을 재정의 Process 하는 데이터 원본, 데이터 원본 뷰 및 기타 개체에 대한 참조입니다. 아웃 오브 라인 바인딩을 지정하지 않으면 현재 처리할 개체와 연결된 바인딩이 사용됩니다.
아웃 오브 라인 바인딩은 다음과 같은 경우에 사용됩니다.
행이 두 번 계산되지 않도록 기존 팩트 테이블에 대한 대체 팩트 테이블 또는 필터를 지정해야 하는 파티션을 증분 방식으로 처리합니다.
Microsoft SQL Server Integration Services에서 데이터 흐름 태스크를 사용하여 차원, 마이닝 모델 또는 파티션을 처리하는 동안 데이터를 제공합니다.
아웃 오브 라인 바인딩은 ASSL(Analysis Services Scripting Language)의 일부로 설명됩니다. ASSL의 아웃 오브 라인 바인딩에 대한 자세한 내용은 데이터 원본 및 바인딩(SSAS 다차원)을 참조하세요.
파티션 증분 업데이트
파티션에 지정된 바인딩은 파티션 내에서 이미 집계된 팩트 테이블 데이터를 참조하기 때문에 이미 처리된 파티션을 증분 방식으로 업데이트하려면 일반적으로 아웃 오브 라인 바인딩이 필요합니다. 명령을 사용하여 Process 이미 처리된 파티션을 증분 방식으로 업데이트하는 경우 Analysis Services는 다음 작업을 수행합니다.
증분 업데이트할 파티션의 구조와 동일한 구조로 임시 파티션을 만듭니다.
명령에 지정된 오프라인 바인딩을 사용하여 임시 파티션을
Process처리합니다.임시 파티션을 선택한 기존 파티션과 병합합니다.
XMLA(XML for Analysis)를 사용하여 파티션을 병합하는 방법에 대한 자세한 내용은 XMLA(파티션 병합)를 참조하세요.
처리 오류 처리
명령의 ProcessErrorConfiguration 속성을 사용하면 개체를 처리하는 동안 발생한 오류를 처리하는 방법을 지정할 수 있습니다. 예를 들어 차원을 처리하는 동안 Analysis Services는 키 특성의 키 열에 중복 값이 발생합니다. 특성 키는 고유해야 하므로 Analysis Services는 중복 레코드를 삭제합니다. Analysis Services의 ErrorConfigurationKeyDuplicate 속성에 따라 다음을 수행할 수 있습니다.
오류를 무시하고 차원 처리를 계속합니다.
Analysis Services에서 중복 키가 발생했음을 나타내는 메시지를 반환하고 처리를 계속합니다.
명령 중에 옵션을 제공하는 ErrorConfiguration 유사한 조건이 많이 있습니다 Process .
쓰기 저장 테이블 관리
명령이 Process 쓰기 사용 파티션 또는 이러한 파티션에 대한 큐브 또는 측정값 그룹을 발견하면 아직 완전히 처리되지 않은 경우 해당 파티션에 대한 쓰기 저장 테이블이 아직 없을 수 있습니다. 명령의 ProcessWritebackTableCreation 속성은 Analysis Services에서 쓰기 저장 테이블을 만들어야 하는지 여부를 결정합니다.
예시
설명
다음 예제에서는 Adventure Works DW 다차원 2012 샘플 Analysis Services 데이터베이스를 완전히 처리합니다.
코드
<Process xmlns="https://schemas.microsoft.com/analysisservices/2003/engine">
<Object>
<DatabaseID>Adventure Works DW Multidimensional 2012</DatabaseID>
</Object>
<Type>ProcessFull</Type>
<WriteBackTableCreation>UseExisting</WriteBackTableCreation>
</Process>
설명
다음 예제에서는 Adventure Works DW 다차원 2012 샘플 Analysis Services 데이터베이스에서 Adventure Works DW 큐브의 Internet Sales 측정값 그룹에서 Internet_Sales_2004 파티션을 증분 처리합니다. 이 Process 명령은 명령 속성의 아웃오브 라인 쿼리 바인딩을 사용하여 파티션에 추가할 집계를 생성할 팩트 테이블 행을 검색하여 2006년 Bindings 12월 31일 이후의 Process 주문 날짜에 대한 집계를 파티션에 추가합니다.
코드
<Process ProcessAffectedObjects="true" xmlns="https://schemas.microsoft.com/analysisservices/2003/engine">
<Object>
<DatabaseID>Adventure Works DW Multidimensional 2012</DatabaseID>
<CubeID>Adventure Works DW</CubeID>
<MeasureGroupID>Fact Internet Sales 1</MeasureGroupID>
<PartitionID>Internet_Sales_2006</PartitionID>
</Object>
<Bindings>
<Binding>
<DatabaseID>Adventure Works DW Multidimensional 2012</DatabaseID>
<CubeID>Adventure Works DW</CubeID>
<MeasureGroupID>Fact Internet Sales 1</MeasureGroupID>
<PartitionID>Internet_Sales_2006</PartitionID>
<Source xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="QueryBinding">
<DataSourceID>Adventure Works DW</DataSourceID>
<QueryDefinition>
SELECT
[dbo].[FactInternetSales].[ProductKey],
[dbo].[FactInternetSales].[OrderDateKey],
[dbo].[FactInternetSales].[DueDateKey],
[dbo].[FactInternetSales].[ShipDateKey],
[dbo].[FactInternetSales].[CustomerKey],
[dbo].[FactInternetSales].[PromotionKey],
[dbo].[FactInternetSales].[CurrencyKey],
[dbo].[FactInternetSales].[SalesTerritoryKey],
[dbo].[FactInternetSales].[SalesOrderNumber],
[dbo].[FactInternetSales].[SalesOrderLineNumber],
[dbo].[FactInternetSales].[RevisionNumber],
[dbo].[FactInternetSales].[OrderQuantity],
[dbo].[FactInternetSales].[UnitPrice],
[dbo].[FactInternetSales].[ExtendedAmount],
[dbo].[FactInternetSales].[UnitPriceDiscountPct],
[dbo].[FactInternetSales].[DiscountAmount],
[dbo].[FactInternetSales].[ProductStandardCost],
[dbo].[FactInternetSales].[TotalProductCost],
[dbo].[FactInternetSales].[SalesAmount],
[dbo].[FactInternetSales].[TaxAmt],
[dbo].[FactInternetSales].[Freight],
[dbo].[FactInternetSales].[CarrierTrackingNumber],
[dbo].[FactInternetSales].[CustomerPONumber]
FROM [dbo].[FactInternetSales]
WHERE OrderDateKey > '1280'
</QueryDefinition>
</Source>
</Binding>
</Bindings>
<Type>ProcessAdd</Type>
<WriteBackTableCreation>UseExisting</WriteBackTableCreation>
</Process>