다음을 통해 공유


데이터 흐름 Gen2 데이터 대상 및 관리되는 설정

Dataflow Gen2를 사용하여 데이터를 정리하고 준비한 후에는 유용한 위치에 저장할 수 있습니다. 데이터 흐름 Gen2를 사용하면 Azure SQL, Fabric Lakehouse 등의 여러 대상에서 선택할 수 있습니다. 대상을 선택하면 Dataflow Gen2에서 데이터를 쓰고 분석 및 보고에 사용할 수 있습니다.

다음 목록에는 지원되는 데이터 대상이 포함되어 있습니다.

  • Azure SQL 데이터베이스
  • Azure Data Explorer(Kusto)
  • Azure Datalake Gen2(미리 보기)
  • 패브릭 레이크하우스 테이블
  • 패브릭 레이크하우스 파일(미리 보기)
  • Fabric 웨어하우스
  • Fabric KQL 데이터베이스
  • 패브릭 SQL 데이터베이스
  • SharePoint 파일

참고 항목

패브릭 웨어하우스에 데이터를 로드하려면 SQL 연결 문자열을 가져오면 Azure Synapse Analytics(SQL DW) 커넥터를 사용할 수 있습니다. 추가 정보: Microsoft Fabric의 데이터 웨어하우징에 대한 연결

진입점

Dataflow Gen2의 모든 데이터 쿼리에는 데이터 대상이 있을 수 있습니다. 테이블 형식 쿼리에만 대상을 적용할 수 있습니다. 함수 및 목록은 지원되지 않습니다. 각 쿼리의 데이터 대상을 개별적으로 설정할 수 있으며 동일한 데이터 흐름 내에서 서로 다른 대상을 사용할 수 있습니다.

데이터 대상을 설정하는 세 가지 방법이 있습니다.

  • 위쪽 리본을 통해.

    데이터 대상 추가가 강조 표시된 파워 쿼리 홈 탭 리본의 스크린샷.

  • 쿼리 설정을 통해

    데이터 대상 단추가 강조 표시되고 대상 목록이 표시된 쿼리 설정 창의 스크린샷

  • 다이어그램 보기를 통해

    대상 추가 아이콘이 강조 표시되고 대상 목록이 표시된 다이어그램 보기의 쿼리 스크린샷

데이터 대상에 연결

데이터 대상에 연결하는 것은 데이터 원본에 연결하는 것과 같이 작동합니다. 데이터 원본에 대한 올바른 권한이 있는 한 데이터를 읽고 쓰는 데 연결을 사용할 수 있습니다. 새 연결을 만들거나 기존 연결을 선택한 다음, 다음을 선택해야 합니다.

Lakehouse 대상에 대한 데이터 대상에 연결 창의 스크린샷.

파일 기반 대상 설정

파일 기반 대상(예: SharePoint)을 선택하는 경우 몇 가지 설정을 구성해야 합니다. 설정해야 하는 항목은 다음과 같습니다.

  • 파일 이름: 대상에서 만들어지는 파일의 이름입니다. 기본적으로 파일 이름은 쿼리 이름과 일치합니다.
  • 파일 형식: 대상에서 생성되는 파일의 형식입니다.
  • 파일 원본: 대상에서 파일을 만드는 데 사용되는 인코딩입니다. 기본적으로 UTF-8로 설정됩니다.
  • 파일 구분 기호: 대상에서 파일을 만드는 데 사용되는 구분 기호입니다. 기본적으로 쉼표로 설정됩니다.

파일 이름, 파일 형식, 파일 원본 및 파일 구분 기호 설정이 표시된 파일 대상 설정 창의 스크린샷

새 테이블을 만들거나 기존 테이블을 선택하세요.

데이터 대상으로 로드할 때 새 테이블을 만들거나 기존 테이블을 선택할 수 있습니다.

새 테이블 만들기

