다음을 통해 공유


Microsoft Fabric의 Data Factory에서 Azure Data Lake Storage 커넥터 문제 해결

이 문서에서는 Microsoft Fabric의 Data Factory에서 Azure Data Lake Storage 커넥터의 일반적인 문제를 해결하기 위한 제안을 제공합니다.

오류 메시지: 기본 연결이 닫혔습니다. 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을 반환한다는 의미입니다.

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

오류 코드: 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표시되면 Data Factory 런타임에 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.
  • 원인: 이 문제는 일반적으로 자체 호스팅 IR(Integration Runtime) 컴퓨터에서 발생하는 Azure Data Lake Storage Gen2 대상 제한 시간 오류로 인해 발생합니다.

  • 권장 사항:

    • 가능한 경우 자체 호스팅 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. Data Factory 런타임은 Azure Storage 계정 방화벽 설정의 네트워크 액세스에 의해 차단됩니다.
    2. 서비스 사용자 또는 관리 ID에 데이터에 액세스할 수 있는 권한이 없습니다.
  • 권장 사항:

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

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

      1. Data Factory 런타임의 일부 IP 주소 범위는 스토리지 계정 방화벽 설정에서 허용되지 않기 때문일 수 있습니다. Data Factory 런타임 IP 주소 또는 자체 호스팅 통합 런타임 IP 주소를 스토리지 계정 방화벽에 추가합니다. Data Factory 런타임 IP 주소의 경우 Data Factory 런타임 IP 주소를 참조하고 스토리지 계정 방화벽에 IP 범위를 추가하는 방법을 알아보려면 IP 네트워크 규칙 관리를 참조하세요.

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

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

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

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