リレーショナル データ ソースからデータを取得する

完了

組織でリレーショナル データベースを使用して販売トランザクションを記録している場合は、個々のフラット ファイルからデータを取得するのではなく、Power BI Desktop を使用して、組織のリレーショナル データベースへの接続を確立できます。

Power BI をデータベースに接続すると、ビジネスの進捗を監視し、傾向を特定できるため、売上高の予測、予算の計画、業績評価指標と目標の設定が可能になります。   Power BI Desktop では、クラウドまたはオンプレミスにある多くのリレーショナル データベースに接続できます。

シナリオ

Tailwind Traders の販売チームから、組織のオンプレミス SQL Server データベースに接続し、売上データを Power BI Desktop に取り込んで、販売レポートを作成できるようにすることが求められました。

SQL データベースから Power BI へのデータ フローのスクリーンショット。

リレーショナル データベースのデータに接続する

Power BI Desktop の [データを取得] 機能を使って、リレーショナル データベースに適したオプションを選択できます。 この例では、次のスクリーンショットに示すように、[SQL Server] オプションを選択します。

ヒント

[データを取得] ボタンの横に、SQL Server などのクイック アクセス データ ソース オプションがあります。

[データの取得] メニューが展開され [SQL Server] が表示されているスクリーンショット。

次の手順では、[SQL Server データベース] ウィンドウにデータベース サーバー名とデータベース名を入力します。  データ接続モードの 2 つのオプションは次のとおりです。インポート (既定で選択、推奨) と DirectQuery。 ほとんどの場合、インポート を選択します。 その他の詳細オプションも [SQL Server データベース] ウィンドウで使用できますが、ここではそれらを無視してかまいません。

SQL Server データベースの詳細のスクリーンショット。

サーバー名とデータベース名を追加すると、ユーザー名とパスワードを使用してサインインするように求められます。  3 つのサインイン オプションがあります。

  • Windows - Windows アカウント (Azure Active Directory 資格情報) を使用します。

  • データベース - データベース資格情報を使用します。   たとえば、SQL Server に、時々使用される独自のサインインおよび認証システムがあるとします。   データベース管理者から、データベースへの一意のサインインが許可されている場合は、[データベース] タブでその資格情報の入力が必要になることがあります。

  • Microsoft アカウント - Microsoft アカウント資格情報を使用します。  このオプションは、多くの場合、Azure サービスに使用します。

サインイン オプションを選択し、ユーザー名とパスワードを入力して、[接続] を選択します。

データベースの承認の詳細のスクリーンショット。

インポートするデータを選択する

データベースが Power BI Desktop に接続されると、[ナビゲーター] ウィンドウに、データ ソース (この例では SQL データベース) で使用できるデータが表示されます。 テーブルまたはエンティティを選択して、その内容をプレビューし、Power BI モデルに正しいデータが読み込まれることを確認できます。

Power BI Desktop に取り込むテーブルのチェック ボックスをオンにし、[読み込み] または [データの変換] オプションを選択します。

  • 読み込み - Power BI モデルにデータが現在の状態で自動的に読み込まれます。

  • データの変換 - Microsoft Power Query でデータを開きます。ここでは、不要な行や列の削除、データのグループ化、エラーの削除、その他の多くのデータ品質タスクなどのアクションを実行できます。

    使用可能なテーブルが表示された [ナビゲーター] ウィンドウのスクリーンショット。

SQL クエリを記述してデータをインポートする

データをインポートできる別の方法は、SQL クエリを記述して、必要なテーブルと列だけを指定することです。

SQL クエリを記述するには、[SQL Server データベース] ウィンドウで、サーバー名とデータベース名を入力した後、[詳細オプション] の横にある矢印を選択してこのセクションを展開し、オプションを表示します。 [SQL ステートメント] ボックスで、クエリのステートメントを記述し、[OK] を選択します。 この例では、Select SQL ステートメントを使用して、SALES テーブル から ID、NAME、SALESAMOUNT の各列を読み込みます。

SQL クエリにおける SQL Server データベース ダイアログのスクリーンショット。

データ ソース設定を変更する

データ ソース接続を作成し、Power BI Desktop にデータを読み込んだ後は、いつでも接続設定に戻って変更できます。  このアクションは、多くの場合、組織内のセキュリティ ポリシーのために、パスワードを 90 日おきに更新する必要がある場合などに必要になります。  データ ソースを変更、アクセス許可を編集、またはアクセス許可をクリアすることができます。

