Share via


Azure Data Factory 명령 작업을 사용하여 Azure Data Explorer 관리 명령 실행

ADF(Azure Data Factory)는 데이터에 대한 작업의 조합을 수행할 수 있는 클라우드 기반 데이터 통합 서비스입니다. ADF를 사용하여 데이터 이동 및 데이터 변환을 오케스트레이션하고 자동화하기 위한 데이터 기반 워크플로를 만듭니다. Azure Data Factory Azure Data Explorer 명령 작업을 사용하면 ADF 워크플로 내에서 Azure Data Explorer 관리 명령을 실행할 수 있습니다. 이 문서에서는 Azure Data Explorer 명령 작업이 포함된 조회 작업 및 ForEach 작업을 사용하여 파이프라인을 만드는 방법에 대해 설명합니다.

사전 요구 사항

새 파이프라인 만들기

  1. 작성자 연필 도구를 선택합니다.

  2. +을 선택하여 새 파이프라인을 만든 다음, 드롭다운에서 파이프라인을 선택합니다.

    새 파이프라인 만들기

조회 작업 만들기

조회 작업은 Azure Data Factory에서 지원하는 데이터 원본에서 데이터 세트를 검색할 수 있습니다. 조회 작업의 출력은 ForEach 또는 다른 작업에서 사용할 수 있습니다.

  1. 작업 창의 일반 아래에서 조회 작업을 선택합니다. 오른쪽의 주 캔버스로 끌어서 놓습니다.

    조회 작업 선택

  2. 이제 캔버스에는 사용자가 만든 조회 작업이 포함되어 있습니다. 캔버스 아래의 탭을 사용하여 관련 매개 변수를 변경합니다. 일반에서 작업의 이름을 바꿉니다.

    조회 작업 편집

    빈 캔버스 영역을 클릭하여 파이프라인 속성을 봅니다. 일반 탭을 사용하여 파이프라인의 이름을 바꿉니다. 파이프라인의 이름은 pipeline-4-docs입니다.

조회 작업에서 Azure Data Explorer 데이터 세트 만들기

  1. 설정에서 미리 만든 Azure Data Explorer 원본 데이터 세트를 선택하거나 + 새로 만들기를 선택하여 새 데이터 세트를 만듭니다.

    조회 설정에 데이터 세트 추가

  2. 새 데이터 세트 창에서 Azure Data Explorer(Kusto) 데이터 세트를 선택합니다. 계속을 선택하여 새 데이터 세트를 추가합니다.

    새 데이터 세트 선택

  3. 설정에 새 Azure Data Explorer 데이터 세트 매개 변수가 표시됩니다. 매개 변수를 업데이트하려면 편집을 선택합니다.

    Azure Data Explorer 데이터 세트가 있는 조회 설정

  4. AzureDataExplorerTable 탭이 주 캔버스에 열립니다.

    • 일반을 선택하고 데이터 세트 이름을 편집합니다.
    • 데이터 세트 속성을 편집하려면 연결을 선택합니다.
    • 드롭다운에서 연결된 서비스를 선택하거나 + 새로 만들기를 선택하여 새 연결된 서비스를 만듭니다.

    Azure Data Explorer 데이터 세트 속성 편집

  5. 새 연결된 서비스를 만들 때 새 연결된 서비스(Azure Data Explorer) 페이지가 열립니다.

    Azure Data Explorer 새 연결된 서비스입니다.

    • Azure Data Explorer 연결된 서비스의 이름을 선택합니다. 필요한 경우 설명을 추가합니다.
    • 필요한 경우 통합 런타임을 통해 연결에서 현재 설정을 변경합니다.
    • 계정 선택 방법에서 다음 두 가지 방법 중 하나를 사용하여 클러스터를 선택합니다.
      • Azure 구독에서 라디오 단추를 선택하고, Azure 구독 계정을 선택합니다. 그런 다음, 클러스터를 선택합니다. 드롭다운에는 사용자에게 속한 클러스터만 나열됩니다.
      • 대신 수동으로 입력 라디오 단추를 선택하고, 엔드포인트(클러스터 URL)를 입력합니다.
    • 테넌트를 지정합니다.
    • 서비스 주체 ID를 입력합니다. 이 값은 앱 등록>개요>애플리케이션(클라이언트) ID 아래의 Azure Portal 찾을 수 있습니다. 보안 주체는 사용 중인 명령에 필요한 권한 수준에 따라 적절한 권한이 있어야 합니다.
    • 서비스 주체 키 단추를 선택하고, 서비스 주체 키를 입력합니다.
    • 드롭다운 메뉴에서 데이터베이스를 선택합니다. 또는 편집 확인란을 선택하고, 데이터베이스 이름을 입력합니다.
    • 연결 테스트를 선택하여 만든 연결된 서비스 연결을 테스트합니다. 설정에 연결할 수 있는 경우 연결 성공 녹색 확인 표시가 표시됩니다.
    • 마침을 선택하여 연결된 서비스 만들기를 완료합니다.
  6. 연결된 서비스가 설정되었으면 AzureDataExplorerTable>연결에서 테이블 이름을 추가합니다. 데이터 미리 보기를 선택하여 데이터가 올바르게 표시되는지 확인합니다.

    이제 데이터 세트가 준비되었으며 파이프라인 편집을 계속할 수 있습니다.

조회 작업에 쿼리 추가

  1. pipeline-4-docs>설정에서 쿼리를 쿼리 텍스트 상자에 추가합니다. 예를 들면 다음과 같습니다.

    ClusterQueries
    | where Database !in ("KustoMonitoringPersistentDatabase", "$systemdb")
    | summarize count() by Database
    
  2. 필요에 따라 쿼리 시간 제한 또는 잘림 없음첫 행만 속성을 변경합니다. 이 흐름에서 기본 쿼리 시간 제한을 유지하고, 확인란의 선택을 취소합니다.

    조회 작업의 최종 설정

