SQL Server のことなら SQL Quality SQL Server パフォーマンス チューニング、コンサルティング、アドバイス、相談、定期診断、トレーニング

ホーム > 技術情報 > Power BI 自習書「Power BI を試しみよう 改訂第2版」

Microsoft Power BI 自習書シリーズ (HTML 版)
「Power BI を試しみよう 改訂第2版」

松本美穂と松本崇博が執筆した Power BI 自習書シリーズの「Power BI を試しみよう」(改訂第2版)の HTML 版です。 日本マイクロソフトさんの Web サイトで Word または PDF 形式でダウンロードできますが、今回、HTML 版として公開する許可をいただきましたので、ここに掲載いたします。なお、記載している内容は、2017年 3月に提供されていた powerbi.com のサービスおよび Power BI Desktop をもとにしています。[2018年12月29日]

目次へ | 前のページへ | 次のページへ

3.4 SQL Server への接続/レポートの作成(DirectQuery)

Power BI では、SQL Server 上のデータベースからデータを取得することも簡単に行うことができます。データの取得方法には、「インポート」と「DirectQuery」の 2種類があり、次のような違いがあります。

00097

インポートの場合は、データベースのデータをコピーして、Power BI Desktop ファイル(.pbix)内に保持して、DirectQuery の場合は、データのコピーは保持せずに、直接 SQL Server からデータを取得します。したがって、DirectQuery を利用すれば、常に最新のデータを取得できるというメリットがあります。

詳しくは後述しますが、SQL Server からデータを取得するときに、次のように選択できます。

00098

◆ Let's Try

それでは、SQL Server に接続してレポートを作成してみましょう。ここでは、サンプル スクリプトにある「NorthwindJ」データベースを利用して、レポートを作成してみます。

NorthwindJ データベースの作成の手順は、次のとおりです(手順は、SQL Server 2016 を例にしていますが、SQL Server 2014 や SQL Server 2012、SQL Server 2008 R2 などを利用しても、同じように試すことができます)。

1.まずは、[スタート]メニューの[すべてのアプリ](すべてのプログラム)から[Microsoft SQL Server 2016]の[Microsoft SQL Server Management Studio]をクリックして、Management Studio を起動します。

00099

2.起動後、次のように[サーバーへの接続]ダイアログが表示されたら、[サーバー名]へ SQL Server の名前を入力し、[接続]ボタンをクリックします。

00100

3.接続完了後、次のようにツールバーの[ファイルを開く]ボタンをクリックします。

00101

これにより、[ファイルを開く]ダイアログが表示されるので、サンプル スクリプトを解凍したフォルダーを展開して、「NorthwindJ.sql」ファイルを選択し、[開く]ボタンをクリックします。

4.次のようにデータベースを作成するためのスクリプトが表示されるので、ツールバーの[実行]ボタンをクリックして、スクリプトを実行します。

00102

5.数秒後に実行が完了して、次のように画面下に「クエリが正常に実行されました」と表示されることを確認します。

00103

以上でデータベースの作成が完了です。

なお、この NorthwindJ データベースは、Microsoft Access 2003 に付属のサンプル データベース「Northwind」を SQL Server 上へアップサイズしたものを利用していますが、この自習書の手順を試すために、一部のデータを加工しています。具体的なスキーマ構成は次のとおりです。

00104

このデータベースは、商品の販売管理を題材とし、「受注」テーブルと「受注明細」テーブルの中に受注データ、「商品」テーブルと「商品区分」テーブルに商品情報(商品マスター)が格納されています。

◆ Power BI Desktop で SQL Server に接続(DirectQuery)

続いて、Power BI Desktop ツールから SQL Server のデータを取得してみましょう。ここでは、DirectQuery を利用して、直接 SQL Server からデータを取得する方法を説明します。

1.まずは、Power BI Desktop を起動して、起動画面で、次のように[データを取得]から[データベース]の[SQL Server データベース]をクリックします。

00105

2.SQL Server データベース]ダイアログが表示されたら、[サーバー]に SQL Server の名前(画面は win10)、[データベース]に「NorthwindJ」と入力します。

00106

データ接続モード]では、「DirectQuery」を選択することで、DirectQuery を利用して、SQL Server に接続することができます。

設定後、[OK]ボタンをクリックします。

3.次に、[SQL Server データベース]ダイアログが表示されたら、SQL Server への接続方法(Windows 認証を利用するのか、SQL Server 認証を利用するのか、どのユーザーで接続するのか)を指定して、[接続]ボタンをクリックします。

00107

4.続いて、[暗号化のサポート]ダイアログが表示されて、警告が表示されるので、内容を確認した上で、[OK]ボタンをクリックします。

00108

5.SQL Server への接続が完了すると、次のように[ナビゲーター]ダイアログが表示されて、データベース内のテーブルの一覧が表示されます。

00109

ここでは、「受注明細」テーブルをチェックして、[関連テーブルの選択]ボタンをクリックします。これにより、受注明細テーブルとリレーションシップのある「受注」と「商品」テーブルにも自動的にチェックがつきます。