새 테이블을 만들도록 선택하면 데이터 흐름 Gen2는 새로 고치는 동안 데이터 대상에 새 테이블을 만듭니다. 나중에 테이블이 삭제되면(수동으로 대상으로 이동하여 삭제하는 경우) 데이터 흐름은 다음 새로 고침 중에 테이블을 다시 만듭니다.

기본적으로 테이블 이름은 쿼리 이름과 일치합니다. 테이블 이름에 대상에서 지원하지 않는 문자가 있으면 테이블 이름이 자동으로 조정됩니다. 예를 들어 많은 대상은 공백이나 특수 문자를 지원하지 않습니다.

새 테이블 단추가 선택된 대상 대상 선택 창의 스크린샷

다음으로 대상 컨테이너를 선택해야 합니다. 패브릭 데이터 대상을 선택한 경우 탐색기를 사용하여 데이터를 로드할 패브릭 항목을 선택할 수 있습니다. Azure 대상의 경우 연결을 만드는 동안 데이터베이스를 지정하거나 탐색기 환경에서 데이터베이스를 선택할 수 있습니다.

기존 테이블 사용

기존 테이블을 선택하려면 탐색기의 맨 위에 있는 토글을 사용합니다. 기존 테이블을 선택할 때 탐색기를 사용하여 패브릭 항목/데이터베이스와 테이블을 모두 선택해야 합니다.

기존 테이블을 사용하는 경우 어떤 시나리오에서도 테이블을 다시 만들 수 없습니다. 데이터 대상에서 테이블을 수동으로 삭제하는 경우 Dataflow Gen2는 다음 새로 고침에서 테이블을 다시 만들지 않습니다.

기존 테이블 단추가 선택된 대상 대상 선택 창의 스크린샷

Lakehouse 파일 또는 테이블

Lakehouse의 경우 레이크 하우스에 파일이나 테이블을 만들 수있는 옵션이 있습니다. 대부분의 목적지는 하나를 지원하지만, 이곳은 두 가지 모두를 지원하기 때문에 독특합니다. 이를 통해 레이크하우스에서 데이터를 구성하는 방법에 더 많은 유연성을 제공합니다.

파일과 테이블 간에 전환하려면 레이크하우스를 찾을 때 토글을 사용할 수 있습니다.

파일 모드 전환 토글을 강조 표시하는 스크린샷

새 테이블에 대한 관리되는 설정

새 테이블에 로드할 때는 기본적으로 자동 설정이 설정됩니다. 자동 설정을 사용하는 경우 Dataflow Gen2는 매핑을 관리합니다. 자동 설정은 다음과 같습니다.

  • 업데이트 방법 바꾸기: 모든 데이터 흐름 새로 고침 시 데이터가 대체됩니다. 대상의 모든 데이터가 제거됩니다. 대상의 데이터가 데이터 흐름의 출력 데이터로 대체됩니다.

  • 관리되는 매핑: 당신을 대신해서 매핑이 관리됩니다. 데이터/쿼리를 변경하여 다른 열을 추가하거나 데이터 형식을 변경해야 하는 경우 데이터 흐름을 다시 게시할 때 이 변경 내용에 맞게 매핑이 자동으로 조정됩니다. 데이터 흐름을 변경할 때마다 데이터 대상 환경으로 이동할 필요가 없으므로 데이터 흐름을 다시 게시할 때 스키마를 쉽게 변경할 수 있습니다.

  • 테이블 삭제 및 다시 만들기: 이러한 스키마 변경을 허용하려면 모든 데이터 흐름 새로 고침 시 테이블이 삭제되고 다시 만들어집니다. 데이터 흐름 새로 고침으로 인해 이전에 테이블에 추가된 관계 또는 측정값이 제거될 수 있습니다.

참고 항목

현재 자동 설정은 Lakehouse 및 Azure SQL 데이터베이스에 대해서만 데이터 대상으로 지원됩니다.

자동 설정 사용 옵션이 선택된 대상 설정 선택 창의 스크린샷.

수동 설정

