2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Power Query へそのゴマAdvent Calendar 2024

Day 25

Power Query へそのゴマ 第25章 Microsoft Fabric

Last updated at Posted at 2024-12-25

25.1 Microsoft Fabricとは

Microsoft Fabricは、現代のデータプラットフォームの進化を反映し、膨大で多様なデータを効率的に管理し、新しい技術を活用して分析を可能にするツールです。従来、データ分析は専門家によって行われていましたが、現在では企業内の多くの従業員が、自律的に分析スキルを活用できることが求められています。

Microsoftはこれまで、Azure SQL Database、Azure Data Factory、Azure Databricks、Azure Synapse Analytics、Azure Purviewなどの多様なデータ関連サービスを提供してきました。これらのサービスに加え、OLTP(Online Transaction Processing)とOLAP(Online Analytical Processing)を統合し、さらにHTAP(Hybrid Transactional/Analytical Processing)を実現するためのプラットフォームとしてMicrosoft Fabricを発表しました。

Microsoft Fabricは、Azure Data Factory、Synapse Analytics、Power BIといった複数のデータサービスを統合し、シームレスなデータエコシステムを構築します。

25.2 Microsoft Fabricの技術基盤

Microsoft Fabricは、SaaS(Software as a Service)型の包括的なデータプラットフォームで、データ管理、変換、分析、機械学習を統合します。その技術基盤には以下の要素が含まれます:

  • OneLake: Microsoft Fabricの中核となるデータストレージ基盤。
  • レイクハウス: データレイクとデータウェアハウスの利点を組み合わせた新しいデータ管理アーキテクチャ。
  • データウェアハウス: 大量のデータを統合して保存し、効率的に分析や意思決定を行うためのリレーショナルデータベースシステム。
  • ETLプロセス: SparkやDataflows Gen2などを活用。
  • 機械学習: Azure Machine Learningとの統合により、モデル開発やトレーニングを効率化。
  • リアルタイムデータ処理: Azure Stream Analyticsなどを活用してリアルタイム処理を実現。

25.3 オープンソース技術の活用

Microsoft Fabricは、Apache SparkやDelta Lakeなどのオープンソース技術を積極的に採用し、最新技術を取り入れています。このアプローチにより、柔軟性、スケーラビリティ、高性能を実現し、企業のデータ分析基盤を大幅に強化しています。

25.3.1 Hadoop

Hadoopは、オープンソースの分散データ処理フレームワークであり、ビッグデータ分析の基盤技術として、データレイクやデータウェアハウスの構築に多く利用されています。

  • 分散ストレージ:HDFS(Hadoop Distributed File System)は、大規模データを複数のノードに分散して保存し、耐障害性を提供します。
  • 分散処理:MapReduceアルゴリズムにより、大量のデータを効率的に処理します。
  • スケーラビリティ:クラスター内のノードを増やすことで、データ容量や処理能力を簡単に拡張可能。

OneLakeは、Hadoopの分散ストレージモデルに類似した設計概念を持つ分散ストレージモデルを採用しています。データフォーマットは、ParquetやDeltaなど、Hadoopエコシステムで一般的な形式がサポートされています。また、Hadoopを進化させ、ストレージと計算リソースを分離し、同じデータを異なる計算エンジンで処理することできます。

また、Hadoopの欠点であったディスクI/Oの多さを克服するため、インメモリ処理(Spark)を採用しており、SQLベースのクエリだけでなく、機械学習モデルやストリーミングデータ処理でも活用可能となっています。

25.3.2 Apache Spark

Apache Sparkは、オープンソースの分散データ処理フレームワークで、ビッグデータ分析の高速化と効率化を目的としています。Apache Software Foundationによって開発され、Hadoopエコシステムを補完する存在として登場しました。Sparkは主に以下の特徴を持ち、データエンジニアリング、データ分析、機械学習、ストリーミングデータ処理など、多岐にわたる用途に利用されています。Fabricに使用されているSparkエンジンは、もともとはオープンソース所リューションに基づいていましたが、現在はDatabricks社によって「最適化された」バージョンに代わっています。

  • 分散型データ処理フレームワークで、大規模なデータのバッチ処理とリアルタイム処理をサポート
  • Microsoft FabricのLakehouseやFabric内のSparkエンジンで利用されてる
  • SparkはScala、Python(PySpark)、Java、R(SparkR)、Spark SQLなどの言語もサポート

特徴と利点:

  • 高度な並列処理: データを分散して効率的に処理。
  • 幅広いライブラリのサポート: 機械学習(MLlib)、ストリーム処理(Spark Streaming)、SQL解析(Spark SQL)をサポート。
  • Azureとの統合: SparkジョブをAzure環境で効率的に実行できる。
  • Hadoopとの統合**: SparkはHadoopのHDFS(Hadoop Distributed File System)と連携可能

25.3.3 ParquetとORC

Microsoft Fabricで使われているParquetとORC(Optimized Row Columnar)は、どちらも列指向のデータストレージフォーマットで、大規模なデータ処理や分析を効率化するために設計されています。これらのフォーマットは、Microsoft Fabricのようなモダンなデータプラットフォームでデータ保存や処理の基盤として利用され、特にFabricのOneLakeやLakehouseで重要な役割を果たします。

Parquetは、2013年にClouderaとTwitterが開発し、大規模データ処理の課題に対応するため導入されました。その後、Apacheに採用されたこのファイル形式は、効率的な列単位の読み書きにより、I/Oコストを削減し、高い圧縮率で、特にビッグデータ処理で効率を発揮します。

ORCは、Apache Hiveプロジェクトで開発された列指向データフォーマットで、Hadoopエコシステムでのデータ保存と処理を効率化するために設計されています。Parquetと同様に、データが列単位で保存され、圧縮と最適化が行われます。更に、インデックスとサマリーデータを持つため、 データサイズが大きく、複雑なクエリを高速に処理することができます。

25.3.4 Delta Lake

Delta LakeはParquet形式を基にいくつかの重要な拡張が行われ、OneLakeのコア技術として採用されています。

特徴

  • ACIDトランザクション: OneLakeでは、Delta Lakeフォーマットが標準的に利用され、ACIDトランザクションをサポートしています。複数ユーザーやプロセスが同時にデータにアクセスしても、データの整合性が保証されます
  • スキーマの進化と整合性: データのスキーマ変更を管理し、分析プロセスでのエラーを最小限に抑えます
  • バージョン管理: データの変更履歴を保存し、過去のバージョンに戻れる機能を提供
  • パフォーマンス最適化: データのパーティション、キャッシュ、ZORDER(クラスタリング)による高速なクエリを実行
  • リアルタイムデータ処理: ストリーミングデータをDelta Lakeに保存し、リアルタイム分析に活用できます

25.3.5 Kubernetes

Kubernetes(K8s)は、Googleによって開発され、現在はCNCF(Cloud Native Computing Foundation)が管理しているオープンソースのコンテナオーケストレーションツールです。Microsoft FabricにおけるKubernetesの技術は、Fabricの基盤となるデータプラットフォームのスケーラビリティ、高可用性、および効率的なリソース管理を支える重要な要素です。Kubernetesはコンテナオーケストレーションプラットフォームであり、コンテナ化されたアプリケーションをスケジュール、管理、自動化するために広く採用されています。

  • リソースの分離と管理: リソースを論理的に分離し、異なるワークスペース間のリソース競合を防止し、チームやプロジェクト単位でのリソース割り当てを行います
  • スケーラビリティ: データ量や分析要求に応じて動的にリソースをスケールアウト/スケールインします
  • 高可用性とフェイルオーバー: KubernetesのReplicaSetとNode Affinityを活用することで、Fabricのサービスは高可用性を保証します
  • セキュリティとマルチテナンシー: FabricのセキュリティモデルはKubernetesの以下の機能を活用しています
    • Role-Based Access Control (RBAC): 各ユーザーやサービスに対してアクセス権限を設定
    • Network Policy: Pod間の通信を制御し、データの隔離を実現
    • Pod Security Policies (PSPs): 実行されるPodのセキュリティ要件を定義

25.3.6 PrometheusとGrafana

Prometheusは、システム監視および時系列データベースを提供するオープンソースツールです。2012年にSoundCloudで開発され、現在はCNCF(Cloud Native Computing Foundation)のプロジェクトとして広く採用されています。

Microsoft Fabricでは、PrometheusとGrafanaがFabricのモニタリングシステムの中核を形成しています。Kubernetes上で動作するコンテナやノードのリソース使用率(CPU、メモリ、ディスク、ネットワーク)を監視し、各ジョブの進行状況、成功率、失敗率をリアルタイムで追跡、分散クエリの処理時間やボトルネックの特定に役立ちます。また、ノードの状態をリアルタイムで可視化、障害の兆候を早期に発見します。

セキュリティにおいては、ユーザーのログイン履歴、不正アクセスの試行などを監視し、監査ログを収集し、異常な動作をダッシュボードで可視化できます。

主な特徴

  • 統合監視: Fabricのすべてのコンポーネント(Kubernetes、データ処理ジョブ、ネットワーク)を統合して監視。
  • リアルタイム性: メトリクスの更新が速く、迅速な問題検出が可能。
  • 拡張性: 新しいデータソースやカスタムメトリクスを追加可能。
  • コスト効率: オープンソースツールであり、カスタマイズも容易。

25.3.7 MLflow

MLflowは、MLflowは、Databricksが開発したオープンソースのツールで、機械学習モデルのトラッキング、管理、デプロイを一貫した方法で行うためのプラットフォームです。2020年以降、Azure Machine Learningは、MLflowをサポートしています。

FabricはAzure Machine LearningとMLflowを統合し、トレーニングからデプロイまでを一貫して管理できます。

MLflowは以下の4つの主要なコンポーネントで構成されています。

  • MLflow Tracking: 実験の結果やメトリクスを記録し、モデルの比較を可能にする。
  • MLflow Projects: 再現性を確保するためのコードベースの標準化。
  • MLflow Models: モデルの保存とフォーマット管理を支援。
  • MLflow Registry: モデルのバージョン管理やデプロイプロセスを一元化。

Fabricでは、MLflowを利用してトレーニングしたモデルをDataflows Gen2やLakehouseのデータパイプラインに統合し、リアルタイムで予測結果を生成できます。Fabric内でMLflow Registryを使用し、異なるモデルバージョンを本番環境に展開、ABテストや段階的デプロイメントにも対応可能です。また、MLflow Projectsを用いて、トレーニング環境の依存関係やコードを標準化。新しいメンバーがプロジェクトに参加した場合でも、迅速に再現可能な環境を構築できます。

25.4 OneLake

OneLakeは、Azure Data Lake Storage Gen2の原則に基づいた独自の統合ストレージをベースにしており、大量のデータを保存できる信頼性の高いストレージサービスです。Fabricのすべてのデータ、データウエアハウス、レイクハウス、KQLデータベースのテーブルは、Delta Lake(Delta Parquet)ファイルの形式で保存されます。フラットファイルや画像など各種のデータも保存できます。

Fabricですべてのデータをオープンで高性能なDelta Lake形式で保存する利点は、同じデータを複数の分析エンジン(T-SQL、Spark、AnalysisServicesなど)で再利用できるようにすることです。OneLakeは元のデータへのアクセス権を自動的に管理します。そのため、データを再利用するためにコピーやレプリケートする必要がなくなり、実行時間の節約になります。

OfficeがWord、Excel、PowerPointのファイルをOneDriveに保存するのと同様に、FabricはLakehouse、データウェアハウス、およびその他のアイテムをOneLakeに保存します。

25.5 レイクハウス

レイクハウスには、2種類のオブジェクトが利用できます。

  • テーブル:構造化データ用で、OneLakeにDelta Lake形式で保存されています。
  • ファイル、非構造化データ(画像、動画)やOneLakeに保存されたテーブルに変換される前の生データなど。

リレーショナルデータベースが得意とするSQLを使った分析機能と、データレイクの柔軟性や大量のデータを簡単に扱える能力をあわせ持っています。構造化されているかどうかに関係なく、どんな種類のデータでもレイクハウスに保存でき、それを使ってさまざまな分析ツールやプログラミング言語で作業ができます。クラウド上にあるため、レイクハウスは必要に応じて自動で容量を増やせるだけでなく、常に利用できる状態を保ち、災害時の復旧も対応できます。

レイクハウスには、テーブルやファイルをコピーせずに参照するショートカットを作成する機能も提供しており、Amazon S3や、Google Cloud Storageなどの外部ストレージに保存されたデータも統合し、アクセスしやすくなります。

LakehouseはSynapseデータサイエンスのエクスペリエンスに統合されており、テーブルやファイルを簡単にナビゲートできるため、データの探索が容易になります。また、レイクハウス内のデータを変換し、構造化およびモデリングする一連の操作を効率的に支援し、T-SQLを使用してレイクハウスのテーブルをクエリしたり、ビューを作成したりすることが可能になります。

データウェアハウスとは異なり、データレイクは厳格な前処理を必要とせず、データの探索と変換に柔軟性を提供します。これにより、先進的な分析、機械学習、または人工知能に最適な候補となります。

25.6 データ ウェアハウス

データウェアハウスは、MPP(Massively Parallel Processing)型のリレーショナルデータベースです。その主な目的は、分析およびレポート生成に最適化された環境を提供することです。

データウェアハウスは、大量のデータを扱うために設計されており、企業向けのデータ分析に必要なT-SQL(Transact-SQL)の全機能をサポートしています。また、フルマネージドであり、必要に応じて規模を拡張できる高い信頼性を備えています。さらに、OneLakeやレイクハウスと連携して動作し、データを簡単に分析するための便利な環境を提供します。

データウェアハウスは、複数のテーブルに対するデータの挿入、更新、削除時にデータの一貫性を保証します。一方で、レイクハウスではこのような一貫性の保証は提供されていません。

ユーザーは、Fabricの画面やSQLコマンドを使用してテーブルを作成したり、データを読み込んだり、整形したり、分析したりすることが可能です。さらに、SQLを用いてデータを調査するだけでなく、Spark(別のデータ処理ツール)を使用してデータを加工したり、機械学習モデルを作成したりすることもできます。

Lakehouseに欠けているもう一つの概念、つまりSQL言語で構築および維持されるロールを通じて細かいセキュリティを管理する機能もデータウェアハウスに存在します。

データエンジニアとデータアナリストが共同で作業するためのサポート機能を備えており、同じ環境内で協力して作業できるため、効率的に業務を進めることができます。

25.7 KQL(Kusto Query Language)

レイクハウスおよびデータウェアハウスが主なデータ分析ニーズに対応できる一方で、構造化および半構造化された時系列データのリアルタイム分析ニーズには不十分な場合があります。

KQLは、リアルタイムデータストリームの分析に適しており、IoTデータ、ユーザー行動の分析、アプリケーションのパフォーマンス監視などに最適です。KQLデータベースは、Kusto言語を通じてクエリが可能であり、データの問い合わせのみを許可するSQLの代替です。

25.8 データフロー Gen2

データフロー Gen2は、従来データエンジニアが多くの時間を費やしていたデータの抽出、変換、読み込み(ETL)プロセスを効率化するために設計されたツールです。Power BIから派生したPower Queryエンジンに基づいています。Power Query Onlineを利用して異なるソースからデータを収集し、変換し、Microsoft Fabric専用のストレージベースにデータを保存することも可能です。

データパイプラインを使用する場合、データフロー Gen2をオーケストレーションに組み込み、他のタスクと組み合わせて利用できます。また、データを一度レイクハウスに読み込み、その後にデータフロー Gen2で整形するELTプロセスとしても活用可能です。

データフローは再利用可能なETLロジックを提供し、手動実行やスケジュール設定、またはパイプラインの一部として運用することができ、データアナリストが分析やレポート作成に活用できる柔軟な環境を提供します。

25.8.1 Dataflows Gen2とは何か

Dataflows Gen2は、Microsoft Fabricにおける次世代データ処理ツールであり、データの統合、変換、および保存を効率的に行うことができる仕組みです。従来のDataflows Gen1と比較して、機能面や柔軟性の大幅な向上が特徴です。

25.8.2 主な特長

  1. Power Query Onlineとの統合
    Dataflows Gen2は、Power Query Onlineを活用してデータの取得、加工、結合を視覚的に行うことができます。これにより、プログラミング経験が少ないユーザーでも直感的にデータ変換が可能です。

  2. 保存先の柔軟性
    Dataflows Gen1では、生成したデータはPower BIデータセット内での利用が主な目的でした。しかし、Dataflows Gen2では、レイクハウス、データウエアハウス、Azure SQL Database、Data Explorer Kustoといった様々な保存先にデータを直接ロードすることが可能になりました。

  3. オーケストレーションの強化
    Dataflows Gen2をパイプラインに統合することで、完全自動化されたデータ処理を実現できます。また、データのクリーニング、変換、保存を一貫して管理できます。

25.9 データパイプライン

データパイプラインは、Azure Data Factoryから派生しており、グラフィカルインターフェースを使ってデータを収集、変換、保存し、最終的な目的地(データウェアハウスやデータレイクなど)で利用可能な形式に整えることができます。

データパイプラインの基本的な機能は、データをコピーすることです。パイプラインは100以上のネイティブコネクタを提供しており、クラウドデータベース、分析プラットフォーム、業務アプリケーション、オンプレミスのデータソースなどに簡単に接続できます。

データパイプラインの実行は、手動で起動することも、スケジュールに従って起動することもできます。データパイプライン自体は簡単なETL機能しかありませんが、データフローを組み入れてより高度な処理が可能です。

25.10 ノートブック

