【Microsoft×生成AI連載】【Microsoft Fabric】Copilot for Data Engineeringを使ってみた(その1)

Microsoft Fabricはデータ収集・加工・分析・可視化、AI活用を一元化するクラウドベースの分析プラットフォームです。

その中の一つであるData Engineeringでは、Copilotを活用することでPythonやPySpark、T-SQLのコーディング知識がなくても自然言語でコード生成が可能になり、データ準備やデータから迅速にインサイトを得ることができます。

本記事では、Copilot for Data Engineering(以降、Data EngineeringのCopilotと記載)についてFabricにおけるData Engineeringの概要を知りたい方、Data EngineeringにおけるCopilotの使い方やユースケースを知りたいという方向けに詳しく解説していきます。

※本記事はMicrosoft fabricについて基礎的な知識を有していることを前提とします。

これまでの連載

これまでの連載記事一覧はこちらの記事にまとめておりますので、過去の連載も確認してみたいという方はこちらの記事をご参照ください。

blog.jbs.co.jp

機能概要

Data Engineeringの概要についてですが、Microsoftによると以下のように説明がなされています。

「Data Engineeringを使用すると、組織が大量のデータを収集、保存、処理、分析するために使用できるインフラストラクチャとシステムを設計、構築、保守できます。」

引用:Microsoft Learn(https://learn.microsoft.com/ja-jp/fabric/data-engineering/

learn.microsoft.com

事前準備

サンプルデータのダウンロード

以下リンクからKaggleのサイトにアクセスします。

※ 会員登録をしないと利用できませんので、必要任応じて登録作業を行ってください。

https://www.kaggle.com/competitions

会員登録後、左の優勝カップマーク(Competitions)を選択すると以下の画面が表示されますので、赤枠の「Titanic - Machine Learning from Disaster」をクリックし、Dataタブの画面下の「Download All」を選択して、使用する3つのファイルをダウンロードします。

  • gender_submission.csv
  • test.csv
  • train.csv

ダウンロードデータは、ローカルにフォルダを作成し保管してください。

レイクハウスの作成

ブラウザーでMicrosoft Fabricにアクセスします。

左側ナビゲーションから[ワークスペース]を選択し、作業対象となるFabricが有効なワークスペースをクリックします。

※この後レイクハウスを作成する為、Fabric容量(試用版ではない)が割り当てられているワークスペースを選択する必要があります。

「新しい項目」よりレイクハウスを選択して、「test」という名前のレイクハウスを作成します。

フォルダのインポート

作成したレイクハウスを開き、「Files」の「…」を選択し、サブフォルダーの作成を行います。

フォルダー名に「Titanic」と入力し、「作成」を選択しサブフォルダーを作成します。

サブフォルダー作成後、「アップロード」にて、Kaggleサイトにて先ほどダウンロードした3つのファイルが入ったフォルダをFabricのレイクハウスにアップロードします。

「Files」配下にアップロードされたファイルが確認できました。

Notebookの作成

Data Engineering画面にて「新しい項目」を選択し、ノートブックを作成します。

作成後、下記の画面が立ち上がります。

Notebookとレイクハウスの紐づけ

作成したレイクハウスとノートブックを紐づけします。

ノートブック横にあるエクスプローラーよりレイクハウスを選択し、追加のボタンが表示されるので選択します。Lakehouseの追加画面で「スキーマがない既存のレイクハウス」を選択して追加を押下し、作成したレイクハウスを選択したら紐づけは完了です。

今後はこのレイクハウスがエクスプローラー画面に表示されます。

使用方法

ここからは、事前準備で用意したデータに対してData EngineeringのCopilot活用方法をご紹介していきます。

Data EngineeringのCopilotを活用することで、データ分析やデータクレンジングのような前処理、Notebook上でのPySpark/Pythonコードの補完・自動生成が可能となります。

コード補完・自動生成

ここでは「コード補完・自動生成」という観点で、Data EngineeringのCopilotを活用するとどういったことができるのかをいくつかご紹介します。

データの概要把握

どのようなデータが入っているのか、データの中身を確認できます。

Notebook画面上部のメニューバーより「ホーム」 > 「Copilot」をクリックし、Copilotチャットペインを開きます。「test.csv」 > 「…」 > 「ABFSパスのコピー」をクリックし、プロンプト入力欄にペーストします。

プロンプト入力欄で以下の内容を入力し、送信します。

このテーブルの概要を教えて。/lakehouse/test/Files/Titanic/titanic/test.csv

出力に必要となるコードが生成されるので、コピー&ペーストでNotebookに貼り付け、実行します。

※上記で取得したパスは後続手順でも使用する為、控えておいてください。

下記の出力結果のようにデータの中身を確認することができます。

ここでは以下のような項目を確認することができます。

  • データの大きさ(行数・列数)
  • カラムの構成(カラム名・型)
  • 代表的な値例(サンプルデータ)
  • 欠損値状況

欠損値確認

どの項目に欠損値が多いのか、指定したファイルの欠損値を確認できます。

Copilotチャットペインのプロンプト入力欄で以下の内容を入力し、送信します。

欠損値の多いカラムはどれですか?対応策も教えて。/lakehouse/test/Files/Titanic/titanic/test.csv

出力に必要となるコードが生成されるのでコピー&ペーストでNotebookに貼り付け、実行します。

下記の出力結果のように欠損値の多いカラムを確認することができます。また、具体的な対策案も出力することができます。

グラフ自動生成

グラフで男女の比率を確認できます。

プロンプト入力欄で以下の内容を入力し、送信します。

男女の比率が分かるグラフを作成して。/lakehouse/test/Files/Titanic/titanic/test.csv

出力に必要となるコードが生成されるのでコピー&ペーストでNotebookに貼り付け、実行します。

下記の出力結果のようにグラフで男女の比率を表現することができます。また、プロンプトを詳細に書くことでグラフのスタイルは変更できます。

エラー対処

エラー対処をすることもできます。例えば以下のようなエラーが起きたとします。

実行コードは以下です。

エラーメッセージは以下です。

プロンプト入力欄で以下の内容を入力し、送信します。

このエラーメッセージを解消するには?**以下エラーメッセージの入力**

下記の出力結果のようにエラーの原因、解決方法を提案してくれます。

利用シーンとメリット、注意点

利用シーン

  • コード自動生成
    • PythonやPySpark、T-SQLを自然言語で自動生成できます。
  • スキーマ可視化
    • カラム名やデータ型、レコード数、サンプル値の表示などができます。
  • 欠損値や異常値の検出
    • null/NaN/外れ値が多いカラムやレコードの自動特定と可視化、対策の提案等ができます。
  • エラー対処
    • 実行時エラー、構文エラー、型不一致などのエラー原因の自動特定、解決方法の提案等ができます。

メリット

Data EngineeringのCopilotを活用することで、以下のようなメリットが考えられます。

  • 生産性向上
    • Python、PySpark、T-SQLを直接書かなくても自然言語でコードの自動生成が可能です。
    • プロンプトを入力するだけで、データ構造の把握やデータ前処理・集計・変換などを行う事ができるので、作業時間が短縮されます。
  • 品質・標準化
    • Syntax/論理エラーの即時発見と修正案の自動提示が可能です。
  • 学習コストの削減
    • コードの自動生成が可能なので、ビジネスユーザーや非データエンジニアであっても高度な処理を実行することができます。
    • データエンジニアは自身のコーディング時間やエラー対処にかかる作業時間の短縮が可能です。
  • エラー対応の効率化
    • エラー発生時の原因分析・修正案の提示などを自動で行えるため、エラー対応の効率化が可能です。

注意点

  • 出力内容の正確性
    • Copilot機能は大変便利ですがAIアシスタントであり、必ず正しい出力結果を返すとは限らず、意図しない回答や不正確な出力結果を返す可能性があります。
    • 生成されたクエリや提案は、正確性とシステム要件への適合性を十分に確認する必要があります。
  • パフォーマンスとコスト
    • 大規模なデータに対する複雑な質問は処理に時間を要するケースがあります。
    • Fabric容量(コンピューティングリソース)を消費するため、コスト管理も重要となります。

まとめ

専門的な知識を持つデータエンジニア、データサイエンティストなどは、Data EngineeringのCopilotを活用することで、自然言語ベースでデータ前処理・集計・変換や分析、可視化などが可能となります。

作業時間が大幅に削減されるため、データエンジニアやデータサイエンティストは、アーキテクチャ設計やデータガバナンスなど戦略的領域に集中することができるようになります。

非データエンジニア、ビジネスユーザーであっても、Data EngineeringのCopilotのコード自動生成などの機能を活用することで専門知識不要でデータエンジニアリングが可能となります。

これによりデータ活用のハードルが大きく下がり、幅広いユーザーが容易にデータ探索やデータ利活用を行えるようになります。

今回の記事では、Kaggleにて用意されたデータを使用して、事前準備からData EngineeringのCopilot活用事例の一例をお見せしました。

次回の記事では、さらなる活用事例をいくつかご紹介させていただきたいと思います。

おまけ(Copilot Chatによる本記事の要約)

本記事ここまでの執筆内容をCopilot Chatに転記し、記事内容の要約をしてもらいました。

【記事の概要】
本記事は、Microsoft Fabricにおける Data Engineering と、その中で利用できる Copilot for Data Engineering の機能・使い方・メリットを解説しています。
Copilotを活用することで、Notebook上でのデータ前処理・分析・可視化・エラー対応などを、自然言語ベースで効率的に実行できる点が中心テーマです。

Data EngineeringとCopilotの位置づけ

Data Engineeringは、大量データを収集・保存・処理・分析するための基盤を設計・構築・保守する領域。
Data EngineeringのCopilotは、Notebook上で Python / PySpark / T-SQL のコード補完・自動生成を行うAIアシスタント。
専門知識がなくても、自然言語で高度なデータエンジニアリング作業が可能。


【記事で紹介されている主な内容】
1. 事前準備

Kaggle(Titanicデータセット)を用いたサンプルデータ準備
Fabric上でのレイクハウス作成、ファイルアップロード
Notebook作成とレイクハウスの紐づけ

2. Copilotの活用例

データ概要把握
行数・列数、カラム構成、欠損値状況などを自動で可視化
欠損値分析
欠損値の多いカラムの特定と、対応策の提案
グラフ自動生成
男女比などをグラフ化(プロンプト次第でスタイル調整可能)
エラー対処
実行時エラーや構文エラーの原因特定と修正案提示

3. 利用シーン

コード自動生成(Python / PySpark / T-SQL)
スキーマ可視化
欠損値・異常値検出
エラー原因分析と解決支援


【メリット】

生産性向上
自然言語で前処理・集計・変換が可能になり作業時間を短縮
品質・標準化
エラー検出と修正案の即時提示
学習コスト削減
非データエンジニアでも高度な処理が可能
エラー対応の効率化
トラブルシュートの属人化を防止


【注意点】

出力の正確性
CopilotはAIのため、結果の妥当性確認が必須
パフォーマンス・コスト
大規模データ処理ではFabric容量消費に注意が必要


【まとめ】
Copilot in Data Engineeringは、データエンジニアリングの民主化をさらに推進する存在です。
データエンジニアやデータサイエンティストは作業負荷を減らし、アーキテクチャ設計やガバナンスといった戦略領域に集中可能になります。一方で、非データエンジニアやビジネスユーザーでも、専門知識なしにデータ探索・前処理・分析を実行できるようになります。

執筆担当者プロフィール
砂原 琉栄

砂原 琉栄(日本ビジネスシステムズ株式会社)

2024年度入社。Data&AI系ソリューションを扱うグループに所属しています。SnowflakeやMicrosoft Fabricなどのデータソリューションの他、Azure OpenAI Service、Microsoft 365 Copilot(エージェント含む)などのAI案件をメインに担当しています。

担当記事一覧