Power BI でMongoDB データにDirectQuery して分析

Power BI はセルフサービスデータプレパレーションを拡張し、ビジネスアナリストがビッグデータからインサイトを引き出して、エンタープライズBI プラットフォーム機能を導入する手助けをします。最近のアップデートにより、Power BI はこれまで以上に多くのデータソースに接続できるようになりました。そうは言っても、すべてを実現できる製品というものはありません。そこで出番となるのが、CData Power BI Connector です。

CData のコネクタを使用すると、CRM やマーケティングオートメーションからビッグデータやNoSQL に至るまで、サポートされている270以上のデータソースのデータにPower BI からDirectQuery できます。市販のどのコネクタよりも速くMongoDB データにアクセスでき、組み込みのモデリング機能とデータフラット化機能を活用してスキーマレスデータのテーブルライクなモデルを作成し、Power BI での表示および分析を可能にします。コーディングやデータキュレーションは必要ありません。

※本記事はCData US ブログ Real-Time Analytics on MongoDB Data in Power BI の翻訳です。

MongoDB データをリレーショナルに見せる

CData のコネクタは、NoSQL データ統合を最も迅速かつ柔軟にサポートします。NoSQL データベースをあたかもリレーショナルデータベースであるかのように扱い、SQL-92 クエリの使いやすさと実用性を備えたNoSQL データストレージの柔軟性を活用できるようにします。

CData コネクタには、既存のNoSQL データ構造(JSON オブジェクト、配列など)をマッピングまたはフラット化して、Power BI との統合を簡素化する機能がいくつか含まれています。自由形式のクエリから水平・垂直のフラット化、カスタムスキーマ定義まで、オプションは多岐にわたります。フラット化について以下で簡単に説明しますが、詳細については、NoSQL データへの連携用の高機能ドライバーの記事を参照してください。

サンプルドキュメント

以下は、listingsAndReviews コレクションのサンプルドキュメントです。このドキュメントを、ご自身のMongoDB Atlas インスタンスにロードして読み進めることができます。コレクションについての詳細は、こちらを参照してください。

{ 
  "_id": "10082422", 
  "listing_url": "https://www.airbnb.com/rooms/10082422", 
  "name": "Nice room in Barcelona Center", 
  "summary": "Hi!  Cozy double bed room...", 
  "description": "Hi!  Cozy double bed...", 
  ... 
  "property_type": "Apartment", 
  ..., 
  "bedrooms": { 
    "$numberInt": "1" 
  }, 
  ..., 
  "amenities": [ 
    "Internet", 
    "Wifi", 
    ... 
  ], 
  "price": { 
    "$numberDecimal": "50.00" 
  }, 
  "monthly_price": { 
    "$numberDecimal": "750.00" 
  }, 
  "security_deposit": { 
    "$numberDecimal": "100.00" 
  }, 
  ..., 
  "images": { 
    ... 
  }, 
  "host": { 
    ... 
  }, 
  "address": { 
    "street": "Barcelona, Catalunya, Spain", 
    "suburb": "Eixample", 
    "government_area": "la Dreta de l'Eixample", 
    "market": "Barcelona", 
    "country": "Spain", 
    "country_code": "ES", 
    "location": { 
      "type": "Point", 
      "coordinates": [ 
        { 
          "$numberDouble": "2.16942" 
        }, 
        { 
          "$numberDouble": "41.40082" 
        } 
      ], 
      "is_location_exact": true 
    } 
  }, 
  "availability": { 
    ... 
  }, 
  "review_scores": {}, 
  "reviews": [] 
}

リレーショナルモデル

このドキュメントを念頭に置き、ドット記法と配列インデックスを使ってデータをドリルダウンして、データの階層に基づいてスキーマを構築するようにCData コネクタを設定します。

ここでは、この記事のビジュアライゼーションで使用するフィールドのみを記載します。 

Field Name in Power BI MongoDB Reference Value
_id _id 5780046cd5a397806c3dab3
longitude address.location.coordinates.0 2.16942
latitude address.location.coordinates.1 41.40082
is_location_exact address.location.is_location_exact true
country address.country China
price price 80.00
property_type property_type Apartment
monthly_price monthly_price 750.00
security_deposit security_deposit 100.00
bedrooms bedrooms 1

MongoDB データをドリルダウンしてこのスキーマを構築することは、いくつかの設定プロパティを設定し、生成されたファイルを修正してフィールド名を変更するのと同じくらい簡単です。

コネクタの設定

