다음을 통해 공유


데이터 복사 및 성공 및 실패에 대한 메일 알림 보내기

적용 대상: Azure Data Factory Azure Synapse Analytics

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

이 자습서에서는 몇 가지 컨트롤 흐름 기능을 보여 주는 Data Factory 파이프라인을 만듭니다. 이 파이프라인은 Azure Blob Storage의 컨테이너에서 동일한 스토리지 계정의 다른 컨테이너로 간단한 복사를 수행합니다. 복사 활동이 성공하면 파이프라인에서 성공적인 복사 작업에 대한 세부 정보(예: 기록된 데이터 양)를 성공 전자 메일에 보냅니다. 복사 활동이 실패하면 파이프라인에서 실패한 복사 작업에 대한 세부 정보(예: 오류 메시지)를 실패 전자 메일에 보냅니다. 자습서 전체에서 매개 변수를 전달하는 방법을 확인할 수 있습니다.

대략적인 시나리오 개요: 다이어그램은 복사본의 대상인 Azure Blob Storage를 표시합니다. 성공 시 세부 정보가 포함된 이메일을 보내거나 실패 시 오류 세부 정보가 포함된 이메일을 보냅니다.

이 자습서에서 수행하는 단계는 다음과 같습니다.

  • 데이터 팩터리를 만듭니다.
  • Azure Storage 연결된 서비스 만들기
  • Azure Blob 데이터 세트 만들기
  • 복사 활동 및 웹 활동이 포함된 파이프라인 만들기
  • 후속 작업에 작업 출력 보내기
  • 매개 변수 전달 및 시스템 변수 활용
  • 파이프라인 실행 시작
  • 파이프라인 및 작업 실행 모니터링

이 자습서에서는 Azure Portal을 사용합니다. 다른 메커니즘을 사용하여 Azure Data Factory와 상호 작용할 수 있습니다. 이 경우 목차에서 "빠른 시작"을 참조하세요.

필수 조건

  • Azure 구독. Azure 구독이 없는 경우 시작하기 전에 체험 계정을 만듭니다.
  • Azure Storage 계정입니다. Blob Storage를 원본 데이터 스토리지로 사용합니다. 아직 없는 경우 Azure Storage 계정을 만드는 단계는 스토리지 계정 만들기 문서를 참조하세요.
  • Azure SQL Database. 데이터베이스를 싱크 데이터 저장소로 사용합니다. Azure SQL Database에 데이터베이스가 없는 경우 데이터베이스를 만드는 단계는 Azure SQL Database에서 데이터베이스 만들기 문서를 참조하세요.

Blob 테이블 만들기

  1. 메모장을 시작합니다. 다음 텍스트를 복사하여 input.txt 파일로 디스크에 저장합니다.

    John,Doe
    Jane,Doe
    
  2. Azure Storage Explorer와 같은 도구를 사용하여 다음 단계를 수행합니다.

    1. adfv2branch 컨테이너를 만듭니다.
    2. adfv2branch 컨테이너에 input 폴더를 만듭니다.
    3. input.txt 파일을 컨테이너에 업로드합니다.

전자 메일 워크플로 엔드포인트 만들기

파이프라인에서 이메일 보내기를 트리거하려면 Azure Logic Apps를 사용하여 워크플로를 정의합니다. 논리 앱 워크플로를 만드는 방법에 대한 자세한 내용은 예제 사용량 논리 앱 워크플로 만들기를 참조하세요.

성공 전자 메일 워크플로

CopySuccessEmail이라는 사용량 논리 앱 워크플로를 만듭니다. HTTP 요청을 수신한 경우라는 요청 트리거를 추가하고 이메일 보내기라는 Office 365 Outlook 작업을 추가합니다. 메시지가 표시되면 Office 365 Outlook 계정에 로그인합니다.

성공 전자 메일 워크플로의 스크린샷을 표시합니다.

요청 트리거의 경우 요청 본문 JSON 스키마 상자에 다음 JSON을 입력합니다.

