Power BI Desktop の DirectQueryUse DirectQuery in Power BI Desktop

Power BI Desktop を利用すれば、データ ソースに接続するとき、常にデータのコピーを Power BI Desktop にインポートできます。With Power BI Desktop, when you connect to your data source, it is always possible to import a copy of the data into the Power BI Desktop. データ ソースによっては、代替手法を利用できます。DirectQuery でデータ ソースに直接接続する方法です。For some data sources, an alternative approach is available: connect directly to the data source using DirectQuery.

サポートされているデータ ソースSupported Data Sources

DirectQuery をサポートしているデータ ソースの詳細については、「DirectQuery でサポートされるデータ ソース」を参照してください。For a full listing of data sources that support DirectQuery, see Data sources supported by DirectQuery.

DirectQuery を使用して接続する方法How to Connect using DirectQuery

[データの取得] を使用し、DirectQuery でサポートされているデータ ソースに接続すると、接続ウィンドウが開きます。このウィンドウで、接続方法を選択できます。When you use Get Data to connect to a data source supported by DirectQuery, the connection window lets you select how you want to connect.

ImportDirectQuery の選択の違いは次のようになります。The differences between selecting Import and DirectQuery are the following:

インポート – 選択したテーブルと列は Power BI Desktop にインポートされます。Import – the selected tables and columns are imported into Power BI Desktop. 視覚エフェクトを作成するか、操作するとき、Power BI Desktop はインポートされたデータを使用します。As you create or interact with a visualization, Power BI Desktop uses the imported data. 初回インポートまたは最近の更新以降、変更された基礎データを確認するには、データを更新し、完全データ セットをもう一度インポートする必要があります。You must refresh the data, which imports the full data set again, to see any changes that occurred to the underlying data since the initial import or the most recent refresh.

DirectQueryPower BI Desktop にデータがインポートまたはコピーされることはありません。DirectQuery – no data is imported or copied into Power BI Desktop. リレーショナル ソースの場合、選択したテーブルと列は [フィールド] リストに表示されます。For relational sources, the selected tables and columns appear in the Fields list. SAP Business Warehouse のように多次元ソースの場合、選択したキューブのディメンションとメジャーは [フィールド] リストに表示されます。For multi-dimensional sources like SAP Business Warehouse, the dimensions and measures of the selected cube appear in the Fields list. 視覚エフェクトを作成するか、操作するとき、Power BI Desktop は基礎データ ソースに問い合わせるので、現在のデータが常に表示されることになります。As you create or interact with a visualization, Power BI Desktop queries the underlying data source, which means you’re always viewing current data.

いくつかの制約がありますが、DirectQuery を利用するとき、さまざまなデータ モデリングとデータ変換を利用できます。Many data modeling and data transformations are available when using DirectQuery, though with some limitations. 視覚エフェクトを作成するか、操作するとき、基礎ソースに問い合わせる必要があります。視覚エフェクトの更新に必要な時間は基礎データ ソースのパフォーマンスに依存します。When creating or interacting with a visualization, the underlying source must be queried and the time necessary to refresh the visualization is dependent on the performance of the underlying data source. 要求の処理を必要となるデータが最近要求されているとき、Power BI Desktop は最近のデータを利用し、視覚エフェクトの表示に必要な時間を短縮します。When the data necessary to service the request has recently been requested, Power BI Desktop uses recent data to reduce the time required to display the visualization. [ホーム] リボンの [更新] を選択すると、すべての視覚エフェクトが現在のデータで更新されます。Selecting Refresh from the Home ribbon will ensure all visualizations are refreshed with current data.

DirectQuery の詳細については、「Power BI と DirectQuery」の記事を参照してください。The Power BI and DirectQuery article describes DirectQuery in detail. また、DirectQuery 使用の利点、制限、重要な考慮事項については、次のセクションを参照してください。Also, see the following sections for more information about benefits, limitations, and important considerations when using DirectQuery.