자동 설정 사용을 해제하면 데이터를 데이터 대상으로 로드하는 방법을 완전히 제어할 수 있습니다. 원본 형식을 변경하거나 데이터 대상에 필요하지 않은 열을 제외하여 열 매핑을 변경할 수 있습니다.

자동 설정 사용 옵션이 선택되지 않고 다양한 수동 설정이 표시된 대상 설정 선택 창의 스크린샷

업데이트 메서드

대부분의 대상은 업데이트 메서드로 추가 및 바꾸기를 모두 지원합니다. 그러나 패브릭 KQL 데이터베이스 및 Azure Data Explorer는 업데이트 방법으로 대체를 지원하지 않습니다.

  • 바꾸기: 모든 데이터 흐름 새로 고침에서 데이터는 대상에서 삭제되고 데이터 흐름의 출력 데이터로 대체됩니다.

  • 추가: 모든 데이터 흐름 새로 고침에서 데이터 흐름의 출력 데이터가 데이터 대상 테이블의 기존 데이터에 추가됩니다.

게시의 스키마 옵션

게시의 스키마 옵션은 업데이트 메서드가 바뀐 경우에만 적용됩니다. 데이터를 추가하면 스키마를 변경할 수 없습니다.

  • 동적 스키마: 동적 스키마를 선택할 때 데이터 흐름을 다시 게시할 때 데이터 대상의 스키마 변경을 허용합니다. 관리되는 매핑을 사용하지 않으므로 쿼리를 변경할 때 데이터 흐름 대상 마법사에서 열 매핑을 업데이트해야 합니다. 새로 고침에서 대상 스키마와 예상 스키마 간의 차이를 감지하면 테이블이 삭제된 다음 다시 만들어져 예상 스키마에 맞춥니다. 데이터 흐름 새로 고침으로 인해 이전에 테이블에 추가된 관계 또는 측정값이 제거될 수 있습니다.

  • 고정 스키마: 고정 스키마를 선택하면 스키마 변경이 불가능합니다. 데이터 흐름이 새로 고쳐지면 테이블의 행만 삭제되고 데이터 흐름의 출력 데이터로 바뀝니다. 테이블의 모든 관계 또는 측정값은 그대로 유지됩니다. 데이터 흐름에서 쿼리를 변경하면 쿼리 스키마가 데이터 대상 스키마와 일치하지 않는 것을 감지하면 데이터 흐름 게시가 실패합니다. 스키마를 변경할 계획이 없고 대상 테이블에 관계 또는 측정값을 추가할 계획이 없는 경우 이 설정을 사용합니다.

참고 항목

Warehouse에 데이터를 로드하는 경우 고정 스키마만 지원됩니다.

고정 스키마가 선택된 게시 옵션의 스키마 옵션 스크린샷

매개 변수화

매개 변수 는 Dataflow Gen2 내의 핵심 기능입니다. 매개 변수가 만들어지거나 Always allow 설정을 사용하면 입력 위젯을 사용하여 대상의 테이블 또는 파일 이름을 정의할 수 있습니다.

테이블 이름이

참고 항목

데이터 대상의 매개 변수는 관련 쿼리에 대해 만든 M 스크립트를 통해 직접 적용할 수도 있습니다. 데이터 대상 쿼리의 스크립트를 수동으로 변경하여 요구 사항에 맞게 매개 변수를 적용할 수 있습니다. 그러나 사용자 인터페이스는 현재 테이블 또는 파일 이름 필드에 대한 매개 변수화만 지원합니다.

데이터 대상 쿼리에 대한 매시업 스크립트

데이터 대상 기능을 사용하는 경우 대상에 데이터를 로드하기 위해 정의된 설정은 데이터 흐름의 매시업 문서에 정의됩니다. 데이터 흐름 애플리케이션은 기본적으로 다음 두 가지 구성 요소를 만듭니다.

  • 대상에 대한 탐색 단계를 포함하는 쿼리입니다. _DataDestination 접미사가 있는 초기 쿼리 이름의 패턴을 따릅니다. 다음은 그 예입니다.
