1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Power BI サービスから On-premises data gateway 経由でデータを取得する(PostgreSQL編/Oracle編)

Last updated at Posted at 2024-10-01

はじめに

Power BI のレポートを複数人で共有するには Power BI サービス (Web) を使用しますが、データソースがインターネットから接続出来ない場合は On-premises data gateway 経由でデータを取得します。
On-premises data gateway (オンプレミス)といいつつ、クラウドでパブリックアクセスを許可しない場合にも使用しますよ。
※たとえば Azure Database for PostgreSQL をプライベートアクセス(VNET統合)で構築した場合など。

ということで、インターネットから直接接続出来ない PostgreSQL / Oracle に Power BI サービスから接続するための設定を行う流れを紹介します。

インストール手順

1.まずは On-premises data gateway のインストール

インストール自体は Microsoft Learn の手順通りです。
いつの間にか Windows Server 2016 がシステム要件からはずれたようです‥‥。

上記サイトの中にダウンロードリンクがあるので、インストーラーをダウンロードし実行していきます。
今回は標準ゲートウェイをセットアップしていきます。
002.PNG
最初の画面は迷うところはないですね。

インストールをクリックするとお待ちくださいと言われるのでしばらく待ちます。
003.PNG

画面が進むとメールアドレスの入力画面になります。メールアドレスと言いつつ、Entra ID のことですので Power BI のライセンスが割り当てられている Entra ID を入力します。
といいつつこの作業をする人は Power BI も On-premises data gateway も管理すると思うので結局自分のアカウントを入力することになると思います。(xxxxx.onmicrosoft.com の方もいるかも?)

この画面以降、最後の構成までの間にキャンセルをクリックした場合は、
スタートメニューに登録される On-premises data gateway を起動すると構成から始められるようです。

005.PNG

さて、サーバーにインストールしている場合、そのままサインインをクリックするとセキュリティ強化の構成によってブロックされた警告がでます。
006.PNG
これは1つ目ですが2~3回でますので、必要に応じて信頼済みゾーンに追加してください。正常にアクセスできると Entra ID のサインイン画面が開きますのでサインインします。
007.PNG

正しくサインインすると、ゲートウェイ登録の選択肢が表示されます。
今回は『このコンピューターに新しいゲートウェイを登録します。』を選択します。
008.PNG

ゲートウェイの名前と回復キーを設定します。
この名前で Power BI サービスの接続とゲートウェイの管理(オンプレミスデータゲートウェイ)に登録されます。
009.PNG

最後に構成をクリックすると、インストール&初期設定が完了します。
010.PNG

そうすると、Power BI サービスの接続とゲートウェイの管理のオンプレミスデータゲートウェイのところに登録されます。
012.png

2.Power BI サービスから PostgreSQL への接続を作る

続いて、PostgreSQL へ接続するための設定を行います。
以降、VNET統合をしている Azure Database for PostgreSQL と接続させようとしている例で説明します。

VNET統合を行うとインターネットからは xxxx.postgres.database.azure.com には接続できず、Power BI サービスからも直接はアクセスできないので On-premises data gateway を使います。
そのため同じ VNET に所属する仮想マシンに On-premises data gateway をインストールし、Power BI サービスから接続出来るように構成します。

オンプレミス(データゲートウェイ)経由を選択し、ゲートウェイクラスタ名に先ほど作成したゲートウェイを選択します。
013.png
これで接続を作成‥‥ のまえに、On-premises data gateway だけでは PostgreSQL に接続出来ません。エラーが出ます。
014.png

ドキュメントにも NpgSQL 4.0.10 が必要のようなことが書かれています。

Power BI サービスに必要とか、On-Premises data gateway から使うとか、直接的な表現では書かれていませんが、まぁ前提条件を要約するとPower BI サービスから On-premises data gateway 経由で PostgreSQL に接続するには NpgSQL プロバイダーが必要なようです。
またインストールするには単体でインストールするか、NpgSQL 4.0.10 を同梱している Power BI Desktop をインストールすればいいようです。