DirectQuery を使用する利点Benefits of using DirectQuery

DirectQuery を使用する場合の利点は次のとおりです。There are a few benefits to using DirectQuery:

  • DirectQuery なら、他の方法では全データをインポートすること自体が不可能なほど大きなデータセットでも事前集計を使用して視覚化を作成できます。DirectQuery lets you build visualizations over very large datasets, where it otherwise would be unfeasible to first import all of the data with pre-aggregation
  • 元になるデータが変更されるとデータの更新が必要になる場合があり、レポートによっては、現在のデータを表示しなければならない場合に大きなデータの転送が必要になって、データの再インポートが不可能になることがあります。Underlying data changes can require a refresh of data, and for some reports, the need to display current data can require large data transfers, making re-importing data unfeasible. 対照的に、 DirectQuery レポートは常に現在のデータを使用します。By contrast, DirectQuery reports always use current data
  • データセットの 1 GB 制限は、DirectQuery には適用されませんThe 1 GB dataset limitation does not apply to DirectQuery

DirectQuery の制限Limitations of DirectQuery

現在、 DirectQueryの使用には、いくつかの制限があります。There are currently a few limitations to using DirectQuery:

  • テーブルはすべて 1 つのデータベースのものでなければなりません。All tables must come from a single database
  • クエリ エディターのクエリが複雑すぎるとエラーが発生します。If the Query Editor query is overly complex, an error will occur. エラーを解決するには、問題となるステップをクエリ エディターで削除するか、DirectQuery を使用する代わりにデータをインポートする必要があります。To remedy the error you must either delete the problematic step in Query Editor, or Import the data instead of using DirectQuery. SAP Business Warehouse のように多次元ソースの場合、クエリ エディターはありません。For multi-dimensional sources like SAP Business Warehouse, there is no Query Editor
  • リレーションシップ フィルタリングは、双方向ではなく、一方向に制限されます (ただし、プレビュー機能に含まれる DirectQuery では、両方向でクロス フィルタリングを使用できる可能性があります)。Relationship filtering is limited to a single direction, rather than both directions (though it is possible to enable cross filtering in both directions for DirectQuery as a Preview feature). SAP Business Warehouse のように多次元ソースの場合、モデルに定義されているリレーションシップがありません。For multi-dimensional sources like SAP Business Warehouse, there are no relationships defined in the model
  • タイム インテリジェンス機能は DirectQuery では利用できません。Time intelligence capabilities are not available in DirectQuery. たとえば、データ列 (年度、四半期、月、日など) の特殊な処理は DirectQuery モードではサポートされていません。For example, special treatment of date columns (year, quarter, month, day, so on) are not supported in DirectQuery mode.
  • 既定では、メジャーで許可される DAX 式に制約があります。詳しくは、次の段落 (この箇条書きリストの後) をご覧ください。By default, limitations are placed on DAX expressions allowed in measures; see the following paragraph (after this bulleted list) for more information
  • DirectQuery を使用した場合の返されるデータには 100 万行の制限があります。There is a 1 million row limit for returning data when using DirectQuery. これは DirectQuery を使用して返されるデータセットの作成に使用される集計や計算には影響せず、返される行のみに影響します。This does not affect aggregations or calculations used to create the dataset returned using DirectQuery, only the rows returned. たとえば、データ ソースに対して実行すクエリで 1,000 万行を集計し、その集計の結果のデータが 100 万行未満であれば、DirectQuery を使用して、Power BI に正確に返すことができます。For example, you can aggregate 10 million rows with your query that runs on the data source, and accurately return the results of that aggregation to Power BI using DirectQuery as long as the data returned to Power BI is less than 1 million rows. DirectQuery から 100 万行を超える行が返された場合、Power BI はエラーを返します。If more than 1 million rows would be returned from DirectQuery, Power BI returns an error.