{
    "properties": {
        "dataFactoryName": {
            "type": "string"
        },
        "message": {
            "type": "string"
        },
        "pipelineName": {
            "type": "string"
        },
        "receiver": {
            "type": "string"
        }
    },
    "type": "object"
}

워크플로 디자이너의 요청 트리거는 다음 이미지와 같아야 합니다.

요청 트리거가 있는 워크플로 디자이너의 스크린샷을 보여 줍니다.

이메일 보내기 작업의 경우 요청 본문 JSON 스키마에 전달된 속성을 활용하여 이메일의 형식을 지정하는 방법을 사용자 지정합니다. 예를 들어 다음과 같습니다.

이메일 보내기라는 작업이 포함된 워크플로 디자이너의 스크린샷을 보여 줍니다.

워크플로를 저장합니다. 성공 전자 메일 워크플로에 대한 HTTP Post 요청 URL을 적어 둡니다.

//Success Request Url
https://prodxxx.eastus.logic.azure.com:443/workflows/000000/triggers/manual/paths/invoke?api-version=2016-10-01&sp=%2Ftriggers%2Fmanual%2Frun&sv=1.0&sig=000000

실패 전자 메일 워크플로

동일한 단계에 따라 CopyFailEmail이라는 다른 논리 앱 워크플로를 만듭니다. 요청 트리거에서 요청 본문 JSON 스키마 값은 동일합니다. Subject와 같은 전자 메일의 형식을 변경하여 실패 전자 메일에 맞게 조정합니다. 예를 들어 다음과 같습니다.

이메일 실패 워크플로가 있는 워크플로 디자이너의 스크린샷을 보여 줍니다.

워크플로를 저장합니다. 실패 전자 메일 워크플로에 대한 HTTP Post 요청 URL을 적어 둡니다.

//Fail Request Url
https://prodxxx.eastus.logic.azure.com:443/workflows/000000/triggers/manual/paths/invoke?api-version=2016-10-01&sp=%2Ftriggers%2Fmanual%2Frun&sv=1.0&sig=000000

이제 두 개의 워크플로 URL이 있습니다.

//Success Request Url
https://prodxxx.eastus.logic.azure.com:443/workflows/000000/triggers/manual/paths/invoke?api-version=2016-10-01&sp=%2Ftriggers%2Fmanual%2Frun&sv=1.0&sig=000000

//Fail Request Url
https://prodxxx.eastus.logic.azure.com:443/workflows/000000/triggers/manual/paths/invoke?api-version=2016-10-01&sp=%2Ftriggers%2Fmanual%2Frun&sv=1.0&sig=000000

