자습서: Jupyter Notebook에서 Power BI 측정값 추출 및 계산
이 자습서에서는 SemPy(프리뷰)를 사용하여 의미 체계 모델(Power BI 데이터 세트)의 측정값을 계산하는 방법을 보여 줍니다.
이 자습서에서는 다음을 하는 방법을 알아볼 수 있습니다.
- 의미 체계 링크의 Python 라이브러리(SemPy)의 Python 인터페이스를 통해 프로그래밍 방식으로 Power BI 측정값을 평가합니다.
- AI와 BI 간의 격차를 해소하는 데 도움이 되는 SemPy의 구성 요소에 대해 알아볼 수 있습니다. 이러한 구성 요소는 다음과 같습니다.
- FabricDataFrame - 추가적인 의미 체계 정보를 통해 향상된 Pandas와 유사한 구조입니다.
- 원시 데이터, 구성, 측정값을 포함한 의미 체계 모델을 가져올 수 있는 유용한 함수입니다.
필수 조건
Microsoft Fabric 구독을 구매합니다. 또는 무료 Microsoft Fabric 평가판에 등록합니다.
Microsoft Fabric에 로그인합니다.
홈페이지 왼쪽의 환경 전환기를 사용하여 Synapse 데이터 과학 환경으로 전환합니다.
왼쪽 탐색 창에서 작업 영역을 선택하여 내 작업 영역을 찾아 선택합니다. 이 작업 영역은 현재 작업 영역이 됩니다.
Retail Analysis Sample PBIX.pbix 의미 체계 모델을 다운로드하여 작업 영역에 업로드합니다.
Notebook에서 따라 하기
이 자습서에는 powerbi_measures_tutorial.ipynb Notebook이 함께 제공됩니다.
이 자습서에 함께 제공되는 Notebook을 열려면 데이터 과학 자습서를 위한 시스템 준비의 지침에 따라 Notebook을 작업 영역으로 가져옵니다.
이 페이지에서 코드를 복사하여 붙여넣으려는 경우 새 Notebook을 만들 수 있습니다.
코드 실행을 시작하기 전에 Notebook에 레이크하우스를 연결해야 합니다.
Notebook 설정
이 섹션에서는 필요한 모듈 및 데이터를 통해 Notebook 환경을 설정합니다.
Notebook 내의
%pip
인라인 설치 기능을 사용하여 PyPI에서SemPy
를 설치합니다.%pip install semantic-link
나중에 필요한 모듈을 가져옵니다.
import sempy.fabric as fabric
Power BI 작업 영역에 연결할 수 있습니다. 작업 영역의 의미 체계 모델을 나열합니다.
fabric.list_datasets()
의미 체계 모델을 로드합니다. 이 자습서에서는 소매 분석 샘플 PBIX 의미 체계 모델을 사용합니다.
dataset = "Retail Analysis Sample PBIX"
작업 영역 측정값 나열
다음과 같이 SemPy의 list_measures
함수를 사용하여 의미 체계 모델의 측정값을 나열합니다.
fabric.list_measures(dataset)
측정값 평가
이 섹션에서는 SemPy의 evaluate_measure
함수를 사용하여 다양한 방법으로 측정값을 평가합니다.
원시 측정값 평가
다음 코드에서는 SemPy의 evaluate_measure
함수를 사용하여 ‘평균 판매 영역 크기’라고 하는 미리 구성된 측정값을 계산합니다. 이전 셀의 출력에서 이 측정값의 기본 수식을 볼 수 있습니다.
fabric.evaluate_measure(dataset, measure="Average Selling Area Size")
groupby_columns
을 통해 측정값 평가
추가 매개 변수 groupby_columns
을 제공하여 측정값 출력을 특정 열별로 그룹화할 수 있습니다.
fabric.evaluate_measure(dataset, measure="Average Selling Area Size", groupby_columns=["Store[Chain]", "Store[DistrictName]"])
이전 코드에서는 의미 체계 모델에서 Chain
테이블의 열 DistrictName
과 Store
으로 그룹화했습니다.
필터를 통해 측정값 평가
filters
매개 변수를 사용하여 특정 열에 대해 결과에 포함할 수 있는 특정 값을 지정할 수도 있습니다.
fabric.evaluate_measure(dataset, \
measure="Total Units Last Year", \
groupby_columns=["Store[Territory]"], \
filters={"Store[Territory]": ["PA", "TN", "VA"], "Store[Chain]": ["Lindseys"]})
이전 코드에서 Store
는 테이블의 이름이고, Territory
는 열 이름이며, PA
는 필터에서 허용하는 값 중 하나입니다.
여러 테이블에서 측정값 평가
의미 체계 모델에서 여러 테이블에 걸쳐 있는 열별로 측정값을 그룹화할 수 있습니다.
fabric.evaluate_measure(dataset, measure="Total Units Last Year", groupby_columns=["Store[Territory]", "Sales[ItemID]"])
여러 측정값 평가
이 함수 evaluate_measure
를 사용하면 여러 측정값의 식별자를 제공하고 계산된 값을 동일한 DataFrame에 출력할 수 있습니다.
fabric.evaluate_measure(dataset, measure=["Average Selling Area Size", "Total Stores"], groupby_columns=["Store[Chain]", "Store[DistrictName]"])
Power BI XMLA 커넥터 사용
기본 의미 체계 모델 클라이언트는 Power BI의 REST API를 통해 지원됩니다. 이 클라이언트에서 쿼리를 실행하는 데 문제가 있는 경우 use_xmla=True
를 사용하여 백 엔드를 Power BI의 XMLA 인터페이스로 전환할 수 있습니다. SemPy 매개 변수는 XMLA를 사용한 측정값 계산에서도 동일하게 유지됩니다.
fabric.evaluate_measure(dataset, \
measure=["Average Selling Area Size", "Total Stores"], \
groupby_columns=["Store[Chain]", "Store[DistrictName]"], \
filters={"Store[Territory]": ["PA", "TN", "VA"], "Store[Chain]": ["Lindseys"]}, \
use_xmla=True)
관련 콘텐츠
의미 체계 링크/SemPy에 대한 다른 자습서를 확인해 볼 수 있습니다.