매핑 데이터 흐름을 사용하여 안전하게 데이터 변환

적용 대상: Azure Data Factory Azure Synapse Analytics

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

Azure Data Factory를 처음 사용하는 경우 Azure Data Factory 소개를 참조하세요.

이 자습서에서는 Data Factory 사용자 인터페이스(UI)를 사용하여 Data Factory 관리 가상 네트워크의 매핑 데이터 흐름 사용을 통해 Azure Data Lake Storage Gen2 원본으로부터 Data Lake Storage Gen2 싱크(두 가지 모두 선택한 네트워크에 대해서만 액세스 허용)로 데이터를 복사하고 변환하는 파이프라인을 만듭니다. 매핑 데이터 흐름을 사용하여 데이터를 변환하는 경우 이 자습서의 구성 패턴을 확장할 수 있습니다.

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

  • 데이터 팩터리를 만듭니다.
  • 데이터 흐름 작업을 사용하여 파이프라인을 만듭니다.
  • 네 가지 변환으로 매핑 데이터 흐름을 만듭니다.
  • 파이프라인 실행 테스트
  • 데이터 흐름 작업을 모니터링합니다.

필수 조건

  • Azure 구독. Azure 구독이 아직 없는 경우 시작하기 전에 Azure 체험 계정을 만듭니다.
  • Azure 스토리지 계정. 원본 및 싱크 데이터 저장소 모두로 사용하는 Data Lake Storage. 스토리지 계정이 없는 경우 Azure Storage 계정 만들기를 참조하세요. 스토리지 계정이 선택한 네트워크에서만 액세스를 허용하는지 확인합니다.

이 자습서에서 변형할 파일은 moviesDB.csv로, GitHub 콘텐츠 사이트에 있습니다. GitHub에서 파일을 검색하려면 해당 콘텐츠를 원하는 텍스트 편집기에 복사하여 로컬에 .csv 파일로 저장합니다. 스토리지 계정에 파일을 업로드하려면 Azure Portal을 사용하여 Blob 업로드를 참조하세요. 예제에서는 sample-data라는 컨테이너를 참조합니다.

데이터 팩터리 만들기

이 단계에서는 데이터 팩터리를 만들고, Data Factory UI를 열어서 데이터 팩터리에 파이프라인을 만듭니다.

  1. Microsoft Edge 또는 Google Chrome을 엽니다. 현재 Microsoft Edge 및 Google Chrome 웹 브라우저만 Data Factory UI를 지원합니다.

  2. 왼쪽 메뉴에서 리소스 만들기>분석>Data Factory를 차례로 선택합니다.

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

    데이터 팩터리 이름은 전역적으로 고유해야 합니다. 이름 값에 대한 오류 메시지가 표시되면 데이터 팩터리에 대한 다른 이름(예: yournameADFTutorialDataFactory)을 입력합니다. Data Factory 아티팩트에 대한 명명 규칙은 Data Factory 명명 규칙을 참조하세요.

  4. 데이터 팩터리를 만들 Azure 구독을 선택합니다.

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

    • 기존 항목 사용을 선택하고 드롭다운 목록에서 기존 리소스 그룹을 선택합니다.
    • 새로 만들기를 선택하고, 리소스 그룹의 이름을 입력합니다.

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

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

  7. 위치에서 데이터 팩터리의 위치를 선택합니다. 지원되는 위치만 드롭다운 목록에 나타납니다. 데이터 팩터리에 사용되는 데이터 저장소(예: Azure Storage, Azure SQL Database) 및 컴퓨팅(예: Azure HDInsight)은 다른 지역에 있을 수 있습니다.

  8. 만들기를 실행합니다.

  9. 만들기가 완료되면 알림 센터에 알림이 표시됩니다. 리소스로 이동을 선택하여 Data Factory 페이지로 이동합니다.

  10. 별도의 탭에서 Data Factory UI를 시작하려면 Azure Data Factory Studio 열기를 선택합니다.

Data Factory 관리 가상 네트워크에서 Azure IR 만들기

이 단계에서는 Azure IR을 만들고 Data Factory 관리 가상 네트워크를 사용하도록 설정합니다.

  1. Data Factory 포털에서 관리로 이동하고, 새로 만들기를 선택하여 새 Azure IR을 만듭니다.

    Screenshot that shows creating a new Azure IR.

  2. 통합 런타임 설정 페이지에서 필요한 기능을 기반으로 만들 통합 런타임을 선택합니다. 이 자습서에서는 Azure, 자체 호스팅을 선택한 다음, 계속을 클릭합니다.

  3. Azure를 선택한 다음, 계속을 클릭하여 Azure 통합 런타임을 만듭니다.

    Screenshot that shows a new Azure IR.

  4. 가상 네트워크 구성(미리 보기)에서 사용을 선택합니다.

    Screenshot that shows enabling a new Azure IR.

  5. 만들기를 실행합니다.

데이터 흐름 작업으로 파이프라인 만들기

이 단계에서는 데이터 흐름 작업을 포함하는 파이프라인을 만듭니다.

  1. Azure Data Factory 홈페이지에서 오케스트레이션을 선택합니다.

    Screenshot that shows the data factory home page with the Orchestrate button highlighted.

  2. 파이프라인의 속성 창에서 파이프라인 이름에 TransformMovies를 입력합니다.

  3. 작업 창에서 이동 및 변환을 확장합니다. 데이터 흐름 작업을 창에서 파이프라인 캔버스로 끕니다.

  4. 데이터 흐름 추가 팝업에서 새 데이터 흐름 만들기를 선택하고 매핑 데이터 흐름을 선택합니다. 작업이 완료되면 확인을 선택합니다.

    Screenshot that shows Mapping Data Flow.

  5. 속성 창에서 데이터 흐름의 이름을 TransformMovies로 지정합니다.

  6. 파이프라인 캔버스의 상단 막대에서 데이터 흐름 디버그 슬라이더를 밉니다. 디버그 모드에서는 라이브 Spark 클러스터에 대한 변환 논리의 대화형 테스트를 수행할 수 있습니다. 데이터 흐름 클러스터는 준비하는 데 5~7분 정도 걸리며, 데이터 흐름 개발을 수행할 계획이라면 우선 디버그를 사용하도록 설정하는 것이 좋습니다. 자세한 내용은 디버그 모드를 참조하세요.

    Screenshot that shows the Data flow debug slider.

데이터 흐름 캔버스에서 변환 논리 빌드

데이터 흐름을 만들면 데이터 흐름 캔버스로 자동 전송됩니다. 이 단계에서는 Data Lake Storage의 moviesDB.csv를 가져와 1910년부터 2000년까지 코미디 장르의 평균 평점을 집계하는 데이터 흐름을 만듭니다. 그런 다음 이 파일을 Data Lake Storage에 다시 씁니다.

원본 변환 추가

이 단계에서는 Data Lake Storage Gen2를 원본으로 설정합니다.

  1. 데이터 흐름 캔버스에서 원본 추가 상자를 선택하여 원본을 추가합니다.

  2. 원본 이름을 MoviesDB로 지정합니다. 새로 만들기를 선택하여 새 원본 데이터 세트를 만듭니다.

  3. Azure Data Lake Storage Gen2를 선택한 다음 계속을 선택합니다.

  4. DelimitedText를 선택하고 계속을 클릭합니다.

  5. 데이터 세트를 MoviesDB로 지정합니다. 연결된 서비스 드롭다운에서 새로 만들기를 선택합니다.

  6. 연결된 서비스 만들기 화면에서 Data Lake Storage Gen2 연결된 서비스의 이름을 ADLSGen2로 지정하고 인증 방법을 지정합니다. 그런 다음 연결 자격 증명을 입력합니다. 이 자습서에서는 계정 키를 사용하여 스토리지 계정에 연결합니다.

  7. 대화형 작성을 사용하도록 설정해야 합니다. 사용하도록 설정하는 데 1분 정도 걸릴 수 있습니다.

    Screenshot that shows Interactive authoring.

  8. 연결 테스트를 클릭합니다. 스토리지 계정에서 프라이빗 엔드포인트를 생성 및 승인하지 않고서는 액세스를 허용하지 않기 때문에 실패합니다. 오류 메시지에는 관리형 프라이빗 엔드포인트를 만들기 위해 따를 수 있는 프라이빗 엔드포인트 만들기에 대한 링크가 표시됩니다. 또 다른 방법은 관리 탭으로 직접 이동하여 이 섹션의 지침에 따라 관리형 프라이빗 엔드포인트를 만드는 것입니다.

  9. 대화 상자를 열어 둔 채 스토리지 계정으로 이동합니다.

  10. 이 섹션의 지침에 따라 프라이빗 링크를 승인합니다.

  11. 대화 상자로 돌아갑니다. 연결 테스트를 다시 선택하고 만들기를 선택하여 연결된 서비스를 배포합니다.

  12. 데이터 세트 만들기 화면으로 돌아오면 파일 경로 입력란에 파일이 있는 위치를 입력합니다. 이 자습서에서 MoviesDB.csv 파일은 sample-data 컨테이너에 있습니다. 파일에 헤더가 있으므로 첫 번째 행을 헤더로 확인란을 선택합니다. 스토리지의 파일에서 직접 헤더 스키마를 가져오려면 연결/저장소에서를 선택합니다. 작업이 완료되면 확인을 선택합니다.

    Screenshot that shows the source path.

  13. 디버그 클러스터가 시작된 경우 원본 변환의 데이터 미리 보기 탭으로 이동하고 새로 고침을 선택하여 데이터의 스냅샷을 가져옵니다. 데이터 미리 보기를 사용하여 변환이 올바르게 구성되었는지 확인할 수 있습니다.

    Screenshot that shows the Data Preview tab.

관리형 프라이빗 엔드포인트 만들기

이전 연결을 테스트할 때 하이퍼링크를 사용하지 않은 경우 경로를 따릅니다. 이제 만든 연결된 서비스에 연결할 관리형 프라이빗 엔드포인트를 만들어야 합니다.

  1. 관리 탭으로 이동합니다.

    참고 항목

    일부 Data Factory 인스턴스에는 관리 탭을 사용할 수 없습니다. 표시되지 않으면 작성자>연결>프라이빗 엔드포인트를 선택하여 프라이빗 엔드포인트에 액세스할 수 있습니다.

  2. 관리형 프라이빗 엔드포인트 섹션으로 이동합니다.

  3. 관리형 프라이빗 엔드포인트에서 + 새로 만들기를 선택합니다.

    Screenshot that shows the Managed private endpoints New button.

  4. 목록에서 Azure Data Lake Storage Gen2 타일을 선택하고 계속을 선택합니다.

  5. 만든 스토리지 계정의 이름을 입력합니다.

  6. 만들기를 실행합니다.

  7. 몇 초 후면 만든 프라이빗 링크에 승인이 필요하다고 표시됩니다.

  8. 만든 프라이빗 엔드포인트를 선택합니다. 스토리지 계정 수준에서 프라이빗 엔드포인트를 승인하도록 안내하는 하이퍼링크가 표시됩니다.

    Screenshot that shows the Manage private endpoint pane.

  1. 스토리지 계정의 설정 섹션 아래에서 프라이빗 엔드포인트 연결로 이동합니다.

  2. 만든 프라이빗 엔드포인트의 확인란을 선택하고 승인을 선택합니다.

    Screenshot that shows the private endpoint Approve button.

  3. 설명을 추가하고 를 선택합니다.

  4. Data Factory에서 관리 탭의 관리형 프라이빗 엔드포인트 섹션으로 돌아갑니다.

  5. 약 1분 후에 프라이빗 엔드포인트에 대한 승인이 표시됩니다.

필터 변환 추가

  1. 데이터 흐름 캔버스의 원본 노드 옆에 있는 더하기 아이콘을 선택하여 새 변환을 추가합니다. 추가할 첫 번째 변환은 필터입니다.

    Screenshot that shows adding a filter.

  2. 필터 변환의 이름을 FilterYears로 지정합니다. 필터 설정 옆에 있는 식 상자를 선택하여 식 작성기를 엽니다. 여기에서 필터링 조건을 지정합니다.

    Screenshot that shows FilterYears.

  3. 데이터 흐름 식 작성기를 사용하면 다양한 변환에 사용할 식을 대화형으로 작성할 수 있습니다. 식에는 기본 제공 함수, 입력 스키마의 열 및 사용자 정의 매개 변수가 포함될 수 있습니다. 식 작성 방법에 대한 자세한 내용은 데이터 흐름 식 작성기를 참조하세요.

    • 이 자습서에서는 1910년과 2000년 사이의 코미디 영화를 필터링하려고 합니다. 연도는 현재 문자열이므로 toInteger() 함수를 사용하여 정수로 변환해야 합니다. 크거나 같음(>=) 및 작거나 같음(<=) 연산자를 사용하여 리터럴 연도 값 1910 및 2000을 비교합니다. 이 식을 and(&&) 연산자로 결합합니다. 식은 다음과 같이 됩니다.

      toInteger(year) >= 1910 && toInteger(year) <= 2000

    • 코미디 영화를 찾으려면 rlike() 함수를 사용하여 장르 열에서 'Comedy' 패턴을 찾을 수 있습니다. rlike 표현식을 연도 비교와 결합하여 다음을 얻습니다.

      toInteger(year) >= 1910 && toInteger(year) <= 2000 && rlike(genres, 'Comedy')

    • 디버그 클러스터가 활성화된 경우 새로 고침을 선택하여 사용된 입력과 비교한 다음 식 출력을 확인하여 논리를 확인할 수 있습니다. 데이터 흐름 식 언어를 사용하여 이 논리를 수행하는 방법에는 두 개 이상의 정답이 있습니다.

      Screenshot that shows the filter expression.

    • 식을 완료한 후 저장 및 마침을 선택합니다.

  4. 필터가 제대로 작동하는지 확인하려면 데이터 미리 보기를 가져옵니다.

    Screenshot that shows the filtered Data Preview.