shared #"Orders by Region_DataDestination" = let
  Pattern = Lakehouse.Contents([CreateNavigationProperties = false, EnableFolding = false]),
  Navigation_1 = Pattern{[workspaceId = "cfafbeb1-8037-4d0c-896e-a46fb27ff229"]}[Data],
  Navigation_2 = Navigation_1{[lakehouseId = "b218778-e7a5-4d73-8187-f10824047715"]}[Data],
  TableNavigation = Navigation_2{[Id = "Orders by Region", ItemKind = "Table"]}?[Data]?
in
  TableNavigation;
  • 대상에 데이터를 로드하는 방법에 사용할 논리가 포함된 쿼리에 대한 DataDestinations 특성 레코드입니다. 레코드에는 대상에 대한 탐색 단계와 업데이트 메서드, 스키마 옵션 및 대상의 종류(예: 테이블 또는 기타 종류)와 같은 전체 대상 설정이 포함된 쿼리에 대한 포인터가 있습니다. 다음은 그 예입니다.
[DataDestinations = {[Definition = [Kind = "Reference", QueryName = "Orders by Region_DataDestination", IsNewTarget = true], Settings = [Kind = "Automatic", TypeSettings = [Kind = "Table"]]]}]

이러한 M 스크립트 조각은 Dataflow 애플리케이션 내부에 표시되지 않지만 다음을 통해 이 정보에 액세스할 수 있습니다.

대상별로 지원되는 데이터 원본 형식

저장소별 지원되는 데이터 유형 데이터플로우스테이징레이크하우스 Azure DB(SQL) 출력 Azure Data Explorer 출력 Fabric Lakehouse(LH) 출력 Fabric Warehouse(WH) 출력 Fabric SQL Database(SQL) 출력
작업 아니요 아니요 아니요 아니요 아니요 아니요
모두 아니요 아니요 아니요 아니요 아니요 아니요
이진 아니요 아니요 아니요 아니요 아니요 아니요
통화 아니요
DateTimeZone (데이트타임존) 아니요 아니요
길이 아니요 아니요 아니요 아니요 아니요
함수 아니요 아니요 아니요 아니요 아니요 아니요
없음 아니요 아니요 아니요 아니요 아니요 아니요
없음 아니요 아니요 아니요 아니요 아니요 아니요
시간 아니요 아니요 아니요
유형 아니요 아니요 아니요 아니요 아니요 아니요
구조조 (리스트, 레코드, 테이블) 아니요 아니요 아니요 아니요 아니요 아니요

통화 또는 백분율과 같은 데이터 형식을 사용하는 경우 일반적으로 대부분의 대상에 해당하는 10진수로 변환합니다. 그러나 이러한 대상에 다시 연결하고 기존 테이블 경로를 따르는 경우, 예를 들어 통화를 10진수 열로 매핑하는 데 어려움이 발생할 수 있습니다. 이러한 경우 편집기에서 데이터 형식을 10진수로 변경해 보세요. 이렇게 하면 기존 테이블 및 열에 보다 쉽게 매핑할 수 있습니다.

고급 항목

대상에 로드하기 전에 스테이징 사용

쿼리 처리 성능을 향상시키기 위해 Dataflow Gen2 내에서 스테이징을 사용하여 패브릭 컴퓨팅을 사용하여 쿼리를 실행할 수 있습니다.

쿼리(기본 동작)에서 스테이징을 사용하도록 설정하면 데이터가 준비 위치로 로드됩니다. 이 위치는 데이터 흐름 자체에서만 액세스할 수 있는 내부 Lakehouse입니다.

스테이징 위치를 사용하면 쿼리를 SQL 분석 엔드포인트로 접는 것이 메모리 내 처리보다 더 빠른 경우에 성능을 향상시킬 수 있습니다.

