25
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Microsoft Power BIAdvent Calendar 2023

Day 9

Power BI workout - Power BI Desktop での学び(ちょい足し風味)

Last updated at Posted at 2023-12-08

Power BI の学びには重要なポイントがたくさんある。データソースのこと、データの準備のこと、ビジュアライゼーションのこと、レポート共有のこと、どれひとつ欠けることなく及第点を超える必要があるのだけど、いきなりすべてを学んでいこうというのは無理筋だ。Newbie なら Newbie でできることから学び始めればよいし、いきなり難しいことを理解しようとしないことが大事だ。

明言しておくと Power BI は難しい。ひとそれぞれといっても Power BI は難しい。だから、なかなかできるようにならないのは当たり前だ。なので、安心して勉強続ければよい。ま、頑張ってね。

新たな学びということ

Power BI の導入や運用をサポートする仕事を続けていて強く考えさせられることがある。

十分な学習成果がないまま使用を開始している。
問題を抱える Newbie の多くは Power BI を学べていないまま Power BI を使い始めている。使い始めたときならそれでよいかもしれないけれど、実務レベルでレポート/データを展開しようとするとあっという間に挫折するはずだ。エンジニアであろうが非エンジニアであろうが、これは変わらない。私に解決がゆだねられるケースほとんどの原因やきっかけは勉強不足、特に基礎知識が欠けているのだ。

港を出航するや否や座礁している船だらけ。基礎知識がなければ、行先や道のり / 最適な道具 / 優先すべき選択 / 力の入れ具合やさじ加減がわからないのは当たり前だ。小さな問題だけでなく大きな問題さえ気づけないよね。

たとえば、新たな学びとして取り組んでいないので、

  • Excel ユーザは Excel のように使おうとし、Power BI なのに Excel のように問題を解決しようとする
  • データベース エンジニアは OLTP の知識だけで取り組み、ユーザに対し Power BI / OLAP ならではの問題解決の提示や制限を説明できない

それぞれ個別に攻撃する意思はない。自称 Power BI エンジニアによりプロジェクトが破綻するのは、そもそも組織の問題だからだ。

データ管掌部門や委託先 BI ベンダが理解してくれないなんて恨み節を聞かされることがあるけれど、それはあなたたちがわからないこと難しいことだけをエンジニアに丸投げしつづけたツケなのでは?と話すことがある。エンジニアに相談を持ちかけたりエンジニアから相談をされるよう信頼関係を築くためには、あなたたちが Power BI を理解し勉強を続けなければなりませんよと。

学びのスタイルはそれぞれ好きにすればよい。本を読む、教育コンテンツを受講する、AI に聞く、だれかに教えてもらう。どのような選択をするのかは自由だ。その選択をした責任はすべてあなたにある。ハズレを選んだのは運が悪かったかもしれないけど、安易に入手できる知識は相応の価値しかないということだろうし、なぜ?どうして?と思ったら納得がいくまで追加で勉強しなければならないのでしょう。

Power BI Desktop での学び

さて、気を取り直して Power BI Desktop の話。あとに続く話は Newbie 向けの書籍や教育コンテンツどれでも構わないのだけど、きちんと学び終えていることが前提。Power BI Desktop そのものだけの学びではなく、Power BI Desktop を学ぶ経緯で、組織内のデータの在り方(入力/保存/フォーマット/ストレージから共有されるレポートまで)を考えましたか?ということが主成分。

Power BI Desktop で勉強するとき Power BI Desktop だけの勉強をしてはいけないということ。

タイム インテリジェンス機能

スタースキーマという理屈を理解していれば、ほとんどの セマンティック モデルでこの機能を使うことはない。なので、Power BI Desktop のこの機能は OFF という選択になる。
image.png
日付に関するディメンジョンテーブルは常に用意することになるから、この機能を利用するケースはない。どのようなトラブルが起きるのかわからないのなら、なおさら OFF にすべき。どうしてもというなら、起こり得ることを理解したうえで使えばいい。

ソースデータについてよく考える

低い品質のデータをソースデータにしてはいけない。学びはじめなら特にだ。
Power BI Desktop で実施する作業で誤ったデータを修正しようとしたり、フォーマットの不備に対応してはいけない。できるからと言って Power BI Desktop での作業にしてしまうと、いつまでたっても根本的な問題を解消できないからだ。十分な練度なく高度な処理を選択しようとするから、失敗したり解決策が複雑になるのだ。
誤ったデータが入力されにくい仕組み、保存だけでなく読み取りしやすいフォーマットの選択、サービスからでもアクセスできるストレージ、前もって考えておくこと、やっておくこと、たくさんあるのですよ。

どのようにデータを扱っているか

品質の問題ではないがソースデータのフォーマットや使用するアプリケーションに依存して問題が発生することがある。たとえば、Power BI Desktop インストールに合わせて提供されているサンプルデータを見てみる。
image.png
Excel で見ると特に問題があるように見えない。
image.png
Power Query エディタでみると Excel では確認できない数値が見える。アプリケーションごとの動作の違いが顕在化する。
image.png
それでも、セマンティック モデルにロードされた数値をみると問題なさそうに見える。なんらかの処理がされたということだ。
image.png
Power BI Desktop だけの話ではない。データの不備、機能の不具合でもなんでもない。この出来事を知らないというは勉強不足だし、数値の扱い / データ型 についてどうすべきかを考えておかなければならない。

Power Query? or DAX?

たとえば、テーブルが必要、テーブルに列が必要となったとき、Power Query で用意するのか。DAX で用意するのか、どちらがいいんだい?ってこと。操作手順と得られる結果だけを勉強したひとが陥りやすい問題だ。
Power Query / DAX の使い分けを知りたいという気持ちや結果だけ見てそう思ってしまうこともあるでしょう。できるだけシンプルに理解できそうな案を安易に模索しても得られる答えは It depends. になってしまうのではないだろうか?

  • セマンティック モデルにロードするデータを準備するということ
  • セマンティック モデルに込める集計ロジックを変更/追加するということ

それぞれの目的でテーブルを追加したり列を追加したりするのだけど、可能な限りデータソースに近い方、データのフロー上流で処理すると多くの場合でうまくいく。

重要なのは Power BI Desktop だけでものごとを判断してはいけない ということだ。たとえば、データを準備するという場面を考えるとき、抽出(E) → 変換(T) → ロード(L) というフェーズで整理できる。一部の 変換(T) を 抽出(E) に寄せる クエリフォールディングも選択肢に追加したいし、Power BI データフローも選択肢に追加すると、抽出(E) → ロード(L) → 変換(T) → ロード(L) というフローも選択可能になるでしょ。

セマンティック モデルのデザイン時にテーブルを用意したり列を用意するときのコストってどれくらいのリソース消費になるか、理解してる?

データソースをはじめとしてできるだけ上流から処理を仕掛けたとき、リソース消費がどのように配分されるか、計画してますか?

思ったこと🙄

  • Power BI Desktop を勉強するなら Power BI Desktop だけの勉強をしてはいけない
    • 操作手順だけ覚えてもうまくいくわけないでしょ
    • 勉強するならひと工夫するとよいぜ

その他

25
7
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
25
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?