チュートリアルのこのセクションでは、Lakehouse データからセマンティック モデルを作成し、ファクト テーブルとディメンション テーブル間のリレーションシップを定義します。 データ モデルを配置すると、Power BI レポートを作成できます。
前提条件
開始する前に、このシリーズの前のチュートリアルを完了する必要があります。
セマンティック モデルを作成する
Power BI は Fabric にネイティブに統合されています。 レイクハウスからセマンティック モデルを作成すると、 Direct Lake モードが使用されます。Direct Lake モードでは、データをインポートまたは複製することなく、高速分析のために OneLake からメモリに直接データを読み込みます。
ブラウザーで、 Fabric ポータルで Fabric ワークスペースに移動します。
wwilakehouse を選択して開きます。
画面の右上にある Lakehouse ドロップダウン メニューから、SQL analytics エンドポイント を選択します。
[SQL 分析エンドポイント] ウィンドウから、作成したすべてのテーブルを表示できます。 まだ表示されない場合は、左上にある [更新 ] アイコンを選択します。
リボンから [新しいセマンティック モデル ] を選択します。
[ 新しいセマンティック モデル ] ダイアログ ボックスで、次の手順を実行します。
- セマンティック モデルの名前を入力します (例: "WWI Sales Model")
- 保存するワークスペースを選択する
- このチュートリアル シリーズで作成したすべてのテーブルを選択する
- [確認] を選択します
lakehouse スキーマを使用して不足しているテーブルのトラブルシューティングを行う
セマンティック モデルの作成時に lakehouse スキーマ を有効にし、"ソース Delta テーブルにアクセスできません" のようなエラーが発生した場合、テーブルが Spark メタストアに登録されていない可能性があります。 この問題を解決するには、lakehouse に接続されているノートブックを開き、次のコードを実行してテーブルを明示的に登録します。
ヒント
前のチュートリアルで使用したノートブックに戻り、新しいノートブックを作成する代わりに、このコードを新しいセルとして追加できます。
tables = ['fact_sale', 'dimension_city', 'dimension_customer', 'dimension_date',
'dimension_employee', 'dimension_stock_item',
'aggregate_sale_by_date_city', 'aggregate_sale_by_date_employee']
for table in tables:
df = spark.read.format("delta").load(f"Tables/{table}")
df.write.mode("overwrite").option("overwriteSchema", "true").format("delta").saveAsTable(table)
コードが正常に実行されたら、SQL 分析エンドポイントに戻り、セマンティック モデルをもう一度作成します。
テーブルのリレーションシップを定義する
複数のテーブルのデータを結合するレポートを作成するには、ファクト テーブルと各ディメンション テーブルの間のリレーションシップを定義します。 これらのリレーションシップは、視覚化を構築するときにテーブルを結合する方法を Power BI に指示します。
ワークスペースに移動し、作成したセマンティック モデルを選択して開きます。
ツール バーから [開く ] を選択して、Web モデリング エクスペリエンスを開きます。
右上隅にあるドロップダウンを選択し、[ 編集] を選択して編集モードに切り替えます。
fact_saleテーブルから CityKey フィールドを選択し、dimension_city テーブルの CityKey フィールドにドラッグしてリレーションシップを作成します。
[ 新しいリレーションシップ ] ダイアログ ボックスが表示され、次の既定の設定が表示されます。
- テーブルから取得する: fact_sale と 列の CityKey。
- テーブルへ: dimension_city と 列 CityKey。
- カーディナリティ: 多対 1 (*:1)。
- クロス フィルターの方向: 単一。
- このリレーションシップをアクティブに設定します:選択されました。
[ 参照整合性を想定する] の横にあるボックスを選択し、[保存] を選択 します。
注意
このレポートのリレーションシップを定義するときは、 fact_sale が常に From テーブル であり、 dimension_* テーブルが To テーブルであることを確認します。その逆ではありません。
前の手順を繰り返して、残りのディメンション テーブルのリレーションシップを作成します。 リレーションシップごとに、キー列を選択し、 fact_sale からディメンション テーブル内の一致する列にドラッグします。 参照整合性の想定を含め、以前と同じ新しいリレーションシップ設定を使用します。
fact_saleからドラッグする テーブルへ 列へ StockItemKey(在庫アイテムキー) dimension_stock_item ストックアイテムキー SalespersonKey ディメンション_従業員 EmployeeKey カスタマーキー dimension_customer (ディメンション_カスタマー) カスタマーキー 請求書日付キー 日付ディメンション 日付 これらのリレーションシップを追加すると、次の図に示すように、データ モデルをレポートする準備が整います。
レポートを作成する
セマンティック モデルとリレーションシップを配置すると、データ モデルをレポートする準備が整います。 セマンティック モデルから、リボンの [新しいレポート ] を選択して Power BI レポート キャンバスを開き、データを使用して視覚化を作成できます。
レポートの作成の詳細については、「 Microsoft Fabric でのセマンティック モデルに関するレポートの作成」を参照してください。