Azure Data Factory 또는 Synapse Analytics를 사용하여 Azure Data Explorer 데이터 복사

적용 대상: Azure Data Factory Azure Synapse Analytics

Microsoft Fabric의 데이터 팩토리는 더 간단한 아키텍처, 기본 제공 AI 및 새로운 기능을 갖춘 차세대 Azure 데이터 팩토리입니다. 데이터 통합을 접하는 경우 Fabric Data Factory부터 시작합니다. 기존 ADF 워크로드는 Fabric 업그레이드하여 데이터 과학, 실시간 분석 및 보고 전반에 걸쳐 새로운 기능에 액세스할 수 있습니다.

이 문서에서는 Azure Data Factory 및 Synapse Analytics 파이프라인에서 복사 작업을 사용하여 Azure Data Explorer 데이터를 복사하는 방법을 설명합니다. 이 문서는 복사 작업에 대한 일반적인 개요를 제공하는 복사 작업 개요 문서를 기반으로 합니다.

서비스와의 Azure Data Explorer 통합에 대한 자세한 내용은 일반적으로 통합 Azure Data Explorer 참조하세요.

지원되는 기능

이 Azure Data Explorer 커넥터는 다음 기능에 대해 지원됩니다.

지원되는 기능 적외선
복사 작업(소스/싱크) (1) (2)
매핑 데이터 흐름(원본/싱크)
조회 작업 (1) (2)

(1) Azure 통합 런타임(2) 자체 호스팅 통합 런타임

지원되는 모든 원본 데이터 저장소에서 Azure Data Explorer 데이터를 복사할 수 있습니다. Azure Data Explorer 지원되는 싱크 데이터 저장소로 데이터를 복사할 수도 있습니다. 복사 작업의 원본 또는 싱크로 지원되는 데이터 저장소 목록은 지원되는 데이터 저장소 테이블을 참조하세요.

참고

자체 호스팅 통합 런타임을 사용하여 온-프레미스 데이터 저장소를 통해 Azure Data Explorer 데이터 복사는 버전 3.14 이상에서 지원됩니다.

Azure Data Explorer 커넥터를 사용하여 다음을 수행할 수 있습니다.

  • Microsoft Entra 애플리케이션 토큰 인증을 사용하여 서비스 주체 데이터를 복사합니다.
  • 원본의 경우 KQL(Kusto) 쿼리를 사용하여 데이터를 검색합니다.
  • 싱크의 경우 대상 테이블에 데이터를 추가합니다.

시작

Azure Data Explorer 커넥터에 대한 가이드를 보려면 Azure Data Explorer로 데이터 복사데이터베이스에서 Azure Data Explorer로 대량 복사를 참조하세요.

파이프라인을 사용하여 복사 작업을 수행하려면 다음 도구 또는 SDK 중 하나를 사용할 수 있습니다.

UI를 사용하여 Azure Data Explorer 연결된 서비스 만들기

다음 단계를 사용하여 Azure 포털 UI에서 Azure Data Explorer 연결된 서비스를 만듭니다.

  1. Azure Data Factory 또는 Synapse 작업 영역에서 관리 탭으로 이동하고 연결된 서비스를 선택한 다음 새로 만들기를 클릭합니다.

    Azure Data Factory UI를 사용하여 새 연결된 서비스를 생성하는 스크린샷

  2. 탐색기를 검색하고 Azure Data Explorer(Kusto) 커넥터를 선택합니다.

    Azure Data Explorer(Kusto) connector의 스크린샷

  3. 서비스 세부 정보를 구성하고 연결을 테스트하고 새 연결된 서비스를 만듭니다.

    Azure Data Explorer에 대한 연결된 서비스 구성 스크린샷입니다.

커넥터 구성 세부 정보

다음 섹션에서는 Azure Data Explorer 커넥터와 관련된 엔터티를 정의하는 데 사용되는 속성에 대해 자세히 설명합니다.

연결된 서비스 속성

Azure Data Explorer 커넥터는 다음 인증 유형을 지원합니다. 자세한 내용은 해당 섹션을 참조하세요.

서비스 주체 인증

