Microsoft Fabric Notebookの概要

Microsoft Fabricは、データの収集や変換、リアルタイム分析、データの可視化などの機能を統合した企業向けのSaaS型プラットフォームです。

今回は、データの加工や分析で重要になる「Microsoft Fabric Notebook」の概要を説明します。

本記事の想定読者

  • これから Microsoft Fabric Notebook を使い始めたい方
  • Microsoft Fabric Notebook の基礎を学びたい方
  • Notebook を活用したデータ処理・分析に興味がある方

Microsoft Fabric Notebookについて

Microsoft Fabric Notebook(以下Notebook)はMicrosoft Fabricに含まれるアイテムの1つで、様々なプログラミング言語を使ってFabric上にあるデータの加工・分析・検証を行うことができるアイテムです。

主な特徴

ここでは、以下5つの特徴を基にNotebookについて解説していきます。

  1. レイクハウスやウェアハウス内のデータを操作可能
  2. 様々なプログラミング言語が利用可能
  3. Apache Sparkを処理基盤としており、大規模なデータの処理が可能
  4. セルごとの処理実行が可能
  5. 他の人との共同作業が可能

レイクハウスやウェアハウス内のデータを操作可能

Notebookではデータの分析やデータの変換(ETL)といった処理を行うことができ、処理の対象としてレイクハウスやウェアハウス内のデータを指定することができます。

様々なプログラミング言語が利用可能

Notebookでは以下7つの言語を使用することができます。

T-SQL

T-SQLは標準SQLにMicrosoft独自の機能を足した拡張版で、変数やIF / WHILE、TRY / CATCHといった構文を使用することが可能となっています。

Python

Pythonでは、T-SQLでは難しい複雑な処理フローの制御や、ライブラリを用いたデータの視覚化が可能です。

Spark(Scala)

Sparkのネイティブ言語であり、Sparkを最も直接的に利用することが可能となっています。

PySpark(Python)

PySparkは、Pythonの使いやすさとSparkの高速分散処理を組み合わせたライブラリです。Pythonを書く感覚でSparkを操作できるため、直感的で学習コストが低いのが特徴です。

これにより、複雑な分散処理を意識せず、シンプルなPythonコードで大規模データを効率的に扱うことが可能になります。

Spark SQL

PySparkのSQL版で、SQLライクな構文でSpark処理を実行できます。

PySparkがPythonユーザーをターゲットにしているように、SparkSQLはSQLに馴染みのあるユーザーをターゲットとしています。

Spark R

Spark Rも上記のPySparkやSpark SQLと同様に、Rを書きながらSparkの処理を実行することができる言語になります。

Markdown

Markdownはコードや処理を実行するための言語ではなく、Notebookにメモや説明を追加する際に使用することを目的としたマークアップ言語です。

Apache Sparkを処理基盤としており、大規模なデータの処理が可能

Notebookは、Apache Spark(以下Spark)という処理基盤の上で機能するインターフェースです。ユーザーはPySparkやSparkSQL等を使用する際、PythonやSQLを書く感覚で処理を実行することができますが、その裏で動いているのはSparkです。

ここではSparkについての詳細な説明は省きますが、NotebookとSparkがどのように関係しているのか、簡単に説明します。

企業は膨大な量のデータを保有しており、通常の処理方法だと処理に長い時間を要してしまいます。そこで登場するのがSparkです。Sparkは複数のコンピュータのメモリを活用して並列で処理を実行することで、大規模データを高速に処理できる、分散処理技術を提供します。Notebookはその処理基盤の上にあり、ユーザーから処理内容を受け取りSparkに実行させるという橋渡しのような役割を担っています。

これらのことから、NotebookとSparkの役割は以下のように説明できます。

  • Notebook : PySparkやSpark SQL等の、ユーザーが好む言語を通じてSparkへの指示を受け取り、Sparkへ伝達する
  • Spark : Notebookから受け取った処理内容を実行する

ただし、Notebookで利用できるすべてのプログラミング言語がSpark上で動作するわけではなく、T-SQLとPython、MarkdownはFabricのSQLベースのエンジンで動作しています。そのため、T-SQLやPythonは大規模データよりも小規模データの分析に向いています。

セルごとの処理実行が可能

Notebookでは処理をセル単位で行いますが、実行方法のパターンは以下の画像のように4種類あります。

  1. 全てのセルを実行
    • この操作では、そのNotebook内にあるすべてのセルを実行します。
    • 上のセルから順に、すべてのセルを実行したい場合にはこちらを選びます。
  2. 上のセルの実行
    • 現在カーソルを合わせているセルよりも上のセルをすべて実行します
  3. 下のセルの実行
    • 現在カーソルを合わせているセルよりも下のセルをすべて実行します
  4. 特定のセルのみ実行
    • 実行したいセルのみ選び、実行することができます

また、1 ~ 3番で実行する際にはオプションとして特定の言語で書かれたセルのみ実行する、といったことも可能です。

他の人との共同作業が可能

Fabric Notebookでは、1つのNotebookを複数のユーザーで同時に編集することが可能です。複数人で編集をしている場合、以下の画像のように共同編集をしている相手の名前と編集している位置が表示されるようになっており、そのカーソルと名前はリアルタイムで移動するようになっています。

結論:Notebookとは

Fabric Notebookは、Fabric上のデータを効率的に分析・加工できる環境を提供するツールです。

SparkやSQLエンジンといった強力な処理基盤を裏で活用しながら、ユーザーはそれを意識せず、セル単位の柔軟な実行や複数人での共同編集のような操作をすることができます。

まとめ

本記事では、Notebookの概要を説明しました。

次回の記事では、Notebookの操作方法とT-SQLでストアドプロシージャを作成する方法を解説したいと思います。

執筆担当者プロフィール
森 一輝

森 一輝(日本ビジネスシステムズ株式会社)

クラウドテクノロジーサービス事業本部 Data&AIプラットフォーム部Dataソリューション1グループ所属。Microsoft Fabricを中心に扱っています。趣味は旅行です。

担当記事一覧