다음을 통해 공유


Power BI 의미 체계 모델에서 관계 탐색 및 유효성 검사

이 문서에서는 SemPy 모듈을 사용하여 Power BI 의미 체계 모델 및 pandas DataFrames 내에서 관계를 검색하고 유효성을 검사하는 방법을 알아봅니다.

데이터 과학 및 기계 학습에서는 데이터 내의 구조와 관계를 이해하는 것이 중요합니다. Power BI는 데이터를 모델링하고 시각화할 수 있는 강력한 도구이지만, 더 많은 인사이트를 얻거나 기계 학습 모델을 빌드하기 위해 의미 체계 모델의 구조를 자세히 살펴보아야 하는 경우도 있습니다. 데이터 과학자 및 비즈니스 분석가는 SemPy 라이브러리의 다양한 기능을 사용하여 Power BI 의미 체계 모델 또는 pandas DataFrame 내의 관계를 탐색할 수 있습니다.

다음에 대해 알아봅니다.

  • Power BI 의미 체계 모델에서 관계 찾기, 시각화 및 탐색
  • pandas DataFrame에서 관계 찾기 및 유효성 검사

필수 조건

  • Microsoft Fabric의 데이터 과학 환경으로 이동합니다.
  • 새 Notebook을 만들어 코드를 복사/셀에 붙여넣습니다.
  • Spark 3.4 이상의 경우 패브릭을 사용할 때 기본 런타임에서 의미 체계 링크를 사용할 수 있으며 설치할 필요가 없습니다. Spark 3.3 이하를 사용하거나 최신 버전의 의미 체계 링크로 업데이트하려는 경우 다음 명령을 실행할 수 있습니다. python %pip install -U semantic-link  
  • Notebook에 Lakehouse를 추가합니다. Spark 3.4 이상의 경우 패브릭을 사용할 때 기본 런타임에서 의미 체계 링크를 사용할 수 있으며 설치할 필요가 없습니다. Spark 3.3 이하를 사용하거나 최신 버전의 의미 체계 링크로 업데이트하려는 경우 다음 명령을 실행할 수 있습니다.

python %pip install -U semantic-link  

의미 체계 모델에서 관계 찾기

list_relationships 함수를 사용하면 Power BI 의미 체계 모델 내에서 찾은 모든 관계 목록을 검색하여 데이터의 구조와 서로 다른 테이블 및 열이 연결되는 방식을 더 잘 이해할 수 있습니다.

이 함수는 의미 체계 모델 내의 관계를 이해하는 데 필요한 메타데이터를 포함하는 주석이 추가된 DataFrame을 제공하는 의미 체계 링크를 활용하여 작동합니다. 이를 통해 의미 체계 모델의 구조를 쉽게 분석하고 기계 학습 모델 또는 기타 데이터 분석 작업에서 사용할 수 있습니다.

함수를 list_relationships 사용하려면 먼저 모듈을 sempy.fabric 가져와야 합니다. 그런 다음, 다음 코드와 같이 Power BI 의미 체계 모델의 이름 또는 UUID를 사용하여 함수를 호출할 수 있습니다.

import sempy.fabric as fabric

fabric.list_relationships("my_dataset")

이전 코드는 함수가 list_relationships my_dataset이라는 Power BI 의미 체계 모델로 호출되었음을 보여줍니다. 이 함수는 관계당 하나의 행이 있는 pandas DataFrame을 반환하므로 의미 체계 모델 내의 관계를 쉽게 탐색하고 분석할 수 있습니다.

Notebook, 의미 체계 모델(Power BI 데이터 세트) 및 Lakehouse 는 동일한 작업 영역 또는 다른 작업 영역에 있을 수 있습니다. 기본적으로 SemPy는 다음에서 의미 체계 모델에 액세스하려고 합니다.

  • Lakehouse를 전자 필기장에 연결한 경우 Lakehouse의 작업 영역입니다.
  • 연결된 Lakehouse가 없는 경우 전자 필기장의 작업 영역입니다.

SemPy가 액세스하려고 하는 기본 작업 영역에 의미 체계 모델이 없는 경우 SemPy 메서드를 호출할 때 의미 체계 모델의 작업 영역을 지정해야 합니다.

의미 체계 모델에서 관계 시각화

이 함수는 plot_relationship_metadata 의미 체계 모델의 구조를 더 잘 이해할 수 있도록 의미 체계 모델에서 관계를 시각화하는 데 도움이 됩니다.

이 함수를 사용하면 테이블과 열 간의 연결을 표시하는 그래프를 만들어 의미 체계 모델의 구조와 다양한 요소가 어떻게 관련되어 있는지 쉽게 이해할 수 있습니다.

다음 코드는 함수를 사용하는 plot_relationship_metadata 방법을 보여줍니다.

import sempy.fabric as fabric
from sempy.relationships import plot_relationship_metadata

relationships = fabric.list_relationships("my_dataset")
plot_relationship_metadata(relationships)

이전 코드에서 함수는 list_relationships my_dataset 의미 체계 모델의 관계를 검색하고 plot_relationship_metadata 이러한 관계를 시각화하는 그래프를 만듭니다.

포함할 열을 지정하고 누락된 키를 처리하는 방법을 지정하고 더 많은 graphviz 특성을 제공하여 그래프를 사용자 지정할 수 있습니다.

의미 체계 모델에서 관계 위반 살펴보기

이제 의미 체계 모델 내의 관계를 더 잘 이해했으므로 이러한 관계의 유효성을 검사하고 잠재적인 문제 또는 불일치를 식별해야 합니다. 함수가 list_relationship_violations 들어오는 위치입니다.

