다음을 통해 공유


Dataflow Gen2의 증분 새로 고침

이 문서에서는 Microsoft Fabric의 Data Factory용 Dataflow Gen2에서 증분 데이터 새로 고침을 소개합니다. 데이터 수집 및 변환에 데이터 흐름을 사용하는 경우 특히 데이터가 계속 증가함에 따라 새 데이터 또는 업데이트된 데이터만 새로 고쳐야 하는 시나리오가 있습니다. 증분 새로 고침 기능은 새로 고침 시간을 줄이고, 장기 실행 작업을 방지하여 안정성을 향상시키고, 리소스 사용량을 최소화할 수 있도록 하여 이러한 필요성을 해결합니다.

필수 조건

Dataflow Gen2에서 증분 새로 고침을 사용하려면 다음 필수 조건을 충족해야 합니다.

  • Fabric의 용량을 가지고 있어야 합니다.
  • 데이터 원본은 폴딩(권장)을 지원하며 데이터를 필터링하는 데 사용할 수 있는 Date/DateTime 열을 포함해야 합니다.
  • 증분 새로 고침을 지원하는 데이터 대상이 있어야 합니다. 자세한 내용은 대상 지원으로 이동하세요.
  • 시작하기 전에 증분 새로 고침의 제한 사항을 검토했는지 확인합니다. 자세한 내용은 제한 사항으로 이동 하세요.

목적지 지원

증분 새로 고침에 지원되는 데이터 대상은 다음과 같습니다.

  • 패브릭 레이크하우스(미리 보기)
  • 직물 창고
  • Azure SQL 데이터베이스
  • Azure Synapse Analytics

증분 새로 고침과 함께 다른 대상을 사용하려면 스테이징된 데이터를 참조하는 두 번째 쿼리를 사용하여 데이터 대상을 업데이트할 수 있습니다. 이렇게 하면 증분 새로 고침을 사용하여 원본 시스템에서 처리 및 검색해야 하는 데이터의 양을 줄일 수 있습니다. 하지만 스테이지된 데이터에서 데이터 목적지로 완전한 새로 고침을 수행해야 합니다.

증분 새로 고침을 사용하는 방법

  1. 새 Dataflow Gen2를 만들거나 기존 Dataflow Gen2를 엽니다.

  2. 데이터 흐름 편집기에서 새로 고치려는 데이터를 증분 방식으로 검색하는 새 쿼리를 만듭니다.

  3. 데이터 미리 보기를 확인하여 쿼리가 데이터를 필터링하는 데 사용할 수 있는 DateTime, Date 또는 DateTimeZone 열이 포함된 데이터를 반환하는지 확인합니다.

  4. 쿼리가 완전히 접힐 수 있도록 합니다. 즉, 쿼리가 원본 시스템으로 완전하게 푸시 다운됩니다. 쿼리가 완전히 접지 않는 경우 쿼리가 완전히 접히도록 쿼리를 수정해야 합니다. 쿼리 편집기에서 쿼리 단계를 확인하여 쿼리가 완전히 접히도록 할 수 있습니다.

    Dataflow Gen2의 쿼리 편집기 스크린샷.

  5. 쿼리를 마우스 오른쪽 단추로 클릭하고 증분 새로 고침을 선택합니다.

    Dataflow Gen2의 드롭다운 메뉴 스크린샷

  6. 증분 새로 고침에 필요한 설정을 제공하라.

    증분 새로 고침 설정의 스크린샷.

    1. 필터링할 DateTime 열을 선택합니다.
    2. 과거로부터 데이터를 추출합니다.
    3. 버킷 크기
    4. 이 열의 최대값이 변경되는 경우에만 새 데이터를 추출합니다.
  7. 필요한 경우 고급 설정을 구성합니다.

    1. 완전히 접히려면 증분 새로 고침 쿼리가 필요합니다.
  8. 확인을 선택하여 설정을 저장합니다.

  9. 원하는 경우 이제 쿼리에 대한 데이터 대상을 설정할 수 있습니다. 증분 새로 고침을 처음 실행하기 전에 반드시 이 설정을 완료하십시오. 그렇지 않으면 데이터 목적지에는 마지막 새로 고침 이후 변경된 증분 데이터만 포함될 것입니다.

  10. Dataflow Gen2를 게시합니다.

