セマンティック モデルからのセマンティック データ伝達

セマンティックモデルFabricDataFrameに読み込むと、FabricDataFrameは自動的にメタデータや注釈などのセマンティック情報をセマンティックモデルから取得します。 この記事では、セマンティック モデルのテーブルと列にアタッチされている注釈を SemPy Python ライブラリで保持する方法について説明します。

pandas ユーザーのセマンティック伝達

SemPy Python ライブラリはセマンティック リンク機能の一部であり、pandas ユーザーにサービスを提供します。 SemPy では、pandas でデータに対して実行できる操作がサポートされています。

SemPy を使用すると、操作するセマンティック モデルからセマンティック データを伝達することもできます。 セマンティック データを伝達することで、スライス、マージ、連結などの操作を実行するときに、セマンティック モデルのテーブルと列にアタッチされている注釈を保持できます。

FabricDataFrame データ構造は、次の 2 つの方法のいずれかで作成できます。

  • セマンティック モデルから、テーブルまたはメジャーの出力を FabricDataFrame に読み込むことができます。

    セマンティック モデルから FabricDataFrame に読み込むと、Power BI のメタデータが自動的に FabricDataFrame にハイドレートされます (取り込まれます)。 つまり、モデルのテーブルまたはメジャーからのセマンティック情報は FabricDataFrame に保持されます。

  • pandas DataFrames の場合と同様に、メモリ内データを使用して FabricDataFrame を作成できます。

    メモリ内データから FabricDataFrame を作成する場合は、FabricDataFrame がメタデータ情報をプルできるセマンティック モデルの名前を指定する必要があります。

SemPy がセマンティック データを保持する方法は、実行する操作や、操作する FabricDataFrames の順序などの要因によって異なります。

マージを使用したセマンティック伝達

2 つの FabricDataFrame をマージした場合、SemPy がセマンティック情報を伝達する方法は、データフレームの順序によって決まります。

  • 両方の FabricDataFrame に注釈が付いている場合は、左側の FabricDataFrame のテーブル レベルのメタデータが優先されます。 同じルールが個々の列に適用されます。左側の FabricDataFrame の列注釈は、右側の DataFrame の列注釈よりも優先されます。

  • 1 つの FabricDataFrame にのみ注釈が付いている場合、SemPy はそのメタデータを使用します。 同じルールが個々の列に適用されます。SemPy は、注釈が付いている FabricDataFrame に存在する列注釈を使用します。

連結を使用したセマンティック伝達

複数の FabricDataFrame を連結する場合、SemPy は列ごとに、列名と一致する最初の FabricDataFrame からメタデータをコピーします。 複数の一致があり、メタデータが同じでない場合、SemPy は警告を発行します。

FabricDataFrame を最初に配置することで、通常の pandas DataFrames と FabricDataFrame の連結を伝達することもできます。

Spark ユーザー向けのセマンティック伝播

セマンティック リンク Spark ネイティブ コネクタは、Spark 列のメタデータ ディクショナリを ハイドレート (または設定) します。 現在、セマンティック伝達のサポートは制限されており、スキーマ情報の伝達方法に関する Spark の内部実装の対象となります。 たとえば、列の集計によりメタデータが削除されます。