はじめに
1年くらい前にはまってどうにか抜け出した時の話を記載します。
もしかしたら今のPower BI Desktopではもう解消されているかもしれませんが、解消されてない場合にこの記事が参考になったら幸いです。
※ちなみにsnowflakeを使用している方ならご存じの設定です。
- 2通り方法がありますが、私が実施した環境では1つ目の方法ははまらなかったので「できたけど結果ダメだったやつ」と記載しています。
- 一部推測などが入りますので、異なる場合はご指摘いただければ幸いです。
概要
以下のような状況でPower BI DesktopからBigQueryに接続する際、Power BI Desktopに最初からあるBigQueryコネクタでの接続ができずにはまりました。
- Google Cloudとオンプレミス環境はIPsec VPNで接続
- Proxy配下のパソコンにてPower BI Desktopを使用
※Proxyはインターネットへの接続の際に使用 - パソコンにはwinhttp proxyならびにブラウザプロキシ設定は導入済
- オンプレミスのDNSはいじれなく、PSCなどの小細工不可
※オンプレミスのDNSは外部の名前解決不可 - Power BI Serviceへの接続(レポートのアップロード)は実施可能
- Power BI DesktopでのMicrosoftアカウントログインは実施可能
発生事象と状況
発生事象と状況は以下の感じでした。
- Power BI DesktopのBigQueryコネクタでBigQueryに接続しようとするとエラー
(すいませんエラー内容を忘れましたので、思い出したら追記します。) - パケットキャプチャをすると、どうやらProxyを経由せず、直接インターネットに抜けようとして遮断されている模様
(Power BI Serviceへの接続やEntraIDでのログインの実施は可能) - DNSをいじれないので、PSCなどの名前解決不可、限定アクセスも不可
- オンプレミスから限定アクセスをする際はルーティングするかNATをかます必要があるが、そこもいじれないため断念
(そもそもDNSいじれない時点で不可) - Microsoftのプロフェッショナルサポートに問い合わせて得られた方法でも解決は不可
できたけど結果ダメだったやつ
当時偶然GoogleさんとPoCをしていましたので、お聞きしてみたところ「BigQueryコネクタを別でダウンロードしてODBC接続を追加すればいけるよ!」との案が。
そんな手が!と思い早速以下のGoogle Cloudさんドキュメントからたどってダウンロードしました。
- 該当ドキュメント
BigQuery 用の ODBC ドライバと JDBC ドライバ
ドライバをインストール・PCへ設定してからPower BI DesktopのODBC接続選択でBigQueryのドライバを選択し、接続すると問題なく成功しました。
(色々ドライバの設定をしないといけないですが、一応形にはなりました。)
接続には成功しましたが、Power BI Desktopにインストール時からあるBigQueryコネクタには「インポートモード」と「ダイレクトクエリモード」が選択可能ですが、ODBCドライバのほうでは選択ができないという問題が浮上し、採用できないという結果になりました。
その後もレジストリを変えたり、Power BI DesktopのインストールフォルダにあるBigQueryコネクタ用のフォルダをいじり倒しましたが、事象は改善されませんでした。
できたけど不安しかないやつ
色々模索してた際にいきついたのはなんとsnowflakeさんの事象でした。
proxy配下で利用する際には環境変数「http_proxy」または「https_proxy」を設定する必要があり、それを設定してみるということを試しました。
(設定方法自体はGUIでもCUIでもあるし、Webにめちゃくちゃ転がってるのでそちらを参考にしてください。)
その結果、Power BI Desktopにインストール時から使えるBigQueryコネクタで接続ができ、なおかつ「インポートモード」と「ダイレクトクエリモード」が選択可能になりました。
ただ、今までパソコンに設定していないものをいきなり設定したので、ほかのアプリケーションがこの設定した環境変数を使用するようになっていた場合、不具合や意図しない動作になる可能性があったため、「できたけど不安しかないやつ」というタイトルにしています。