서비스 주체 인증을 사용하려면 다음 단계에 따라 서비스 주체를 가져오고 사용 권한을 부여합니다.

  1. Microsoft ID 플랫폼 애플리케이션을 등록합니다. 방법을 알아보려면 Quickstart: Microsoft ID 플랫폼 애플리케이션 등록을 참조하세요. 연결된 서비스를 정의하는 데 사용되므로 다음 값을 적어둡니다.

    • 애플리케이션 UI
    • 애플리케이션 키
    • 테넌트 ID
  2. 서비스 주체에게 Azure Data Explorer 올바른 권한을 부여합니다. 역할 및 권한에 대한 자세한 내용과 권한 관리에 대한 자세한 내용은 Azure Data Explorer 데이터베이스 권한 관리를 참조하세요. 일반적으로 다음을 수행해야 합니다.

    • 원본으로 데이터베이스에 적어도 데이터베이스 뷰어 역할을 부여합니다.
    • 싱크로 데이터베이스에 적어도 데이터베이스 사용자 역할을 부여합니다.

참고

UI를 사용하여 작성하는 경우 기본적으로 로그인 사용자 계정이 Azure Data Explorer 클러스터, 데이터베이스 및 테이블을 나열하는 데 사용됩니다. 새로 고침 단추 옆의 드롭다운을 클릭하여 서비스 주체를 사용하여 개체를 나열하도록 선택하거나 해당 작업에 대한 권한이 없는 경우 수동으로 이름을 입력할 수 있습니다.

Azure Data Explorer 연결된 서비스에 대해 지원되는 속성은 다음과 같습니다.

속성 설명 필수
유형 형식 속성을 AzureDataExplorer로 설정해야 합니다.
끝점 형식이 https://<clusterName>.<regionName>.kusto.windows.net인 Azure Data Explorer 클러스터의 엔드포인트 URL입니다.
데이터베이스 데이터베이스의 이름입니다.
tenant 애플리케이션이 있는 테넌트 정보(도메인 이름 또는 테넌트 ID)를 지정합니다. 이를 Kusto 연결 문자열 "기관 ID"라고 합니다. Azure 포털의 오른쪽 위 모서리에 있는 마우스 포인터를 가리키면 검색합니다.
servicePrincipalId 애플리케이션의 클라이언트 ID를 지정합니다. 이를 Kusto 연결 문자열 "Microsoft Entra 애플리케이션 클라이언트 ID"라고 합니다.
servicePrincipalKey 애플리케이션의 키를 지정합니다. 이를 Kusto 연결 문자열 "Microsoft Entra 애플리케이션 키"라고 합니다. 이 필드를 안전하게 저장하려면 SecureString으로 표시하거나 Azure Key Vault에 저장된 안전한 데이터를 참조합니다.
커넥트비아 데이터 저장소에 연결하는 데 사용할 통합 런타임입니다. 데이터 저장소가 프라이빗 네트워크에 있는 경우 Azure 통합 런타임 또는 자체 호스팅 통합 런타임을 사용할 수 있습니다. 지정하지 않으면 기본 Azure 통합 런타임이 사용됩니다. 아니요

예: 서비스 주체 키 인증 사용

{
    "name": "AzureDataExplorerLinkedService",
    "properties": {
        "type": "AzureDataExplorer",
        "typeProperties": {
            "endpoint": "https://<clusterName>.<regionName>.kusto.windows.net ",
            "database": "<database name>",
            "tenant": "<tenant name/id e.g. microsoft.onmicrosoft.com>",
            "servicePrincipalId": "<service principal id>",
            "servicePrincipalKey": {
                "type": "SecureString",
                "value": "<service principal key>"
            }
        }
    }
}

시스템이 할당한 관리 ID 인증

Azure 리소스에 대한 관리 ID에 대한 자세한 내용은 Azure 리소스에 대한 관리 ID 참조하세요.

시스템이 할당한 관리 ID 인증을 사용하려면 다음 단계를 수행하여 권한을 부여합니다.

  1. 팩터리 또는 Synapse 작업 영역과 함께 생성된 관리 ID개체 ID의 값을 복사하여 관리 ID 정보를 검색합니다.

  2. 관리 ID에 Azure Data Explorer 올바른 권한을 부여합니다. 역할 및 권한에 대한 자세한 내용과 권한 관리에 대한 자세한 내용은 Azure Data Explorer 데이터베이스 권한 관리를 참조하세요. 일반적으로 다음을 수행해야 합니다.

    • 원본으로 데이터베이스에 데이터베이스 뷰어 역할을 부여합니다.
    • 싱크로 데이터베이스에 데이터베이스 수집기데이터베이스 뷰어 역할을 부여합니다.

참고

UI를 사용하여 작성하는 경우 로그인 사용자 계정을 사용하여 Azure Data Explorer 클러스터, 데이터베이스 및 테이블을 나열합니다. 해당 작업에 대한 권한이 없는 경우 수동으로 이름을 입력합니다.