데이터 팩터리 만들기

  1. Microsoft Edge 또는 Google Chrome 웹 브라우저를 시작합니다. 현재 Data Factory UI는 Microsoft Edge 및 Google Chrome 웹 브라우저에서만 지원됩니다.

  2. 왼쪽 위에서 메뉴를 확장하고 리소스 만들기를 선택합니다. 그런 다음 >통합>Data Factory를 선택합니다.

    &따옴표의 스크린샷을 표시합니다. 리소스 만들기(&S) Azure Portal의  단추

    따옴표로 묶은 Data Factory 선택 스크린샷을 표시합니다. 새 항목(&S) 창.

  3. 새 데이터 팩터리 페이지에서 이름에 대해 ADFTutorialDataFactory를 입력합니다.

    새 데이터 팩터리 페이지

    Azure Data Factory의 이름은 전역적으로 고유해야 합니다. 다음 오류가 표시되는 경우 데이터 팩터리 이름을 변경하고(예: yournameADFTutorialDataFactory) 다시 만듭니다. Data Factory 아티팩트에 대한 명명 규칙은 Data Factory - 명명 규칙 문서를 참조하세요.

    데이터 팩터리 이름 “ADFTutorialDataFactory”를 사용할 수 없습니다.

  4. 데이터 팩터리를 만들려는 위치에 Azure 구독을 선택합니다.

  5. 리소스 그룹에 대해 다음 단계 중 하나를 수행합니다.

    • 기존 항목 사용을 선택하고 드롭다운 목록에서 기존 리소스 그룹을 선택합니다.

    • 새로 만들기를 선택하고, 리소스 그룹의 이름을 입력합니다.

      리소스 그룹에 대한 자세한 내용은 리소스 그룹을 사용하여 Azure 리소스 관리를 참조하세요.

  6. 버전에 대해 V2를 선택합니다.

  7. 데이터 팩터리의 위치 를 선택합니다. 지원되는 위치만 드롭다운 목록에 표시됩니다. 데이터 팩터리에서 사용되는 데이터 저장소(Azure Storage, Azure SQL Database 등) 및 계산(HDInsight 등)은 다른 지역에 있을 수 있습니다.

  8. 대시보드에 고정을 선택합니다.

  9. 만들기를 클릭합니다.

  10. 만들기가 완료되면 이미지와 같은 Data Factory 페이지가 표시됩니다.

    데이터 팩터리 홈페이지를 보여주는 스크린샷

  11. Azure Data Factory Studio 열기 타일을 클릭하여 별도의 탭에서 Azure Data Factory UI(사용자 인터페이스)를 시작합니다.

파이프라인을 만듭니다.