증분 새로 고침을 구성한 후 데이터 흐름은 사용자가 제공한 설정에 따라 데이터를 증분 방식으로 자동으로 새로 고칩니다. 데이터 흐름은 마지막 새로 고침 이후 변경된 데이터만 검색합니다. 따라서 데이터 흐름이 더 빠르게 실행되고 리소스를 적게 사용합니다.

백그라운드에서 증분 새로 고침이 작동하는 방식

증분 새로 고침은 DateTime 열에 따라 데이터를 버킷으로 분할하여 작동합니다. 각 버킷에는 마지막 새로 고침 이후 변경된 데이터가 포함됩니다. 데이터 흐름은 지정한 열의 최대값을 확인하여 변경된 내용을 알고 있습니다. 해당 버킷의 최대값이 변경된 경우 데이터 흐름은 전체 버킷을 검색하고 대상의 데이터를 대체합니다. 최대값이 변경되지 않으면 데이터 흐름은 데이터를 검색하지 않습니다. 다음 섹션에는 증분 새로 고침이 단계별로 작동하는 방식에 대한 개략적인 개요가 포함되어 있습니다.

첫 번째 단계: 변경 내용 평가

데이터 흐름이 실행되면 먼저 데이터 원본의 변경 내용을 평가합니다. DateTime 열의 최대값과 이전 새로 고침의 최대값을 비교하여 이 평가를 수행합니다. 최대값이 변경되거나 첫 번째 새로 고침인 경우 데이터 흐름은 버킷을 변경된 것으로 표시하고 처리를 위해 나열합니다. 최대값이 변경되지 않으면 데이터 흐름은 버킷을 건너뛰고 처리하지 않습니다.

두 번째 단계: 데이터 검색

이제 데이터 흐름이 데이터를 검색할 준비가 되었습니다. 변경된 각 버킷의 데이터를 검색합니다. 데이터 흐름은 성능을 향상시키기 위해 이 검색을 병렬로 수행합니다. 데이터 흐름은 원본 시스템에서 데이터를 검색하여 준비 영역으로 로드합니다. 데이터 흐름은 버킷 범위 내에 있는 데이터만 검색합니다. 즉, 데이터 흐름은 마지막 새로 고침 이후 변경된 데이터만 검색합니다.

마지막 단계: 데이터 대상의 데이터 바꾸기

데이터 흐름은 대상의 데이터를 새 데이터로 바꿉니다. 데이터 흐름은 이 메서드를 replace 사용하여 대상의 데이터를 대체합니다. 즉, 데이터 흐름은 먼저 해당 버킷의 대상에 있는 데이터를 삭제한 다음 새 데이터를 삽입합니다. 데이터 흐름은 버킷 범위를 벗어난 데이터에 영향을 주지 않습니다. 따라서 대상에 첫 번째 버킷보다 오래된 데이터가 있는 경우 증분 새로 고침은 어떤 방식으로도 이 데이터에 영향을 주지 않습니다.

증분 새로 고침 설정에 대한 설명

증분 새로 고침을 구성하려면 다음 설정을 지정해야 합니다.

증분 새로 고침 설정의 스크린샷.

일반 설정

일반 설정이 필요하며 증분 새로 고침에 대한 기본 구성을 지정합니다.

필터링할 날짜 및 시간 열 선택

이 설정은 필수이며 데이터 흐름이 데이터를 필터링하는 데 사용하는 열을 지정합니다. 이 열은 DateTime, Date 또는 DateTimeZone 열이어야 합니다. 데이터 흐름은 이 열을 사용하여 데이터를 필터링하고 마지막 새로 고침 이후 변경된 데이터만 검색합니다.

과거로부터 데이터 추출

이 설정은 필수이며 데이터 흐름에서 데이터를 추출해야 하는 시간을 지정합니다. 이 설정은 초기 데이터 로드를 검색하는 데 사용됩니다. 데이터 흐름은 지정된 시간 범위 내에 있는 원본 시스템에서 모든 데이터를 검색합니다. 가능한 값은 다음과 같습니다.

  • x 일
  • x 주
  • x 개월
  • x 분기
  • x 년

예를 들어 1개월을 지정 하는 경우 데이터 흐름은 지난 달 내에 있는 원본 시스템에서 모든 새 데이터를 검색합니다.

버킷 크기