Azure Data Explorer 연결된 서비스에 대해 지원되는 속성은 다음과 같습니다.

속성 설명 필수
유형 형식 속성을 AzureDataExplorer로 설정해야 합니다.
끝점 형식이 https://<clusterName>.<regionName>.kusto.windows.net인 Azure Data Explorer 클러스터의 엔드포인트 URL입니다.
데이터베이스 데이터베이스의 이름입니다.
커넥트비아 데이터 저장소에 연결하는 데 사용할 통합 런타임입니다. 데이터 저장소가 프라이빗 네트워크에 있는 경우 Azure 통합 런타임 또는 자체 호스팅 통합 런타임을 사용할 수 있습니다. 지정하지 않으면 기본 Azure 통합 런타임이 사용됩니다. 아니요

예제: 시스템이 할당한 관리 ID 인증 사용

{
    "name": "AzureDataExplorerLinkedService",
    "properties": {
        "type": "AzureDataExplorer",
        "typeProperties": {
            "endpoint": "https://<clusterName>.<regionName>.kusto.windows.net ",
            "database": "<database name>",
        }
    }
}

사용자가 할당한 관리 ID 인증

Azure 리소스의 관리 ID에 대한 자세한 내용은 Azure 리소스에 대한 관리 ID 참조하세요.

사용자가 할당한 관리 ID 인증을 사용하려면 다음 단계를 수행합니다.

  1. 사용자 할당 관리 ID를 하나 이상 만들고 Azure Data Explorer 권한을 부여합니다. 역할 및 권한에 대한 자세한 내용과 권한 관리에 대한 자세한 내용은 Azure Data Explorer 데이터베이스 권한 관리를 참조하세요. 일반적으로 다음을 수행해야 합니다.

    • 원본으로 데이터베이스에 적어도 데이터베이스 뷰어 역할을 부여합니다.
    • 싱크로 데이터베이스에 적어도 데이터베이스 수집기 역할을 부여합니다.
  2. 하나 이상의 사용자 할당 관리 ID를 데이터 팩터리 또는 Synapse 작업 영역에 할당하고 각 사용자 할당 관리 ID에 대해 자격 증명을 만들기합니다.

Azure Data Explorer 연결된 서비스에 대해 지원되는 속성은 다음과 같습니다.

속성 설명 필수
유형 형식 속성을 AzureDataExplorer로 설정해야 합니다.
끝점 형식이 https://<clusterName>.<regionName>.kusto.windows.net인 Azure Data Explorer 클러스터의 엔드포인트 URL입니다.
데이터베이스 데이터베이스의 이름입니다.
자격 증명 사용자가 할당한 관리 ID를 자격 증명 개체로 지정합니다.
커넥트비아 데이터 저장소에 연결하는 데 사용할 통합 런타임입니다. 데이터 저장소가 프라이빗 네트워크에 있는 경우 Azure 통합 런타임 또는 자체 호스팅 통합 런타임을 사용할 수 있습니다. 지정하지 않으면 기본 Azure 통합 런타임이 사용됩니다. 아니요

예제: 사용자가 할당한 관리 ID 인증 사용

{
    "name": "AzureDataExplorerLinkedService",
    "properties": {
        "type": "AzureDataExplorer",
        "typeProperties": {
            "endpoint": "https://<clusterName>.<regionName>.kusto.windows.net ",
            "database": "<database name>",
            "credential": {
                "referenceName": "credential1",
                "type": "CredentialReference"
            }
        }
    }
}

데이터 세트 속성

데이터 세트 정의에 사용할 수 있는 섹션 및 속성의 전체 목록은 데이터 세트를 참조하세요. 이 섹션에서는 Azure Data Explorer 데이터 세트가 지원하는 속성을 나열합니다.

데이터를 Azure Data Explorer 복사하려면 데이터 세트의 type 속성을 AzureDataExplorerTable로 설정합니다.

다음과 같은 속성이 지원됩니다.

속성 설명 필수
유형 형식 속성을 AzureDataExplorerTable로 설정해야 합니다.
테이블 연결된 서비스가 참조하는 테이블의 이름입니다. 싱크의 경우 예이며, 원본의 경우 아니오입니다.

데이터 세트 속성 예제:

{
   "name": "AzureDataExplorerDataset",
    "properties": {
        "type": "AzureDataExplorerTable",
        "typeProperties": {
            "table": "<table name>"
        },
        "schema": [],
        "linkedServiceName": {
            "referenceName": "<Azure Data Explorer linked service name>",
            "type": "LinkedServiceReference"
        }
    }
}

복사 작업 속성

작업 정의에 사용할 수 있는 섹션 및 속성의 전체 목록은 파이프라인 및 작업을 참조하세요. 이 섹션에서는 원본 및 싱크에서 지원하는 Azure Data Explorer 속성 목록을 제공합니다.

Azure Data Explorer 데이터 원본으로

Azure Data Explorer 데이터를 복사하려면 복사 작업 원본의 type 속성을 AzureDataExplorerSource로 설정합니다. 복사 작업 source 섹션에서 다음 속성이 지원됩니다.

속성 설명 필수
유형 복사 작업 원본의 형식 속성을 AzureDataExplorerSource로 설정해야 합니다.
문의 KQL 형식으로 제공되는 읽기 전용 요청입니다. 사용자 지정 KQL 쿼리를 참조로 사용합니다.
queryTimeout 쿼리 요청 시간이 초과되기 전의 대기 시간입니다. 기본값은 10분(00:10:00)이며 허용되는 최댓값은 1시간(01:00:00)입니다. 아니요
잘림 없음 반환된 결과 집합을 잘라낼지를 나타냅니다. 기본적으로 50만 레코드 또는 64MB 후에 결과가 잘립니다. 자르기는 작업의 올바른 동작을 보장하는 데 강력히 권장됩니다. 아니요

참고

기본적으로 Azure Data Explorer 원본의 크기 제한은 500,000개 레코드 또는 64MB입니다. 잘림 없이 모든 레코드를 검색하려면 쿼리의 시작 부분에 set notruncation;을 지정하면 됩니다. 자세한 내용은 쿼리 제한을 참조하세요.

예:

"activities":[
    {
        "name": "CopyFromAzureDataExplorer",
        "type": "Copy",
        "typeProperties": {
            "source": {
                "type": "AzureDataExplorerSource",
                "query": "TestTable1 | take 10",
                "queryTimeout": "00:10:00"
            },
            "sink": {
                "type": "<sink type>"
            }
        },
        "inputs": [
            {
                "referenceName": "<Azure Data Explorer input dataset name>",
                "type": "DatasetReference"
            }
        ],
        "outputs": [
            {
                "referenceName": "<output dataset name>",
                "type": "DatasetReference"
            }
        ]
    }
]

Azure Data Explorer가 싱크인 경우

데이터를 Azure Data Explorer 복사하려면 복사 작업 싱크의 type 속성을 AzureDataExplorerSink로 설정합니다. 복사 작업 sink 섹션에서 다음 속성이 지원됩니다.

속성 설명 필수
유형 복사 작업 싱크의 형식 속성을 AzureDataExplorerSink로 설정해야 합니다.
ingestionMappingName Kusto 테이블에 미리 만들어진 매핑의 이름입니다. 원본에서 Azure Data Explorer 열을 매핑하려면(지원되는 원본 저장소 및 형식에 적용됩니다 CSV/JSON/Avro 형식 포함) 복사 작업열 매핑(암시적으로 이름 또는 명시적으로 구성된 대로) 및/또는 Azure Data Explorer 매핑을 사용할 수 있습니다. 아니요
additionalProperties Azure Data Explorer 싱크에서 이미 설정되지 않은 수집 속성을 지정하는 데 사용할 수 있는 속성 집합입니다. 특히 수집 태그를 지정하는 데 유용할 수 있습니다. Azure Data Explore 데이터 수집 문서 자세히 알아보세요. 아니요

예:

"activities":[
    {
        "name": "CopyToAzureDataExplorer",
        "type": "Copy",
        "typeProperties": {
            "source": {
                "type": "<source type>"
            },
            "sink": {
                "type": "AzureDataExplorerSink",
                "ingestionMappingName": "<optional Azure Data Explorer mapping name>",
                "additionalProperties": {<additional settings for data ingestion>}
            }
        },
        "inputs": [
            {
                "referenceName": "<input dataset name>",
                "type": "DatasetReference"
            }
        ],
        "outputs": [
            {
                "referenceName": "<Azure Data Explorer output dataset name>",
                "type": "DatasetReference"
            }
        ]
    }
]

매핑 데이터 흐름 속성