[ホーム] タブで、[データの変換] を選択し、[データ ソース設定] オプションを選択します。

[データの変換] メニューが展開され、[データソース設定] が強調表示されているスクリーンショット。

表示されるデータ ソースの一覧から、更新するデータ ソースを選択します。  次に、そのデータ ソースを右クリックして使用可能な更新オプションを表示するか、またはウィンドウの左下にある更新オプション ボタンを使用できます。  必要な更新オプションを選択し、必要に応じて設定を変更してから、変更を適用します。

[データ ソース設定] オプションのスクリーンショット。

また、Power Query 内からデータ ソースの設定を変更することもできます。 テーブルを選択してから、[ホーム] リボンの [データ ソース設定] オプションを選択します。 または、画面の右側の [クエリ設定] パネルにアクセスして、[ソース] の横にある設定アイコンを選択します (または、[ソースの選択] をダブルクリックします)。 表示されるウィンドウでサーバーとデータベースの詳細を更新し、[OK] を選択します。

[データ ソース設定] ボタンのスクリーンショット。

変更を行ったら、[閉じて適用] を選択し、それらの変更をデータ ソース設定に適用します。

SQL ステートメントを記述する

前に説明したように、SQL クエリを使用して、Power BI モデルにデータをインポートできます。  SQL は、Structured Query Language (構造化照会言語) を表し、リレーショナル データベースを管理して、さまざまなデータ管理操作を実行するために使用する標準化されたプログラミング言語です。

データベースに数年間の売上データから構成される大きなテーブルがあるシナリオを考えてみます。   2009 年の売上データは、作成するレポートに関係ありません。  この状況では、SQL が役立ちます。SQL ステートメントで正確な列と行を指定して、それらをデータ モデルにインポートすることによって、必要なデータのセットだけを読み込むことができるためです。  さらに、SQL クエリで、さまざまなテーブルの結合、特定の計算の実行、論理ステートメントの作成、データのフィルター処理を行うこともできます。

次の例では、SALES テーブルから、ID、NAME、および SALESAMOUNT が選択されるシンプルなクエリを示しています。

SQL クエリは、Select ステートメントで始まり、これによって、データベースからプルする特定のフィールドを選択できます。  この例では、ID、NAME、および SALESAMOUNT 列を読み込む必要があります。

SELECT
ID
, NAME
, SALESAMOUNT
FROM

FROM は、データをプルするテーブルの名前を指定します。 この例では、SALES テーブルです。 次の例は、完全な SQL クエリです。

SELECT
ID
, NAME
, SALESAMOUNT
FROM
SALES

SQL クエリを使用して、データをインポートする場合、クエリでワイルドカード文字 (*) を使用しないでください。 SELECT ステートメントでワイルドカード文字 (*) を使用する場合、指定したテーブルから必要のないすべての列をインポートします。

次の例では、ワイルドカード文字を使用したクエリを示します。

SELECT *
FROM
SALES

ワイルドカード文字 (*) によって、Sales テーブル内のすべての列をインポートします。 この方法は推奨されません。データ モデル内に冗長データが発生することで、パフォーマンスの問題を引き起こし、レポート用にデータを正規化するための追加の手順が必要になるためです。

すべてのクエリには、WHERE 句も含める必要があります。 この句により、必要なフィルター処理済みのレコードだけを取得するように行をフィルター処理します。 この例で、2020 年 1 月 1 日以降の最新の売上データを取得する場合は、WHERE 句を追加します。 進化したクエリは次の例のようになります。

SELECT
ID
, NAME
, SALESAMOUNT
FROM
SALES
WHERE
OrderDate >= ‘1/1/2020’

Power BI では、これを直接実行することは推奨されません。 代わりに、ビューに次のようなクエリを記述することを検討してください。 ビューは、テーブルに似た、リレーショナル データベース内のオブジェクトです。 ビューには行と列があり、SQL 言語のほぼすべての演算子を含めることができます。 Power BI でビューを使用すると、データの取得時に、Power Query の機能であるクエリ フォールディングにつながります。 クエリ フォールディングについては後で説明しますが、後でデータが使用される方法に従い、Power Query によってデータ取得が最適化されます。