テクテク日記

テクテク=テクノロジー&一歩ずつ(テクテク)

データフロー(Power Query Online)①_基礎知識

ExcelやPower BI Desktopに搭載されているセルフサービスETL*1機能であるPower Queryは本ブログで何度も紹介してきました。Power Queryはローカル環境で作業するのに最適で、特にスペックの高いPCを使っている場合、メモリフットプリントを最小化して処理を行う特性により、殆どの場合ストレスなく"データをマッサージ"することができます。

一方で、クラウドサービスとしてのPower Query、すなわちPower Query Online(別名「データフロー」)も提供しており、今回はこちらについて数回に分けて紹介していきたいと思います。データフローの使い方について、Microsoft公式Docsで学ぶことができますが、本ブログでは実例を交えて紹介するとともに、製品開発サイドの話も少し話していきたいと思います。

データフローとは

データフローはクラウド版Power Queryであり、使用するにはPower BI ProやPower BI Premiumのライセンスが必要となります。ライセンスについては当ブログでも紹介しています。

2023年1月時点、Power BI Proは月額1,090円(税抜き)で利用(※2023年4月時点では税抜き1,250円)することができ、トライアル期間として無料で60日の利用が可能です。データフローを試してみたいけど、料金が掛かるのが嫌だなという方は、まずはPower BIサービスへサインインし、トライアルを開始してみると良いでしょう(※Microsoft 365 E5をお持ちの場合、Power BI Proが含まれていますので、トライアルなしでそのまま使用を開始することが可能)。

データフローの実際の画面ですが、アイコンは以下のようになっています。

このうち、1つのデータフローを開くと、以下のようなテーブルリストが表示されます。

上部にある「テーブルの編集」をクリックすると、以下のような馴染み深い画面が出てきます。

UI*2は完全にPower BI DesktopのPower Queryエディタですが、実際には細かいところでいろいろ違ってきます(今後少しずつ話をしていきます)。

データフローは有料サービスとなってしまうが故、利用率が低いことが懸念されますが、Power Queryを使い慣れた人は問題なく使いこなせるようになるでしょう。とはいえ、データフローはローカルで使用するPower Queryと多くの点で異なっているのもまた事実です。
※以下、便宜的にExcelやPower BI Desktopで作るPower Queryを単純に「Power Query」もしくは「デスクトップ版Power Query」、Power BIサービスで構築されたPower Queryを「データフロー」もしくは「Power Query Online」として話を進めていきます。

Power Queryとデータフローの比較

価格(無料 vs 有料)

日頃Power Queryを使っている人にとって、料金を気にすることなく使用されているかと思います。Power BI Desktopは無料で使用でき、Excelも機能の1つとしてPower Queryが搭載されていますので、費用が発生するというイメージはあまりないかと思います。Power BIサービスの利用形態は大きく分けてFree、Pro、Premiumの3つが存在しますが、上述の通り、データフローを使うためには最低限、Power BI Proのライセンスが必要となります。

利用場面

Power Queryは主に個、データフローは個+組織と考えれば分かりやすいかもしれません。Power BI DesktopやExcelでPower Queryを使用する場合、一個人がクエリを構築し、ETLプロセスを完結させていきます。この場合のPower Queryは他人が活用することはできず、構築されたクエリをデータモデルに読み込むことがメインの目的となります。

一方、データフローはMicrosoftが管理するクラウド環境でPower Query OnlineによるETLプロセスを経て、分析用に構築されたデータを組織内でアクセス権限を持つ人が再利用しやすいようにしたものです。そのため、既定ではデータフローとして定義されたデータはPower BIが提供する内部ストレージに保存されるようになっています。

ざっくりとしたイメージは以下の通りですが、左側はデスクトップアプリケーションを使用した場合、右側はデータフローを使用した場合の違いとなります。データフロー経由であれば、複数のユーザーが構築されたデータフローに接続して、更に自分で好きな形でデータを成形したり、分析モデルを構築したりすることができます。

なお、データフローはMicrosoftが提供する「他のサービス」でも利用することができ、こちらも今後、順次紹介していきます。重要なのは、データフローはWebブラウザを使用している点であり、「他のサービス」もその殆どがブラウザ経由となっています。

操作性

Power Queryとデータフローはテクノロジーのコアな部分は同じですが、2023年1月時点ではUIがやや異なっています。データフローはモダンUIであり、ExcelやPower BI DesktopのUIはレガシーUIと言われています。

現在、レガシーUIベースでの開発は行われておらず、今後全ての開発・バグ修正はモダンUIベースで行われます。そのため、いずれどこかのタイミングでデスクトップ版のPower QueryもモダンUIに置き換えられていくことになりますが、ユーザーボイスで要望の多かった機能の1つとして、Power BI DesktopにPower Query Onlineのダイアグラムビューが近々搭載される予定です。

モダンUIはデスクトップ版のPower Queryを使い慣れている人にとって最初はやや戸惑いますが、2時間もあればその殆どの機能に慣れてくるでしょう。更に、モダンUIならではの機能も多く入っているため、実例ベースで解説していきたいと思います。

機能・パフォーマンス面

データフローはPower BI ProとPremium(PPU含む)の間で使用できる機能に制限があります。Premiumであれば「拡張コンピューティングエンジン」やPower BI Proでは使用制限されている「計算対象エンティティ - Computed entities」、「リンクされたエンティティ - Linked entities」等、全ての機能を使用することができます。

また、ローカル環境とクラウド環境という比較を行った場合、ローカルで構築するPower Queryは使用マシーンのスペック、データソースの種類(特にファイル型式のソース)等の影響を受けやすく、クラウド(データフロー)で構築されるデータフローは(例えばデータ更新に際して)ノイジーネイバー(Noisy neighbor)等の影響を受けやすくなります。

なお、オンプレミス・データソース(例:ExcelCSV、オンプレ版SQLサーバー等)を使ってデータフローを構築した場合、On-premise data gatewayの利用が必要となり、インストール先のサーバースペック等、より複雑で多くの領域に踏み込んでいく必要が出てきます。

まとめ

いつも記事が長くなりがちなので、今年はコンパクトにまとめていくことを心がけたいところです。人によってはこれだけでも途方もない情報だったりするかもしれませんが、データフローの導入についての簡単な説明でした。次回からはもう少し具体的にデータフローのメリット・デメリット、操作法、裏話等について紹介していきたいと思います。

*1:ビジネスユーザー等が自分で分析可能な形にデータ処理を行うこと

*2:ユーザーインターフェースの略