다음을 통해 공유


의미 체계 링크를 사용한 Power BI 연결

Power BI 연결은 Microsoft Fabric의 의미 체계 링크의 핵심입니다. 이 문서에서는 의미 체계 링크가 Python pandas 및 Apache Spark 에코시스템의 사용자를 위한 의미 체계 모델에 대한 연결을 제공하는 방법을 설명합니다.

의미 체계 모델은 일반적으로 업스트림 데이터 처리 및 구체화의 결과인 높은 데이터 표준을 나타냅니다. 비즈니스 분석가는 다음을 수행할 수 있습니다.

  • 도메인 지식 및 비즈니스 논리를 Power BI 측정값으로 인코딩합니다.
  • 의미 체계 모델을 사용하여 Power BI 보고서를 만듭니다.
  • 이러한 보고서를 사용하여 비즈니스 의사 결정을 내릴 수 있습니다.

동일한 의미 체계 모델을 사용하는 데이터 과학자가 다른 코드 환경 또는 언어에서 비즈니스 논리를 복제하려고 하면 심각한 오류가 발생할 수 있습니다. 의미 체계 링크는 비즈니스 분석가와 데이터 과학자가 원활하게 협업하고 데이터 불일치를 줄일 수 있는 방법을 제공하기 위해 Microsoft Fabric 환경의 의미 체계 모델과 Synapse 데이터 과학 간의 격차를 해소합니다.

의미 체계 링크는 다음을 위한 연결을 제공합니다.

  • SemPy Python 라이브러리통해 Python pandas 에코시스템
  • PySpark, Spark SQL, R 및 Scala를 지원하는 Spark 네이티브 커넥터를 통한 의미 체계 모델입니다.

pandas 사용자를 위한 SemPy Python 라이브러리를 통한 데이터 연결

SemPy Python 라이브러리는 의미 체계 링크 기능의 일부이며 pandas 사용자를 제공합니다. SemPy 기능에는 테이블에서 데이터 검색, 측정값 계산, DAX(데이터 분석 식) 쿼리 및 메타데이터 실행이 포함됩니다.

  • Spark 3.4 이상의 경우 패브릭을 사용할 때 기본 런타임에서 의미 체계 링크를 사용할 수 있으며 설치할 필요가 없습니다.

  • Spark 3.3 이하 또는 최신 버전의 의미 체계 링크로 업데이트하려면 다음 명령을 실행합니다.

    %pip install -U semantic-link
    

또한 SemPy는 Power BI 데이터 원본에서 전파된 추가 메타데이터를 사용하여 pandas DataFrames를 확장합니다. 이 메타데이터에는 다음이 포함됩니다.

  • Power BI 데이터 범주:
    • 지리적: 주소, 장소, 도시
    • URL: 웹 URL, 이미지 URL
    • 바코드
  • 테이블 간 관계
  • 계층 구조

의미 체계 링크 Spark 네이티브 커넥터를 사용하면 Spark 사용자가 Power BI 테이블 및 측정값에 액세스할 수 있습니다. 커넥터는 언어에 구애받지 않으며 PySpark, Spark SQL, R 및 Scala를 지원합니다.

Spark 네이티브 커넥터를 사용하려면 의미 체계 모델을 Spark 네임스페이스로 나타내고 Power BI 테이블을 Spark 테이블로 투명하게 노출합니다.

다음 명령은 Spark SQL용 Power BI Spark 네이티브 커넥터를 사용하도록 Spark를 구성합니다.

spark.conf.set("spark.sql.catalog.pbi", "com.microsoft.azure.synapse.ml.powerbi.PowerBICatalog")

# Optionally, configure the workspace using its ID
# Resolve workspace name to ID using fabric.resolve_workspace_id("My workspace")
# Replace 00000000-0000-0000-0000-000000000000 with your own workspace ID
# spark.conf.set("spark.sql.catalog.pbi.workspace, "00000000-0000-0000-0000-000000000000")

다음 명령은 의미 Sales Dataset체계 모델의 모든 테이블을 나열합니다.

%%sql
SHOW TABLES FROM pbi.`Sales Dataset`

다음 명령은 의미 체계 모델의 Sales Dataset테이블 데이터를 Customer 표시합니다.

%%sql
SELECT * FROM pbi.`Sales Dataset`.Customer

Power BI 측정값은 다차원 Power BI를 사용하여 관계형 Spark SQL을 연결하는 가상 _Metrics 테이블을 통해 액세스할 수 있습니다. 다음 예제 Total Revenue 에서는 의미 체계 모델에 정의된 Sales Dataset 측정값이고 Revenue Budget 다른 열은 차원입니다. 같은 AVG 집계 함수는 측정값에 대해 무시되며 SQL과 일관성을 제공하기 위해서만 존재합니다.

커넥터는 Power BI 최적화 엔진을 사용할 수 있도록 Spark 식에서 Power BI 엔진으로의 계산 Customer[State] in ('CA', 'WA') 조건자 푸시다운을 지원합니다.

SELECT
    `Customer[Country/Region]`,
    `Industry[Industry]`,
    AVG(`Total Revenue`),
    AVG(`Revenue Budget`)
FROM
    pbi.`Sales Dataset`.`_Metrics`
WHERE
    `Customer[State]` in ('CA', 'WA')
GROUP BY
    `Customer[Country/Region]`,
    `Industry[Industry]`

Power BI 측정값을 사용한 데이터 확대

add_measure 작업은 의미 체계 모델의 측정값으로 데이터를 보강할 수 있는 의미 체계 링크의 강력한 기능입니다. 이 작업은 SemPy Python 라이브러리에서만 사용할 수 있으며 Spark 네이티브 커넥터에서는 지원되지 않습니다. 메서드에 대한 add_measure 자세한 내용은 클래스 설명서의 FabricDataFrame add_measure 참조하세요.

SemPy Python 라이브러리를 사용하려면 Notebook 셀에서 다음 코드를 실행하여 Notebook 커널에 설치합니다.

# %pip and import only needs to be done once per notebook
%pip install semantic-link
from sempy.fabric import FabricDataFrame

다음 코드 예제에서는 의미 체계 모델의 측정값으로 보강하려는 데이터가 포함된 기존 FabricDataFrame이 있다고 가정합니다.

df = FabricDataFrame({
        "Sales Agent": ["Agent 1", "Agent 1", "Agent 2"],
        "Customer[Country/Region]": ["US", "GB", "US"],
        "Industry[Industry]": ["Services", "CPG", "Manufacturing"],
    }
)

joined_df = df.add_measure(["Total Revenue", "Total Budget"], dataset="Sales Dataset")

이 메서드는 add_measure 다음 단계를 수행합니다.

  1. FabricDataFrame의 열 이름을 Power BI 차원으로 확인합니다. 이 작업은 지정된 의미 체계 모델 내에서 확인할 수 없는 열 이름을 무시합니다. 자세한 내용은 지원되는 DAX 구문을 참조하세요.
  2. group by 확인된 열 이름을 사용하여 열을 정의합니다.
  3. 수준에서 하나 이상의 측정값을 계산합니다 group by .
  4. FabricDataFrame의 기존 행을 사용하여 결과를 필터링합니다.