CData MongoDB Power BI Connector をここからダウンロードします。DSN 構成ウィザードを実行する際は、以下の手順に従って、MongoDB Atlas プライマリインスタンスに接続できるようにします。これらのプロパティを変更する必要がある場合は、付属のODBCConfigure.exe アプリケーションをいつでも実行できます。

  • 認証:MongoDB インスタンスに接続するには、Auth Scheme、Server、Port、User、Password、Database、およびAuth Database プロパティを設定します。また、Use SSL を"True" に設定します。

  • Miscellaneous:高度な設定タブで、Flatten Arrays プロパティを"2" に、Flatten Objects プロパティを"True" に設定し、Generate Schema Files を"OnStart" に設定します。

  • Schema:同じく高度な設定タブで、Location をスキーマファイルのディレクトリに設定し、オプションでTables プロパティを"listingsAndReviews" に設定してlistingsAndReviews コレクションでのみ操作するようにします。 

接続プロパティを設定したら、「接続テスト」をクリックしてプロパティが適切に設定されていることを確認し、スキーマファイルを生成します。

スキーマファイル

生成されたスキーマファイル(.rsd)を開き、テーブル / カラムの定義を確認します。それぞれのカラムは特定の属性(カラムが読み取り専用かどうか、ソースのデータ型など)を持っています。

この例では、シンプルに既存のスキーマ定義を編集し、不要なカラムを削除して、他のカラムのname 属性を変更します(可読性を考慮して属性は切り詰め)。










ライブMongoDB データをPower BI で

接続とスキーマファイルが両方構成できたら、Power BI でライブMongoDB データを表示することができます。CData コネクタはカスタムコネクタインターフェースを使用して構築されているため、MongoDB データをメモリに取り込む(インポート)か、ライブ接続(DirectQuery)するかを選択できます。

1. 「データを取得」をクリックして「CData MongoDB」を検索(または「その他」をクリックして「CData MongoDB」にスクロール)し、「接続」をクリックします。

2.次に、先ほど設定したDSN を入力し、「インポート」または「DirectQuery」を選択して「OK」をクリックします。

3.テーブルを選択(例:listingsAndReviews)して「読み込み」をクリックします。

この時点で、Power BI の「データ」メニューに表示されるように、Power BI でlistsAndReviews データ(スキーマファイルで定義されたもの)にアクセスできるようになります。

CData Power BI Connector を使用すると、Power BI から MongoDB への直接接続が可能になるため、SaaS やNoSQL データの作業に伴う従来のデータレプリケーションや仮想化の手順を回避して、ビジュアライゼーションやレポートの作成にすぐに取りかかることができます。

Power BI でMongoDB データをビジュアライズ

MongoDB データへのライブ接続が確立できたので、Power BI でビジュアライゼーションを作成する準備ができました。listingsAndReviews データには多くの特徴的なパーツがあります。組み込みのロケーションマッピングのおかげで、緯度と経度を使って物件タイプ別にリストマップを作成できます。

手始めに、マップを作成してみましょう。

マップのビジュアライゼーションを作成

  1. 「視覚化」メニューのマップアイコンをクリックします。
  2. latitude とlongitude を、「視覚化」メニューの対応するフィールドにドラッグします。
  3. property_type を「凡例」フィールドにドラッグします。
  4. 最後に、is_location_exact をフィルターセクションにドラッグしてTrue を選択します。

これで、物件別に色分けされた、各リストをプロットするマップグラフができました。

積み上げ縦棒グラフを作成

  1. 「視覚化」メニューの「積み上げ棒グラフ」アイコンをクリックします。
  2. address_country をX軸フィールドにドラッグします。
  3. price をY軸フィールドにドラッグし、ドロップダウンを選択して「平均」をクリックします。
  4. property_type を「凡例」フィールドにドラッグします。

これで、複数の異なる国における物件タイプ別の平均価格を示す、積み上げ縦棒グラフが完成しました。

その他のビジュアライゼーション

国別の平均月額、平均敷金、平均寝室数を表示するテーブルを追加したレポートを作成してみました。このレポートでは、Power BI のフォーカス機能を使って国を選択し、選択した国でレポートをフィルタリングすることができます。

無償トライアル & もっと詳しくは

CData Power BI Connectors を活用すると、ユーザーはPower BI をSaaS、ビッグデータ、NoSQL データソースのライブデータに接続し、分析し、ビジュアライゼーションを構築してビジネスを推進することができます。

まずはPower BI Connectors の30日無償トライアルをお試しください。また、YouTube チャンネルにて動画をご覧いただくこともできます。評価中ご不明な点がありましたら、いつでもCData にご連絡ください。ワールドクラスのCData サポートチームが丁寧にお手伝いします!

トライアル・お問い合わせ

関連コンテンツ