Upgrade to Pro — share decks privately, control downloads, hide ads and more …

モデリング、コンテキスト トランジション +1 / Data modeling

モデリング、コンテキスト トランジション +1 / Data modeling

966e29b84ae7dbde170f66b0bc75b7a6?s=128

Yoichi Ishikawa

May 04, 2022
Tweet

More Decks by Yoichi Ishikawa

Other Decks in Technology

Transcript

  1. None
  2. • Microsoft MVP for Data Platform - Power BI Since

    Sep. 2021 • 自称Citizen Developer • アント・キャピタル・パートナーズ株式会社 • Power BI, Power Platform, M365, EMS • 東京・町田在住 • 心臓にIoTデバイスICD埋め込みあり • コラボ・コミュニティ Power BI Weekly News with Yugo • コア・参加コミュニティ Power BI 勉強会、気ままに勉強会 • セルフ・コミュニティ 市民開発者 なってみよう! #TryCivicEngr 石川 陽一 @ishiayaya
  3. モデリングは必ず確認を

  4. None
  5. • 自動で思わぬリレーションになる場合も • スタースキーマに近づいているか? • 多のもの(ファクト)と1のもの(ディ メンション)の区別

  6. できるだけ「スタースキーマに」 ファクトテーブル 明細等 ディメンションテーブル • 分析したい軸 • 一意な値 「多」対「一」等に紐づけ=モデリング

  7. None
  8. None
  9. コンテキストトランジションの話 2022年4月30日 DAX Boot Camp #20発表より

  10. (その前に)コンテキストとは

  11. コンテキストとは • 行コンテキスト • フィルターコンテキスト 評価コンテキストevaluation contexts

  12. Power BI Desktop での DAX の基本 - Power BI |

    Microsoft Docs https://docs.microsoft.com/ja-jp/power-bi/transform-model/desktop- quickstart-learn-dax-basics
  13. Context transitionとは 2022/5/3版

  14. 「Context transition」 教材:

  15. モデル

  16. • 計算列で作成→フィルターコンテキストはn/a • 行コンテキスト(row context) • 行コンテキストはフィルタリングしないので同じ値 Calculateではさんだら… 計算列では行コンテキストになるはずが、Calculate がきたことによってトランスフォームされ、フィル

    ターコンテキストが効くようになった これが「コンテキスト トランジション(変換)」
  17. None
  18. 製品テーブルでやったことを、売上テーブルでやってみましょう ファクトテーブルのような「多」の重複した値を持つテーブル使う場合は、 意図しない結果を生むかもしれないので要注意

  19. None
  20. Automatic CALCULATE • メジャーが呼び出されるたびに自動的に(内部的に、暗黙的に)CALCULATEが 追加される • テーブルのカラムでメジャーを使う便利な理由 • CALULATEがあればコンテキスト変換が起こる→フィルターコンテキスト SUMX

    ( Orders, [Sales Amount] ) SUMX ( Orders, CALCULATE ( [Sales Amount] ) )
  21. かがたさんからのアドバイス(私なりの要約) • コンテキスト トランジションは、通常のビジュアル作り等の中で、暗黙的に意識し なくても頻繁に起こっている。 • 「なぜこの値に?」となったときに、コンテキスト トランジションを思い出し、確 認するとよい •

    (内部的に、暗黙的に)CALCULATEが追加されるのは、暗黙のメジャーでも発生して いる
  22. None
  23. None
  24. +1 DAXが簡単ではない7つの理由?

  25. https://sqlbi.com

  26. 7 reasons DAX is not easy - YouTube https://www.youtube.com/watch?v=xCs6-w2A3Rs

  27. 7 reasons DAX is not easy - SQLBI https://www.sqlbi.com/blog/alberto/2020/06/20/7-reasons-dax-is-not-easy/

  28. 1. DAX is a functional language 関数型言語 2. Practice makes

    perfect 練習すれば完璧に 「DAXを日常業務(Daily Job)に組み込む」 3. There are few important concepts 重要な概念ほとんどなし
  29. • evaluation contexts 評価コンテキスト • Iterators イテレータ • context transition

    コンテキストトランジション • expanded tables 展開されたテーブル
  30. 4. DAX is strongly logical かなり論理的 5. The devil is

    in the details 悪魔が細部にいる 間違った問いには、間違った答えが 6. You need a good editor 良いエディターが必要 7. Trial and error simply does not work トライ&エラーは単純に機能しない
  31. Practice. The. Fundamentals. Enjoy DAX!

  32. ありがとうございました。 be agile