다음을 통해 공유


외부 메타데이터 구현

구성 요소가 데이터 원본과 연결이 끊어지면 인터페이스를 사용하여 IDTSExternalMetadataColumnCollection100 외부 데이터 원본의 열에 대해 입력 및 출력 열 컬렉션의 열에 대한 유효성을 검사할 수 있습니다. 이 인터페이스를 사용하면 외부 데이터 원본에서 열의 스냅샷을 유지하고 이러한 열을 구성 요소의 입력 및 출력 열 컬렉션에 있는 열에 매핑할 수 있습니다.

외부 메타데이터 열을 구현하면 추가 열 컬렉션에 대한 유지 관리 및 유효성 검사를 수행해야 하므로 구성 요소 개발의 오버헤드와 복잡성이 늘어나지만 유효성 검사를 위한 고비용의 서버 왕복을 피할 수 있으면 이 개발 작업을 성공적으로 수행할 수 있습니다.

외부 메타데이터 열 채우기

외부 메타데이터 열은 일반적으로 해당 입력 또는 출력 열을 만들 때 컬렉션에 추가됩니다. 메서드를 호출 New 하여 새 열을 만듭니다. 그런 다음 열의 속성이 외부 데이터 원본과 일치하도록 설정됩니다.

외부 메타데이터 열을 해당하는 입력 또는 출력 열에 매핑하려면 해당 입력 또는 출력 열의 ExternalMetadataColumnID 속성에 외부 메타데이터 열의 ID를 할당합니다. 이렇게 하면 컬렉션의 GetObjectByID 메서드를 사용하여 특정 입력 또는 출력 열에 대한 외부 메타데이터 열을 쉽게 찾을 수 있습니다.

다음 예제에서는 외부 메타데이터 열을 만든 다음 속성을 설정하여 열을 출력 열에 매핑하는 ExternalMetadataColumnID 방법을 보여줍니다.

public void CreateExternalMetaDataColumn(IDTSOutput100 output, int outputColumnID )  
{  
    IDTSOutputColumn100 oColumn = output.OutputColumnCollection.GetObjectByID(outputColumnID);  
    IDTSExternalMetadataColumn100 eColumn = output.ExternalMetadataColumnCollection.New();  
  
    eColumn.DataType = oColumn.DataType;  
    eColumn.Precision = oColumn.Precision;  
    eColumn.Scale = oColumn.Scale;  
    eColumn.Length = oColumn.Length;  
    eColumn.CodePage = oColumn.CodePage;  
  
    oColumn.ExternalMetadataColumnID = eColumn.ID;  
}  
Public Sub CreateExternalMetaDataColumn(ByVal output As IDTSOutput100, ByVal outputColumnID As Integer)   
 Dim oColumn As IDTSOutputColumn100 = output.OutputColumnCollection.GetObjectByID(outputColumnID)   
 Dim eColumn As IDTSExternalMetadataColumn100 = output.ExternalMetadataColumnCollection.New   
 eColumn.DataType = oColumn.DataType   
 eColumn.Precision = oColumn.Precision   
 eColumn.Scale = oColumn.Scale   
 eColumn.Length = oColumn.Length   
 eColumn.CodePage = oColumn.CodePage   
 oColumn.ExternalMetadataColumnID = eColumn.ID   
End Sub  

외부 메타데이터 열을 사용하여 유효성 검사

추가 열 컬렉션에 대해 유효성을 검사해야 하므로 외부 메타데이터 열 컬렉션을 유지하는 구성 요소에 대한 추가 단계가 필요합니다. 유효성 검사는 연결 시 유효성 검사와 연결 해제 시 유효성 검사로 나눌 수 있습니다.

연결된 유효성 검사

구성 요소가 외부 데이터 원본에 연결된 경우 입력 또는 출력 컬렉션의 열은 외부 데이터 원본에 대해 직접 확인됩니다. 또한 외부 메타데이터 컬렉션의 열의 유효성을 검사해야 합니다. SQL Server Data Tools(SSDT)의 고급 편집기에서는 외부 메타데이터 컬렉션을 수정할 수 있으며, 이때 컬렉션의 변경 내용은 검색할 수 없으므로 이 작업이 필요합니다. 따라서 연결된 경우 구성 요소는 외부 메타데이터 열 컬렉션의 열이 외부 데이터 원본의 열을 계속 반영하도록 해야 합니다.

컬렉션IsUsed 외부 메타데이터 컬렉션을 숨기도록 false선택할 수 있습니다. 그러나 이렇게 하면 사용자가 입력 또는 출력 컬렉션의 열을 외부 메타데이터 열 컬렉션의 열에 매핑할 수 있는 편집기의 열 매핑 탭도 숨깁니다. 이 속성을 설정해 false 도 개발자가 프로그래밍 방식으로 컬렉션을 수정할 수 없지만 SSDT(SQL Server Data Tools)에서만 사용되는 구성 요소의 외부 메타데이터 열 컬렉션에 대한 보호 수준을 제공합니다.

연결이 끊긴 유효성 검사

구성 요소가 외부 데이터 원본과 연결이 끊어지면 입력 또는 출력 컬렉션의 열이 외부 메타데이터 컬렉션의 열에 대해 직접 확인되고 외부 원본에 대해 확인되지 않으므로 유효성 검사가 간소화됩니다. 구성 요소는 외부 데이터 원본에 대한 연결이 설정되지 않았거나 속성ValidateExternalMetadata이 설정된 경우 false 연결이 끊어진 유효성 검사를 수행해야 합니다.

다음 코드 예제에서는 외부 메타데이터 열 컬렉션에 대해 유효성 검사를 수행하는 구성 요소의 구현을 보여 줍니다.

public override DTSValidationStatus Validate()  
{  
    if( this.isConnected && ComponentMetaData.ValidateExternalMetaData )  
    {  
        // TODO: Perform connected validation.  
    }  
    else  
    {  
        // TODO: Perform disconnected validation.  
    }  
}  
Public  Overrides Function Validate() As DTSValidationStatus   
 If Me.isConnected AndAlso ComponentMetaData.ValidateExternalMetaData Then   
  ' TODO: Perform connected validation.  
 Else   
  ' TODO: Perform disconnected validation.  
 End If   
End Function  

Integration Services 아이콘(작음) Integration Services를 사용하여 최신 상태 유지
Microsoft의 최신 다운로드, 문서, 샘플 및 비디오와 커뮤니티에서 선택한 솔루션은 MSDN의 Integration Services 페이지를 방문하세요.

MSDN의 Integration Services 페이지 방문

이러한 업데이트에 대한 자동 알림을 보려면 페이지에서 사용할 수 있는 RSS 피드를 구독합니다.

참고 항목

데이터 흐름