CData Software Blog

クラウド連携のCData Software の技術ブログです。

DWH のデータが多すぎてPower BI で使えない?DirectQuery を活用しましょう!

こんにちは、CData Japan ローカライザの加藤です。 https://www.cdata.com/jp/drivers/bigquery/powerbi/ ビッグデータバズワードとなって久しいですが、皆さんの業務では日々蓄積されるデータをうまく扱えていますか?データが増えれば増えるほど、通常のやり方ではインポート処理や整形に時間がかかり、分析に活用するのが難しくなりますね。今回はCData US の記事から、Power BI のDirectQuery 機能を使って大規模データを分析に活用する際のデータインポートのお悩みを解消する方法をご紹介します!

www.cdata.com

元記事はこちら

多くの企業がデータドリブンなDX(デジタルトランスフォーメーション)に取り組むようになり、業績や事業を改善するような意思決定に繋がる洞察を得るため、関連するデータへのアクセスを求める部門の数は増加の一途を辿っています。以前の記事では分散したデータを単一のデータストアにまとめることでデータの細分化を回避し、データアクセスの民主化を促進する方法をご紹介しました(英語)

しかしDWH(データウェハウス)やデータベース内の大規模なデータセットを使ってレポートを作るには、優れた連携ツールが欠かせません。1つで何十、何百GB もあるデータセットを扱う場合、従来のBI とアナリティクスツールのデータインポートは通用しないのです。レポートを作り始める前にすべてのデータをインポートすることは、時間やリソースの面から困難です。

本記事では、大規模データセットを使ったリアルタイムアナリティクスとレポーティングを実現するCData Connectors の重要機能を説明します。CData Power BI Connector for Google BigQuery を例に使いますが、同様の機能はどんなDWH との連携にも欠かせません。

リアルタイムクエリを使う

ほとんどのBI・アナリティクスプラットフォームは、データをローカル環境にインポートせずにデータソースからライブデータをクエリする方法を用意しています。ライブクエリには次のようなさまざまな利点があります。

  • 最初にデータをインポートすることが難しい(またはできない)巨大なデータセットから、レポート、チャート、ダッシュボードを作成。
  • ほぼリアルタイムで参照先データの変更を反映可能。データを再インポートして新しい情報を入手するには、かなりの時間とリソースが必要となります。
  • プラットフォーム固有のデータセットサイズ上限をバイパス。例えば、Power BI では1GB までしかデータセットにインポートできません。

CData Drivers はツール、プラットフォーム、アプリケーションに関わらずデータへのリアルタイムアクセスをサポートします。特にCData Power BI Connectors は、あらゆるデータソースでDirectQuery をサポートします。

Power BI からGoogle BigQuery をDirectQuery で使う

Google BigQuery は「ビジネスのアジリティに対応して設計された、サーバーレスでスケーラビリティと費用対効果に優れたマルチクラウドデータウェアハウスです。」Power BI のリアルタイムクエリ機能であるDirectQuery をビルトインでサポートすることで、CData Power BI Connector はPower BI レポート、チャート、ダッシュボードからBigQuery データへのライブアクセスを実現します。

Power BI の1GB データセットサイズ上限とデータをインポート・処理するのに必要なローカルリソースを考慮すると、DirectQuery は大規模データセットを扱う上で唯一の選択肢です。本記事ではニューヨーク市タクシー&リムジン委員会(nyc-tlc)のデータセットを、特に黄色タクシーの走行に着目して使用します。

次はクエリしたテーブルの詳細です。

走行テーブルの詳細

テーブルID: nyc-tlc:yellow.trips  
テーブルサイズ:139.29 GB  
行数:1,108,779,463 

見て分かるように、このテーブルには10億行以上のデータがありPower BI の1GB インポート制限を優に超えています。アナリティクス用にPower BI にデータセット全体をインポートするのは不可能であり、他のどのツールやプラットフォームでも時間とローカルリソースの面でかなりコストがかかります。

データに接続するために、テーブル(とデータセット)をローカルプロジェクトにコピーしてCData Power BI Connector のProject Id、Dataset Id を設定しました。

BigQuery をOAuth 経由で認証して(ブラウザからGoogle 資格情報でログイン)、Power BI に直接接続することができます。

ビジュアライゼーションを作成

ライブデータをクエリすることによって、フィルター、集計などの複雑な操作の多くをもとのデータソース上で実行できるため、大規模データセットからでもビジュアライゼーションを作成できます。複雑なクエリをデータソースに渡すことでサーバーサイドの計算リソースを活用でき、レポーティングを高速化すると同時にクライアントサイドのリソースを節約できます。ライブクエリを活用することで、フィルターの変更やドリルダウンなどに応じてリアルタイムで更新されるさまざまなビジュアライゼーションを作成できます。

タクシー会社毎の走行回数

最初のビジュアライゼーションは円グラフで、データセット内の各タクシー会社毎の走行回数を示します。データをインポートする場合、10億行以上の走行データをクライアントサイドでインポート、グループ化、カウントすることになります。DirectQuery を使えば、Power BI はGoogle BigQuery 側でグループ化やカウントを行わせることができます。この機能のおかげで、もとは10億行あったものがPower BI 側では3行のデータ(各会社毎に1行)からビジュアライゼーションを作るだけで済むのです。

乗客数とタクシー会社毎の平均料金総額

次のビジュアライゼーションでは、各走行を乗客数とタクシー会社毎にまとめて、その料金総額の平均を求めています。0から10人の乗客数の走行にフィルタしているので、さらに複雑です。ここでも10億行を扱うのにローカルリソースに頼るのではなく、Power BI はBigQuery に平均、グループ化、フィルタリング、順序づけを行わせます。これだけ複雑な処理が含まれていても、Power BI 側では33行のデータ(会社3つ分に11種類の乗客数をかけた数)をグラフ化するだけで良いのです。

タクシー会社と場所毎の降車状況

最後のビジュアライゼーションでは、タクシー会社毎に色分けして各運転の(緯度と経度に基づく)降車場所を示します。ビジュアライゼーションではごく単純なクエリを使っているので、結果セットはかなり大きなものになります。

ダッシュボード全体

ライブクエリを活用することで、他のビジュアライゼーション上でデータをドリルダウンする際にはいつでも、これまでのビジュアライゼーションすべてをリアルタイムでフィルタできます。DDS 社の乗客数6人の走行を表すバーをクリックすることで、同じフィルタを他のビジュアライゼーションにも適用できます。各ビジュアライゼーション用のフィルタがクエリに追加され、Power BI はBigQuery にライブデータをリクエストすることで結果は秒単位で返されます。

CData Power BI Connectors

CData Power BI Connectors を使えば、Google BigQuery をはじめとする多くの人気ビッグデータストレージアプリケーションでDirectQuery が使用できます。DirectQuery をサポートすることで、CData は円グラフや棒グラフから地図や散布図など、もとのデータセットのサイズに関わらずPower BI のあらゆるビジュアライゼーションを使ったリアルタイムレポーティングを実現します。

この記事ではGoogle BigQuery に注目しましたが、ここで説明した原則や技術はCData がサポートする250のSaaS、Big Data、NoSQL データソースにも当てはまります。

今すぐ始めましょう

www.cdata.com

あらゆるPower BI Connectors の30日間無償の評価版をダウンロードして、ひと味違うCData ドライバーでビッグデータストレージからのリアルタイムレポーティングを体感してください。