キャプション画像や参考リンクなどの用意が間に合いませんでした m(_ _)m
とりあえず文章だけ公開して、後日追加いたします。
0. はじめに
以前、Power BI コミュニティの勉強会で『なぜカレーから肉じゃがを作ろうとするのですか?』というふざけた発表をさせていただきました。その際にこの問題が「Shadow BI」というカッチョイイ名前で呼ばれていることを知り、いつかどこかでまとめておきたいと思い本日に至ります。「Shadow BI」問題とはなにか?それに対して Power BI で何ができるのか?について、簡単ですがまとめてみました。
1. Shadow BI とは?
「Shadow BI(シャドービーアイ)」問題とは、Power BI や Teableau などのBIツールで作成したBIレポートから、エンドユーザー(閲覧者)が元となっているデータをダウンロードしたりコピペしたりして、別の目的に再利用してしまう行為のことを指します。Shadow IT 問題と同様に企業においては問題視されるています。
なぜかというと、BIレポートのデータはそのレポートを作成するために相応しい加工整形やモデリングがされているため、エンドユーザーが別の目的で必要とする形式や抽出条件になっていない可能性が大きく、その結果、間違った判断や間違ったアクションを導いてしまうことがあるからです。
例えるなら、せっかく作ったカレーから素材である「肉・ジャガイモ・ニンジン・玉ねぎ」を抜き出して別の鍋に移し、そこに出汁とみりんとしょう油を加えて肉じゃがに作り替えるぐらい愚かな行為です。
2. なぜそれは起こるのか?
エンドユーザーたちはなぜそんなことをするのでしょうか?彼らの利用目的は大きく分けて二つです。
別レポートへの転用
開発者が提供したレポートでは要件を満たさないため、別のレポートを作成するためにデータだけを利用するパターンです。単純に分析軸が違うレポートを作りたい、というときもありますが、多くの場合はダウンロードしたデータにオリジナルのマスタデータなどを追加して自部署のオリジナルレポート化するパターンが多いです。
管理台帳の元データとしての利用
レポートからダウンロードしたデータを、営業部門の進捗管理台帳や対応顧客リストとして活用するパターンです。Power BI のレポートは基本的に読み取り専用であるため、表示されるテーブルデータに対して何か情報を付加したり保存したりすることができないため、このような行為が行われます。
3. どうすりゃいいの?
いちばんの解決策は、BIレポートはあくまでも最終成果物であり、そこからデータをダウンロードして二次利用することは『良くないこと』であるとユーザーに認識してもらい、社内で正式なビジネスデータを提供するデータウェアハウスなど仕組みを構築し、また同時にビジネスデータについてのナレッジやリテラシーを高める教育を実施することです。
しかし、そのような仕組みを作り上げるためには多くの時間と費用と人的リソースが必要となるため、なかなか実現するのは難しいです。そこで、Power BI の下記の機能を利用して、Shadow BI をなるべくコントロールしたり、簡易的なデータ提供の仕組みを作成することができます。
ダウンロード専用テーブルの作成
非常に原始的で消極的な方法ですが、データをダウンロードするための専用テーブルヴィジュアルを用意して、そこからのみダウンロードしてもらう方法です。ヴィジュアルの右上の三点リーダから「データのエクスポート」でそのビジュアルの元となっているデータをCSV形式でダウンロードできますので、だれでも簡単に利用することができます。
意図しないヴィジュアルからダウンロードされるよりはまだガバナンスができまが、ダウンロードされるデータはいわゆる「大福帳形式」となるため、そこからさらに集計を行う際などには注意が必要となります。
Power Automate で出力
上記の方法と似ていますが、Power Automate との連動機能を利用して、ボタンを押すとデータがダウンロードできる仕組みを作ります。ダウンロードされるデータの形式を開発者側でコントロールすることができる利点があります。例えば、テーブル上では個人情報が見えているが、ダウンロードされるデータにはそれらの項目は入らないようにするなどの制御が可能です。
通常のやり方だと Power Automateの仕様により1000レコード分しかダウンロードできないですが、最近実装された、API経由でDAXクエリ実行したり、テーブルデータをCSV形式化するTOCSV関数などを利用すれば、ある程度大きな件数のデータもダウンロードすることができます。
また、上記方式のように直接デスクトップなどにダウンロードできない不便さはありますが、Power Automate 側に実行ログが記録されるため、いつ、だれが、どのデータをダウンロードしたのかが後でわかるという利点もあります。
dataset の共有
Power BI のデータセットはユーザーに対して共有することができます。Power BI からの接続はもちろん、Excelからの接続も可能です。やDAXメジャーの共有やセキュリティレベルの反映などもでますし、接続方法によっては手持ちのマスタデータなどをモデルに追加して集計することも可能です。
ただその反面、元となっているデータモデルの構造理解が利用するエンドユーザー側でも必要となるため、複雑なデータモデルの共有は難易度が高くなります。
dataflow datamart による共有
dataflow や現在プレビュー機能の datamart 機能を利用しての共有も可能です。dataset の共有よりもモデリングする前のプレーンな状態でのデータ共有を目的としているため、よりデータウェアハウスの仕組みに近いものになります。こちらも最近では Excel からも接続ができるようになりました。
ただ、これらの機能を効率的に利用するためには Power BI Premium ライセンスが会社を導入されていたほうがよいと思います。
4. まとめ
残念ながらこれ一発で解決!という大正解はないと思います(あったら教えて)。It depends ! 場合によるぜ!なので、いろんな解決方法を知っておき、その状況にあった手段を取ることができるようにしておいたほうがよいと思います。
Power BI にはエンタープライズBI実現のための機能が日々実装されていっております。これからもきっと進化していくと思いますので皆さんキャッチアップしていきましょう!