Lakehouse 또는 기타 비 웨어하우스 대상에 데이터를 로드하는 경우 기본적으로 스테이징 기능을 사용하지 않도록 설정하여 성능을 향상시킵니다. 데이터 대상에 데이터를 로드하면 스테이징을 사용하지 않고 데이터가 데이터 대상에 직접 기록됩니다. 쿼리에 스테이징을 사용하려면 다시 사용하도록 설정할 수 있습니다.

스테이징을 사용하도록 설정하려면 쿼리를 마우스 오른쪽 단추로 클릭하고 스테이징 사용 단추를 선택하여 스테이징을 사용하도록 설정합니다. 그러면 쿼리가 파란색으로 바뀝니다.

스테이징 사용이 강조 표시된 쿼리 드롭다운 메뉴의 스크린샷

Warehouse에 데이터 로드

Warehouse에 데이터를 로드하는 경우 데이터 대상에 쓰기 작업을 하기 전에 스테이징이 필요합니다. 이 요구 사항은 성능을 향상시킵니다. 현재 데이터 흐름과 동일한 작업 영역에만 로드가 지원됩니다. Warehouse에 로드되는 모든 쿼리에 대해 스테이징이 사용하도록 설정되어 있는지 확인합니다.

스테이징을 사용하지 않도록 설정하고 Warehouse를 출력 대상으로 선택하면 데이터 대상을 구성하기 전에 먼저 스테이징을 사용하도록 설정하라는 경고가 표시됩니다.

데이터 대상 추가 경고의 스크린샷.

Warehouse가 대상으로 이미 있고 스테이징을 사용하지 않도록 설정하려고 하면 경고가 표시됩니다. Warehouse를 대상으로 제거하거나 준비 작업을 해제할 수 있습니다.

스테이징 사용 경고의 스크린샷.

Lakehouse, Warehouse 및 SQL 데이터베이스에 대한 스키마 지원(미리 보기)

Microsoft Fabric의 Lakehouse, Warehouse 및 SQL 데이터베이스는 모두 데이터에 대한 스키마를 만드는 기능을 지원합니다. 즉, 데이터를 보다 쉽게 관리하고 쿼리할 수 있는 방식으로 구성할 수 있습니다. 이러한 대상의 스키마에 쓸 수 있도록 하려면 연결을 설정할 때 고급 옵션에서 전체 계층 옵션을 사용하여 탐색 옵션을 사용하도록 설정해야 합니다. 이 옵션을 사용하도록 설정하지 않으면 대상에서 스키마를 선택하거나 볼 수 없습니다. 전체 계층 구조를 사용하여 Navigate를 사용하도록 설정하기 위한 미리 보기 제한 사항은 빠른 복사가 제대로 작동하지 않을 수 있다는 것입니다. 게이트웨이와 함께 이 기능을 사용하려면 3000.290 버전 이상의 게이트웨이가 필요합니다.

스키마 지원 사용 옵션을 강조 표시하는 스크린샷

Lakehouse 데이터 대상 진공 처리

Microsoft Fabric에서 Dataflow Gen2의 대상으로 Lakehouse를 사용하는 경우 최적의 성능과 효율적인 스토리지 관리를 유지하기 위해 정기적인 유지 관리를 수행하는 것이 중요합니다. 중요한 유지 관리 작업 중 하나는 데이터 대상을 진공 청소하는 것입니다. 이 프로세스는 스토리지 비용을 최적화하고 데이터의 무결성을 유지하는 델타 테이블 로그에서 더 이상 참조되지 않는 이전 파일을 제거하는 데 도움이 됩니다.

진공이 중요한 이유

  1. 스토리지 최적화: 시간이 지남에 따라 델타 테이블은 더 이상 필요하지 않은 오래된 파일을 누적합니다. 진공은 이러한 파일을 정리하여 스토리지 공간을 확보하고 비용을 절감하는 데 도움이 됩니다.
  2. 성능 향상: 불필요한 파일을 제거하면 읽기 작업 중에 검사해야 하는 파일 수를 줄여 쿼리 성능을 향상시킬 수 있습니다.
  3. 데이터 무결성: 관련 파일만 유지되도록 하면 데이터의 무결성을 유지하여 판독기 오류 또는 테이블 손상으로 이어질 수 있는 커밋되지 않은 파일의 잠재적인 문제를 방지할 수 있습니다.

데이터 대상을 진공 청소하는 방법

Lakehouse에서 델타 테이블을 진공 청소하려면 다음 단계를 수행합니다.

  1. Lakehouse로 이동합니다. Microsoft Fabric 계정에서 원하는 Lakehouse로 이동합니다.
  2. 액세스 테이블 유지 관리: Lakehouse 탐색기에서 유지 관리하려는 테이블을 마우스 오른쪽 단추로 클릭하거나 줄임표를 사용하여 상황에 맞는 메뉴에 액세스합니다.
  3. 유지 관리 옵션 선택: 유지 관리 메뉴 항목을 선택하고 진공 옵션을 선택합니다.
  4. 진공 명령을 실행합니다. 보존 임계값(기본값은 7일)을 설정하고 지금 실행을 선택하여 진공 명령을 실행합니다.

모범 사례

  • 보존 기간: 이전 스냅샷 및 커밋되지 않은 파일이 조기에 제거되지 않도록 보존 간격을 최소 7일로 설정하면 동시 테이블 판독기 및 기록기가 중단될 수 있습니다.
  • 정기 유지 관리: 데이터 유지 관리 루틴의 일부로 정기적인 진공 청소를 예약하여 델타 테이블을 최적화하고 분석할 준비를 유지합니다.
  • 증분 새로 고침: 증분 새로 고침을 사용하는 경우 증분 새로 고침 프로세스를 방해할 수 있으므로 진공이 꺼져 있는지 확인합니다.

데이터 유지 관리 전략에 데이터 정리 작업을 통합하면, Lakehouse 목적지가 데이터 프로세스에서 효율적, 비용 효율적, 그리고 신뢰성을 유지하도록 할 수 있습니다.

Lakehouse의 테이블 유지 관리에 대한 자세한 내용은 델타 테이블 유지 관리 설명서를 참조 하세요.

널러블

Null 허용 열이 있는 경우 파워 쿼리에서 null을 허용하지 않는 것으로 검색되고 데이터 대상에 쓸 때 열 형식이 null을 허용하지 않는 경우가 있습니다. 새로 고치는 동안 다음 오류가 발생합니다.

E104100 Couldn't refresh entity because of an issue with the mashup document MashupException.Error: DataFormat.Error: Error in replacing table's content with new data in a version: #{0}., InnerException: We can't insert null data into a non-nullable column., Underlying error: We can't insert null data into a non-nullable column. Details: Reason = DataFormat.Error;Message = We can't insert null data into a non-nullable column.; Message.Format = we can't insert null data into a non-nullable column.

null 허용 열을 강제로 적용하려면 다음 단계를 시도해 볼 수 있습니다.

  1. 데이터 대상에서 테이블을 삭제합니다.

  2. 데이터 흐름에서 데이터 대상을 제거합니다.

  3. 데이터 흐름으로 이동하여 다음 파워 쿼리 코드를 사용하여 데이터 형식을 업데이트합니다.

    Table.TransformColumnTypes(
       #"PREVIOUS STEP", {
          {"COLLUMNNAME1", type nullable text}, 
          {"COLLUMNNAME2", type nullable Int64.Type}
       }
    ) 
    
  4. 데이터 대상 추가

데이터 형식 변환 및 업 스케일링

경우에 따라 데이터 흐름 내의 데이터 형식은 데이터 대상에서 지원되는 데이터 형식과 다릅니다. 다음은 데이터 대상에서 데이터를 계속 가져올 수 있도록 하기 위해 적용된 몇 가지 기본 변환입니다.

대상 데이터 흐름 데이터 형식 대상 데이터 형식
Fabric 웨어하우스 Int8.Type Int16.Type