이 단계에서는 하나의 복사 활동과 두 개의 웹 활동이 있는 파이프라인을 만듭니다. 다음 기능을 사용하여 파이프라인을 만듭니다.

  • 데이터 세트에서 액세스하는 파이프라인에 대한 매개 변수
  • Logic Apps 워크플로를 호출하여 성공/실패 전자 메일을 보내는 웹 활동
  • 하나의 활동을 다른 활동과 연결(성공 및 실패 시)
  • 작업의 출력을 후속 작업에 대한 입력으로 사용
  1. Data Factory UI 홈페이지에서 오케스트레이션 타일을 클릭합니다.

    오케스트레이션 타일이 강조 표시된 데이터 팩터리 홈페이지를 보여주는 스크린샷

  2. 파이프라인에 대한 속성 창에서 매개 변수탭으로 전환하고, 새로 만들기 단추를 사용하여 문자열 형식의 세 매개 변수인 sourceBlobContainer, sinkBlobContainer 및 receiver를 추가합니다.

    • sourceBlobContainer - 원본 Blob 데이터 세트에서 사용하는 파이프라인의 매개 변수입니다.
    • sinkBlobContainer - 싱크 Blob 데이터 세트에서 사용하는 파이프라인의 매개 변수입니다.
    • receiver – 이 매개 변수로 지정된 메일 주소의 받는 사람에게 성공 또는 실패 메일을 보내는 파이프라인의 두 개의 웹 작업에서 사용됩니다.

    새 파이프라인 메뉴의 스크린샷

  3. 활동 도구 상자에서 복사를 검색하고, 복사 활동을 파이프라인 디자이너 화면으로 끌어서 놓습니다.

    복사 활동을 파이프라인 디자이너로 끌어서 놓는 방법을 보여주는 스크린샷

  4. 파이프라인 디자이너 화면으로 끌어온 복사 활동을 선택합니다. 아래쪽의 복사 활동에 대한 속성 창에서 원본 탭으로 전환하고, + 새로 만들기를 클릭합니다. 이 단계에서는 복사 활동에 대한 원본 데이터 세트를 만듭니다.

    복사 활동을 위한 원본 데이터 세트를 만드는 방법을 보여주는 스크린샷

  5. 새 데이터 세트 창에서 맨 위에 있는 Azure 탭을 선택한 다음 Azure Blob Storage를 선택하고 계속을 선택합니다.

    Azure Blob Storage 선택 단추의 스크린샷

  6. 서식 선택 창에서 DelimitedText를 선택하고 계속을 선택합니다.

    &따옴표의 스크린샷을 표시합니다. 서식 선택(&S) DelimitedText 형식이 강조 표시된 창

  7. 제목이 속성 설정인 새 이 표시됩니다. 데이터 세트의 이름을 SourceBlobDataset로 변경합니다. 연결된 서비스 드롭다운을 선택하고 +새로 만들기를 선택하여 원본 데이터 세트에 연결된 새 서비스를 만듭니다.

    &따옴표의 스크린샷을 표시합니다. 속성 설정(&따옴표) +New

  8. 연결된 서비스에 필요한 속성을 입력할 수 있는 새로운 연결된 서비스 창이 표시됩니다.

    새 연결된 서비스 단추가 강조 표시된 데이터 세트 연결 창의 스크린샷을 표시합니다.

  9. 새 연결된 서비스 창에서 다음 단계를 완료합니다.

    1. 이름에 대해 AzureStorageLinkedService를 입력합니다.
    2. 스토리지 계정 이름에 대해 Azure Storage 계정을 선택합니다.
    3. 만들기를 클릭합니다.
  10. 다음에 나타나는 속성 설정 창에서 이 데이터 세트 열기를 선택하여 파일 이름으로 매개변수화된 값을 입력합니다.

    데이터 세트 및 따옴표의 스크린샷을 표시합니다. 속성 설정(&따옴표) 창에 따옴표(&따옴표)가 있습니다. 이 데이터 세트를 엽니다. 링크가 강조 표시됩니다.

  11. 폴더에는 @pipeline().parameters.sourceBlobContainer를 입력하고, 파일 이름에는 emp.txt를 입력합니다.

    원본 데이터 세트 설정의 스크린샷

  12. 파이프라인 탭으로 다시 전환하고(또는 왼쪽의 트리 뷰에서 파이프라인을 클릭하고) 디자이너에서 복사 활동을 선택합니다. 원본 데이터 세트로 새 데이터 세트가 선택되었는지 확인합니다.

    원본 데이터 세트의 스크린샷

  13. 속성 창에서 싱크 탭으로 전환하고, 싱크 데이터 세트에 대해 + 새로 만들기를 클릭합니다. 이 단계에서는 원본 데이터 세트를 만드는 것과 비슷한 방식으로 복사 활동에 대한 싱크 데이터 세트를 만듭니다.

    새 싱크 데이터 세트 단추의 스크린샷

  14. 새 데이터 세트 창에서 Azure Blob Storage를 선택하고 계속을 클릭한 다음 서식 선택 창에서 DelimitedText를 다시 선택하고 계속을 다시 클릭합니다.

  15. 데이터 세트의 속성 설정 페이지에서 이름SinkBlobDataset를 입력하고 LinkedServiceAzureStorageLinkedService를 선택합니다.

  16. 속성 페이지의 고급 섹션을 확장하고 이 데이터 세트 열기를 선택합니다.

  17. 데이터 세트 연결 탭에서 파일 경로를 편집합니다. 폴더로 @pipeline().parameters.sinkBlobContainer를 입력하고, 파일 이름은 @concat(pipeline().RunId, '.txt')를 입력합니다. 이 식은 파일 이름에 대해 현재 파이프라인 실행의 ID를 사용합니다. 지원되는 시스템 변수 및 식에 대한 목록은 시스템 변수식 언어를 참조하세요.

    싱크 데이터 세트 설정의 스크린샷

  18. 맨 위의 파이프라인 탭으로 다시 전환합니다. 검색 상자에서 을 검색하고 활동을 파이프라인 디자이너 화면으로 끌어서 놓습니다. 활동 이름을 SendSuccessEmailActivity로 설정합니다. 웹 작업은 모든 REST 엔드포인트에 대한 호출을 허용합니다. 작업에 대한 자세한 내용은 웹 작업을 참조하세요. 이 파이프라인은 웹 작업을 사용하여 Logic Apps 전자 메일 워크플로를 호출합니다.

    첫 번째 웹 활동을 끌어서 놓는 방법을 보여주는 스크린샷

  19. 일반 탭에서 설정 탭으로 전환하고 다음 단계를 수행합니다.

    1. URL에 대해 성공 전자 메일을 보내는 Logic Apps 워크플로에 대한 URL을 지정합니다.

    2. 메서드에 대해 POST를 선택합니다.

    3. 헤더 섹션에서 + 헤더 추가 링크를 클릭합니다.

    4. Content-Type 헤더를 추가하고 application/json으로 설정합니다.

    5. 본문에 대해 다음 JSON을 지정합니다.

      {
          "message": "@{activity('Copy1').output.dataWritten}",
          "dataFactoryName": "@{pipeline().DataFactory}",
          "pipelineName": "@{pipeline().Pipeline}",
          "receiver": "@pipeline().parameters.receiver"
      }
      

      메시지 본문에 포함되는 속성은 다음과 같습니다.

      • 메시지 - @{activity('Copy1').output.dataWritten의 값을 전달합니다. 이전 복사 작업의 속성에 액세스하고 dataWritten 값을 전달합니다. 실패의 경우 @{activity('CopyBlobtoBlob').error.message 대신 오류 출력을 전달합니다.

      • 데이터 팩터리 이름 - @{pipeline().DataFactory}의 값을 전달합니다. 이 변수는 시스템 변수이며, 해당 데이터 팩터리 이름에 액세스할 수 있게 합니다. 시스템 변수 목록은 시스템 변수 문서를 참조하세요.

      • 파이프라인 이름 - @{pipeline().Pipeline}의 값을 전달합니다. 이는 시스템 변수이기도 하므로 해당 파이프라인 액세스할 수 있게 합니다.

      • 받는 사람 - “pipeline().parameters.receiver”)의 값을 전달합니다. 파이프라인 매개 변수에 액세스합니다.

        첫 번째 웹 활동에 대한 설정의 스크린샷

  20. 복사 작업 옆의 녹색 확인란 단추를 끌어 웹 활동에 놓고 복사 작업을 활동에 연결합니다.

    복사 작업 첫 번째 웹 활동에 연결하는 방법을 보여주는 스크린샷

  21. 다른 활동을 [활동] 도구 상자에서 파이프라인 디자이너 화면으로 끌어서 놓고, 이름SendFailureEmailActivity로 설정합니다.

    두 번째 웹 활동의 이름 스크린샷

  22. 설정 탭으로 전환하고 다음 단계를 수행합니다.

    1. URL에 대해 실패 전자 메일을 보내는 Logic Apps 워크플로에 대한 URL을 지정합니다.

    2. 메서드에 대해 POST를 선택합니다.

    3. 헤더 섹션에서 + 헤더 추가 링크를 클릭합니다.

    4. Content-Type 헤더를 추가하고 application/json으로 설정합니다.

    5. 본문에 대해 다음 JSON을 지정합니다.

      {
          "message": "@{activity('Copy1').error.message}",
          "dataFactoryName": "@{pipeline().DataFactory}",
          "pipelineName": "@{pipeline().Pipeline}",
          "receiver": "@pipeline().parameters.receiver"
      }
      

      두 번째 웹 활동의 설정 스크린샷

  23. 파이프라인 디자이너에서 복사 활동 오른쪽에 있는 빨간색 X 단추를 선택하고 방금 만든 SendFailureEmailActivity에 끌어서 놓습니다.

    파이프라인 디자이너의 복사 작업 오류를 선택하는 방법을 보여 주는 스크린샷

  24. 파이프라인에 대한 유효성을 검사하려면 도구 모음에서 유효성 검사 단추를 클릭합니다. >> 단추를 클릭하여 파이프라인 유효성 검사 출력 창을 닫습니다.

    파이프라인 유효성 검사 단추의 스크린샷

  25. 엔터티(데이터 세트, 파이프라인 등)를 Data Factory 서비스에 게시하려면 모두 게시를 선택합니다. 게시됨 메시지가 표시될 때까지 기다립니다.

    데이터 팩터리 포털의 게시 단추 스크린샷

성공한 파이프라인 실행 트리거

  1. 파이프라인 실행을 트리거하려면 도구 모음에서 트리거, 지금 트리거를 차례로 클릭합니다.

    지금 트리거 단추의 스크린샷

  2. 파이프라인 실행 창에서 다음 단계를 수행 합니다.

    1. sourceBlobContainer 매개 변수에 대해 adftutorial/adfv2branch/input을 입력합니다.

    2. sinkBlobContainer 매개 변수에 대해 adftutorial/adfv2branch/output을 입력합니다.

    3. 받는 사람이메일 주소를 입력합니다.

    4. 마침을 클릭합니다.

      파이프라인 실행 매개 변수

성공적인 파이프라인 실행 모니터링

  1. 파이프라인 실행을 모니터링하려면 왼쪽의 모니터 탭으로 전환합니다. 수동으로 트리거된 파이프라인 실행이 표시됩니다. 새로 고침 단추를 사용하여 목록을 새로 고칩니다.

    성공적인 파이프라인 실행

  2. 이 파이프라인 실행과 연결된 활동 실행을 보려면작업 열에서 첫 번째 링크를 클릭합니다. 위쪽의 파이프라인을 클릭하여 이전 보기로 다시 전환할 수 있습니다. 새로 고침 단추를 사용하여 목록을 새로 고칩니다.

    활동 실행 목록을 보는 방법을 보여 주는 스크린샷

실패한 파이프라인 실행 트리거

  1. 왼쪽의 편집 탭으로 전환합니다.

  2. 파이프라인 실행을 트리거하려면 도구 모음에서 트리거, 지금 트리거를 차례로 클릭합니다.

  3. 파이프라인 실행 창에서 다음 단계를 수행 합니다.

    1. sourceBlobContainer 매개 변수에 대해 adftutorial/dummy/input을 입력합니다. 더미 폴더가 adftutorial 컨테이너에 존재하지 않는지 확인합니다.
    2. sinkBlobContainer 매개 변수에 대해 adftutorial/dummy/output을 입력합니다.
    3. 받는 사람이메일 주소를 입력합니다.
    4. Finish를 클릭합니다.

실패한 파이프라인 실행 모니터링

  1. 파이프라인 실행을 모니터링하려면 왼쪽의 모니터 탭으로 전환합니다. 수동으로 트리거된 파이프라인 실행이 표시됩니다. 새로 고침 단추를 사용하여 목록을 새로 고칩니다.

    오류 파이프라인 실행

  2. 오류에 대한 세부 정보를 보려면 파이프라인 실행에 대한 오류 링크를 클릭합니다.

    파이프라인 오류

  3. 이 파이프라인 실행과 연결된 활동 실행을 보려면작업 열에서 첫 번째 링크를 클릭합니다. 새로 고침 단추를 사용하여 목록을 새로 고칩니다. 파이프라인의 복사 활동이 실패했음을 확인할 수 있습니다. 웹 활동에서 지정된 받는 사람에게 실패 전자 메일을 보내는 데 성공했습니다.

    작업 실행

  4. 작업 열에서 오류 링크를 클릭하여 오류에 대한 세부 정보를 확인합니다.

    활동 실행 오류

이 자습서에서 다음 단계를 수행했습니다.

  • 데이터 팩터리를 만듭니다.
  • Azure Storage 연결된 서비스 만들기
  • Azure Blob 데이터 세트 만들기
  • 복사 작업 및 웹 작업이 포함된 파이프라인 만들기
  • 후속 작업에 작업 출력 보내기
  • 매개 변수 전달 및 시스템 변수 활용
  • 파이프라인 실행 시작
  • 파이프라인 및 작업 실행 모니터링

이제 개념 섹션으로 진행하여 Azure Data Factory에 대한 자세한 내용을 확인할 수 있습니다.