基になるデータ ソースに送信されるクエリが許容範囲のパフォーマンスを発揮できるよう、既定ではメジャーに制限が課されています。To ensure that queries sent to the underlying data source have acceptable performance, limitations are imposed on measures by default. 詳しい知識のあるユーザーなら、[ファイル] > [オプション]、次に [設定] > [オプションと設定] > [DirectQuery] の順に選んでから、オプション [DirectQuery モードで無制限のメジャーを許可する] を選べば、この制限を回避できます。Advanced users can choose to bypass this limitation by selecting File > Options and then Settings > Options and settings > DirectQuery, then selecting the option Allow unrestricted measures in DirectQuery mode. このオプションを選ぶと、メジャーに使用できる DAX 式ならどれでも使用できるようになります。When that option is selected, any DAX expression that is valid for a measure can be used. しかし、ユーザーが注意すべき点として、データのインポート時のパフォーマンスが非常に良好な式の中には、DirectQuery モードでバックエンド ソースにクエリを実行する際に非常に低速になるものがあります。Users must be aware, however, that some expressions that perform very well when the data is imported may result in very slow queries to the backend source when in DirectQuery mode.

DirectQuery を使用する場合の重要な考慮事項Important considerations when using DirectQuery

DirectQuery の使用時には次の 3 点を考慮してください。The following three points should be taken into consideration when using DirectQuery:

  • パフォーマンスと負荷 - DirectQuery 要求はすべて、ソース データベースに送信されます。そのため、ビジュアルの更新に必要な時間は、そのバックエンド ソースがクエリの結果を返す時間に依存します。Performance and load - All DirectQuery requests are sent to the source database, so the time required to refresh a visual is dependent on how long that back-end source takes to respond with the results from the query (or queries). ビジュアルの場合、DirectQuery 使用の推奨応答時間 (要求したデータが返される時間) は 5 秒以内です。最大推奨応答時間は 30 秒です。The recommended response time (with requested data being returned) for using DirectQuery for visuals is five seconds or less, with a maximum recommended results response time of 30 seconds. それ以上長くなると、レポート使用のユーザー エクスペリエンスが許容範囲外になります。Any longer, and the experience of a user consuming the report becomes unacceptably poor. また、レポートを Power BI サービスに公開すると、数分かかるクエリはタイムアウトとなり、エラーがユーザーに送信されます。In addition, once a report is published to the Power BI service, any query that takes longer than a few minutes will timeout, and the user will receive an error.

    ソース データベースの負荷も、公開されたレポートを使用する Power BI ユーザーの数に基づき考慮してください。Load on the source database should also be considered, based on the number of Power BI users who will consume the published report. 行レベルのセキュリティ (RLS) を使用した場合も大きな影響があります。RLS 以外のダッシュボード タイルを複数のユーザーが共有した場合、1 件のクエリがデータベースに実行されますが、ダッシュボード タイルで RLS を使用することは、通常、タイルの更新には、ユーザーあたり 1 クエリ必要になることを意味します。そのため、ソースデータベースに大きな負荷がかかり、パフォーマンスに影響を与える可能性があります。Using Row Level Security (RLS) can have a significant impact as well; a non-RLS dashboard tile shared by multiple users results in a single query to the database, but using RLS on a dashboard tile usually means the refresh of a tile requires one query per user, thus significantly increasing load on the source database and potentially impacting performance.

    Power BI では、可能な限り効率的なクエリが作成されます。Power BI creates queries that are as efficient as possible. ただし、特定の状況では、生成されたクエリは十分に効率的ではなく、更新が失敗することがあります。Under certain situations however, the generated query may not be efficient enough to avoid refresh that would fail. たとえば、生成されたクエリがバックエンド データ ソースから過度に大量の行 (100 万以上) を取得することがあります。その場合、次のエラーが発生します。One example of this situation is when a generated query would retrieve an excessively large number of rows (more than 1 million) from the back-end data source, in which case the following error occurs:

    The resultset of a query to external data source has exceeded
    the maximum allowed size of '1000000' rows.
    

    このような状況は、カーディナリティが非常に高い列を含む簡単なグラフで集計オプションが [Don’t Summarize] (集計しない) に設定されている場合に発生します。This situation can occur with a simple chart that includes a very high cardinality column, with the aggregation option set to Don’t Summarize. ビジュアルの場合、列のカーディナリティは 100 万未満にする必要があります。あるいは、適切なフィルターを適用する必要があります。The visual needs to only have columns with a cardinality below 1 million, or must have appropriate filters applied.

  • セキュリティ - 公開されたレポートを利用するユーザーは全員、Power BI サービスに公開した後に入力された資格情報を利用し、バックエンド データ ソースに接続します。Security - All users who consume a published report connect to the back-end data source using the credentials entered after publication to the Power BI service. これはインポートされたデータと同じ状況になります。バックエンド ソースに定義されているセキュリティ ルールに関係なく、すべてのユーザーに同じデータが表示されます。This is the same situation as data that is imported: all users see the same data, irrespective of any security rules defined in the backend source. ユーザーごとのセキュリティを希望のお客様は、DirectQuery ソースを実装し、RLS を使います。Customers who want per-user security implement with DirectQuery sources and use RLS. RLS についての詳細情報Learn more about RLS.
  • サポートされている機能 - Power BI Desktop の一部の機能は DirectQuery モードでサポートされていないか、制限があります。Supported features - Not all features in Power BI Desktop are supported in DirectQuery mode, or have some limitations. また、Power BI サービスには、DirectQuery 使用時のデータセットで利用できない機能もあります (クイック分析情報など)。In addition, there are some capabilities in the Power BI service (such as Quick Insights) that are not available for datasets using DirectQuery. そのため、DirectQuery を利用するかどうかを判断するとき、以上のような DirectQuery 利用時の機能制約を考慮する必要があります。As such, the limitation of such features when using DirectQuery should be taken into consideration when determining whether to use DirectQuery.

