Azure Data Explorer를 Azure Data Factory와 통합
ADF(Azure Data Factory)는 다양한 데이터 저장소를 통합하고 데이터에 대한 작업을 수행할 수 있는 클라우드 기반 데이터 통합 서비스입니다. ADF를 사용하면 데이터 이동 및 데이터 변환을 오케스트레이션하고 자동화하기 위한 데이터 기반 워크플로를 만들 수 있습니다. Azure Data Explorer는 Azure Data Factory에서 지원되는 데이터 저장소 중 하나입니다.
Azure Data Explorer에 대한 Azure Data Factory 작업
Azure Data Explorer 사용자는 Azure Data Factory와의 다양한 통합을 사용할 수 있습니다.
복사 활동
Azure Data Factory 복사 작업은 데이터 저장소 간에 데이터를 전송하는 데 사용됩니다. Azure Data Explorer가 원본으로 지원되는 경우에는 Azure Data Explorer에서 지원되는 데이터 저장소로 데이터가 복사되고 싱크로 지원되는 경우에는 지원되는 데이터 저장소에서 Azure Data Explorer로 데이터가 복사됩니다. 자세한 내용은 Azure Data Factory를 사용하여 Azure Data Explorer에(서) 데이터 복사를 참조하세요. 자세한 연습은 Azure Data Factory에서 Azure Data Explorer로 데이터 로드를 참조하세요. Azure Data Explorer는 Azure 내에서 데이터를 복사할 때 사용되는 Azure IR(Integration Runtime) 및 자체 호스팅 IR에서 지원되며, 온-프레미스 또는 액세스 제어를 사용하는 네트워크(예: Azure Virtual Network)에 있는 데이터 저장소에(서) 데이터를 복사할 때 사용됩니다. 자세한 내용은 사용할 IR을 참조 하세요.
팁
복사 작업을사용하고 연결된 서비스 또는 데이터 세트를 만들 때는 이전 데이터 저장소 Kusto가 아닌 데이터 저장소 Azure Data Explorer(Kusto)를 선택합니다.
조회 작업
조회 작업은 Azure Data Explorer에서 쿼리를 실행하는 데 사용됩니다. 쿼리 결과는 조회 작업의 출력으로 반환되며 ADF 조회 설명서에 설명된 대로 파이프라인의 다음 작업에서 사용할 수 있습니다.
이 작업에는 응답 크기 제한 5,000행 및 2MB의 외에도 쿼리 제한 시간 제한 1시간이 있습니다.
명령 작업
명령 작업을 통해 Azure Data Explorer 관리 명령을 실행할 수 있습니다. 쿼리와 달리 관리 명령은 잠재적으로 데이터 또는 메타데이터를 수정할 수 있습니다. 일부 관리 명령은 와 같은 .ingest
명령을 사용하여 Azure Data Explorer로 데이터를 수집하거나 .set-or-append
같은 명령을 사용하여 Azure Data Explorer에서 외부 데이터 저장소로 데이터를 복사하는 것을 대상으로 합니다 .export
.
명령 작업에 대한 자세한 연습은 Azure Data Factory 명령 작업을 사용하여 Azure Data Explorer 관리 명령을 실행하는 방법을 참조 하세요. 관리 명령을 사용하여 데이터를 복사하는 것은 때때로 복사 작업 것보다 빠르고 저렴한 옵션이 될 수 있습니다. 명령 작업과 복사 작업을 언제 사용할지 판단하려면 데이터를 복사하는 경우 복사 작업과 명령 작업 중에 선택을 참조하세요.
데이터베이스 템플릿에서 대량 복사
Azure Data Factory 템플릿을 사용하여 데이터베이스에서 Azure Data Explorer로 대량 복사는 미리 정의된 Azure Data Factory 파이프라인입니다. 템플릿은 데이터를 더 빨리 복사하기 위해 데이터베이스당 또는 테이블당 많은 파이프라인을 만드는 데 사용됩니다.
데이터 흐름 매핑
Azure Data Factory 매핑 데이터 흐름은 시각적으로 디자인된 데이터 변환이며, 데이터 엔지니어가 코드를 작성하지 않고도 그래픽 데이터 변환 논리를 개발할 수 있습니다. 데이터 흐름을 만들고 Azure Data Explorer에 데이터를 수집하려면 다음 방법을 사용합니다.
- 매핑 데이터 흐름을 만듭니다.
- 데이터를 Azure Blob에 내보냅니다.
- Event Grid 또는 ADF 복사 작업을 정의하여 Azure Data Explorer에 데이터를 수집합니다.
데이터를 복사할 때 복사와 Azure Data Explorer 명령 작업 중에 선택
이 섹션에서는 데이터 복사 요구 사항에 맞는 올바른 작업을 선택하는 데 도움이 됩니다.
Azure Data Explorer에(서) 데이터를 복사하는 경우 Azure Data Factory에서 사용할 수 있는 두 가지 옵션이 있습니다.
- 복사 작업.
- Azure Data Explorer에서 데이터를 전송하는 관리 명령 중 하나를 실행하는 Azure Data Explorer 명령 작업입니다.
Azure Data Explorer에서 데이터 복사
복사 작업 또는 .export
명령을 사용하여 Azure Data Explorer에서 데이터를 복사할 수 있습니다. .export
명령은 쿼리를 실행한 다음, 쿼리 결과를 내보냅니다.
다음 표에서 Azure Data Explorer에서 데이터를 복사하는 복사 작업과 .export
명령에 대한 비교를 참조하세요.
복사 활동 | .export 명령 | |
---|---|---|
흐름 설명 | ADF는 Kusto에 대해 쿼리를 실행하고 결과를 처리한 다음, 대상 데이터 저장소에 보냅니다. (Azure Data Explorer > ADF > 싱크 데이터 저장소) |
ADF는 .export 관리 명령을 Azure Data Explorer에 전송하여 명령을 실행하고 데이터를 대상 데이터 저장소로 직접 보냅니다. (** Azure Data Explorer > 싱크 데이터 저장소**) |
지원되는 대상 데이터 저장소 | 지원되는 다양한 데이터 저장소 | ADLSv2, Azure Blob, SQL Database |
성능 | 중앙 집중형 |
|
서버 제한 | 쿼리 제한을 확장할/사용하지 않을 수 있습니다. 기본적으로 ADF 쿼리에는 다음이 포함됩니다.
|
기본적으로 쿼리 제한을 확장하거나 사용하지 않도록 설정합니다.
|
팁
복사 대상이 .export
명령에서 지원하는 데이터 저장소 중 하나이고 복사 작업 기능이 중요하지 않은 경우 .export
명령을 선택합니다.
Azure Data Explorer에 데이터 복사
복사 작업 또는 쿼리에서 수집(.set-or-append
, .set-or-replace
, .set
, .replace)
및 스토리지에서 수집(.ingest
)과 같은 수집 명령을 사용하여 Azure Data Explorer에 데이터를 복사할 수 있습니다.
다음 표에서 Azure Data Explorer에 데이터를 복사하는 복사 작업과 수집 명령에 대한 비교를 참조하세요.
복사 활동 | 쿼리에서 수집.set-or-append / .set-or-replace / .set / .replace |
스토리지에서 수집 .ingest |
|
---|---|---|---|
흐름 설명 | ADF는 원본 데이터 저장소에서 데이터를 가져와서 테이블 형식으로 변환하고 필요한 스키마 매핑을 변경합니다. 그런 다음, ADF는 데이터를 Azure Blob에 업로드하여 청크로 분할한 다음, Blob을 다운로드하여 Azure Data Explorer 테이블에 수집합니다. (원본 데이터 저장소 > ADF > Azure Blobs > Azure Data Explorer) |
이러한 명령은 쿼리 또는 .show 명령을 실행하고 쿼리 결과를 테이블(Azure Data Explorer Azure Data Explorer>)로 수집할 수 있습니다. |
이 명령은 하나 이상의 클라우드 스토리지 아티팩트에서 데이터를 "끌어와서" 테이블에 데이터를 수집합니다. |
지원되는 원본 데이터 저장소 | 다양한 옵션 | ADLS Gen 2, Azure Blob, SQL(sql_request() 플러그 인 사용), Azure Cosmos DB(cosmosdb_sql_request 플러그 인 사용) 및 HTTP 또는 Python API를 제공하는 기타 데이터 저장소. | 파일 시스템, Azure Blob Storage, ADLS Gen 1, ADLS Gen 2 |
성능 | 수집은 큐에 추가되어 관리되므로 소규모 수집을 보장하고 부하 분산, 재시도 및 오류 처리를 제공하여 고가용성을 보장합니다. |
|
|
서버 제한 |
|
|
|
팁
- ADF에서 Azure Data Explorer로 데이터를 복사하는 경우
ingest from query
명령을 사용합니다. - 큰 데이터 세트(>1GB)의 경우 복사 작업 사용합니다.
필요한 사용 권한
다음 표에는 Azure Data Factory와의 통합에서 다양한 단계에 필요한 권한이 나열되어 있습니다.
단계 | 작업(Operation) | 최소 권한 수준 | 메모 |
---|---|---|---|
연결된 서비스 만들기 | 데이터베이스 탐색 | 데이터 뷰어 ADF를 사용하여 로그인한 사용자에게 데이터베이스 메타데이터를 읽을 수 있는 권한을 부여해야 합니다. |
사용자는 데이터베이스 이름을 수동으로 제공할 수 있습니다. |
연결을 테스트 | 데이터베이스 모니터 또는 테이블 수집기 데이터베이스 수준 .show 명령 또는 테이블 수준 수집을 실행할 수 있는 권한을 서비스 주체에게 부여해야 합니다. |
|
|
데이터 세트 만들기 | 테이블 탐색 | 데이터베이스 모니터 ADF를 사용하여 로그인한 사용자에게 데이터베이스 수준 .show 명령을 실행할 수 있는 권한을 부여해야 합니다. |
사용자는 테이블 이름을 수동으로 제공할 수 있습니다. |
데이터 세트 만들기 또는 복사 작업 | 데이터 미리 보기 | 데이터 뷰어 데이터베이스 메타데이터를 읽을 수 있는 권한을 서비스 주체에게 부여해야 합니다. |
|
스키마 가져오기 | 데이터 뷰어 데이터베이스 메타데이터를 읽을 수 있는 권한을 서비스 주체에게 부여해야 합니다. |
Azure Data Explorer가 테이블 형식-테이블 형식 복사본의 원본인 경우 ADF는 사용자가 스키마를 명시적으로 가져오지 않은 경우에도 스키마를 자동으로 가져옵니다. | |
Azure Data Explorer를 싱크로 | 이름별 열 매핑 만들기 | 데이터베이스 모니터 데이터베이스 수준 .show 명령을 실행할 수 있는 권한을 서비스 주체에게 부여해야 합니다. |
|
|
테이블 수집기 또는 데이터베이스 관리자 테이블을 변경할 수 있는 권한을 서비스 주체에게 부여해야 합니다. |
||
데이터 수집 | 테이블 수집기 또는 데이터베이스 관리자 테이블을 변경할 수 있는 권한을 서비스 주체에게 부여해야 합니다. |
||
Azure Data Explorer를 원본으로 | 쿼리 실행 | 데이터 뷰어 데이터베이스 메타데이터를 읽을 수 있는 권한을 서비스 주체에게 부여해야 합니다. |
|
Kusto 명령 | 각 명령의 권한 수준에 따릅니다. |
성능
Azure Data Explorer가 원본이고 쿼리가 포함된 조회, 복사 또는 명령 작업을 사용하는 경우 쿼리 모범 사례에서 성능 정보를 참조하고 복사 작업에 대한 ADF 설명서를 참조하세요.
이 섹션에서는 Azure Data Explorer가 싱크인 복사 작업의 사용에 대해 다룹니다. Azure Data Explorer 싱크의 예상 처리량은 11~13MBps입니다. 다음 표에서는 Azure Data Explorer 싱크의 성능에 영향을 미치는 매개 변수에 대해 자세히 설명합니다.
매개 변수 | 메모 |
---|---|
구성 요소 지리적 근접성 | 모든 구성 요소를 동일한 지역에 배치합니다.
|
DIU 수 | ADF에서 사용하는 4개의 DIU마다 하나의 VM입니다. DIU를 늘리면 원본이 여러 파일이 있는 파일 기반 저장소인 경우에만 도움이 됩니다. 그러면 각 VM이 다른 파일을 병렬로 처리합니다. 따라서 단일 큰 파일을 복사하는 경우 여러 작은 파일을 복사하는 것보다 대기 시간이 더 깁니다. |
Azure Data Explorer 클러스터의 양 및 SKU | Azure Data Explorer 노드 수가 많을 경우 수집 처리 시간이 늘어나게 됩니다. 개발 SKU를 사용하면 성능이 심각하게 제한됩니다. |
Parallelism | 데이터베이스에서 대량의 데이터를 복사하려면 데이터를 분할한 다음 각 파티션을 병렬로 복사하거나 데이터베이스에서 Azure Data Explorer 템플릿으로 대량 복사를 사용하는 ForEach 루프를 사용합니다. 참고: 복사 작업의 설정>병렬 처리 수준은 Azure Data Explorer와 관련이 없습니다. |
데이터 처리 복잡성 | 대기 시간은 원본 파일 형식, 열 매핑 및 압축에 따라 달라집니다. |
통합 런타임을 실행하는 VM |
|
팁 및 일반적인 문제
작업 진행률 모니터링
작업 진행률을 모니터링할 때 데이터 읽기는 이진 파일 크기에 따라 계산되고, 데이터가 역직렬화 및 압축 해제된 후에는 메모리 내 크기에 따라 계산되기 때문에 데이터 쓰기 속성이 데이터 읽기 속성보다 클 수 있습니다.
작업 진행률을 모니터링할 때 데이터가 Azure Data Explorer 싱크에 써지는 것을 볼 수 있습니다. Azure Data Explorer 테이블을 쿼리할 때 데이터가 도착하지 않은 것을 볼 수 있습니다. Azure Data Explorer에 복사할 때 두 단계가 있기 때문입니다.
- 첫 번째 단계는 원본 데이터를 읽고 900MB 청크로 분할하고 각 청크를 Azure Blob에 업로드합니다. 첫 번째 단계는 ADF 작업 진행률 보기에서 볼 수 있습니다.
- 두 번째 단계는 모든 데이터가 Azure Blob에 업로드되면 시작됩니다. 클러스터의 노드는 Blob을 다운로드하고 싱크 테이블에 데이터를 수집합니다. 그러면 데이터가 Azure Data Explorer 테이블에 표시됩니다.
부적절한 이스케이프로 인한 CSV 파일 수집 실패
Azure Data Explorer에서는 CSV 파일이 RFC 4180에 맞춰 조정되어 있어야 합니다. 필요한 사항:
- 이스케이프가 필요한 문자가 포함된 필드(예: " 및 새 줄)는 공백 없이 " 문자로 시작하고 끝나야 합니다. 필드 안의 모든 " 문자는 이중 " 문자("")를 사용하여 이스케이프됩니다. 예를 들어 "Hello, ""World"""는 Hello, "World" 콘텐츠가 있는 단일 열 또는 필드가 있는 단일 레코드가 있는 유효한 CSV 파일입니다.
- 파일의 모든 레코드에는 동일한 수의 열과 필드가 있어야 합니다.
Azure Data Factory는 백슬래시(이스케이프) 문자를 허용합니다. Azure Data Factory를 사용하여 백슬래시 문자가 있는 CSV 파일을 생성한 경우 이 파일을 Azure Data Explorer에 수집하면 실패합니다.
예제
다음 텍스트 값은: Hello, "World"
ABC DEF
"ABC\D"EF
"ABC DEF
적합한 CSV 파일에 다음과 같이 나타나야 합니다. "Hello, ""World"""
"ABC DEF"
"""ABC\D""EF"
"""ABC DEF"
기본 이스케이프 문자(백슬래시)를 사용하면 다음 CSV는 Azure Data Explorer에서 작동하지 않습니다. "Hello, "World""
"ABC DEF"
""ABC\D"EF"
""ABC DEF"
중첩된 JSON 개체
JSON 파일을 Azure Data Explorer에 복사하는 경우 다음 사항에 유의하세요.
- 배열은 지원되지 않습니다.
- JSON 구조에 개체 데이터 형식이 포함되어 있으면 Azure Data Factory는 개체의 자식 항목을 평면화하고 각 자식 항목을 Azure Data Explorer 테이블의 다른 열에 매핑하려고 합니다. 전체 개체 항목을 Azure Data Explorer의 단일 열에 매핑하려는 경우:
- 전체 JSON 행을 Azure Data Explorer의 단일 동적 열에 수집합니다.
- Azure Data Factory의 JSON 편집기를 사용하여 파이프라인 정의를 수동으로 편집합니다. 매핑에서
- 각 자식 항목에 대해 만들어진 여러 매핑을 제거하고 개체 유형을 테이블 열에 매핑하는 단일 매핑을 추가합니다.
- 닫는 대괄호 뒤에 쉼표를 추가하고 다음을 추가합니다.
"mapComplexValuesToString": true
.
Azure Data Explorer에 복사할 때 추가 속성 지정
파이프라인의 복사 작업에서 수집 속성을 지정하여 수집 속성을 추가할 수 있습니다.
속성 추가
Azure Data Factory에서 작성자라는 연필 모양의 도구를 선택합니다.
파이프라인 아래에서 수집 속성을 추가할 파이프라인을 선택합니다.
작업 캔버스에서 데이터 복사 작업을 선택합니다.
작업 세부 정보에서 싱크를 선택한 다음, 추가 속성을 펼칩니다.
새로 만들기를 선택하고 필요에 따라 노드 추가 또는 배열 추가를 선택한 다음, 수집 속성 이름 및 값을 지정합니다. 속성을 더 추가하려면 이 단계를 반복합니다.
완료되면 파이프라인을 저장하고 게시합니다.
다음 단계
Azure Data Factory를 사용하여 Azure Data Explorer에 데이터를 복사합니다.