NEXTSCAPE blog

株式会社ネクストスケープの社員による会社公式ブログです。ネスケラボでは、社員が日頃どのようなことに興味をもっているのか、仕事を通してどのような面白いことに取り組んでいるのかなど、会社や技術に関する情報をマイペースに紹介しています。

MENU

ローコードツールの保守性について、およびPower Query エディターをぐちゃぐちゃにしないコツ ~そして弊社サービスの紹介~

こんにちは。Azureビジネス部 堀越です。
数年ぶりにクリスマスツリーを飾ってみたのですが、意外とウキウキしてしまいました。
無駄にキラキラしているものが生活の場に突如現れるのは楽しいですね。

さて、お仕事の話です。ここ数年の業務では、 Power BI でのレポート作成をはじめ、Power Platform を扱っています。
以前の作成物のメンテナンスや見直しをすることも増えてきて、おおよそ基本的なことばかりではありますが、改めて作成時に気を付けたいなと思っていることを書きます。

 

この記事は「NEXTSCAPE Advent Calendar 2022」の17日目です。
qiita.com

結論:ローコードツールでも保守性がだいじ

はい、言いたいことは表題の通りでございます。プログラミング言語でコードを書く時と一緒ですね。

Power BI に限らず、ローコードツールと称されるものは、基本的にGUIでの作業となり、また Power Automate のフローや Power Query エディターの「適応したステップ」のように処理内容が上から順に"日本語で"書かれているので、
使い始めの頃は「これ見れば処理内容わかるからコメントいらないね!」などと思っていました。

本当にシンプルなフローやレポートならそれでもいいでしょう。

しかし、ぱっと見では意味の伝わりづらい日本語訳も散見されます。(MSツールあるある。徐々に改善してくれてはいます)

「重複された列」ってなによ。


(「列の追加」→「重複する列」で作成されるステップ。意味合いとしては「複製された列」)
ステップ数が多いと一つ一つ追っていくのもしんどいです。 そしてまあ、頑張って作ったレポートもフローも、未来の自分は細かいことは忘れています。
確かに自分が作ったはずなのに、いったい何を思ってこんな処理を入れているのかわからない。
コーディングをしたことがある人ならばきっと覚えがあるこのもどかしさは、ローコードツールでも当然発生します。

さらに、Power Query エディターにもPower Automate フローにも言えるのですが、「他の人の作成物は解読が結構大変」という面があると感じています。

Power Platform はエンジニアでない人にも触ってもらえるツールであることですし、せっかくなら未来の自分だけでなく他の人の為にも開いたときにもわかりやすい内容にしておきたいものです。
同じようなことは Power Automate でも大いに痛感しているのですが、今回は Power BI のPower Query エディターを使うときに気を付けていることについてです。

こころえ その1:クエリの参照をうまく使う

まずPower Query エディターでデータソースに接続して、データモデリングしながらクエリを作っていく時の話です。
モデリングについてはこちらのDocと、 learn.microsoft.com
Docはなかなか飲み込みづらいですので、Power BI 王子がわかりやすく書いてくださっているQiita記事がこちらです。 qiita.com
一応自分が書いたQiita記事もあります。qiita.com

データモデリング時に、一つのデータソースから、複数のクエリを作ることがよくあります。
この時にわたしがやっているのは、まず【接続】クエリを作成して、最低限のクレンジングをしておくことです。
ファクトテーブルやディメンションテーブルは、この【接続】クエリを「参照」して作成します。「参照」は参照元のクエリの処理を内包した新しいクエリを作成するので、データソースの管理もしやすいですし、クレンジング処理の共通化ができます。

クエリを右クリックで「参照」

接続クエリのソースとステップ

「参照」で作成したクエリのソースとステップ

2枚目のクエリ「CGS_fac_UserProfile」のソース名に、1枚目の参照先クエリ「【接続】CGS_User」が表示されていますね。

ちなみに、「参照」で作成したクエリには参照先のクエリのステップは表示されていませんが、内部ではしっかり同じ処理が行われています。つまり、データソースへの接続は参照先クエリと同様に行われているので、データ更新時の負担の軽減を期待することはできません。

ただし、逆に【接続】クエリの「読み込みを有効にする」のチェックを外しておくことはできますので、データソースへの接続回数を1回減らせます。

クエリを右クリック→「読み込みを有効にする」のチェックを外す

 

「読み込みを有効にする」のチェックを外すと、「レポートの更新に含める」も同時に外れるので、この作業はデータモデリングが完了したときに行います。
【接続】クエリを編集したときは更新が必要なので、チェックを付けなおして更新を行ってください。

こころえ その2:クエリには種類と目的がわかる名前をつける

基本的な命名規則的なお話です。Power Query エディターでの作業効率はもちろん、レポートを作成するときにはクエリ名を頼りにフィールドを探すことになりますから、一目で中身がわかることが大事です。

先ほどからスクショに出ていますが、自分はこういう風にクエリ名を付けています。

真ん中はファクトテーブルかディメンションテーブルかを表します

Power Query エディター内でしか使わないクエリには、もっとわかりやすい目印をつけてしまっていいと思います。
自分は参照クエリには、そのまま【接続】とクエリの頭に付けてしまっています。 レポート作成に使うクエリの中間処理として、変換や結合などの為だけに存在するクエリは【作業用】【work】などを着けます。

こころえ その3:クエリのグループを活用する

クエリはグループにまとめることができます。何のことはないフォルダーで、しかもPower Query エディターでしか表示されないのですが、クエリが多くなってくるととても便利です。
データソースごと、クエリの目的(接続クエリかレポート用クエリか)ごとなどこまめに整理しておきましょう。

クエリペイン(と勝手に呼んでいます)の空白部分を右クリックすると「すべて展開」「すべて折りたたみ」のメニューがあります。
もしくはスクロール部分を右クリックしましょう(デフォルト表示が「すべて展開」されているので、クエリがいっぱいな時ほど最初は閉じておいてほしいお気持ち)

赤い矢印はマウスカーソルのつもりです

 

こころえ その4:プロパティの説明を書いておく

クエリとステップ、それぞれのプロパティで「説明」を書いておくことができます。これがまさにコメントの役割を果たします。

まずクエリのプロパティです。クエリ名を右クリックするか、画面右側の「クエリの設定」ペインで「すべてのプロパティ」をクリックするとプロパティ画面がポップアップします。

クエリ名を右クリック→プロパティ

 

「クエリの設定」で「すべてのプロパティ」をクリック

 

ポップアップしたプロパティ画面

 

「説明書こうね!」って主旨なのに空っぽのスクショを載せてすみません。
名前からわかる場合はいらないかなという例です。ということにさせてください。
【作業用】とか【work】とか、用途がや目的がわかりづらくなりがちなクエリにはきちんと記載しておくことが大事だと思います。

惜しむらくは、「説明」があると知っていないと開かないかなぁというところですね。詳細エディターにでも表示してくれるともっと活用できそう。

つぎにステップのプロパティです。ステップ名を右クリックでプロパティ画面がポップアップします。

ステップ名を右クリック(歯車マークではありません)

 

ポップアップしたプロパティ画面

 

こちらの「説明」は、記入があるステップには!マークがつくし、なんとマウスオンするだけで内容を表示してくれる素敵仕様です。
クエリもそうしてほしい。

素敵な機能。赤い矢印はマウスカーソルのつもりです。

 

さらに、プロパティ画面から記入した「説明」は、詳細エディタ上でコメントとして自動的に記入されます。
逆も然りで、詳細エディタでコメントを記入すると「説明」として扱ってくれます。気が利くじゃない。

プロパティ画面から記入した「説明」が、コメントとして記入される

以上、本当に基本的なことばかりではありますし、作っている時はおざなりになってしまいがちですが、
開いたときにウェッとならない Power Query エディターを目指したい者の覚書でした。
Power Automate でも、変数名、アクション名の工夫、メモの活用、スコープでの整理などが大事だなと思っています。

 

宣伝

このようにPower BI に日々向き合い、語りかけ、時にはおだてたり叱咤したりしております我々ですが、
先日、こんなサービスをまじめにリリースしました。

データ可視化 導入支援サービス - 導入開発支援
https://www.nextscape.net/ja/service/datavisualization

簡単に言うと、
データ分析をやってみたい方、 Power BI でいい感じのレポートをまず1つ作ってみませんか? 私たちがお手伝いします!
というサービスです。

役立てたいデータがあるけど分析に手が付けられない、
Power BI さわってみたけどよくわからなかった、
あとは、データ分析ではないけれど Power BI 活用という面で、
毎月ごとのcsvファイルを Excel で加工して資料を作成して…なんて作業を自動化したいなぁという方も是非お問い合わせください。

レポートを作るにあたっての課題整理から、
完成したレポートを見た時の「これがほしかった!」という実感、
継続して分析したときの思いがけない気付きや、つぎの目標の設定まで、
一緒に走りながらお手伝いさせていただきます!

ここまで読んでいただいてありがとうございました。引き続き、ネクストスケープのアドベントカレンダーを楽しんでいただければ幸いです!