Power Platformでできること
「このセッションは開発者のみなさんだけではなく、非開発者の方にも向けて話をしたい」
こう切り出し、まずは清水氏によるPower Platformの解説から始まった。Power Platformはローコード開発のためのプラットフォームである。米国で昨年11月に開催されたMicrosoft Ignite 2019でも、RPAの機能が追加されるなど、機能強化が行われている。
Power Platformは現在、ノーコードでアプリが作れる「Power Apps」、ノーコードでビジネスロジックが作れる「Power Automate」、ノーコードでBIが実現できる「Power BI」、ノーコードでボットが作れる「Power Virtual Agents」という4サービスを提供している。「Power Automate」は以前、「Microsoft Flow」と呼ばれていたサービスがリブランディングされたもの。「元々のサービスにプラスアルファの機能が入った」と清水氏。またPower Virtual AgentsはIgnite 2019で発表された新しいサービスである。つまり、「これらを合わせるとシステムが作れる」と清水氏は語る。
Power Platformの最新バージョンの構成を表すと、図1のようになる。「AI Builder」は機能の一つで、人工知能や機械学習を誰もが容易に組み込めるようになる。Power BI dataflowsはETLツール。これを使えば、クラウドやSaaS、PaaSなどAPIを提供しているもの、オンプレミスなどさまざまなデータソースからデータを取得し、データストアであるCommon Data Service(CDS)や、ビッグデータ分析のためのストレージAzure Data Lake Storage Gen2(ADLS)にデータを取り込むことができる。「本当の意味でマルチデータソースになっている」(清水氏)
ここで清水氏はデモを実施。まず見せたのは、今回のデブサミ2020のセッションリストをスクレイピングし、デブサミのセッションリストをPower BIのレポートで表示できるようにしたもの(デブサミセッションリストのデモ)。
例えばセッション名の検索窓に「アプリ」と入れれば、その用語が入っているセッションが表示される。「ひらがなで文字列を入れても、ちゃんとセッションがひっかかってくる」と清水氏。面白いのは、iCALの列をクリックすると、そのセッションの予定ファイル(icsファイル)がダウンロードでき、カレンダーに予定を表示できるようになる。クリックによってicsファイルを作成するPower Automateのフローを呼び出しているのだという。
このような仕組みも「Power BI Desktop」を使えば簡単に作成できる。「ガツガツコードを書く必要はなく、ボタンを押していくとデータを取得するPower Queryは自動生成される」と清水氏。開発者の場合は、自動生成されたものをブラッシュアップさせていくだけだ。デモではデブサミ2020のセッションスケジュールを取得してデータ化するためのPower Queryなどが紹介された。
またもう一つ、清水氏がデモで紹介したのが、某テーマパークのアトラクションの待ち時間を、BIのレポートとして可視化するというもの。このための前提条件は、Power BI Pro以上、CDSが使えること、Azureサブスクリプションのライセンスを保有していること。仕組みとしては図2のようになる。このような構成で作成したのが、「アトラクションの待ち時間を教えるよ!」というボットと、アトラクション別平均待ち時間のレポートである。
前者のボットは、「待ち時間を知りたい」と入力すると、「どのアトラクション」と聞かれ、アトラクション名(一部でもよい)を入れると、CDSにアクセスし、その情報を取得し、回答する。またアトラクション別平均待ち時間は、Power BI dataflowsを使い、当日のデータを取得し、レポートにしている。「こういったサービスが、Power Platformのアーキテクチャを使えば簡単につくることができる」と清水氏は説明する。
この仕組みを作るのにかかった時間は、「構想3か月、実装は2日。だが同じモノを作ってくれと言われれば、1日でできる。このスピード感をぜひ、覚えておいてほしい」と語り、廣瀬氏にバトンタッチした。