ノーコードでクラウド上のデータとの連携を実現。
詳細はこちら →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 属性を変更します(可読性を考慮して属性は切り詰め)。
<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 データには多くの特徴的なパーツがあります。組み込みのロケーションマッピングのおかげで、緯度と経度を使って物件タイプ別にリストマップを作成できます。
手始めに、マップを作成してみましょう。
マップのビジュアライゼーションを作成
- 「視覚化」メニューのマップアイコンをクリックします。
- latitude とlongitude を、「視覚化」メニューの対応するフィールドにドラッグします。
- property_type を「凡例」フィールドにドラッグします。
- 最後に、is_location_exact をフィルターセクションにドラッグしてTrue を選択します。
これで、物件別に色分けされた、各リストをプロットするマップグラフができました。
積み上げ縦棒グラフを作成
- 「視覚化」メニューの「積み上げ棒グラフ」アイコンをクリックします。
- address_country をX軸フィールドにドラッグします。
- price をY軸フィールドにドラッグし、ドロップダウンを選択して「平均」をクリックします。
- property_type を「凡例」フィールドにドラッグします。
これで、複数の異なる国における物件タイプ別の平均価格を示す、積み上げ縦棒グラフが完成しました。
その他のビジュアライゼーション
国別の平均月額、平均敷金、平均寝室数を表示するテーブルを追加したレポートを作成してみました。このレポートでは、Power BI のフォーカス機能を使って国を選択し、選択した国でレポートをフィルタリングすることができます。
無償トライアル & もっと詳しくは
CData Power BI Connectors を活用すると、ユーザーはPower BI をSaaS、ビッグデータ、NoSQL データソースのライブデータに接続し、分析し、ビジュアライゼーションを構築してビジネスを推進することができます。
まずはPower BI Connectors の30日無償トライアルをお試しください。また、YouTube チャンネルにて動画をご覧いただくこともできます。評価中ご不明な点がありましたら、いつでもCData にご連絡ください。ワールドクラスのCData サポートチームが丁寧にお手伝いします!