다음을 통해 공유


Azure Data Factory 및 Azure Synapse에서 Azure Data Lake Storage 커넥터 문제 해결

적용 대상: Azure Data Factory Azure Synapse Analytics

기업용 올인원 분석 솔루션인 Microsoft Fabric의 Data Factory를 사용해 보세요. Microsoft Fabric은 데이터 이동부터 데이터 과학, 실시간 분석, 비즈니스 인텔리전스 및 보고에 이르기까지 모든 것을 다룹니다. 무료로 새 평가판을 시작하는 방법을 알아봅니다!

이 문서에서는 Azure Data Factory 및 Azure Synapse의 Azure Data Lake Storage Gen1 및 Gen2 커넥터와 관련된 일반적인 문제를 해결하기 위한 제안 사항을 제공합니다.

Azure Data Lake Storage Gen1

오류 메시지: 기본 연결이 닫혔습니다. SSL/TLS 보안 채널에 대한 신뢰 관계를 설정할 수 없습니다.

  • 증상: 다음 오류가 발생하여 복사 작업이 실패합니다.

    Message: ErrorCode = UserErrorFailedFileOperation, Error Message = The underlying connection was closed: Could not establish trust relationship for the SSL/TLS secure channel.

  • 원인: TLS 핸드셰이크 중에 인증서 유효성 검사가 실패했습니다.

  • 해결 방법: 임시 방편으로 스테이징된 복사본을 사용하여 Azure Data Lake Storage Gen1에 대해 TLS(전송 계층 보안) 유효성 검사를 건너뜁니다. 이 문제를 재현하여 네트워크 모니터(netmon) 추적을 수집한 다음 네트워크 팀의 지원을 받아 로컬 네트워크 구성을 확인해야 합니다.

    문제 해결을 위한 Azure Data Lake Storage Gen1 연결 다이어그램.

