[PowerBI] 쿼리 계획을 사용하여 PowerQuery에 대한 쿼리 FOLD를 조사합니다.

개시하다


조회 계획의 미리보기 기능이 있기 때문에 터치해서 조회를 배웁니다.
PBIJP 파워큐리 비밀특훈인'호랑이굴'염의 부활편 #11에 발표됐다.

Power QueryOnline에서 새 데이터 흐름 만들기


Power Query Online = 데이터 흐름 만들기
작업공간에서 새로 작성한 데이터 흐름을 선택하고, 빈 질의를 선택하고, 다음 Power Query를 설명(복사)합니다.
let
  Source = Sql.Database("servername", "database"),
  Navigation = Source{[Schema = "Sales", Item = "SalesOrderHeader"]}[Data],
  #"Removed other columns" = Table.SelectColumns(Navigation, {"SalesOrderID", "OrderDate", "SalesOrderNumber", "PurchaseOrderNumber", "AccountNumber", "CustomerID", "TotalDue"}),
  #"Filtered rows" = Table.SelectRows(#"Removed other columns", each [TotalDue] > 1000),
  #"Kept bottom rows" = Table.LastN(#"Filtered rows", 5)
in
  #"Kept bottom row
servername database를 자기 환경에 맞는 이름으로 바꾸다.


단, 이것은 마이크로소프트가 제공한 Adventureworks의 샘플 데이터베이스를 바탕으로 기술한 것이니 접근 가능한 데이터베이스에서 테스트하십시오.
Power QueryOnline에서 빈 질의를 호출하고 붙여넣습니다.자신의 환경에서 손 옆에 있는 데이터로 똑같은 처리를 해 보았다.

결과는 이렇다.페이지수 1000P 이상으로 축소한 후Table.LastN 마지막 5줄로 축소한 결과 5줄의 데이터만 나왔기 때문이다.
※Table.LastN 함수

오류 확인 표시기


스텝 볼륨 표시기🤔 이렇게 말하기는 어렵지만 조회 설정을 누르면 오른쪽 열에 나타난다.각 단계마다 Power Query 처리가 표시됩니다.

더 자세히 보면 한 걸음 한 걸음 오른쪽에 나타나는 표기가 다르다는 것을 알 수 있다.
녹색 플래그는 쿼리 폴딩을 수행하는 부분을, 빨간색은 Power Query 엔진을 처리하는 부분을 나타냅니다.

쿼리Folding의 목적은 많은 쿼리의 평가를 마운트 해제하거나 쿼리 변환을 계산할 수 있는 데이터 원본으로 미루는 것이다.
조회 집합 메커니즘에서 M 스크립트를 데이터 원본으로 해석하고 실행할 수 있는 언어로 변환함으로써 이 목적을 실현한다.
그런 다음 평가를 데이터 소스로 이동하고 평가 결과를 Power Query로 보냅니다.많은 경우, 이 조작을 통해 데이터 원본에서 필요한 모든 데이터를 추출하고, 조회를 실행하는 것이 PowerQuery 엔진을 실행하는 데 필요한 모든 변환보다 훨씬 빠르다.

질의 단계 선택 및 질의 체계 확인


조회 계획을 확인하려면 단계를 마우스 오른쪽 버튼으로 클릭합니다.

질의 계획이 사용 중으로 표시됩니다.자세한 내용을 보려면 클릭하십시오. SQL 서버에 실제 던진 로컬 조회도 확인할 수 있습니다.


마지막으로 실행된 Table.LastN関数 처리를 보면 전체 스캔이 표시됩니다.이것은 읽기 테이블에 저장된 모든 줄을 처리하는 것이기 때문에 줄 수가 많을수록 데이터 처리가 시간이 걸리고 제한 시간을 초과하면 처리가 끝나지 않는다.

PowerQuery 수정 쿼리 볼륨 사용


이렇게 하면 처리가 매우 느리기 때문에 최초로 쓴 조회를 수정해야 한다.Table.LastN 함수는 테이블을 읽어들이는 마지막 5행의 프로세스이므로 이와 동일한 작업을 다른 방법으로 수행합니다.

내림차순으로 재배열



이전 행 유지




오류 확인 표시기


빨간색 표시 없음

조회 계획 확인


모든 스캔 항목이 없습니다. 모두 데이터 원본 측의 처리입니다.

질의에 초점을 맞추는 처리 목록 방지


그게 다가 아니야.
  • 동원되지 않은 조회를 바탕으로 한 조합.
  • 동원되지 않은 조회의 종속(합병)을 바탕으로 한다.
  • 복잡한 논리를 통해 사용자 정의 열을 추가합니다.복잡한 논리란 데이터 원본에 같은 함수가 없는 M 함수를 사용하는 것을 말한다.예를 들어, 다음 방정식은 텍스트 값을 반환하는 Order Date 열의 값을 포맷하는 데 사용됩니다.
  • Date.ToText([OrderDate], "yyyy")
    
  • 색인열을 추가합니다.
  • 열의 데이터 형식 변경.
  • Power Query 쿼리에 여러 데이터 소스가 포함된 경우 데이터 소스의 프라이버시 수준이 호환되지 않아 쿼리 Folding을 수행할 수 없습니다.
  • 성능 비교


    다음 Docs에서는 연기 비교도 수행했습니다.참고 가치가 있기 때문에 꼭 읽어야 합니다. 원시적인 소스로 처리하면 데이터가 나오기 때문에 성능이 많이 달라요!
    처리 행 수 비교

    처리 시간 비교

    총결산


    원래의 원본 파일로 처리하는 것이 매우 중요하다. 여러 차례 FOLDING 조회가 중요하다고 말했지만 나는 모른다
    실제로 행동하는 것이 더 중요하다.

    참고 자료

    좋은 웹페이지 즐겨찾기