이 설정은 필수이며 데이터 흐름이 데이터를 필터링하는 데 사용하는 버킷의 크기를 지정합니다. 데이터 흐름은 DateTime 열을 기반으로 데이터를 버킷으로 나눕니다. 각 버킷에는 마지막 새로 고침 이후 변경된 데이터가 포함됩니다. 버킷 크기는 각 반복에서 처리되는 데이터의 양을 결정합니다. 버킷 크기가 작을수록 데이터 흐름이 각 반복에서 더 적은 데이터를 처리하지만 모든 데이터를 처리하는 데 더 많은 반복이 필요하다는 의미이기도 합니다. 버킷 크기가 클수록 데이터 흐름이 각 반복에서 더 많은 데이터를 처리하지만 모든 데이터를 처리하는 데 필요한 반복 수가 줄어듭니다.

이 열의 최대값이 변경되는 경우에만 새 데이터 추출

이 설정은 필수이며 데이터 흐름이 데이터 변경 여부를 결정하는 데 사용하는 열을 지정합니다. 데이터 흐름은 이 열의 최대값과 이전 새로 고침의 최대값을 비교합니다. 최대값이 변경되면 데이터 흐름은 마지막 새로 고침 이후 변경된 데이터를 검색합니다. 최대값이 변경되지 않으면 데이터 흐름은 데이터를 검색하지 않습니다.

종료된 기간의 데이터만 추출합니다.

이 설정은 선택 사항이며 데이터 흐름이 종료된 기간 동안만 데이터를 추출해야 하는지 여부를 지정합니다. 이 설정을 사용하는 경우 데이터 흐름은 종료된 기간 동안만 데이터를 추출합니다. 따라서 데이터 흐름은 완료되고 향후 데이터가 포함되지 않은 기간 동안만 데이터를 추출합니다. 이 설정을 사용하지 않도록 설정하면 데이터 흐름은 완료되지 않고 이후 데이터를 포함하는 기간을 포함하여 모든 기간 동안 데이터를 추출합니다.

예를 들어 트랜잭션 날짜가 포함된 DateTime 열이 있고 전체 월만 새로 고치려는 경우 버킷 크기와 month함께 이 설정을 사용하도록 설정할 수 있습니다. 따라서 데이터 흐름은 전체 개월 동안만 데이터를 추출하고 불완전한 개월 동안 데이터를 추출하지 않습니다.

고급 설정

일부 설정은 고급으로 간주되며 대부분의 시나리오에는 필요하지 않습니다.

완전히 접히려면 증분 새로 고침 쿼리 필요

이 설정은 선택 사항이며 증분 새로 고침에 사용되는 쿼리를 완전히 접어야 하는지 여부를 지정합니다. 이 설정이 활성화된 경우, 증분 새로 고침에 사용되는 쿼리는 완전히 접기되어야 합니다. 즉, 쿼리를 원본 시스템으로 완전히 푸시해야 합니다. 이 설정을 사용하지 않도록 설정하면 증분 새로 고침에 사용되는 쿼리를 완전히 축소할 필요가 없습니다. 이 경우 쿼리는 부분적으로 원본 시스템으로 푸시다운될 수 있습니다. 불필요하고 필터링되지 않은 데이터를 검색하지 않도록 성능을 향상시키려면 이 설정을 사용하는 것이 좋습니다.

제한 사항

레이크 하우스는 추가 주의 사항과 함께 지원됩니다

레이크하우스를 데이터 대상으로 사용하는 경우 다음과 같은 제한 사항을 알고 있어야 합니다.

  • 최대 동시 평가 수는 10개입니다. 즉, 데이터 흐름은 10개의 버킷만 병렬로 평가할 수 있습니다. 버킷이 10개 이상인 경우 버킷 수를 제한하거나 동시 평가 수를 제한해야 합니다. 데이터 흐름 동시성 제어 설정의 스크린샷
  • 레이크하우스에 데이터를 쓸 때, 데이터 플로우는 레이크하우스에 기록된 파일의 자체 기록 관리를 유지합니다. 이것은 표준 레이크 하우스 패턴과 일치합니다. 그러나 이는 Spark 또는 다른 프로세스와 같은 다른 작성자가 동일한 테이블에 쓰는 경우 증분 새로 고침에 문제가 발생할 수 있음을 의미합니다. 증분 새로 고침을 사용하는 동안 다른 기록기를 사용하여 동일한 테이블에 쓰지 않는 것이 좋습니다. 이 경우 다른 작성자들이 증분 새로 고침 작업을 방해하지 않도록 해야 합니다. 증분 새로 고침을 사용하는 동안에는 테이블 유지 관리 및 진공 처리와 같은 프로세스가 지원되지 않습니다.