매핑 데이터 흐름에서 데이터를 변환할 때 Azure Data Explorer 테이블에서 읽고 쓸 수 있습니다. 자세한 내용은 매핑 데이터 흐름에서 원본 변환싱크 변환을 참조하세요. Azure Data Explorer 데이터 세트 또는 인라인 데이터 세트를 원본 및 싱크 형식으로 사용하도록 선택할 수 있습니다.

원본 변환

아래 표에는 Azure Data Explorer 원본에서 지원하는 속성이 나열되어 있습니다. 이러한 속성은 원본 옵션 탭에서 편집할 수 있습니다.

이름 설명 필수 허용되는 값 데이터 흐름 스크립트 속성
테이블 테이블을 입력으로 선택하면 데이터 흐름이 인라인 데이터 세트를 사용할 때 Azure Data Explorer 데이터 세트 또는 원본 옵션에 지정된 테이블에서 모든 데이터를 가져옵니다. 아니요 String (인라인 데이터 세트에만 해당)
테이블 이름
쿼리 KQL 형식으로 제공되는 읽기 전용 요청입니다. 사용자 지정 KQL 쿼리를 참조로 사용합니다. 아니요 String 문의
시간 제한 쿼리 요청 시간이 초과되기 전의 대기 시간입니다. 기본값은 ‘172,000’(2일)입니다. 아니요 정수 시간 제한

Azure Data Explorer 원본 스크립트 예제

Azure Data Explorer 데이터 세트를 원본 형식으로 사용하는 경우 연결된 데이터 흐름 스크립트는 다음과 같습니다.

source(allowSchemaDrift: true,
	validateSchema: false,
	query: 'table | take 10',
	format: 'query') ~> AzureDataExplorerSource

인라인 데이터 세트를 사용하는 경우 연결된 데이터 흐름 스크립트는 다음과 같습니다.

source(allowSchemaDrift: true,
    validateSchema: false,
    format: 'query',
    query: 'table | take 10',
    store: 'azuredataexplorer') ~> AzureDataExplorerSource

싱크 변환

아래 표에는 Azure Data Explorer 싱크에서 지원하는 속성이 나열되어 있습니다. 이러한 속성은 설정 탭에서 편집할 수 있습니다. 인라인 데이터 세트를 사용하는 경우 데이터 세트 속성 섹션에 설명된 속성과 동일한 추가 설정이 표시됩니다.

이름 설명 필수 허용되는 값 데이터 흐름 스크립트 속성
테이블 작업 쓰기 전에 대상 테이블에서 모든 행을 다시 만들지 또는 제거할지 여부를 결정합니다.
- None: 테이블에 대한 작업이 수행되지 않습니다.
- Recreate: 테이블이 삭제되고 다시 생성됩니다. 동적으로 새 테이블을 만드는 경우 필요합니다.
- Truncate: 대상 테이블의 모든 행이 제거됩니다.
아니요 true 또는 false 재창조하다
절단하다
사전 및 사후 SQL 스크립트 데이터를 싱크 데이터베이스에 기록하기 전(사전 처리)과 후(사후 처리)에 실행할 여러 Kusto 제어 명령 스크립트를 지정합니다. 아니요 String preSQLs; postSQLs
시간 제한 쿼리 요청 시간이 초과되기 전의 대기 시간입니다. 기본값은 ‘172,000’(2일)입니다. 아니요 정수 시간 제한

Azure Data Explorer 싱크 스크립트 예제

Azure Data Explorer 데이터 세트를 싱크 형식으로 사용하는 경우 연결된 데이터 흐름 스크립트는 다음과 같습니다.

IncomingStream sink(allowSchemaDrift: true,
	validateSchema: false,
	format: 'table',
	preSQLs:['pre SQL scripts'],
	postSQLs:['post SQL script'],
	skipDuplicateMapInputs: true,
	skipDuplicateMapOutputs: true) ~> AzureDataExplorerSink

인라인 데이터 세트를 사용하는 경우 연결된 데이터 흐름 스크립트는 다음과 같습니다.

IncomingStream sink(allowSchemaDrift: true,
    validateSchema: false,
    format: 'table',
    store: 'azuredataexplorer',
    skipDuplicateMapInputs: true,
    skipDuplicateMapOutputs: true) ~> AzureDataExplorerSink

조회 작업 속성

속성에 대한 자세한 내용은 조회 작업을 참조하세요.

  • 복사 작업에서 원본 및 싱크로 지원되는 데이터 저장소의 목록은 지원되는 데이터 저장소를 참조하세요.

  • Azure Data Factory 및 Synapse Analytics에서 Azure Data Explorer로 데이터를 복사하는 방법에 대해 자세히 알아보세요.