UNION DAX 함수 대 파워 쿼리

UNION DAX 함수 대 파워 쿼리

이 자습서에서는 UNION 함수를 사용하여 DAX 최적화 기술을 배웁니다 . 이 자습서에서는 UNION 함수와 파워 쿼리 및 기타 테이블 결합 기술의 성능을 비교합니다.

UNION 함수는 행을 결합하고 중복 행을 제거하여 두 테이블을 단일 테이블로 결합합니다

이 자습서의 예제는 매년(2007, 2008, 2009) 세 개의 테이블로 분할된 판매 테이블입니다.

목차

DAX의 UNION 함수

DAX Studio를 열고 서버 타이밍 및 쿼리 계획을 시작합니다.

UNION DAX 함수 대 파워 쿼리

아래 DAX 코드는 예제로 사용됩니다.

UNION DAX 함수 대 파워 쿼리

코드를 실행한 후 서버 타이밍 탭으로 이동합니다. 코드를 실행하는 데 총 5.4초가 걸린다는 것을 알 수 있습니다. 대부분의 실행 시간은 스토리지 엔진 에서 소비되었습니다 . 이 세 쿼리는 각각 동일한 작업을 포함하지만 연도는 다릅니다.

UNION DAX 함수 대 파워 쿼리

이 세 가지 쿼리가 저장소 엔진에서 반환된 후 수식 엔진은 논리 쿼리 계획에서 볼 수 있는 UNION을 수행합니다. 쿼리 계획은 수행하여 Total Sales를 계산합니다.

UNION DAX 함수 대 파워 쿼리

물리적 쿼리 계획에서 Sales 테이블에서 매년 수행되는 작업을 포함하는 세 개의 데이터 캐시를 볼 수 있습니다.

UNION DAX 함수 대 파워 쿼리

DAX 성능 비교

비교를 작성하기 위해 원본 Sales 테이블을 사용하여 Total Sales에 대한 측정값을 만들어 보겠습니다.

UNION DAX 함수 대 파워 쿼리

이 코드를 실행하고 Server Timings 탭으로 이동하면 UNION 함수보다 훨씬 효율적인 것을 확인할 수 있습니다.

UNION 함수는 97.9KB를 사용하는 반면 새 측정값은 1KB만 사용합니다.

UNION DAX 함수 대 파워 쿼리

UNION을 사용하면 DAX 엔진이 엄청난 양의 데이터 캐시를 Formula 엔진으로 다시 반환합니다. 이것은 RAM에 많은 압력을 가합니다.

따라서 백만 개 이상의 행이 포함된 데이터 모델을 다루는 경우 UNION 함수를 사용하지 않는 것이 좋습니다.

UNION DAX 기능 대안

이 예제에서는 UNION을 사용하는 대신 세 가지 SUMX 함수를 사용할 수 있습니다 . 즉, 매년 하나의 SUMX 함수입니다.

UNION DAX 함수 대 파워 쿼리

이 코드를 실행하고 Server Timings 탭으로 이동하면 실행 시간이 현저히 줄어든 것을 확인할 수 있습니다. 세 가지 다른 쿼리를 실행하는 동안 5,400ms에서 33ms로 변경되었습니다.

UNION DAX 함수 대 파워 쿼리

또 다른 방법은 파워 쿼리 또는 데이터 원본 자체에 데이터 모델 테이블을 추가하는 것입니다.

하지만 가장 좋은 방법은 이 세 테이블의 합집합을 수행할 계산된 테이블을 만드는 것입니다. 그러나이 옵션에는 장단점이 있습니다.

계산된 테이블을 사용하면 파워 쿼리에서 추가를 수행하는 것과는 반대로 전체 처리 시간을 절약할 수 있습니다. 그러나 이로 인해 VertiPaq의 데이터베이스 크기가 증가합니다.

계산된 테이블을 사용하면 세 테이블을 결합하는 새 테이블이 생성됩니다. 그러나 이 세 개의 분할 테이블은 데이터베이스에 계속 남아 있습니다.

UNION DAX 함수 대 파워 쿼리

이 예에서 세 개의 테이블은 총 25MB를 사용합니다. 계산된 테이블을 만들면 RAM에서 25MB가 더 소모됩니다.

이와 같은 민감한 사례의 경우 취해야 할 최선의 조치가 무엇인지 교육적인 결정을 내려야 합니다.

결론

DAX의 UNION 함수는 두 개의 테이블을 하나로 결합하여 데이터 분석을 더 쉽게 만듭니다. 두 테이블을 입력으로 사용하고 두 입력 테이블의 모든 행을 포함하는 새 테이블을 반환하는 방식으로 작동합니다. 그러나 이 기능에는 자체 제한이 있습니다.

UNION 함수는 특히 입력 테이블이 큰 경우 데이터를 결합하는 다른 방법보다 느릴 수 있습니다. 또한 다른 대안과 달리 저장소에서 더 많은 공간을 사용할 수 있습니다.

상황에 따라 테이블을 결합해야 하는 경우 UNION 함수를 사용하기로 결정하기 전에 먼저 장단점을 따져보는 것이 중요합니다. 대안으로는 SUMX 함수, 데이터 모델 테이블 또는 계산된 테이블이 있습니다.

모두 제일 좋다,


파이썬에서 자기란 무엇인가: 실제 사례

파이썬에서 자기란 무엇인가: 실제 사례

파이썬에서 자기란 무엇인가: 실제 사례

R에서 RDS 파일을 저장하고 로드하는 방법

R에서 RDS 파일을 저장하고 로드하는 방법

R의 .rds 파일에서 개체를 저장하고 로드하는 방법을 배웁니다. 이 블로그에서는 R에서 LuckyTemplates로 개체를 가져오는 방법도 다룹니다.

첫 N 영업일 재방문 – DAX 코딩 언어 솔루션

첫 N 영업일 재방문 – DAX 코딩 언어 솔루션

이 DAX 코딩 언어 자습서에서는 GENERATE 함수를 사용하는 방법과 측정값 제목을 동적으로 변경하는 방법을 알아봅니다.

LuckyTemplates에서 다중 스레드 동적 시각적 개체 기술을 사용한 인사이트 쇼케이스

LuckyTemplates에서 다중 스레드 동적 시각적 개체 기술을 사용한 인사이트 쇼케이스

이 자습서에서는 다중 스레드 동적 시각적 개체 기술을 사용하여 보고서의 동적 데이터 시각화에서 통찰력을 만드는 방법을 다룹니다.

LuckyTemplates의 컨텍스트 필터링 소개

LuckyTemplates의 컨텍스트 필터링 소개

이 기사에서는 필터 컨텍스트를 살펴보겠습니다. 필터 컨텍스트는 모든 LuckyTemplates 사용자가 처음에 배워야 하는 주요 주제 중 하나입니다.

LuckyTemplates 온라인 서비스에서 앱을 사용하기 위한 최고의 팁

LuckyTemplates 온라인 서비스에서 앱을 사용하기 위한 최고의 팁

LuckyTemplates Apps 온라인 서비스가 다양한 소스에서 생성된 다양한 보고서 및 인사이트를 관리하는 데 어떻게 도움이 되는지 보여주고 싶습니다.

시간 경과에 따른 이익 마진 변화 분석 - LuckyTemplates 및 DAX를 사용한 분석

시간 경과에 따른 이익 마진 변화 분석 - LuckyTemplates 및 DAX를 사용한 분석

LuckyTemplates에서 측정 분기 및 DAX 수식 결합과 같은 기술을 사용하여 수익 마진 변경을 해결하는 방법을 알아봅니다.

DAX Studio의 데이터 캐시에 대한 구체화 아이디어

DAX Studio의 데이터 캐시에 대한 구체화 아이디어

이 자습서에서는 데이터 캐시의 구체화 아이디어와 결과 제공 시 DAX 성능에 미치는 영향에 대해 설명합니다.

LuckyTemplates를 사용한 비즈니스 보고

LuckyTemplates를 사용한 비즈니스 보고

지금까지 Excel을 계속 사용하고 있다면 지금이 비즈니스 보고 요구 사항에 LuckyTemplates를 사용하기 시작하는 가장 좋은 시기입니다.

LuckyTemplates 게이트웨이란? 당신이 알아야 할 모든 것

LuckyTemplates 게이트웨이란? 당신이 알아야 할 모든 것

LuckyTemplates 게이트웨이란? 당신이 알아야 할 모든 것