데이터 대상을 고정 스키마로 설정해야 합니다.

데이터 대상은 고정 스키마로 설정해야 합니다. 즉, 데이터 대상에 있는 테이블의 스키마를 수정해야 하며 변경할 수 없습니다. 데이터 대상에 있는 테이블의 스키마가 동적 스키마로 설정된 경우 증분 새로 고침을 구성하기 전에 이를 고정 스키마로 변경해야 합니다.

데이터 대상에서 유일하게 지원되는 업데이트 방법은 입니다. replace

데이터 대상에서 유일하게 지원되는 업데이트 방법은 데이터 흐름이 데이터 대상 replace의 각 버킷에 대한 데이터를 새 데이터로 대체한다는 것을 의미합니다. 그러나 버킷 범위를 벗어난 데이터는 영향을 받지 않습니다. 따라서 데이터 대상에 첫 번째 버킷보다 오래된 데이터가 있는 경우 증분 새로 고침은 어떤 방식으로도 이 데이터에 영향을 주지 않습니다.

단일 쿼리의 경우 최대 버킷 수는 50개, 전체 데이터 흐름의 경우 150개입니다.

데이터 흐름에서 지원하는 쿼리당 최대 버킷 수는 50개입니다. 버킷이 50개 이상인 경우 버킷 크기를 늘리거나 버킷 범위를 줄여 버킷 수를 줄여야 합니다. 전체 데이터 흐름의 경우 최대 버킷 수는 150개입니다. 데이터 흐름에 버킷이 150개 이상 있는 경우 증분 새로 고침 쿼리 수를 줄이거나 버킷 크기를 늘려 버킷 수를 줄여야 합니다.

Dataflow Gen1과 Dataflow Gen2의 증분 새로 고침 간의 차이점

Dataflow Gen1과 Dataflow Gen2 사이에는 증분 새로 고침의 작동 방식에 몇 가지 차이점이 있습니다. 다음 목록에서는 Dataflow Gen1과 Dataflow Gen2의 증분 새로 고침 간의 주요 차이점을 설명합니다.

  • 증분 새로 고침은 이제 Dataflow Gen2에서 최상위 기능입니다. Dataflow Gen1에서는 데이터 흐름을 게시한 후 증분 새로 고침을 구성해야 했습니다. Dataflow Gen2에서 증분 새로 고침은 이제 데이터 흐름 편집기에서 직접 구성할 수 있는 일류 기능입니다. 이 기능을 사용하면 증분 새로 고침을 보다 쉽게 구성할 수 있으며 오류 위험을 줄일 수 있습니다.
  • Dataflow Gen1에서는 증분 새로 고침을 구성할 때 기록 데이터 범위를 지정해야 했습니다. Dataflow Gen2에서는 기록 데이터 범위를 지정할 필요가 없습니다. 데이터 흐름은 버킷 범위를 벗어난 대상에서 데이터를 제거하지 않습니다. 따라서 대상에 첫 번째 버킷보다 오래된 데이터가 있는 경우 증분 새로 고침은 어떤 방식으로도 이 데이터에 영향을 주지 않습니다.
  • Dataflow Gen1에서는 증분 새로 고침을 구성할 때 증분 새로 고침에 대한 매개 변수를 지정해야 했습니다. Dataflow Gen2에서는 증분 새로 고침에 대한 매개 변수를 지정할 필요가 없습니다. 데이터 흐름은 필터와 매개 변수를 쿼리의 마지막 단계로 자동으로 추가합니다. 따라서 증분 새로 고침에 대한 매개 변수를 수동으로 지정할 필요가 없습니다.

자주 묻는 질문(FAQ)

변경 내용을 감지하고 필터링하는 데 동일한 열을 사용했다는 경고를 받았습니다. 무슨 의미인가요?