00110

続いて、もう一度「関連テーブルの選択」ボタンをクリックします。

00111

これにより、受注テーブルとリレーションシップのある「得意先」、「社員」、「運送会社」、商品テーブルとリレーションシップのある「商品区分」、「仕入先」テーブルにも自動的にチェックが付きます。

全部で、8つのテーブルにチェックが付いたことを確認したら、[読み込み]ボタンをクリックします。

6.読み込み完了後、レポートのデザイン画面(レポート デザイナー)が開いたら、画面左側の[リレーションシップ]ボタンをクリックします。

00112

これによって、Power BI が内部的に管理しているリレーションシップを確認することができます。データベース側で設定しているリレーションシップを、そのまま受け継いでいることを確認できます。

7.確認後、[レポート]ボタンをクリックして、レポート デザイナーに戻ります。

00113

◆ DAX 式で、計算列の追加(単価と数量を乗算した売上金額列の作成)

次に、DAX(Data Analysis Expressions)と呼ばれるを利用して、「受注明細」テーブルの「単価」列と「数量」列を乗算した列(売上金額を計算した列)を作成してみます。

1.DAX 式を利用するには、次のように[フィールド]ペインで「受注明細」テーブルを選択してから、[モデリング]タブを開いて、「新しい列」をクリックします。

00114

これで DAX 式を利用した新しい列を追加することができます。

