[Power BI Tips] JSON テーブルの推論をちょっと試してみた
Power BI October 2020 Update
珍しく Power BI の更新情報から扱ってみようと思います。
2020年10月版のアップデートは以下の通り
詳細は Power BI Blog を見てください。オススメはブログ内にある YouTube を見てから、気になるところをブログで確認する感じですね。
ブログを開いて、「うわ!英語じゃん」って言って、そっ閉じしたアナタ!ブラウザの翻訳機能を使うのです!!!
https://powerbi.microsoft.com/ja-jp/blog/power-bi-october-2020-feature-summary/
本記事で取り扱うのは上の画像 1 ページ目の [Data Preparation] - [Automatic Table Detection from JSON files] の挙動です
JSON テーブルの推論
さて、JSON テーブルの推論とはどんな機能なのでしょうか?
これを有効にするには以下の手順が必要です。
[ファイル] - [オプションと設定] - [オプション] です。
[プレビュー機能] を開くと [JSON テーブルの推論] があります。ちなみに今回のアップデートで同じく追加された機能 [Excel テーブルの推論] もあります。
ここで有効にしたいプレビュー機能にチェックを入れて、OK をクリックすると Power BI Desktop の再起動を求められますので、一度アプリを閉じて再度開けば、有効になっています。
今回この機能を試すには JSON ファイルが必要なので、de:code 2020 のセッションリストの JSON を使用しましょう。以下の URL をコピーしておいてください。
https://www.microsoft.com/ja-jp/events/decode/2020session/export.asmx/JSON
試してみる
JSON テーブルの推論 ON の場合
さっそく [JSON テーブルの推論] が ON の状態で上記の URL を指定して JSON ファイルを読み込んでみましょう。
Power BI Desktop を起動すると以下のような画面になります
これまでのバージョンを知っている方は「おや?」って思われたはずです。
そう、今回のアップデートで空のページに ウォーターマーク が入りました。真ん中に並んでいる文字とアイコンのことです。これがレポートを作成する際の、最初の ナビゲーション的な役割 を果たしています。もちろんこれらの ウォーターマーク から進まなくても OK です。リボンから操作を選択するのも可能ですし、[ファイル] から操作を選択することも可能です。せっかくなので今回は、この ウォーターマーク から勧めましょう。赤枠で囲んである [別のソースからデータを取得する→] をクリックしてください。
[その他] - [Web] - [接続] の順でクリック
ここにさっきの URL を貼り付ける
そうすると何事もなく Power Query エディター にこうやってデータが読み込まれる
実は既にこの状態で新機能が動作しているのである
「え?何が??」 って思った方、ご安心を。それを解説していくのが、このブログである。
では比較のために [JSON テーブルの推論] を OFF にして同じ JSON ファイルを読み込んでみよう。その為には Power BI Desktop をもう一つ別に起動する必要があるので、いったんいま開いてる Powe BI Desktop は [閉じて適用] を押した後に 「JSON テーブルの推論_ON」 という名前で保存しておこう。
JSON テーブルの推論 OFF の場合
Power BI Desktop を起動して [ファイル] - [オプションと設定] - [オプション] を開き [JSON テーブルの推論] を OFF にし、Power BI Desktop を再起動しましょう。
Power BI Desktop を再起動したら、先ほどと同様に [Web] コネクタを選択して以下の URL を指定してみてください。
https://www.microsoft.com/ja-jp/events/decode/2020session/export.asmx/JSON
はい、上記の画像のようになったはずです。明らかに先ほどと違いますよね?
JSON の確認
ここでちょっと今回読み込んでいる JSON の確認をしておきましょう。
以下はダウンロードした JSON ファイルを Visual Studio Code で開いた画像です。
JSON が読める人なら説明は不要ですが、この JSON は 2 行目の "SessionList" という配列(リスト)の中に1セッションごとのデータが含まれています。
4行目の "Session" から 47 行目の閉じカッコ } までが "Session" という Key で表されるデータ(オブジェクト)です。
その中に
- "Language"
- "MainSpeaker"
- "REfLinks"
- "SessionDetails"
- など
などが続きます。これが Power BI Desktop で読み込んだ際の 列(カラム)になります。Language や MainSpeaker はオブジェクトで保持していますので、これらは Power BI の Power Query エディターで読み込むと Record 型 として認識がされます。一方、RefLinks, SubSpeakerList, TargetList, TopicList などは配列としてオブジェクトを保持していますので、これらは Power Query エディターで読み込むと List 型 になります。
これらを覚える必要はなく、JSON が読める人はなんとなく、「ほぉー、そんなもんか」と思ってもらえればよいですし、JSON がよくわからないという人もまた「ふーん、なんかそんな感じなのね」で十分です。もし興味がわいたら、JSON を勉強してみてください。わからないよりわかった方が、便利なのは確かです。
[JSON テーブルの推論] の ON と OFF の比較
ではもういちど Power Query で読み込んだ直後をそれぞれのパターンで比較してみましょう。
マシンスペックが許す方は、先ほど保存した「JSON テーブルの推論_ON.pbix」を開いてください。
Power BI Desktop が起動したらリボンの [データの変換] をクリックしてください。Power Query エディター が開きます。
[JSON テーブルの推論] が ON の場合
[JSON テーブルの推論] が OFF の場合
それぞれの結果が異なるのは一目瞭然なのですが、いったい何が違うのか?それではそれぞれのクエリを 詳細エディター で見てみましょう。リボンにある [詳細エディター] をクリックしてください。
[JSON テーブルの推論] が ON の場合のクエリ
[JSON テーブルの推論] が OFF の場合のクエリ
はい、クエリを比較するとよくわかるのですが、この機能が OFF の場合は Power Query が実質 1 行で終わってます。
Source = Json.Document(Web.Contents("https://www.microsoft.com/ja-jp/events/decode/2020session/export.asmx/JSON"))
これは指定された URL に GET メソッドで HTTP リクエストを出して、その結果を取得し、Json.Document 関数で JSON として処理をしています。
まぁつまり指定された URL から JSON をゲットしているわけです。
一方 [JSON テーブルの推論] が ON の場合 を見てみると 2 行目は同じなのですが、なにやらそれに続きが 7 行ほどあります。これは OFF の場合から順にテーブルに変換して、JSON を開いていく処理になります。先ほど Visual Studio Code で JSON を確認しましたが、要は JSON 構造を上から順に下って行って、データを開いているわけです。
これについての詳細は以下の私の YouTube をご覧ください。詳細に解説しています
Power BI 王子の Tips 集 ~ セッションリストの作り方 02 ~ → https://youtu.be/elZX_fWl-jg
つまり今回新たに追加された機能 [JSON テーブルの推論] を ON にすると、動画の中で順にポチポチして、JSON を開いていますが、これを推測して、Power Query を自動生成してくれます。
「まぁー、なんとういうことでしょう」
便利ですねー。ただ、あくまでも 推論(推測) なので、もしかしたら、思っているように展開してくれないこともありえます。とても複雑な JSON とかだと対応できない場合があるかもしれません。その場合は、この機能を OFF にして、上記の YouTube 動画のように順に試してみてください。
また、機能を ON にした場合の最後の #"Changed Type" にも注目です。JSON データには、数値、文字列、日付などの型情報がないため、 これまでは JSON を読み込んだら、最後に一列ずつ型を指定する必要がありました。この推論機能では、型も推測してくれていることがわかります。ただ、あくまでも推測なので、必ず意図している型になっているかは、確認してください。
まとめ
はい、いかがでしたでしょうか?
今回は 2020年10月版 の Power BI Desktop に追加されたプレビュー機能 [JSON テーブルの推論] を試してみました。これまでと何が変わったのか、そしてどういうことに使えそうか、少しでもご理解いただけたら幸いです。
最後まで読んでいただきありがとうございました。また気が向いたら、Power BI Tips シリーズを書きます。
皆様からのリクエスト、お待ちしております。
何かリクエストがあれば、以下までー🤗
Twitter: https://twitter.com/yugoes1021
Facebook: https://www.facebook.com/yugoes1021
LinkedIn: https://www.linkedin.com/in/yugoes1021/
Author And Source
この問題について([Power BI Tips] JSON テーブルの推論をちょっと試してみた), 我々は、より多くの情報をここで見つけました https://qiita.com/yugoes1021/items/e4a39843706702dcb8c3著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .