SharePoint의 계산된 열 | 개요
SharePoint에서 계산된 열의 중요성과 목록에서 자동 계산 및 데이터 수집을 수행하는 방법을 알아보세요.
DAX 함수 COLUMNSTATISTICS()의 동적 사용을 계속 탐색하고 싶습니다. 이 함수는 2021년 8월에 LuckyTemplates에 추가된 거의 완전히 문서화되지 않은 DAX 함수로, 익숙해지면 매우 흥미로운 몇 가지 매우 독특한 측면이 있습니다. . 이 블로그 하단에서 이 튜토리얼의 전체 비디오를 볼 수 있습니다.
저는 많은 실험을 했고 이 기능이 어떻게 작동하고 이 기능으로 무엇을 할 수 있는지에 대해 정말 흥미로운 새로운 사실을 배웠습니다. 이 함수에 대한 첫 번째 블로그에서 몇 가지 정적 사용에 대해 이야기했습니다. 오늘은 IntelliSense도 아직 최신 상태가 아닌 방식으로 함수를 정말 놀랍고 동적으로 사용하는 방법에 대해 이야기하겠습니다.
목차
DAX 함수 COLUMNSTATISTICS의 작동 방식
데이터 모델의 모든 테이블 및 필드에 대해 COLUMNSTATISTICS는 테이블 이름, 열 이름, 열의 최소값 및 최대값, 카디널리티 및 최대 길이가 있는 6개의 추가 필드로 구성된 테이블을 생성합니다. 많은 데이터처럼 보이지는 않지만 이것으로 할 수 있는 일이 많습니다.
현재 사용하고 있는 데이터는 LuckyTemplates 외부 도구에 대한 실습 데이터 세트일 뿐입니다. 5개의 차원 테이블, 팩트 테이블 및 측정값 테이블이 있는 비교적 간단한 데이터 모델입니다 . 이와 같은 모델은 추적하기 어렵지 않지만 복잡한 모델에는 훨씬 더 복잡한 데이터 세트 모니터링이 필요합니다.
복잡한 데이터 세트의 메타데이터는 필드 내 고유 값의 수인 카디널리티를 살펴보는 측면에서 훨씬 더 중요해집니다. 모델의 크기와 잠재적으로 처리 속도에 큰 영향을 미칩니다.
또한 모델을 구축할 때 테이블 수뿐만 아니라 해당 테이블의 날짜 범위를 아는 것이 도움이 됩니다. 날짜 테이블을 구축할 때 팩트 테이블의 전체 데이터 범위를 포함해야 합니다.
따라서 이 예에서는 작업 중인 이 데이터 모델에 테이블을 추가해 보겠습니다. 파워 쿼리에서 New Source 로 이동한 다음 Blank Query 로 이동합니다 . 그런 다음 고급 편집기로 이동하여 List.Dates 라는 함수를 붙여넣습니다 . 이를 사용하여 10,000의 카디널리티 테이블을 만들 것이므로 10,000개의 고유한 날짜입니다.
10,000개의 항목 목록을 반환하고 이를 테이블로 변환한 다음 해당 테이블의 이름을 바꿀 수 있습니다.
여기까지 필드를 변경할 수 있습니다. 그리고 닫기 및 적용을 클릭하면 전체 모델을 새로 고칠 필요 없이 스마트 내러티브가 동적으로 업데이트되는 것을 볼 수 있습니다(과거처럼).
이것이 완전히 역동적인 이유는 측정을 통해 모든 작업을 수행하기 때문입니다. 흥미로운 점은 많은 오류를 보여주고 있고, 함수가 너무 새로워서 IntelliSense가 제대로 집어내지 못하지만 실제로는 작동한다는 것입니다.
복잡한 DAX 측정값이 실제로 수행하는 작업을 파악하는 가장 좋은 방법이라고 생각하는 Tabular Editor 3에 대해 살펴보겠습니다.
DAX 쿼리는 스케일러가 아닌 테이블을 반환한다는 점을 기억하십시오. 따라서 이 측정값을 DAX 쿼리 로 복사하면 여기의 결과가 여전히 스케일러이기 때문에 오류가 표시됩니다 . 해당 RETURN 결과를 측정의 개별 구성 요소로 대체하는 디버깅 접근 방식을 사용할 수 있습니다 .
이 경우 이를 ColStats 로 대체합니다 . 위에서 수행한 작업은 COLUMNSTATISTICS DAX 함수를 변수에 넣는 것입니다. 이를 통해 표준 열 통계 테이블인 우리가 기대하는 것을 정확히 얻을 수 있습니다.
이제 테이블 이름 열을 살펴보고 여기에서 고유한 값을 가져와 계산하려고 합니다. 그것은 데이터 모델의 테이블 수가 될 것입니다.
먼저 ColStats 테이블에서 열을 선택하고 해당 테이블 이름 필드만 반환합니다. 일반적으로 DAX 측정값 또는 DAX 쿼리에서 앞에 테이블 이름이 있는 필드 이름을 반환하려고 합니다. 그러나 이 경우 가상으로만 존재하기 때문에 적절한 테이블 이름이 참조하는 것이 무엇인지 알 수 없습니다. 변수 이름을 테이블 이름으로 받아들이지 않는 것 같습니다.
따라서 이 경우에는 측정값처럼 보이지만 실제로는 앞에 테이블 참조가 없는 열 참조입니다. 명명법에서 혼란스럽더라도 여전히 작동합니다. 이제 이 RETURN 문을 TabCol 로 바꾸면 정확히 예상한 결과, 즉 모델 테이블 필드를 얻을 수 있습니다.
그런 다음 결과에 대해 고유한 테이블 열 수를 계산할 뿐입니다. 따라서 이를 DISTINCT(TabsCol) 로 바꾸면 7개의 테이블이 생성됩니다.
이제 가장 높은 카디널리티 테이블에서 가장 높은 카디널리티를 살펴보고 이를 어떻게 얻었는지 살펴보겠습니다. 이것은 실제로 최대 숫자뿐만 아니라 해당 숫자와 관련된 최대 속성을 찾고 있는 다양한 항목에 사용할 수 있는 중요한 패턴입니다.
이제 MaxCardinality 를 살펴보겠습니다 . 이것은 스케일러이지만, 괄호를 둘러싸는 것만으로 단일 셀 테이블로 바꿀 수 있습니다. 5를 맞추면 카디널리티 값이 10,000임을 알 수 있습니다.
이제 문제는 이것을 어떻게 가져와서 그 카디널리티와 관련된 테이블을 반환하느냐입니다.
이를 위해 사용하는 매우 일반적인 패턴을 사용합니다 . 그런 다음 이를 RETURN 문에 복사하면 예상했던 행인 10,000 날짜 열이 제공됩니다. 한 행을 가져오는 대신(TOPN이기 때문에) 동점자가 있기 때문에 두 개를 얻습니다.
또한 ColStats는 모든 테이블에 대해 테이블의 각 행에 대한 고유 식별자인 RowNumber 라는 숨겨진 인덱스 행에 인덱스를 생성합니다 . 따라서 고유 식별자인 경우 MaxCardinality는 항상 RowNumber에 의해 미러링됩니다.
따라서 우리가 보고 있는 것이 테이블 이름의 최대값이기 때문에 두 개의 행이 있는 것은 중요하지 않습니다. 그리고 그 최대값은 일부 값을 반환하기 위한 것입니다. 그러나 우리는 그 주위에 약간의 집계가 필요하며 이 경우에는 사용합니다 .
그런 다음 RETURN 문에 MaxCardinality를 배치 하고 괄호 안에 넣어 스케일러가 아닌 테이블을 반환하면 Test 값을 반환합니다.
이 TOPN DAX 패턴은 기본적으로 최대값 또는 최소값을 파악한 다음 해당 최소값 또는 최대값과 연결된 특성을 반환하려고 할 때 기억하기에 정말 좋은 패턴입니다.
고급 DAX를 사용하여 LuckyTemplates 수식 최적화 DAX
측정값 분석:
측정 분기를 사용하여 LuckyTemplates에서 긴 DAX 측정값 분류 DAX 측정값
결론
동적 방식으로 DAX 함수 COLUMNSTATISTICS를 최대한 활용하는 측면에서 사용할 수 있는 일반적인 접근 방식과 컨텍스트를 제공했습니다. 복잡한 모델의 관점에서 이것을 동적으로 추적할 수 있다는 점에서 이 기능에는 엄청난 가치가 있다고 생각합니다.
COLUMNSTATISTICS 함수와 DAX 내에서 메타데이터를 동적으로 처리하는 기능을 더 많이 실험할수록 더 흥미로운 용도를 찾을 수 있을 것 같습니다. 따라서 이 DAX 기능에 대한 몇 가지 흥미로운 용도를 이미 발견했다면 아래 댓글에서 알려주세요.
모두 제일 좋다!
SharePoint에서 계산된 열의 중요성과 목록에서 자동 계산 및 데이터 수집을 수행하는 방법을 알아보세요.
컬렉션 변수를 사용하여 Power Apps에서 변수 만드는 방법 및 유용한 팁에 대해 알아보세요.
Microsoft Flow HTTP 트리거가 수행할 수 있는 작업과 Microsoft Power Automate의 예를 사용하여 이를 사용하는 방법을 알아보고 이해하십시오!
Power Automate 흐름 및 용도에 대해 자세히 알아보세요. 다양한 작업 및 시나리오에 사용할 수 있는 다양한 유형의 흐름에 대해 설명합니다.
조건이 충족되지 않는 경우 흐름에서 작업을 종료하는 Power Automate 종료 작업 컨트롤을 올바르게 사용하는 방법을 알아봅니다.
PowerApps 실행 기능에 대해 자세히 알아보고 자신의 앱에서 바로 웹사이트, 전화, 이메일 및 기타 앱과 같은 기타 서비스를 실행하십시오.
타사 애플리케이션 통합과 관련하여 Power Automate의 HTTP 요청이 작동하는 방식을 배우고 이해합니다.
Power Automate Desktop에서 Send Mouse Click을 사용하는 방법을 알아보고 이것이 어떤 이점을 제공하고 흐름 성능을 개선하는지 알아보십시오.
PowerApps 변수의 작동 방식, 다양한 종류, 각 변수가 앱에 기여할 수 있는 사항을 알아보세요.
이 자습서에서는 Power Automate를 사용하여 웹 또는 데스크톱에서 작업을 자동화하는 방법을 알려줍니다. 데스크톱 흐름 예약에 대한 포괄적인 가이드를 제공합니다.