NoSQL データベースからデータを取得する

完了

組織によっては、リレーショナル データベースを使用せず、代わりに NoSQL データベースを使用する場合もあります。 NoSQL データベース (非 SQL、Not only SQL、または "非リレーショナル" とも呼ばれます) は、テーブルを使用してデータを格納しない柔軟なタイプのデータベースです。

シナリオ

Tailwind Traders のソフトウェア開発者は、倉庫に保管されている製品の出荷と追跡を管理するためのアプリケーションを作成しました。 そのアプリケーションでは、データ リポジトリとして NoSQL データベースである Cosmos DB を使います。 データは JSON ドキュメントとして格納されます。これは、主にサーバーと Web アプリケーションの間でデータを送信するために使われる標準ファイル形式です。 レポート作成のために、このデータを Power BI セマンティック モデルにインポートする必要があります。

NoSQL データベース (Azure Cosmos DB) に接続する

このシナリオでは、Power BI Desktop の [データの取得] 機能を使用します。 ただし、今回は [その他...] オプションを選択し、使用するデータベースの種類を指定して接続します。 この例では、[Azure] カテゴリを選択し、[Azure Cosmos DB] を選択してから、[接続] を選択します。

[Azure Cosmos DB] オプションからの [データの取得] のスクリーンショット。

[コネクタのプレビュー] ウィンドウで [続行] を選択し、データベースの資格情報を入力します。 この例では、[Azure Cosmos DB] ウィンドウでデータベースの詳細を入力できます。 データの取得元となる Azure Cosmos DB アカウントのエンドポイント URL を指定できます (この URL は Azure portal の [キー] ブレードから取得できます)。 または、データベース名やコレクション名を入力するか、ナビゲーターを使用してデータベースとコレクションを選択することにより、データ ソースを識別することもできます。

この例のように、エンドポイントに初めて接続する場合は、必ずアカウント キーを入力してください。 このキーは、Azure portal の [読み取り専用キー] ブレードの [主キー] ボックスに表示されます。

JSON ファイルをインポートする

JSON 形式で格納されているデータを操作する場合は、多くの場合、最初にデータを抽出して正規化する必要があります。 これは、JSON データが入れ子になった形式または非構造化形式で格納されることが多いためであり、分析やレポートを直接行うのが困難になります。

この例では、データはレポートを作成する前に抽出して正規化する必要があるため、Power BI Desktop に読み込む前にデータを変換する必要があります。

データベース アカウントに接続すると、[ナビゲーター] ウィンドウが開き、そのアカウントの下にデータベースの一覧が表示されます。 インポートするテーブルを選択します。 この例では、Product テーブルを選びます。  Power BI ではドキュメント内のすべてのレコードがレコード型で表されるため、プレビュー ウィンドウには Record 項目のみが表示されます。

使用可能なレコード一覧が表示された [ナビゲーター] ウィンドウ。

[編集] ボタンを選択して Power Query でレコードを開きます。

Power Query で、Column1 ヘッダーの右側にある [展開コントロール] ボタンを選ぶと、フィールドの一覧を含むコンテキスト メニューが表示されます。 Power BI Desktop に読み込むフィールドを選択し、[元の列名をプレフィックスとして使用します] チェックボックスをオフにしてから、[OK] を選択します。

レコードを展開する機能のスクリーンショット。

選択したデータを確認して問題がないことを確認したら、[閉じて適用] を選んで Power BI Desktop にデータを読み込みます。

Power Query の [閉じて適用] 手順のスクリーンショット。

データが行と列を持つテーブルのようになりました。  これで、Cosmos DB のデータを他のデータ ソースのデータに関連付けて、最終的に Power BI レポートで使用できるようになりました。