トピック1、Litware. Inc.のケーススタディ
概要
Litware. Inc.は、北米全域にオフィスを構える製造会社です。Litwareの分析チームには、データエンジニア、アナリティクスエンジニア、データアナリスト、データサイエンティストが所属しています。
既存の環境
litware は3年間 Microsoft Power BI テナントを使用しています。Litware は Fabric の容量や機能を一切有効化していません。
ファブリック環境
Litware には、次の表に示すように分析する必要があるデータがあります。

製品データには、1 つのテーブルと次の列が含まれています。

顧客満足度データには次のテーブルが含まれています。
* 調査
* 質問
* 応答
提出された調査ごとに、次の処理が行われます。
* 調査テーブルに 1 行が追加されます。
* アンケートの質問ごとに、回答テーブルに 1 行が追加されます。
質問テーブルには、各アンケートの質問テキストが含まれています。各アンケート回答の3番目の質問は、全体的な満足度スコアです。お客様は購入ごとにアンケートを送信できます。
ユーザーの問題
分析チームは大量のデータを保有しており、その一部は半構造化されています。チームはFabricを使用して新しいデータストアを作成したいと考えています。
商品データは、高価格、中価格、低価格の3つの価格グループに分類されることがよくあります。このロジックは複数のデータベースやセマンティックモデルに実装されていますが、実装間で必ずしも一致するとは限りません。
計画された変更
Litwareは、既存のテナントでFabric機能を有効化する予定です。アナリティクスチームは、概念実証(PoC)として新しいデータストアを作成します。残りのLitwareユーザーは、PoC完了後にのみFabric機能にアクセスできるようになります。PoCは、Fabricのトライアルキャパシティを使用して完了します。
次の 3 つのワークスペースが作成されます。
* AnalyticsPOC: データストア、セマンティックモデル、レポート、パイプライン、データフロー、およびデータストアへのデータ入力に使用されるノートブックが含まれます。
* DataEngPOC: Onelake にデータを入力するために使用されるすべてのパイプライン、データフロー、ノートブックが含まれます
* DataSciPOC: データ サイエンティストが作成したすべてのノートブックとレポートが含まれます。AnalyticsPOC ワークスペースには次のものが作成されます。
* データストア(種類は未定)
* カスタムセマンティックモデル
* デフォルトのセマンティックモデル
* インタラクティブレポート
データエンジニアは、データソースに応じて1時間ごとまたは毎日OneLakeにデータをロードするためのデータパイプラインを作成します。アナリティクスエンジニアは、データの取り込み、変換、そしてAnalyticsPOCワークスペース内のデータストアへの毎日のロードを行うプロセスを作成します。可能な限り、データエンジニアはローコードツールを用いてデータの取り込みを行います。使用するデータクレンジングおよび変換ツールの選択は、データエンジニアの裁量に委ねられます。
Analytics POC ワークスペース内のすべてのセマンティック モデルとレポートでは、データ ストアが唯一のデータ ソースとして使用されます。
技術要件
データ ストアは以下をサポートする必要があります。
* T-SQLまたはPythonを使用した読み取りアクセス
* 半構造化データと非構造化データ
* T-SQLクエリを実行するユーザー向けの行レベルセキュリティ(RLS)
データ エンジニアが OneLake にロードするファイルは Parquet 形式で保存され、Delta Lake の仕様に準拠します。
データはAnalyticsPOCデータストアの1つの領域に変換されることなくロードされます。その後、データはクレンジング、マージされ、ディメンションモデルに変換されます。
データ ロード プロセスでは、ディメンション モデルにデータを入力する前に、生データとクレンジング済みデータが完全に更新されていることを確認する必要があります。
ディメンションモデルには日付ディメンションが含まれている必要があります。日付ディメンションに対応する既存のデータソースはありません。Litware の会計年度は暦年と一致しています。日付ディメンションには、常に 2010 年から当年度末までの日付が含まれている必要があります。
製品の価格設定グループのロジックは、アナリティクスエンジニアが一元的に管理する必要があります。価格設定グループのデータは、T-SQLクエリとデフォルトのセマンティックモデルでデータストアから利用できるようにする必要があります。以下のロジックを使用する必要があります。
* 定価が 50 以下の場合は、低価格グループに入ります。
* 定価が 50 より大きく 1,000 以下の場合は、中価格グループになります。
* リスト価格が 1,000 を超える場合は、高価格グループに入ります。
セキュリティ要件
PoCの一環として作成されたFabricアイテムは、Fabric管理者と分析チームのみが閲覧できる必要があります。Litwareは、AnalyticsPOCワークスペース内のFabricアイテムに対して、以下のセキュリティ要件を定めています。
* Fabric 管理者はワークスペース管理者になります。
* データエンジニアはデータストアの読み取りと書き込みができる必要があります。データセットやレポートへのアクセスは許可しないでください。
* アナリティクスエンジニアは、データストアのスキーマの読み取り、書き込み、作成ができる必要があります。また、セマンティックモデルを作成してデータアナリストと共有し、ワークスペース内のすべてのレポートを表示および変更できる必要があります。
* データサイエンティストはデータストアからの読み取りは可能ですが、書き込みはできません。データへのアクセスにはSparkノートブックを使用します。
* データアナリストは、データストア内のディメンションモデルオブジェクトのみに対する読み取りアクセス権を持っている必要があります。また、分析エンジニアが作成したセマンティックモデルを使用してPower BIレポートを作成するためのアクセス権も必要です。
* 日付ディメンションは、データ ストアのすべてのユーザーが使用できる必要があります。
* 最小権限の原則に従う必要があります。
デフォルトおよびカスタムのセマンティックモデルには、データストア内のディメンションモデルのテーブルまたはビューのみを含める必要があります。Litware には、以下の Microsoft Entra セキュリティグループが既に存在します。
* FabricAdmins: ファブリック管理者
* AnalyticsTeam: 分析チームの全メンバー
* データアナリスト: 分析チームのデータアナリスト
* データサイエンティスト: 分析チームのデータサイエンティスト
* データエンジニア: 分析チームのデータエンジニア
* アナリティクスエンジニア: アナリティクスチームのアナリティクスエンジニア
報告書の要件
データ分析では、次の要件を満たす顧客満足度レポートを作成する必要があります。
* ユーザーが製品を選択して、顧客アンケートの回答をその製品を購入した人だけに絞り込むことができます。
* 過去 12 か月間に選択した日付までに提出されたすべてのアンケートの平均総合満足度スコアを表示します。
* データストアでデータが更新されるとすぐにデータを表示します
* レポートとセマンティックモデルに現在と前年のデータのみが含まれていることを確認します
* レポートがソースデータストアで指定されたテーブルレベルのセキュリティを遵守していることを確認します
* レポートクエリの実行時間を最小限に抑えます