이 함수를 list_relationship_violations 사용하면 테이블 내용의 유효성을 검사하여 의미 체계 모델에 정의된 관계와 일치하는지 확인할 수 있습니다. 이 함수를 사용하면 지정된 관계 곱셈과의 불일치를 식별하고 데이터 분석 또는 기계 학습 모델에 영향을 주기 전에 문제를 해결할 수 있습니다.

함수를 list_relationship_violations 사용하려면 먼저 모듈을 sempy.fabric 가져오고 의미 체계 모델에서 테이블을 읽어야 합니다. 그런 다음 테이블 내용을 사용하여 테이블 이름을 DataFrames에 매핑하는 사전을 사용하여 함수를 호출할 수 있습니다.

다음 코드는 관계 위반을 나열하는 방법을 보여 줍니다.

import sempy.fabric as fabric

tables = {
    "Sales": fabric.read_table("my_dataset", "Sales"),
    "Products": fabric.read_table("my_dataset", "Products"),
    "Customers": fabric.read_table("my_dataset", "Customers"),
}

fabric.list_relationship_violations(tables)

이전 코드 list_relationship_violations 에서 함수는 my_dataset 의미 체계 모델의 Sales, ProductsCustomers 테이블을 포함하는 사전을 사용하여 호출됩니다. 이 함수는 관계 위반당 하나의 행이 있는 pandas DataFrame을 반환하므로 의미 체계 모델 내에서 문제를 쉽게 식별하고 해결할 수 있습니다.

누락된 키를 처리하는 방법을 지정하고, 검사 임계값을 설정하고, 보고할 누락된 키 수를 정의하여 함수를 사용자 지정할 수 있습니다.

이 함수를 list_relationship_violations 사용하면 의미 체계 모델이 일관되고 정확한지 확인할 수 있으므로 보다 안정적인 기계 학습 모델을 빌드하고 데이터에 대한 심층적인 인사이트를 얻을 수 있습니다.

pandas DataFrames에서 관계 찾기

패브릭 모듈의 list_relationshipsplot_relationships_df 함수는 list_relationship_violations 의미 체계 모델 내에서 관계를 탐색하기 위한 강력한 도구이지만 pandas DataFrames 형식으로 다른 데이터 원본에서 가져온 관계를 검색해야 할 수도 있습니다.

모듈의 find_relationships 함수가 sempy.relationship 작동하는 위치입니다.

이 함수는 find_relationships 데이터 과학자와 비즈니스 분석가가 Pandas DataFrames 목록 내에서 잠재적인 관계를 검색하는 데 도움이 됩니다.

이 함수를 사용하면 테이블과 열 간의 가능한 연결을 식별할 수 있으므로 데이터의 구조와 다양한 요소가 어떻게 관련되어 있는지 더 잘 이해할 수 있습니다.

다음 코드는 pandas DataFrame에서 관계를 찾는 방법을 보여 줍니다.

from sempy.relationships import find_relationships

tables = [df_sales, df_products, df_customers]

find_relationships(tables)

이전 코드 find_relationships 에서 함수는 세 개의 Pandas DataFrames 목록(, df_productsdf_customers.)을 사용하여 호출됩니다df_sales. 이 함수는 잠재적 관계당 하나의 행이 있는 pandas DataFrame을 반환하므로 데이터 내의 관계를 쉽게 탐색하고 분석할 수 있습니다.

검사 임계값, 이름 유사성 임계값, 제외할 관계 목록 및 다대다 관계를 포함할지 여부를 지정하여 함수를 사용자 지정할 수 있습니다.

pandas DataFrames에서 관계 유효성 검사

pandas DataFrames 내에서 잠재적인 관계를 검색한 후 함수를 find_relationships 사용하여 이러한 관계의 유효성을 검사하고 잠재적인 문제 또는 불일치를 식별해야 합니다. 모듈의 list_relationship_violations 함수가 sempy.relationships 작동하는 위치입니다.

list_relationship_violations 함수는 테이블 내용의 유효성을 검사하고 테이블이 검색된 관계와 일치하는지 확인하는 데 도움이 되도록 설계되었습니다.

이 함수를 사용하면 지정된 관계 곱셈과의 불일치를 식별하고 데이터 분석 또는 기계 학습 모델에 영향을 주기 전에 문제를 해결할 수 있습니다.

다음 코드는 pandas DataFrame에서 관계 위반을 찾는 방법을 보여 줍니다.

from sempy.relationships import find_relationships, list_relationship_violations

tables = [df_sales, df_products, df_customers]
relationships = find_relationships(tables)

list_relationship_violations(tables, relationships)

이전 코드 list_relationship_violations 에서 함수는 세 개의 pandas DataFrame(df_salesdf_products) 목록과 df_customers함수에서 find_relationships 가져온 DataFrame 관계를 사용하여 호출됩니다. 이 함수는 list_relationship_violations 관계 위반당 하나의 행이 있는 pandas DataFrame을 반환하므로 데이터 내의 문제를 쉽게 식별하고 해결할 수 있습니다.

누락된 키를 처리하는 방법을 지정하고, 검사 임계값을 설정하고, 보고할 누락된 키 수를 정의하여 함수를 사용자 지정할 수 있습니다.

pandas DataFrames와 함께 함수를 사용하면 list_relationship_violations 데이터가 일관되고 정확한지 확인할 수 있으므로 보다 안정적인 기계 학습 모델을 빌드하고 데이터에 대한 심층적인 인사이트를 얻을 수 있습니다.