For-Each 작업 만들기

For-Each 작업은 컬렉션을 반복하고 루프에서 지정된 작업을 실행하는 데 사용됩니다.

  1. 이제 For-Each 작업을 파이프라인에 추가합니다. 이 작업은 조회 작업에서 반환된 데이터를 처리합니다.

    • 작업 창의 반복 및 조건부 아래에서 ForEach 작업을 선택하고, 캔버스로 끌어서 놓습니다.

    • 캔버스에서 조회 작업의 출력과 ForEach 작업의 입력 사이에 선을 그려 연결합니다.

      ForEach 작업

  2. 캔버스에서 ForEach 작업을 선택합니다. 아래의 설정 탭에서 다음을 수행합니다.

    • 조회 결과를 순차적으로 처리하려면 순차 확인란을 선택하고, 병렬 처리를 만들려면 선택 취소된 상태로 유지합니다.

    • 일괄 처리 수를 설정합니다.

    • 항목에서 출력 값 @activity('Lookup1').output.value에 대한 다음 참조를 제공합니다.

      ForEach 작업 설정

ForEach 작업 내에서 Azure Data Explorer 명령 작업 만들기

  1. 캔버스에서 ForEach 작업을 두 번 클릭하여 새 캔버스에서 해당 작업을 열고 ForEach 내의 작업을 지정합니다.

  2. 작업 창의 Azure Data Explorer 아래에서 Azure Data Explorer 명령 작업을 선택하고, 캔버스로 끌어서 놓습니다.

    Azure Data Explorer 명령 작업

  3. 연결 탭에서 이전에 만든 것과 동일한 연결된 서비스를 선택합니다.

    Azure Data Explorer 명령 작업 연결 탭

  4. 명령 탭에서 다음 명령을 제공합니다.

    .export
    async compressed
    into csv h"http://<storageName>.blob.core.windows.net/data/ClusterQueries;<storageKey>" with (
    sizeLimit=100000,
    namePrefix=export
    )
    <| ClusterQueries | where Database == "@{item().Database}"
    

    명령은 지정된 쿼리 결과를 압축된 형식으로 Blob 스토리지로 내보내도록 Azure Data Explorer에 지시합니다. 비동기적으로 실행됩니다(비동기 한정자 사용). 쿼리는 조회 작업 결과에서 각 행의 데이터베이스 열을 처리합니다. 명령 시간 제한은 변경되지 않은 상태로 유지할 수 있습니다.

    명령 작업

    참고

    명령 작업의 제한 사항은 다음과 같습니다.

    • 크기 제한: 1MB 응답 크기
    • 시간 제한: 20분(기본값), 1시간(최댓값)
    • 필요한 경우 결과 크기/시간을 줄이기 위해 AdminThenQuery를 사용하여 쿼리를 결과에 추가할 수 있습니다.
  5. 이제 파이프라인이 준비되었습니다. 파이프라인 이름을 클릭하여 주 파이프라인 보기로 돌아갈 수 있습니다.

    Azure Data Explorer 명령 파이프라인

  6. 파이프라인을 게시하기 전에 디버그를 선택합니다. 파이프라인 진행률은 출력 탭에서 모니터링할 수 있습니다.

    Azure Data Explorer 명령 작업 출력

  7. 모두 게시, 트리거 추가를 차례로 선택하여 파이프라인을 실행할 수 있습니다.

관리 명령 출력

명령 작업 출력의 구조는 아래에 자세히 설명되어 있습니다. 이 출력은 파이프라인의 다음 작업에서 사용할 수 있습니다.

비동기 관리 명령의 반환된 값

비동기 관리 명령에서 반환된 값의 구조는 조회 작업 결과의 구조와 유사합니다. count 필드는 반환된 레코드의 수를 나타냅니다. value 고정 배열 필드에는 레코드 목록이 포함됩니다.

{ 
    "count": "2", 
    "value": [ 
        { 
            "ExtentId": "1b9977fe-e6cf-4cda-84f3-4a7c61f28ecd", 
            "ExtentSize": 1214.0, 
            "CompressedSize": 520.0 
        }, 
        { 
            "ExtentId": "b897f5a3-62b0-441d-95ca-bf7a88952974", 
            "ExtentSize": 1114.0, 
            "CompressedSize": 504.0 
        } 
    ] 
} 

비동기 관리 명령의 반환된 값

비동기 관리 명령에서 비동기 작업이 완료되거나 시간 초과될 때까지 활동은 백그라운드에서 작업 테이블을 폴링합니다. 따라서 반환된 값에는 지정된 OperationId 속성에 .show operations OperationId 대한 결과가 포함됩니다. StateStatus 속성의 값을 확인하여 작업이 성공적으로 완료되었는지 확인합니다.

{ 
    "count": "1", 
    "value": [ 
        { 
            "OperationId": "910deeae-dd79-44a4-a3a2-087a90d4bb42", 
            "Operation": "TableSetOrAppend", 
            "NodeId": "", 
            "StartedOn": "2019-06-23T10:12:44.0371419Z", 
            "LastUpdatedOn": "2019-06-23T10:12:46.7871468Z", 
            "Duration": "00:00:02.7500049", 
            "State": "Completed", 
            "Status": "", 
            "RootActivityId": "f7c5aaaf-197b-4593-8ba0-e864c94c3c6f", 
            "ShouldRetry": false, 
            "Database": "MyDatabase", 
            "Principal": "<some principal id>", 
            "User": "<some User id>" 
        } 
    ] 
}