20192019. 2. 27. 12:18

Azure Data Factory 를 이용하여 Blob storage 에 있는 CSV 파일을 Azure SQL DB로 데이터를 파이프라인을 통해 이동하는 과정에서 CSV 파일에 포함된 GUID 데이터 형식이 올바르게 맵핑되어 있지 않은 경우 Azure SQL DB 의 uniqueidentifier 컬럼으로 INSERT 실패하고 아래와 같은 오류가 발생할 수 있습니다.


DataSet Source: Blob CSV 파일 데이터

id|name|uniqueid
1|LAIGO|0E984725-C51C-4BF4-9960-E1C80E27ABA0
 2|SMGO |00000000-0000-0000-0000-000000000000


DataSet Destination:  SQL Server 테이블

CREATE TABLE [dbo].[uniqueid](
 [id] [int] NULL,
 [name] [nvarchar](30) NULL,
 [uniqueid] [uniqueidentifier] NULL
) ON [PRIMARY]
GO


파이프라인 디버깅 오류 메시지

{
    "errorCode": "2200",
    "message": "'Type=System.InvalidOperationException,Message=The given value of type String from the data source cannot be converted to type uniqueidentifier of the specified target column.,Source=System.Data,''Type=System.InvalidCastException,Message=Failed to convert parameter value from a String to a Guid.,Source=System.Data,''Type=System.InvalidCastException,Message=Invalid cast from 'System.String' to 'System.Guid'.,Source=mscorlib,'",
    "failureType": "UserError",
    "target": "Copy Data1"
}


오류에서 볼 수 있듯이 String 을 uniqueidentifier 변환이 실패한 것으로 볼 수 있으며, 이 경우 SOURCE 또는 DESTINATION DataSet 의 Schema 에서 해당 uniqueidentifier 컬럼의 TYPE을 Guid 로 명시할 경우 오류 없이 변환할 수 있습니다.

 

DataSet - Azure SQL DB

 

DataSet - Blob

 

작성자: Lai Go / 작성일자: 2019.02.27

Posted by Lai Go