Power BI サービスに公開するPublish to the Power BI service

DirectQuery を使用して作成したレポートを Power BI サービスに発行できます。Reports created using DirectQuery can be published to the Power BI Service.

使用されるデータ ソースがオンプレミス データ ゲートウェイを必要としていない場合 (Azure SQL DatabaseAzure SQL Data Warehouse、または Redshift)、公開したレポートを Power BI サービスに表示する前に資格情報を入力する必要があります。If the data source used does not need the on-premises data gateway (Azure SQL Database, Azure SQL Data Warehouse, or Redshift), credentials must be provided before the published report will be displayed in the Power BI Service.

資格情報を入力するには、Power BI の [設定] 歯車アイコンを選択し、 [設定]を選択します。You can provide credentials by selecting the Settings gear icon in Power BI, then select Settings.

Power BI に [設定] ウィンドウが表示されます。Power BI displays the Settings window. そこから、 [データセット] タブを選択し、 DirectQueryを使用するデータセットを選択し、 [資格情報を編集]を選択します。From there, select the Datasets tab and choose the dataset that uses DirectQuery, and select Edit credentials.

資格情報を入力せずに、公開したレポートを開いたり、DirectQuery 接続で作成されたデータセットを調べたりすると、このようなデータ ソースでエラーが発生します。Until credentials are supplied, opening a published report or exploring a dataset created with a DirectQuery connection to such data sources results in an error.

DirectQuery を使用する Azure SQL DatabaseAzure SQL Data Warehouse、および Redshift 以外のデータ ソースについては、オンプレミス データ ゲートウェイをインストールし、データ ソースを登録してデータ接続を確立する必要があります。For data sources other than Azure SQL Database, Azure SQL Data Warehouse and Redshift that use DirectQuery, an on-premises data gateway must be installed and the data source must be registered to establish a data connection. オンプレミス データ ゲートウェイの詳細についてはこちらを参照してください。You can learn more about on-premises data gateway.

次の手順Next steps

DirectQuery について詳しくは、次のリソースをご覧ください。For more information about DirectQuery, check out the following resources: