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 主な特長
-
Power Query Onlineとの統合
Dataflows Gen2は、Power Query Onlineを活用してデータの取得、加工、結合を視覚的に行うことができます。これにより、プログラミング経験が少ないユーザーでも直感的にデータ変換が可能です。 -
保存先の柔軟性
Dataflows Gen1では、生成したデータはPower BIデータセット内での利用が主な目的でした。しかし、Dataflows Gen2では、レイクハウス、データウエアハウス、Azure SQL Database、Data Explorer Kustoといった様々な保存先にデータを直接ロードすることが可能になりました。 -
オーケストレーションの強化
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内で提供されるリアルタイムイベント処理ツールで、リアルタイムデータストリームを監視し、事前定義された条件に一致するとアクションを起動します。このツールは以下のような場面で使われ、データ監視と反応のプロセスを効率化し、ビジネスの俊敏性を向上させます。
-
異常検出と通知
- 製造現場でセンサーが異常値を検出した場合に即時通知。
- ITシステムの監視でエラー発生時にアラートを送信。
-
業務プロセスの自動化
- 在庫が減少した場合に自動で補充プロセスを開始。
- 顧客の購入履歴に基づき、次回のプロモーションを自動生成。
-
リアルタイムの意思決定支援
- 売上データが目標値を達成した場合に即座にマーケティングキャンペーンを実施。
- ストリーミングデータを基に、交通管理システムの信号を調整。
-
エンドユーザーへのパーソナライズ
- ユーザーのアクション(例: Webサイト訪問)に基づき、リアルタイムで提案や通知を送信。
-
セキュリティ対応
- システムやネットワークで異常なアクティビティを検出した際に即座に防御策を実行。
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に限定されていた機能を、インターネットブラウザ内で完全な形で実現できるよう、徐々に統合を行っています。