오류 메시지: 원격 서버에서 다음과 같은 오류를 반환했습니다. (403) 사용할 수 없음

  • 증상: 다음 오류가 발생하여 복사 작업이 실패합니다.

    Message: The remote server returned an error: (403) Forbidden. Response details: {"RemoteException":{"exception":"AccessControlException""message":"CREATE failed with error 0x83090aa2 (Forbidden. ACL verification failed. Either the resource does not exist or the user is not authorized to perform the requested operation.)....

  • 원인: 한 가지 가능한 원인은 사용자가 사용하는 서비스 주체 또는 관리 ID에 특정 폴더 또는 파일에 대한 액세스 권한이 없는 것입니다.

  • 해결 방법: 복사하려는 모든 폴더와 하위 폴더에 적절한 권한을 부여합니다. 자세한 내용은 Azure Data Lake Storage Gen1 간에 데이터 복사를 참조하세요.

오류 메시지: 서비스 주체를 사용하여 액세스 토큰을 가져오지 못했습니다. ADAL 오류: service_unavailable

  • 증상: 다음 오류가 발생하여 복사 작업이 실패합니다.

    Failed to get access token by using service principal. ADAL Error: service_unavailable, The remote server returned an error: (503) Server Unavailable.

  • 원인: Microsoft Entra ID가 소유한 STS(서비스 토큰 서버)를 사용할 수 없는 경우 사용량이 너무 많아 요청을 처리할 수 없으며 HTTP 오류 503을 반환한다는 의미입니다.

  • 해결 방법: 몇 분 후에 복사 작업을 다시 실행합니다.

Azure Data Lake Storage Gen2

오류 코드: ADLSGen2OperationFailed

  • 메시지: ADLS Gen2 operation failed for: %adlsGen2Message;.%exceptionData;.

  • 원인 및 권장 사항: 오류의 원인이 여러 가지일 수 있습니다. 아래 목록에서 가능한 원인 분석과 권장 사항을 확인하세요.

    원인 분석 권장
    Azure Data Lake Storage Gen2가 작업이 실패했다는 오류를 throw하는 경우. Azure Data Lake Storage Gen2에서 throw한 상세한 오류 메시지를 확인합니다. 일시적인 오류인 경우 작업을 다시 시도합니다. 추가 도움이 필요한 경우 Azure Storage 지원으로 문의하세요. 이때 오류 메시지에 표시된 요청 ID를 알려 주세요.
    오류 메시지에 “Forbidden”이라는 문자열이 포함된 경우, 사용 중인 서비스 주체 또는 관리 ID에 Azure Data Lake Storage Gen2에 대한 액세스 권한이 없을 수 있습니다. 오류를 해결하려면 Azure Data Lake Storage Gen2에서 데이터 복사 및 변환을 참조하세요.
    오류 메시지에 “InternalServerError”라는 문자열이 포함된 경우, 이 오류는 Azure Data Lake Storage Gen2에서 반환한 것입니다. 일시적인 오류로 인해 오류가 발생한 것일 수 있습니다. 그렇다면 작업을 다시 시도합니다. 문제가 지속되면 Azure Storage 지원에 문의하고 오류 메시지에 표시된 요청 ID를 알려 주세요.
    오류 메시지가 Unable to read data from the transport connection: An existing connection was forcibly closed by the remote host인 경우 통합 런타임에 Azure Data Lake Storage Gen2 연결하는 데 네트워크 문제가 있습니다. Azure Data Lake Storage Gen2 방화벽 규칙 설정에서 Azure Data Factory IP 주소가 허용 목록에 있는지 확인합니다. 자세한 내용은 Azure Storage 방화벽 및 가상 네트워크 구성을 참조하세요.
    오류 메시지가 This endpoint does not support BlobStorageEvents or SoftDelete인 경우 Azure Data Lake Storage Gen2 연결된 서비스를 사용하여 Blob Storage 이벤트 또는 일시 삭제를 사용하도록 설정하는 Azure Blob Storage 계정에 연결합니다. 다음 옵션을 시도해 보세요.
    1. Azure Data Lake Storage Gen2 연결 서비스를 계속 사용하려면 Azure Blob Storage Azure Data Lake Storage Gen2로 업그레이드합니다. 자세한 정보는 Azure Data Lake Storage Gen2 기능을 통해 Azure Blob Storage 업그레이드를 참조하세요.
    2. 연결된 서비스를 Azure Blob Storage로 전환합니다.
    3. Azure Blob Storage 계정에서 Blob Storage 이벤트나 일시 삭제를 사용하지 않도록 설정합니다.

Azure Data Lake Storage Gen2 계정에 대한 요청에서 시간 제한 오류가 발생함

  • 메시지:

    • 오류 코드 = UserErrorFailedBlobFSOperation
    • 오류 메시지 = BlobFS operation failed for: A task was canceled.
  • 원인: 이 문제의 원인은 Azure Data Lake Storage Gen2 싱크 시간 제한 오류입니다. 이 오류는 주로 자체 호스팅 IR(통합 런타임) 머신에서 발생합니다.

  • 권장 사항:

    • 가능한 경우 자체 호스팅 IR 머신과 대상 Azure Data Lake Storage Gen2 계정을 동일한 지역에 배치합니다. 이렇게 하면 임의의 시간 제한 오류를 방지하고 더 나은 성능을 얻을 수 있습니다.

    • ExpressRoute와 같은 특수한 네트워크 설정이 있는지 살펴보고, 네트워크의 대역폭이 충분한지 확인합니다. 전체적인 대역폭이 낮다면 자체 호스팅 IR 동시 작업 설정을 줄이는 것이 좋습니다. 이렇게 하면 여러 동시 작업 간의 네트워크 리소스 경합을 방지할 수 있습니다.

    • 파일 크기가 보통이거나 작은 경우에는 비이진 복사본에 더 작은 블록 크기를 사용하여 시간 제한 오류를 방지할 수 있습니다. 자세한 내용은 Blob Storage Put Block을 참조하세요.

      사용자 지정 블록 크기를 지정하려면 다음과 같이 JSON 파일 편집기에서 속성을 편지합니다.

      "sink": {
          "type": "DelimitedTextSink",
          "storeSettings": {
              "type": "AzureBlobFSWriteSettings",
              "blockSizeInMB": 8
          }
      }
      

복사 작업에서 Azure Data Lake Storage Gen2의 파일을 선택할 수 없습니다.

  • 증상: 파일 이름이 "Asset_Metadata"인 경우 복사 작업은 Azure Data Lake Storage Gen2에서 파일을 선택할 수 없습니다. 이 문제는 Parquet 형식 데이터 세트에서만 발생합니다. 파일 이름이 같은 다른 형식의 데이터 세트가 올바르게 작동합니다.

  • 원인: 이전 버전과의 호환성을 위해 _metadata는 파일 이름에서 예약된 부분 문자열로 처리됩니다.

  • 권장 사항: 아래 Parquet의 예약 목록을 방지하도록 파일 이름을 변경합니다.

    1. 파일 이름은 _metadata를 포함합니다.
    2. 파일 이름은 .(점)으로 시작합니다.

오류 코드: ADLSGen2ForbiddenError

  • 메시지: ADLS Gen2 failed for forbidden: Storage operation % on % get failed with 'Operation returned an invalid status code 'Forbidden'.

  • 원인: 가능한 원인은 두 가지입니다.

    1. 통합 런타임은 Azure Storage 계정 방화벽 설정의 네트워크 액세스에 의해 차단됩니다.
    2. 서비스 사용자 또는 관리 ID에 데이터에 액세스할 수 있는 권한이 없습니다.
  • 권장 사항:

    1. 공용 네트워크 액세스가 사용하지 않도록 설정되어 있는지 확인하려면 Azure Storage 계정 네트워크 설정을 확인하세요. 사용하지 않도록 설정된 경우 관리형 가상 네트워크 통합 런타임을 사용하고 액세스할 프라이빗 엔드포인트를 만듭니다. 자세한 내용은 관리형 가상 네트워크관리형 VNet 및 프라이빗 엔드포인트를 사용하여 복사 파이프라인 빌드를 참조하세요.

    2. Azure Storage 계정 네트워크 설정에서 선택한 가상 네트워크 및 IP 주소를 사용하도록 설정한 경우:

      1. 스토리지 계정 방화벽 설정에서 통합 런타임의 일부 IP 주소 범위를 허용하지 않기 때문에 가능합니다. Azure Integration Runtime IP 주소 또는 자체 호스팅 통합 런타임 IP 주소를 스토리지 계정 방화벽에 추가합니다. Azure Integration Runtime IP 주소는 Azure Integration Runtime IP 주소를 참조하고 스토리지 계정 방화벽에서 IP 범위를 추가하는 방법은 IP 네트워크 규칙 관리를 참조하세요.

      2. 방화벽에서 이 스토리지 계정에 신뢰할 수 있는 Azure 서비스를 액세스하도록 허용하는 경우 복사 활동에서 관리 ID 인증을 사용해야 합니다.

      Azure Storage 방화벽 설정에 대한 자세한 내용은 Azure Storage 방화벽 및 가상 네트워크 구성을 참조하세요.

    3. 서비스 주체 또는 관리 ID 인증을 사용하는 경우 복사할 수 있는 적절한 권한을 서비스 주체 또는 관리 ID에 부여합니다. 원본의 경우 스토리지 계정에 대한 Storage Blob 데이터 읽기 권한자 역할 이상. 싱크의 경우 스토리지 계정에 대한 Storage Blob 데이터 참가자 역할 이상. 자세한 내용은 Azure Data Lake Storage Gen2 데이터 복사 및 변환을 참조하세요.

자세한 문제 해결 도움말은 다음 리소스를 참조하세요.