집계 변환 추가

  1. 다음으로 추가할 변환은 스키마 한정자 아래의 집계 변환입니다.

    Screenshot that shows adding the aggregate.

  2. 집계 변환의 이름을 AggregateComedyRating으로 지정합니다. 그룹화 기준 탭의 드롭다운 상자에서 연도를 선택하여 영화의 발표 연도별로 집계를 그룹화합니다.

    Screenshot that shows the aggregate group.

  3. 집계 탭으로 이동합니다. 왼쪽 텍스트 상자에서 집계 열의 이름을 AverageComedyRating으로 지정합니다. 식 작성기를 통해 집계 식을 입력하려면 오른쪽 식 상자를 선택합니다.

    Screenshot that shows the aggregate column name.

  4. Rating 열의 평균을 구하려면 avg() 집계 함수를 사용합니다. Rating은 문자열이고 avg()은 숫자 입력을 사용하기 때문에 toInteger() 함수를 통해 값을 숫자로 변환해야 합니다. 이 식은 다음과 같습니다.

    avg(toInteger(Rating))

  5. 완료 후 저장 및 마침을 선택합니다.

    Screenshot that shows saving the aggregate.

  6. 변환 출력을 보려면 데이터 미리 보기 탭으로 이동합니다. yearAverageComedyRating이라는 두 개의 열만 있습니다.

싱크 변환 추가

  1. 다음으로 대상 아래에 싱크 변환을 추가하려고 합니다.

    Screenshot that shows adding a sink.

  2. 싱크 이름을 Sink로 지정합니다. 새로 만들기를 선택하여 싱크 데이터 세트를 만듭니다.

    Screenshot that shows creating a sink.

  3. 새 데이터 세트 페이지에서 Azure Data Lake Storage Gen2를 선택한 다음, 계속을 선택합니다.

  4. 형식 선택 페이지에서 DelimitedText를 선택하고 계속을 선택합니다.

  5. 싱크 데이터 세트의 이름을 MoviesSink로 지정합니다. 연결된 서비스의 경우 원본 변환에 대해 만든 것과 동일한 ADLSGen2 연결된 서비스를 선택합니다. 데이터를 쓸 출력 폴더를 입력합니다. 이 자습서에서는 컨테이너 sample-data의 폴더 output에 쓰고 있습니다. 폴더는 미리 존재하지 않아도 되며 동적으로 만들 수 있습니다. 첫 번째 행을 헤더로 확인란을 선택한 다음, 스키마 가져오기에 대해 없음을 선택합니다. 확인을 선택합니다.

    Screenshot that shows the sink path.

이제 데이터 흐름 빌드를 마쳤습니다. 파이프라인에서 실행할 준비가 되었습니다.

데이터 흐름 실행 및 모니터링

파이프라인을 게시하기 전에 디버그할 수 있습니다. 이 단계에서는 데이터 흐름 파이프라인의 디버그 실행을 트리거합니다. 데이터 미리 보기는 데이터를 쓰지 않지만 디버그 실행은 싱크 대상에 데이터를 씁니다.

  1. 파이프라인 캔버스로 이동합니다. 디버그 실행을 트리거하려면 디버그를 선택합니다.

  2. 데이터 흐름 활동의 파이프라인 디버깅은 활성 디버그 클러스터를 사용하지만 여전히 초기화하는 데 1분 이상 걸립니다. 출력 탭을 통해 진행률을 추적할 수 있습니다. 실행이 성공하면 실행 세부 정보에 대한 안경 아이콘을 선택합니다.

  3. 세부 정보 페이지에서 각 변환 단계에서 소요된 시간 및 행 수를 확인할 수 있습니다.

    Screenshot that shows a monitoring run.

  4. 변환을 선택하면 데이터의 열 및 분할에 대한 자세한 정보를 볼 수 있습니다.

이 자습서를 올바르게 수행했다면 싱크 폴더에 83개의 행과 2개의 열이 작성되어 있을 것입니다. Blob Storage를 확인하여 데이터가 올바른지 확인할 수 있습니다.

요약

이 자습서에서는 Data Factory UI를 사용하여 Data Factory 관리 가상 네트워크의 매핑 데이터 흐름 사용을 통해 Data Lake Storage Gen2 원본으로부터 Data Lake Storage Gen2 싱크(두 가지 모두 선택한 네트워크에 대해서만 액세스 허용)로 데이터를 복사하고 변환하는 파이프라인을 만듭니다.