$30 off During Our Annual Pro Sale. View Details »

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

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

Yoichi Ishikawa

May 04, 2022
Tweet

More Decks by Yoichi Ishikawa

Other Decks in Technology

Transcript

  1. View Slide

  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

    View Slide

  3. モデリングは必ず確認を

    View Slide

  4. View Slide

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

    View Slide

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

    View Slide

  7. View Slide

  8. View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  12. Power BI Desktop での DAX の基本 - Power BI | Microsoft Docs
    https://docs.microsoft.com/ja-jp/power-bi/transform-model/desktop-
    quickstart-learn-dax-basics

    View Slide

  13. Context transitionとは
    2022/5/3版

    View Slide

  14. 「Context transition」
    教材:

    View Slide

  15. モデル

    View Slide

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

    View Slide

  17. View Slide

  18. 製品テーブルでやったことを、売上テーブルでやってみましょう
    ファクトテーブルのような「多」の重複した値を持つテーブル使う場合は、
    意図しない結果を生むかもしれないので要注意

    View Slide

  19. View Slide

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

    View Slide

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

    View Slide

  22. View Slide

  23. View Slide

  24. +1 DAXが簡単ではない7つの理由?

    View Slide

  25. https://sqlbi.com

    View Slide

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

    View Slide

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

    View Slide

  28. 1. DAX is a functional language 関数型言語
    2. Practice makes perfect 練習すれば完璧に
    「DAXを日常業務(Daily Job)に組み込む」
    3. There are few important concepts
    重要な概念ほとんどなし

    View Slide

  29. • evaluation contexts 評価コンテキスト
    • Iterators イテレータ
    • context transition コンテキストトランジション
    • expanded tables 展開されたテーブル

    View Slide

  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
    トライ&エラーは単純に機能しない

    View Slide

  31. Practice.
    The.
    Fundamentals.
    Enjoy DAX!

    View Slide

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

    View Slide