今回はゲートウェイサーバー扱い、すなわちここで Power BI Desktop を使うことはないという前提で NpgSQL プロバイダーをインストールしていきます。
ここで注意は 4.0.10 以前であること、インストーラーのデフォルト値から変更する必要があることでしょう。
バージョンについてはよく x.xx 以降を使えというのはありますが、今回は以前です。
よく見ず最新版をインストールしても動かないのでご注意を。
NpgSQL 4.0.10 はこちらからゲットします。

またインストール途中の選択肢も変更する必要があります。
デフォルトだと Npgsql GAC Installation が unavailable になっていますので、
021.PNG

ここを available に変更します。
022.PNG
なお Npgsql Performance Counters はあってもなくてもかまいません。
開発系の人は .Net から使われるから GAC Installation 要るでしょ! と思うでしょうが、インストーラーは何も触らず Next / Yes / OK / I Agree を押しておけばデフォルトでよろしくやってくれると思ってるとハマります。

これで NpgSQL プロバイダーをインストールできました。
最後に On-premises data gateway に認識させるために On-premises data gateway の再起動をしておきます。
スタートメニューに On-premises data gateway が登録されているので起動し、サービス設定の項目を選択し、表示されるゲートウェイの再起動(すぐに再起動)を行います。
023.PNG

その後、再度データベース接続を作成すると、成功します。
これでこの接続を使って Power BI サービスから On-Premises data gateway 経由で PostgreSQL のデータを参照できるようになります。024.png

3.Power BI サービスから Oracle への接続を作る

Oracle への接続にも、同様に Oracle データプロバイダーが必要です。

こちらはドキュメントにもありますが、Oracle から Oracle Client for Microsoft Tools (OCMT) という名称で公開されています。Oracle Database (Server) や Oracle Client をインストールするとオプションによっては ODP.Net がインストールされ、OCMT をインストールしなくても接続できるようですが、ドキュメントでは OCMT もインストールしておくことを強くお勧めしていました。
ちなみに 19c とついていますが、Oracle のいつものごとく、前後2バージョンは接続出来ると思います。検証時点で 12cR2 とはつながりました。
https://www.oracle.com/database/technologies/appdev/ocmt.html

こちらはハマるポイントはないです。デフォルトのままインストールで問題ありません。
032.PNG

カスタムを選んでみましたが、デフォルトですべてチェックが入っています。
033.PNG

インストールが終われば、再度 On-premises data gateway の再起動をしておきましょう。

そして Power BI サービスからデータベース接続を作成します。
サーバー欄は、[サーバー名]/[サービス名(SERVICE_NAME)]の書式で入力します。
(F1-PowerBIEva というサーバーに Oracle をインストールしています
 認証を通したスクショを作るためにとりあえず SYSTEM 使ってます)
039.png

これで作成すると、正常に登録されます。
040.png

設定後の接続画面

接続の一覧に作成したデータベース接続がリストアップされ、ゲートウェイクラスター名のところには使用している On-premises data gateway の名前が表示されます。
状態の更新アイコンをクリックすると、正常に接続出来ればオンラインと表示されます。
051.png

あとは、Power BI サービスに発行したレポートのセマンティックモデルで、作成したゲートウェイを指定してやればOKです。
052.png

さいごに

ということで、On-premises data gateway を使って PostgreSQL や Oracle からデータを取得するための準備をまとめました。
On-premises data gateway ってなんか略す方法ないんですかね。カタカナにしても長いし、オンプレミス データ ゲートウェイ。
Azure を使っていてもセキュリティ上の観点からデータベースは VNET に閉じて構成することはありそうなのでしばらくおつきあいは続きそうです。
Azure を使ってるなら仮想ネットワークゲートウェイというのもあるんですが、Power BI Premium にしか対応してないんですよね。弊社では Power BI Pro のライセンスまでしかないので試せてません。

では、今日はこのくらいで。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?