2.次に、[列 = ]と表示される式ボックスに、「[」を入力します。

00115

DAX 式では、列を「[列名]」のように半角の大カッコで囲んで指定する必要があるので、[ を入力することでインテリセンス機能が働いています(事前に受注明細テーブルを選択してから[新しい列]ボタンをクリックしているので、受注明細テーブルの列の一覧が表示されています)。

列の一覧からは、[単価] を選択して、Tab キーを押下します(インテリセンスでの値の確定は Tab キーを押下するか、ダブル クリックします。Enter キーではないことに注意してください)。

3.続いて、隣に「*」を入力(かけ算を行う演算子を入力)します。入力後、「[」と入力して列の一覧を表示し、[数量] 列を選択して Tab キーを押下します

00116

4.次に、新しい列の名前を「売上金額」に変更するために、「列 = ~」となっている部分を「売上金額 = ~」に変更して、Enter キーを押下します。

00117

Enter キーを押下すると、式が確定して、[フィールド]ペインの受注明細テーブルの中に新しい列が追加されていることを確認できます。

5.次に、レポート デザイナー上の任意の場所をクリックしてから、新しく追加した列の「売上金額」をチェックします。

00118

6.次に、[フィールド]ペインで、「商品区分」テーブルの「区分名」列をチェックします。

00119

このように、DAX 式を利用すれば、計算した列を簡単に追加することができます。

◆ クエリ エディターで「日付」から「年」を取得

次に、「」ごとの売上金額を表示するために、「受注日」データから「」を抜き出すようにしてみます。これは、クエリ エディターを利用することで簡単に行うことができます。

1.まずは、クエリ エディターを表示するために、[ホーム]タブで[クエリを編集]ボタンをクリックします。

00120

2.クエリ エディターが表示されたら、「受注」テーブルを開いて、「受注日」列を探します。

00121

3.受注日]列を選択したら、[列の追加]タブを開いて、[日付]メニューの[]から[]をクリックします。

00122

これで、[受注日]列から「」のみを取り出した列を作成することができます。今回は、年のみを取り出しましたが、この[日付]メニューでは、「」を取り出したり、「四半期」を取り出しすることもできるので、大変便利です(後述の日付ディメンションがない環境でも、日付を利用した分析レポートが作成できるようになります)。

4.次に、追加した「」列(列の名前は Year)を右クリックして、[型の変更]から[テキスト]をクリックして、データ型を「テキスト」に変更します(既定では、Year は数値データ型に設定されていて、これだとディメンション(分析軸)として利用しづらくなるので、テキスト データ型に変更しています)。

00123

5.変更後、[ホーム]タブで[閉じて適用]をクリックして、レポート デザイナーに戻ります。

00124

6.レポート デザイナーに戻ったら、商品区分ごとの売上金額を表示しているグラフを選択してから、[フィールド]ペインで[受注]テーブルの[Year]列を、[凡例]に配置します。

00125

これで、年ごと、商品区分ごとの売上金額をグラフで表示できるようになります。

7.最後に、[ファイル]メニューの[名前を付けて保存]をクリックして、任意の名前で保存しておきます。

00126

このように、Power BI では、SQL Server 上のデータベースからデータを取得して、レポートを作成することも簡単に行うことができます。

有償版の Power BI である「Power BI Pro」を利用している場合には、Power BI サイトにレポートを発行した後でも、オンプレミス上の SQL Server のデータに対して DirectQuery を実行して接続することができます(常に最新のデータを直接取得できます)。これを行うには、オンプレミス ゲートウェイ機能を利用しますが、これについては次の項で説明します。

目次へ | 前のページへ | 次のページへ

事例1

SQLQualityは執筆とセミナーを通じて技術の啓蒙やエンジニアの育成支援も行っています
最新刊
SQL Server 2016 の教科書
SQL Server 2016 の教科書(ソシム)

弊社オリジナル制作の
SQL Server 2016 自習書も
マイクロソフトのサイトで公開中!
ダウンロードはこちら
セミナー風景
セミナー風景

ロングセラー
ASP.NET でいってみよう  SQL Server 2000 でいってみよう
ASP.NET でいってみよう
第7刷 16,500 部発行
SQL Server 2000 でいってみよう
第12刷 28,500 部発行
SQL Server 2014 CTP2 インメモリ OLTP 機能の概要
SQL Server 2014 CTP2 インメモリ OLTP 機能の概要(Amazon Kindle 書籍)

弊社執筆の
SQL Server 2014 自習書
マイクロソフトのサイトで公開中
目次はこちら

弊社執筆の
SQL Server 2012 自習書
マイクロソフトのサイトで公開中
ダウンロードはこちら
松本美穂のコラム
(公開活動などのお知らせ)

第60回:SQL Server 2017 自習書 No.3「SQL Server 2017 Machine Learning Services」のご案内
第59回:SQL Server 2017 自習書 No.2「SQL Server 2017 on Linux」のご案内
第58回:SQL Server 2017 自習書 No.1「SQL Server 2017 新機能の概要」のご案内
第57回:SQL Server 2017 RC 版とこれまでのドキュメントのまとめ
第56回:「SQL Server 2016 への移行とアップグレードの実践」完成&公開!
第55回:書籍「SQL Server 2016の教科書 開発編」(ソシム)が発刊されました
第54回:「SQL Server 2016 プレビュー版 Reporting Services の新機能」自習書のお知らせ
第 53 回:SQL Server 2016 Reporting Services の新しくなったレポート マネージャーとモバイル レポート機能
第 52 回:SQL Server 2016 の自習書を作成しました!
第 51 回:PASS Summit と MVP Summit で進化を確信!
第 50 回:新しくなった Power BI(2.0)の自習書を作成しました!
第49 回:Excel 2016 の Power Query を使う
第 48 回:新しくなった Microsoft Power BI ! 無料版がある!!
第 47 回:「Microsoft Azure SQL Database 入門」 完成&公開!
第 46 回:Microsoft Power BI for Windows app からの Power BI サイト アクセス
第 45 回:Power Query で取得したデータを PowerPivot へ読み込む方法と PowerPivot for Excel 自習書のご紹介
第44回:「SQL Server 2014 への移行とアップグレードの実践」ドキュメントを作成しました
第43回:SQL Server 2014 インメモリ OLTP 機能の上級者向けドキュメントを作成しました
第42回:Power Query プレビュー版 と Power BI for Office 365 へのクエリ保存(共有クエリ)
第41回:「SQL Server 2014 CTP2 インメモリ OLTP 機能の概要」自習書のお知らせです
第40回: SQL Server 2012 自習書(HTML版)を掲載しました
第39回: Power BI for Office 365 プレビュー版は試されましたか?
第38回: SQL Server 2014 CTP2 の公開
第37回: SQL Server 2014 CTP1 の自習書をご覧ください
第36回: SQL Server 2014 CTP1 のクラスター化列ストア インデックスを試す
第35回: SQL Server 2014 CTP1 のインメモリ OLTP の基本操作を試す
第34回: GeoFlow for Excel 2013 のプレビュー版を試す
第33回: iPad と iPhone からの SQL Server 2012 Reporting Servicesのレポート閲覧
第32回: PASS Summit 2012 参加レポート
第31回: SQL Server 2012 Reporting Services 自習書のお知らせ
第30回: SQL Server 2012(RTM 版)の新機能 自習書をご覧ください
第29回: 書籍「SQL Server 2012の教科書 開発編」のお知らせ
第26回: SQL Server 2012 の Power View 機能のご紹介
第25回: SQL Server 2012 の Data Quality Services
第24回: SQL Server 2012 自習書のご案内と初セミナー報告
第23回: Denali CTP1 が公開されました
第22回 チューニングに王道あらず
第21回 Microsoft TechEd 2010 終了しました
第20回 Microsoft TechEd Japan 2010 今年も登壇します
第19回 SQL Server 2008 R2 RTM の 日本語版が公開されました
第18回 「SQL Azure 入門」自習書のご案内
第17回 SQL Server 2008 自習書の追加ドキュメントのお知らせ
第16回 SQL Server 2008 R2 自習書とプレビュー セミナーのお知らせ
第15回 SQL Server 2008 R2 Reporting Services と新刊のお知らせ
第14回 TechEd 2009 のご報告と SQL Server 2008 R2 について
第13回 SQL Server 2008 R2 の CTP 版が公開されました
第12回 MVP Summit 2009 in Seattle へ参加

技術コミュニティでも活動中