변경 내용 검색 및 필터링에 동일한 열을 사용했다는 경고가 표시되면 변경 내용을 검색하기 위해 지정한 열도 데이터 필터링에 사용됩니다. 예기치 않은 결과가 발생할 수 있으므로 이 사용을 권장하지 않습니다. 대신 변경 내용을 검색하고 데이터를 필터링하기 위해 다른 열을 사용하는 것이 좋습니다. 데이터가 버킷 간에 이동하면 데이터 흐름이 변경 내용을 올바르게 검색하지 못할 수 있으며 대상에 중복된 데이터를 만들 수 있습니다. 변경 내용을 검색하고 데이터를 필터링하기 위해 다른 열을 사용하여 이 경고를 해결할 수 있습니다. 또는 지정한 열에 대한 새로 고침 간에 데이터가 변경되지 않는다고 확신하는 경우 경고를 무시할 수 있습니다.

지원되지 않는 데이터 대상에서 증분 새로 고침을 사용하려고 합니다. 어떻게 해야 하나요?

지원되지 않는 데이터 대상에서 증분 새로 고침을 사용하려는 경우 쿼리에서 증분 새로 고침을 사용하도록 설정하고 준비된 데이터를 참조하는 두 번째 쿼리를 사용하여 데이터 대상을 업데이트할 수 있습니다. 이렇게 하면 증분 새로 고침을 사용하여 원본 시스템에서 처리 및 검색해야 하는 데이터의 양을 줄일 수 있지만 준비된 데이터에서 데이터 대상으로 전체 새로 고침을 수행해야 합니다. 준비 중인 데이터가 버킷 범위 외부에 유지되도록 보장하지 않으므로 창 및 버킷 크기를 올바르게 설정했는지 확인합니다. 또 다른 옵션은 패턴을 사용하여 데이터를 증분 방식으로 모으는 것입니다. 이 작업을 수행하는 방법에 대한 가이드는 다음 링크에서 확인할 수 있습니다: Dataflow Gen2를 사용하여 증분 데이터를 수집.

쿼리에 증분 새로 고침이 활성화되어 있는지 어떻게 알 수 있나요?

데이터 흐름 편집기에서 쿼리 옆에 있는 아이콘을 확인하여 쿼리에 증분 새로 고침이 활성화되어 있는지 확인할 수 있습니다. 아이콘에 파란색 삼각형이 포함된 경우 증분 새로 고침이 사용됩니다. 아이콘에 파란색 삼각형이 없으면 증분 새로 고침을 사용할 수 없습니다.

증분 새로 고침을 사용할 때 데이터 소스에 너무 많은 요청이 들어옵니다. 어떻게 해야 하나요?

병렬 쿼리 평가의 최대 수를 설정할 수 있는 설정을 추가했습니다. 이 설정은 데이터 흐름의 전역 설정에서 찾을 수 있습니다. 이 값을 더 낮은 숫자로 설정하면 원본 시스템으로 전송되는 요청 수를 줄일 수 있습니다. 이 설정은 동시 요청 수를 줄이고 원본 시스템의 성능을 향상시키는 데 도움이 될 수 있습니다. 최대 병렬 쿼리 실행 수를 설정하려면 데이터 흐름의 전역 설정으로 이동하고 크기 조정 탭으로 이동하여 최대 병렬 쿼리 평가 수를 설정합니다. 원본 시스템에 문제가 발생하지 않는 한 이 제한을 사용하지 않는 것이 좋습니다.

데이터 흐름 동시성 제어 설정의 스크린샷

증분 새로 고침을 사용하려고 하지만 활성화 후 데이터 흐름을 새로 고치는 데 시간이 더 오래 걸린다는 것을 알 수 있습니다. 어떻게 해야 하나요?

이 문서에 설명된 대로 증분 새로 고침은 원본 시스템에서 처리 및 검색해야 하는 데이터의 양을 줄이기 위해 설계되었습니다. 그러나 증분 새로 고침을 사용하도록 설정한 후 데이터 흐름을 새로 고치는 데 시간이 오래 걸리는 경우 데이터가 변경되었는지 확인하고 버킷을 처리하는 추가 오버헤드가 더 적은 데이터를 처리하여 저장한 시간보다 높기 때문일 수 있습니다. 이 경우 증분 새로 고침에 대한 설정을 검토하고 시나리오에 맞게 조정하는 것이 좋습니다. 예를 들어 버킷 크기를 늘려 버킷 수와 처리 오버헤드를 줄일 수 있습니다. 또는 버킷 크기를 늘려 버킷 수를 줄일 수 있습니다. 설정을 조정한 후에도 성능이 낮으면 증분 새로 고침을 사용하지 않도록 설정하고 전체 새로 고침을 대신 사용할 수 있습니다. 시나리오에서 더 효율적일 수 있습니다.

다음 단계