レイクハウスにあるデータにクエリを実行する作業は、主にノートブック(PySpark)を使って行われます。データエンジニアやデータサイエンティストは、ノートブックやPython言語を使用してデータの探索・分析を行う方が自然かもしれません。また、機械学習のために使用される強力なツールです。

Microsoft Fabricのノートブックは、Jupyter Notebookに似た形式で、インタラクティブな環境でデータ探索や可視化を一括して行えるため、生産性が向上します。リアルタイムで共有が可能で、バージョン管理により変更内容の追跡や巻き戻しも簡単です。また、Azureのツールと統合することで柔軟なデータ処理が可能となり、コード、可視化、ドキュメントを統一して扱うことで分析の一貫性も向上します。

  • データの探索: 様々なデータソースにアクセスし、クエリや分析を実施。
  • データの変換と準備: データのクリーニング、変換、結合。
  • 機械学習: モデルのトレーニング、評価、デプロイ。
  • データの可視化: 分析結果をグラフや表で表現。
  • リアルタイムコラボレーション: チームで共同作業を行い、結果を共有。

ノートブックは、データのクリーニングや準備を支援するData Wrangler機能を提供しています。Data Wranglerを使うと、コードを書かずに数クリックでデータの統計やPandasやSparkのDataFrameの生成が行えます。

Fabricノートブックでは、以下のプログラミング言語をサポートしています。

  • Python: データサイエンスや機械学習ライブラリ(Pandas、NumPy、Scikit-learnなど)を利用可能。
  • R: 統計分析やデータ可視化で広く使われる。
  • SQL: データクエリや分析。
  • Spark: 大規模データ処理や分散計算に対応。

ノートブックを使用したデータの取り込みは、一見適切ではないように見えますが、実際にはいくつかの場面では有効に働きます。

  • 非典型的なフォーマット(地理空間データ、AS400データなど)からの取り込み
  • PythonライブラリやSemantic Linkを使用してのデータ取り込み
  • プログラミング言語を使用が必要となるデータの取り込み

データの取り込みには、パイプラインやGen2データフローを使用してAPIを使用することもできます。しかし、Power BI APIに必要なOAuth2認証は、安全に実装するのが複雑です。さらに、100のワークスペースに対してバッチで呼び出しを行う必要があるAPIもあり、プログラミング言語へのアクセスがなければ実現できないケースもあります。そのため、このような作業にはNotebookを使用することを選択します。

ノートブックは、HTMLファイルとしてダウンロードして、ブラウザから直接開くことができるほか、Pythonファイル(.py)、LaTeXファイル(.tex)、Jupyter Notebookファイル(.jpynb)としてもダウンロードできます。

25.11 Data Activator

Data Activatorは、Microsoft Fabric内で提供されるリアルタイムイベント処理ツールで、リアルタイムデータストリームを監視し、事前定義された条件に一致するとアクションを起動します。このツールは以下のような場面で使われ、データ監視と反応のプロセスを効率化し、ビジネスの俊敏性を向上させます。

  1. 異常検出と通知

    • 製造現場でセンサーが異常値を検出した場合に即時通知。
    • ITシステムの監視でエラー発生時にアラートを送信。
  2. 業務プロセスの自動化

    • 在庫が減少した場合に自動で補充プロセスを開始。
    • 顧客の購入履歴に基づき、次回のプロモーションを自動生成。
  3. リアルタイムの意思決定支援

    • 売上データが目標値を達成した場合に即座にマーケティングキャンペーンを実施。
    • ストリーミングデータを基に、交通管理システムの信号を調整。
  4. エンドユーザーへのパーソナライズ

    • ユーザーのアクション(例: Webサイト訪問)に基づき、リアルタイムで提案や通知を送信。
  5. セキュリティ対応

    • システムやネットワークで異常なアクティビティを検出した際に即座に防御策を実行。

25.12 Power BI

Power BIは、データ分析に特化した包括的で統合されたプラットフォームです。過去10年間、Windows上で動作するPower BI Desktopと、WebポータルのPower BI Serviceからなるツールセットとして提供されていました。

Power BI Desktopでは、ユーザーのマシンの能力を使用し、DAX StudioやTabular Editorなどの外部ツールが使用できます。そして、ライセンスなしで使用できます。

しかし、Fabricでは、組織内での公開、共有、コラボレーション、レポート作成の工業化などの連携が行えます。Power BI Desktopに限定されていた機能を、インターネットブラウザ内で完全な形で実現できるよう、徐々に統合を行っています。

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?