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

by CData Software 翻訳:兵藤朋代 | 2023年08月01日

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 属性を変更します(可読性を考慮して属性は切り詰め)。

<attr name="_id" xs:type="string" key = "true" other:bsonpath = "$._id"/>
<attr name="longitude" xs:type="double" other:bsonpath = "$.address.location.coordinates.0"/>
<attr name="latitude" xs:type="double" other:bsonpath = "$.address.location.coordinates.1"/>
<attr name="is_location_exact" xs:type="bool" other:bsonpath = "$.address.location.is_location_exact"/>
<attr name="country" xs:type="string" other:bsonpath = "$.address.country"/>
<attr name="price" xs:type="decimal" other:bsonpath = "$.price"/>
<attr name="property_type" xs:type="string" other:bsonpath = "$.property_type"/>
<attr name="monthly_price" xs:type="decimal"other:bsonpath = "$.monthly_price"/>
<attr name="security_deposit" xs:type="decimal" other:bsonpath = "$.security_deposit"/>
<attr name="bedrooms" xs:type="int" other:bsonpath = "$.bedrooms"/>

ライブ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 サポートチームが丁寧にお手伝いします!

関連コンテンツ

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

30日間無償トライアルで、CData のリアルタイムデータ連携をフルにお試しいただけます。記事や製品についてのご質問があればお気軽にお問い合わせください。