Analysis Services

백 엔드 데이터베이스 액세스 모듈에서 오류가 발생했습니다.

H9 2013. 6. 28. 17:06

Error

Errors in the back-end database access module.

The size specified for a binding was too small,
resulting in one or more column values being truncated.
Errors in the OLAP storage engine: An error occurred while processing the 'Sales2010' partition of the 'InternetSales' measure group for the 'Sales' cube from the 'AdventureWorks' database.

백 엔드 데이터베이스 액세스 모듈에서 오류가 발생했습니다.

바인딩에 지정된 크기가 너무 작아서

하나 이상의 열 값이 잘립니다.

OLAP 저장소 엔진 오류: AdventureWorks 데이터베이스에 있는 'Sales' 큐브에 대한 'InternetSales' 측정값 그룹의 'Sales2010' 파티션을 처리하는 동안 오류가 발생했습니다.

 

 

원인

1. Fact , Dimension 컬럼의 사이즈 변경 (상품코드 varchar(10) > 상품코드 varchar(12) )

2. 실제 12자리의 데이터가 들어왔을 경우 큐브처리에러

 

해결

1. 데이터 원본 뷰 업데이트 (새로고침) 

 

2. 해당 차원의 키컬럼의 데이터 사이즈 업데이트  

 

3. 큐브디자이너의 '차원 용도' 탭에서 해당 차원과 측정값 그룹과의 관계를 끊은 후 다시 연결

4. 큐브 처리

 

 

 

*추가*

BIDS에서 차원, 큐브, 데이터 원본 뷰의 코드 보기로 직접 수정할 수도 있다. 

 

코드 부분에서 데이터 사이즈를 실제 변경된 사이즈로 변경 후 저장

      <ID>GOODS CODE</ID>
      <Name>상품</Name>
      <Usage>Key</Usage>
      <EstimatedCount>600</EstimatedCount>
      <KeyColumns>
        <KeyColumn>
          <DataType>WChar</DataType>
          <DataSize>10</DataSize>
          <Source xsi:type="ColumnBinding">
            <TableID>dbo_DIM_GOODS</TableID>
            <ColumnID>GOODS_CODE</ColumnID>
          </Source>
        </KeyColumn>
      </KeyColumns>

 

위와 같이 차원, 큐브, 데이터 원본 뷰 모두 변경된 컬럼을 찾아 수정해 준다.

BIDS에서 '코드 보기'를 사용해도 되고 SSMS에서 ALTER SCRIPT 로 해도된다.