資格概要
AIスキルチャレンジ:Fabric Analytics Engineer
1. エンドツーエンドの分析の概要
Fabricを構成するワークロード
・全てのワークロードがOneLakeに接続している
・Fabric=ADLS+ PowerBI
・Azure SynapseAnalysis、Azure DataFactory、Azure Databriks、Azure MachineLearningの機能が搭載されている
OneLake
・ALDS(Azure Data Lake Storage)上に構築されている
・Delta、Parquet、CSV、JSON などの任意のストレージ形式でデータを格納できる(既定の形式はDeltaParquet)
Fabric管理ポータル
Fabricにおけるデータ資産保護
Purview(データ資産の保護とコンプライアンス)と統合されているため、Purviewの秘密度ラベルを使ってデータ保護されている
DirectLakeモード
Fabricの有効化
Fabricはテナント単位(組織全体)または容量単位(特定のユーザグループ)レベル
Fabricを有効にするために必要なアクセス許可
・Fabric管理者(旧PowerBI管理者)
・PowerPlatform管理者
・Microsoft365管理者
ライセンスの種類
Fabricワークスペース
すべてのFabricアイテム(レイクハウス、ノートブック、パイプラインなど)は OneLake に格納され、Fabricワークスペースを介してアクセスされる
2. レイクハウス
レイクハウスの概要
2種のデータストア
・データレイク:柔軟でスケーラブルな分散ファイルストレージ
・データウェアハウス:SQLによる分析が可能なRDB
の特徴を組み合わせたもの
Fabricにおけるレイクハウスの実装
・ビッグデータ処理や機械学習のためにApacheSparkとSQLを使用している
・高可用性とDRを備えている
・スキーマオンリード形式:定義済みスキーマを使用するのではなく、スキーマは自分で必要に応じて定義して使う
・DeltaLake形式のテーブルにより、トランザクションのACIDが確保されている
データインジェストの自動化
DataFactory
・データフロー(Gen2):PowerQueryを使って設定
・データパイプライン:データフローやSparkを組み合わせた複雑なデータ変換プロセスを実装できる
Lakehouseの作成
①DataEngineeringワークロードから、Lakehouseを新規作成する
②レイクハウスが作成され、2個の項目が紐づく
・セマンティックモデル(既定)
・SQL分析エンドポイント
③レイクハウスの編集モードは2種
・レイクハウス:フォルダ形式
・SQL分析エンドポイント:SQL形式
ショートカット
・データを外部ストレージ(他のクラウドサービスプロバイダなど)に格納したまま、レイクハウスに統合できる技術
・レイクハウス内のフォルダとして扱えるようになる
・外部ストレージに対するアクセス許可と資格情報は、OneLakeで管理される
・ショートカットが使えない(使えるデータソースコネクタがない)場合は、レイクハウスに直接データを取り込むことになる
直接データ取り込み
・ローカルファイルのアップロード
・データフロー(Gen2):PowerQueryOnlineを使う
・データパイプライン
・ノートブック
レイクハウスに対するアクセス許可
・ワークスペース全体に対してアクセス権を定義できるが、レイクハウス単体に対してもアクセス権を定義できる
・さらに、SQL分析エンドポイント経由でFabric外からアクセスさせることも可能
・ユーザがSSMS(SQL Server Management Studio)などで分析することもできる
レイクハウスに対する検索と変換
ApacheSpark
・ノートブック:対話型コーディングUI
・Sparkジョブ定義:スクリプトでスケジュールを記述
SQL分析エンドポイント
・Transact-SQLを実行可能
データフロー(Gen2)
・取り込みだけでなく変換も可能
データパイプライン
・Sparkジョブやデータフローを組み合わせられる
レイクハウス上のデータを分析・視覚化
データは「セマンティックモデル」と呼ばれるリレーショナルモデルで格納されている
PowerBIのデータソースとしてセマンティックモデルを使用できる
演習 - Microsoft Fabric Lakehouse でデータを作成して取り込む
まとめ
3. Spark
ビッグデータ処理に使われる分散処理コンピューティングリソース
レイクハウスからデータを取り込み、処理して、分析するために使う
Azureにおいて、Azure HDInsight、Azure Databricks、Azure Synapse Analytics、Microsoft Fabric など、複数のプラットフォーム実装で利用できる
Sparkの設定
ワークスペースの設定→データエンジニアリング/サイエンス→Sparkの設定
Spark コードを実行する
実行する方法
・ノートブックを使う:対話的に実行する
・Sparkジョブを使う:Pythonスクリプトをアップロードする
Spark データフレーム内のデータを操作する
Sparkで使われるデータ構造
・耐障害性分散データセット(RDD)
・データフレーム:PythonのPandasデータフレームに似ている
Spark SQLを使用してデータを操作する
Sparkライブラリでは、データアナリストがPythonではなくSQLでもデータ操作できるように、Spark SQL APIが用意されている
Sparkノートブックでデータを視覚化する
ノートブックでは、クエリ実行結果をグラフとして可視化する機能がある
MatplotlibやSeabornなどのライブラリを使って独自の可視化を作成することも可能
演習 - Apache Spark を使用してデータを分析する
まとめ
Hadoop->HDInsight vs. Spark->Databricks
・HDInsight:Hadoopがベース
・Databricks:Sparkがベース
4. DeltaLakeテーブル
Fabricレイクハウスのテーブルは、DeltaLakeストレージ形式(Sparkでよく使われる)になっている
RDBと同様にSQLベースで操作できるため、DeltaLakeAPIを直接操作することは不要
Delta Lake メタストア アーキテクチャについての理解と、より特殊ないくつかの Delta テーブル操作に慣れ親しんでおくとよい
DeltaLakeとは
Deltaテーブルの構成要素
・Parquet形式のデータファイル
・JSON形式のトランザクションファイル(_delta_Log)
DeltaLakeを使うことにより以下がサポートされる
・RDBと同様のCRUD操作
・トランザクション(テーブル操作処理)のACID特性
・データのバージョン管理と復元(タイムトラベル)
・静的データだけでなくストリーミングデータも格納可能
Deltaテーブルの作成方法
①既存ファイルから差分テーブル(データファイルとテーブルスキーマ定義の両方)を作成する
・マネージドテーブル:テーブルを削除すると、元ファイルも削除される
・外部テーブル:テーブルを削除しても、元ファイルは削除されない
②テーブルスキーマ定義のみを新規作成する(データファイルは保存しない)
・DeltaTableBuilder APIを使う
・SparkSQLを使う
③テーブルスキーマ定義を作成せずにデータファイルのみ保存する(上書き用)
Deltaテーブルの操作方法
①SparkSQLライブラリを使う:他言語(PySparkやScala)にSQLステートメントを埋め込む
②DeltaLakeAPIを使用する
ストリーミングデータを使用する(Spark Structured Streaming)
Deltaテーブルは以下のいずれかに使える
・ストリーミングソース(入力元):Deltaテーブルからデータを読み込む
・ストリーミングシンク(出力先、宛先):Deltaテーブルにデータを書き込む
演習 - Apache Spark でデルタ テーブルを使用する
5. データパイプライン
FabricのDataFactoryワークロードでは、パイプラインを作成できる
パイプラインの役割は、複数のデータ関連プロセスの調整と管理を指し、それらが確実に連携して望ましい結果を得られるようにすること(データオーケストレーション)
データのインポート(import) vs. データのインジェスト(ingest)
・インポート:必要に応じて、一度に大量に(一括で)、手作業で
・インジェスト:継続的に、一定量ずつ、自動化された処理で(パイプラインなど)
パイプラインとは
・ETLプロセスを自動化する
・運用データストア(レイクハウスなど)からの抽出
・変換
・分析データストアへの読み込み
・データインジェスト(読み込み)と変換のタスクを調整する
・パイプラインの実行方法
・オンデマンド実行
・スケジューラ実行
パイプラインキャンバス
ローコードツール
アクティビティ:実行可能なタスク、実行結果(成功/失敗)を出力する
・データ変換アクティビティ
・データのコピー:データソースからコピー
・データフロー:データを変換(※「6. データフロー(Gen2)」で解説)
・メタデータの取得
・ノートブック:Sparkノートブックを実行
・ストアドプロシージャ:SQLクエリを実行
・データの削除
・制御フローアクティビティ
・ループ
・条件付き分岐
パラメータを使用すると、パイプラインの柔軟性が向上する
パイプラインテンプレートの利用
パイプラインの監視
演習 - パイプラインを使用してデータを取り込む
まとめ
6. データフロー(Gen2)
PowerQueryOnlineを使ってデータのインジェストと変換をローコードで作成する
データフローを作成することで、変換処理を再利用可能にする
データフローの使い方
ETLプロセス(抽出→変換→読み込み)に使う
①データフローを作成して、データパイプライン上に追加する
②レイクハウスなどにデータを読み込む
ELTプロセス(抽出→読み込み→変換)に使う
①データパイプラインを使ってあらかじめレイクハウスにデータを読み込む
②レイクハウスにデータフローを接続し、変換を行う
データフローの利点と制限事項
データフローの作り方
DataFactoryワークロードのPowerQueryOnlineで作成できる
ダイヤグラムビューで視覚的に確認できる
M言語でスクリプトを記載することもできる
データフローをデータパイプラインに組み込む
演習 - Microsoft Fabric でデータフロー Gen2 を作成して使用する
まとめ
7. ノートブック
・データフロー:小規模なセマンティック モデルや単純な変換に最適
・ノートブック:大規模なセマンティック モデルや複雑な変換に最適
ノートブックによるデータインジェストの利点
・処理を自動化できる
・処理が高速:データフローはUIで処理を組めるが、大規模で複雑になると速度が落ちる
・複雑な変換ができる:データパイプラインだけではコピーぐらいしかできない
Fabricノートブックで使用できる言語
・Python(PySpark):既定
・HTML
・Scala(SparkScala)
・SparkSQL
・R(SparkR)
レイクハウスへのインジェスト処理の流れ
・外部ソースに接続する
・代替認証を構成する
・レイクハウスに書き込む
・Sparkを使うためには以下のいずれかの形式で格納する
・Parquetファイル
・Deltaテーブル
・書き込みを最適化してインジェスト速度を改善する
レイクハウスにデータが取り込まれた後の処理
・生データ(未加工データ)は、Medallionアーキテクチャにおけるブロンズレイヤに相当する
・データのユーザによりどこまで前処理が必要かは異なる
・データサイエンティスト:未加工のままを好む
・データアナリスト(PowerBIユーザなど):データクレンジングやモデリングが済んだ段階を好む
演習 - Spark と Microsoft Fabric ノートブックを使用してデータを取り込む
Azure Blob Storage
↓Fabricノートブック
レイクハウス
まとめ
8. Medallionアーキテクチャ
メダリオンアーキテクチャ(マルチホップアーキテクチャ)とは
・レイクハウスを使ったデータ分析のデファクトスタンダードな考え方
・レイクハウス上のデータをうまく整理するために推奨される設計パターン
・データガバナンスにおけるデータ活用面でのベストプラクティス
Medallionアーキテクチャの3層
・ブロンズ:生、未加工
・シルバー:クレンジング済み、検証済み
・ゴールド:キュレーション済み(付加価値を付けた)、業務に使いやすく加工された
※各レイヤ間の変換は、データ(データオーケストレーションのためのツール)を使うとよい
Fabricにおけるメダリオンアーキテクチャの実装方法
レイクハウス上のデータに対する探索
探索方法(読み取り専用)
・T-SQL
・SQL分析エンドポイント
・PowerBIセマンティックモデルのDirectLakeモード(主にゴールドレイヤに対して)
※レイクハウス内のデータを変更するには、データフロー、ノートブック、またはパイプラインを使用できます。
さまざまなニーズに合わせて medallion レイヤーを調整する
レイクハウスの管理
レイクハウスのセキュリティ
2種類のアクセス制御
・ワークスペースのアクセス許可
・アイテム レベルのアクセス許可
レイクハウスのCI/CD(継続的なインテグレーション/デプロイ)
実装すべき機能の例
・データ品質チェック
・バージョン管理:
・自動デプロイ
・監視
・スケーラビリティ
・DR
・コンプライアンス
演習 - medallion アーキテクチャを使用して Fabric レイクハウスを整理する
レイクハウスにメダリオンアーキテクチャを構築する
①ワークスペースの作成
②レイクハウスの作成
③CSVファイルをアップロードしてブロンズレイヤを作成
④ノートブック(シルバーレイヤ作成用)により変換してシルバーレイヤを作成
⑤SQLエンドポイントを使ってシルバーレイヤのデータを探索
⑥ノートブック(ゴールドレイヤ作成用)によりスタースキーマ化してゴールドレイヤを作成
⑦ゴールドレイヤからセマンティックモデルを作成
まとめ
レイクハウスのさまざまなレイヤーを別々のワークスペースに格納すると、セキュリティが強化され、コスト効率が最適化されます。
9. DWHの概要
・分析用途で使うデータストア(一般的には、クエリ上での結合数を減らすために非正規化されている)
・RDB製品(SQLをサポートしている)で実装する
DWHの構築プロセス
モデリング
・ファクトテーブル(トランザクションテーブル)
・ディメンションテーブル(マスタテーブル)
特殊な種類のディメンション テーブル
スタースキーマ/スノーフレークスキーマ
基本はスタースキーマで、
・正規化を維持したい(例:DimSupplier、DimCategory)
・1つのマスタを複数マスタから参照したい(例:DimGeography)
場合は、スノーフレークスキーマを使う
FabricにおけるDWHの作成方法
Fabricでは、「レイクハウス」の上にリレーショナルレイヤを構築することで、「ウェアハウス」を作成できる
「ウェアハウス」が作成できたら、SQLクライアント(SSMSなど)を接続して、T-SQLでテーブルを作成できる
・データパイプライン
・データフロー
・データベース間クエリ
・COPY INTOコマンド
DWHテーブルへのデータ読み込み
レイクハウスからウェアハウステーブルにデータを読み込む時には、ステージングテーブルと呼ばれる一時テーブルを介して変換することが一般的
データ読み込みは、一定間隔で実行されるバッチプロセスで実行されることが一般的
DHWに対するクエリ発行
2つの方法
・SQLクエリエディタ
・ビジュアルクエリエディタ:Power Query オンライン ダイアグラム ビューと同じような感覚で使える
テーブル間リレーションシップの定義
DWHのセキュリティ
アクセス制御の単位
・ワークスペース
・アイテム:アイテムのアクセス許可は、ウェアハウス内のデータへのアクセスに関連し、テーブル内の特定の列には関係しません。
クエリの監視
演習 - DWHでデータを分析する
まとめ
略
10. データウェアハウスへのデータ読み込み
インジェスト(取り込み) vs. ロード(読み込み)
・インジェスト:各データソースから中央リポジトリに生データを移動すること
・ロード:分析やレポートのために使う最終的なストレージに読み込むこと
ステージングオブジェクト
データ読み込み方式
・完全な読み込み:所要時間は長いが、実装は簡単
・増分読み込み:所要時間は短いが、実装が複雑
SCD(Slowly Changes Dimensions))
ウェアハウスへのデータ読み込み(データパイプライン)
ウェアハウスへのデータ読み込み(T-SQL)
COPYステートメント
REJECTED_ROW_LOCATION
ウェアハウスへのデータ読み込み(データフローGen2)
データをDWHに読み込む場合にFabricで使用できるインジェスト方法
演習: Microsoft Fabric のウェアハウスにデータを読み込む
①ワークスペースを作成する
②レイクハウス(読み込み元)を作成し、CSVファイルをアップロードする
③CSVファイルをテーブルにロードする
④ウェアハウス(読み込み先)を作成する
⑤ウェアハウスにファクト/ディメンション/ビューを作成する
⑥レイクハウスのSQLエンドポイント(読み取り専用)にアクセスし、T-SQLストアドプロシージャによってウェアハウスにロードする
まとめ
11. PowerBIパフォーマンス最適化
パフォーマンスアナライザ
PowerBのアーキテクチャレベル
①データソース
②データモデル
③視覚化:ダッシュボード、PowerBIレポート、PowerBIページ分割レポート
④環境:容量、ゲートウェイ(オンプレミス接続用)、ネットワーク、など
パフォーマンスアナライザは、以下を最適化するのに役立つ
②データモデル
③視覚化:レポートビジュアル
パフォーマンスアナライザの機能
・レポートキャンバス
・データシェイプエンジン(DSE)
・データモデルエンジン(AS)
パフォーマンスアナライザの使い方
⓪キャッシュをクリアする(メモリにキャッシュが残っていると処理が省略されるため)
①記録を開始
②レポート上でアクションを実行する
③アクション実行時からレンダリング完了時までのログが記録される
ログに経過時間が書き込まれるタスク例
・DAXクエリ:ビジュアルから送信されてから、結果が返ってくるまで
・パラメータの評価:ビジュアル内のフィールドパラメータを評価完了するまで
・ビジュアルのレンダリング:Web画像の取得にかかる時間など
・クエリの準備、他ビジュアルの処理完了までの待機、バックグラウンド処理の完了待ち、など
DAX Studioによる深掘り分析
パフォーマンスアナライザからの出力データをDAXStudioにインポートし、分析を深掘りすることができる
VertiPaqエンジン
・PowerBI内部では、VertiPaqエンジンが、データソースへのアクセスを高速化している
・VertiPaqエンジンは、データソースのコンテンツを読み取り、内部的な列データ構造(Verti列データ構造)に変換し、各列をエンコーディングして圧縮する。さらに、列ごとにディクショナリとインデックスを作成する。最後に、リレーションシップと計算用にデータ構造が作成され、計算列の圧縮が行われる。
DAXクエリは、VertiPaqの2個のエンジンにより処理されている
・数式エンジン(FE):要求の処理、ストレージエンジンへのデータの要求、必要な計算の実行
・ストレージエンジン(FE):数式エンジンから要求されたデータの取得
DAX Studioとは
・オープンソースツール
・以下の用途に使える
・データモデルの内容を確認する
・DAXクエリの記述を最適化する
VertiPaq Analyzerによるメモリ使用量の監視
データモデリングにベストプラクティスを活用する
表形式エディタ
・オープンソースツール
BPA(ベストプラクティスアナライザ)
・データモデリングに有用なルール集:命名規則なども含む
・ルールは自組織用にカスタマイズして管理可能
・既存のCI/CDプロセスに組み込み、ベストプラクティスに従わない場合にビルドエラーや警告を出すことも可能
演習: ツールを使用して Power BI のパフォーマンスを最適化する
12. PowerBIデプロイパイプライン
コンテンツライフサイクルにおける3ステージ(開発・テスト・運用)
PowerBIにおけるコンテンツ
・レポート
・ページ分割されたレポート
・ダッシュボード
・セマンティックモデル
・データフロー
デプロイパイプラインツール
・デプロイパイプラインツールを使うためには、Premium容量ライセンスが必要
・デプロイパイプラインには、ワークスペースを割り当てて使う
・ステージに割り当てたワークスペースのコンテンツは、次のステージに割り当てたワークスペースに「デプロイ(展開)」できる
・デプロイにより、コンテンツ間の接続を維持したままコピーされる
・ステージ上のコンテンツを一度にすべてデプロイすることもできるし、一部のみをデプロイ(選択的デプロイ)することもできる
・ただし、依存関係があるコンテンツの一部のみを選択的デプロイすると、壊れる可能性あり(「関連項目の選択」で確認する)
・一般的には、開発ステージで開発が済んだらテストステージへ、テストステージでテストが済んだら運用ステージへ、デプロイを進めていく
ステージ間で使用するデータベースやクエリを変更する
アクセス権限の分離
13. Fabricの管理
SaaSとしての管理
テナント
通常、1つの組織が持つFabricインスタンス(テナント)は1つ(EntraIDと連携している)
テナントには1つのOneLakeが紐づいている(OneLake階層構造のルートが「テナント」に対応する)
容量
1つのテナントには複数の容量を関連付けできる
ドメイン
ワークスペースを論理的にグループ化したもの
通常は組織の業務別にドメイン分けされる
例:販売用、マーケティング用、財務用
ワークスペース
アイテムをまとめる単位
ユーザのアクセス権の範囲として使える
例:販売ワークスペースには、実際の販売組織に所属するユーザが割り当てられていて、DWHの作成、ノートブックの実行、セマンティックモデルの作成、レポートの作成などが行える
アイテム(コンテンツ)
Fabricの構成要素
例:DWH、データパイプライン、セマンティックモデル、ダッシュボード、など
管理者の種類
・Microsoft365管理者
・PowerPlatform管理者
・Fabric管理者:従来のPowerBI管理者の役割を果たす
管理用ツール
・Fabric管理ポータル:従来はPowerBI管理ポータルだったもの
・Microsoft 365 管理センター:https://admin.cloud.microsoft/
・Microsoft Purview コンプライアンスポータル:https://compliance.microsoft.com/
・MicrosoftEntra管理センター:https://entra.microsoft.com/
・PowerShell コマンドレット
・管理 API および SDK
管理者の役割
Fabric 管理ポータル
PowerShell コマンドレット
PowerShellで実行できる簡単なコマンド(コマンドレット、cmdlets)のうち、Fabric管理用に使えるものもある
管理 API および SDK
管理監視ワークスペース
Fabric のセキュリティ管理
Fabricのデータガバナンス
コンテンツの保証
機密データのスキャン
データ系列の追跡
完
補足
ワークロードとは
Sparkとは
・オープンソースの分散処理システム
・ビッグデータの分析に使える
・Hadoopの進化版(ストレージではなくメモリ上で処理できるようになった)
Apache SparkをAzure上で使いたい場合の選択肢
・Azure Synapse
・Azure HDInsight
・Azure Databricks
DataBriksとは
DBaaS
Team Data Science Process (TDSP)
リアルタイムストリーム処理
Azureサービス
動画