다음을 통해 공유


Dataflow Gen2의 증분 새로 고침(미리 보기)

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

필수 조건

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

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

대상 지원

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

  • Fabric 웨어하우스
  • Azure SQL Database
  • Azure Synapse Analytics

Lakehouse와 같은 다른 대상은 준비된 데이터를 참조하여 데이터 대상을 업데이트하는 두 번째 쿼리를 사용하여 증분 새로 고침과 함께 사용할 수 있습니다. 이렇게 하면 증분 새로 고침을 사용하여 원본 시스템에서 처리 및 검색해야 하는 데이터의 양을 줄일 수 있습니다. 그러나 준비된 데이터에서 데이터 대상으로 전체 새로 고침을 수행해야 합니다.

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

  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 열 선택

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

과거로부터 데이터 추출

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

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

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

버킷 크기

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

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

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

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

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

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

고급 설정

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

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

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

제한 사항

SQL 기반 데이터 대상만 지원됩니다.

현재 증분 새로 고침에는 SQL 기반 데이터 대상만 지원됩니다. 따라서 패브릭 웨어하우스, Azure SQL Database 또는 Azure Synapse Analytics만 증분 새로 고침을 위한 데이터 대상으로 사용할 수 있습니다. 이러한 제한의 이유는 이러한 데이터 대상이 증분 새로 고침에 필요한 SQL 기반 작업을 지원하기 때문입니다. 삭제 및 삽입 작업을 사용하여 다른 데이터 대상에서 병렬로 수행할 수 없는 데이터 대상의 데이터를 바꿉니다.

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

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

데이터 대상에서 유일하게 지원되는 업데이트 방법은 입니다. 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

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

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

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

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

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

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

증분 새로 고침을 사용할 때 원본이 너무 많은 요청을 받습니다. 어떻게 해야 하나요?

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

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

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

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

다음 단계