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's 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 dialog box lets you select how you want to connect. たとえば、Power BI Desktop の [ホーム] リボンで、 [データの取得] > [SQL Server] の順に選択します。For example, in Power BI Desktop, under the Home ribbon, select Get Data > SQL Server. [SQL Server データベース] ダイアログ ボックスの [データ接続モード] に、ImportDirectQuery のオプションが表示されます。In the SQL Server Database dialog box, the Data Connectivity mode shows options of Import and DirectQuery:

Import と DirectQuery のオプション、SQL Server データベース ダイアログ、Power BI Desktop

ImportDirectQuery の選択の違いを以下に示します。Here are the differences between selecting Import and DirectQuery:

  • インポート:選択されたテーブルと列は 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. 初回インポートまたは最新の更新以降の基になるデータの変更を確認するには、データを更新し、完全なデータ セットをもう一度インポートする必要があります。To see underlying data changes since the initial import or the most recent refresh, you must refresh the data, which imports the full dataset again.

  • DirectQuery:Power 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, so you’re always viewing current data.

いくつかの制約がありますが、DirectQuery の使用時に多くのデータ モデリングとデータ変換を利用できます。Many data modeling and data transformations are available when using DirectQuery, though with some limitations. 視覚エフェクトを作成または操作する場合は、基になるソースに対してクエリを実行する必要があります。When you create or interact with a visualization, you must query the underlying source. 視覚エフェクトの更新に必要な時間は、基になるデータ ソースのパフォーマンスによって異なります。The time that's needed to refresh the visualization depends on the performance of the underlying data source. 要求の処理に必要なデータが最近要求された場合、Power BI Desktop では最近のデータが使用され、視覚エフェクトの表示に必要な時間が短縮されます。When the data needed to service the request has recently been requested, Power BI Desktop uses recent data to reduce the required time to show the visualization. [ホーム] リボンの [更新] を選択すると、すべての視覚エフェクトが現在のデータで更新されます。If you select Refresh from the Home ribbon, all visualizations are refreshed with current data.

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

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 would otherwise be unfeasible to first import all the data with pre-aggregation.
  • 基になるデータが変更されると、データの更新が必要になる場合があります。Underlying data changes can require a refresh of data. 一部のレポートでは、最新のデータを表示するために大規模なデータ転送が必要になる場合があり、データを再インポートできなくなります。For some reports, the need to display current data can require large data transfers, making reimporting data unfeasible. これに対し、DirectQuery レポートでは常に現在のデータが使用されます。By contrast, DirectQuery reports always use current data.
  • 1 GB のデータセット制限は、DirectQuery には適用され "ません"。The 1-GB dataset limitation doesn't apply to DirectQuery.

DirectQuery の制限Limitations of DirectQuery

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

  • クエリ エディターのクエリが複雑すぎると、エラーが発生します。If the Query Editor query is overly complex, an error occurs. エラーを解決するには、問題となるステップをクエリ エディターで削除するか、DirectQuery を使用する代わりにデータを "インポート" します。To remedy the error, 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's no Query Editor.

  • タイム インテリジェンス機能は DirectQuery では利用できません。Time intelligence capabilities are unavailable in DirectQuery. たとえば、データ列 (年度、四半期、月、日など) の特殊な処理は、DirectQuery モードではサポートされていません。For example, special treatment of date columns (such as year, quarter, month, or day) isn't supported in DirectQuery mode.

  • 基になるデータ ソースに送信されるクエリが許容範囲のパフォーマンスを確実に発揮できるよう、メジャー内で許可される DAX 式には制約があります。Limitations are placed on DAX expressions allowed in measures to ensure that queries sent to the underlying data source have acceptable performance.

  • クラウド ソースには 100 万行の制限があり、オンプレミス ソースでは、定義されているペイロードが 1 行あたり約 4 MB (独自の圧縮アルゴリズムに依存)、またはビジュアル全体に対して 16MB データ サイズに制限されています。There's a one-million-row limit for cloud sources, with on-premises sources limited to a defined payload of about 4 MB per row (depending on proprietary compression algorithm) or 16MB data size for the entire visual. Premium 容量を使用するとき、特定の制限が発生する場合があります。Certain limits may be raised when using Premium capacity. この制限は、DirectQuery を使用して返されるデータセットの作成に使用される集計や計算には影響しません。The limit doesn't affect aggregations or calculations used to create the dataset returned using DirectQuery. 返される行にのみ影響します。It only affects the rows returned. Premium 容量の場合、こちらの投稿で説明されているように、最大行数の制限を設定できます。Premium capacities can set maximum row limits, as described in this post.

    たとえば、データ ソースで実行されるクエリを使用して、1,000 万行を集計できます。For example, you can aggregate 10 million rows with your query that runs on the data source. 返された Power BI データが 100 万行未満の場合、クエリでは、DirectQuery を使用して Power BI にその集計の結果が正確に返されます。The query accurately returns the results of that aggregation to Power BI using DirectQuery if the returned Power BI data is less than 1 million rows. DirectQuery から 100 万を超える行が返された場合、(Premium 容量で、行数が管理者が設定した上限を下回る場合を除き) Power BI からはエラーが返されます。If over 1 million rows are returned from DirectQuery, Power BI returns an error (unless in Premium capacity, and the row count is under the admin-set limit).

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 required visual refresh time depends on how long that back-end source takes to respond with the results from the query (or queries). ビジュアルに DirectQuery を使用する場合、(要求されたデータが返される) 推奨応答時間は 5 秒以内です。最大推奨時間は 30 秒です。Five seconds or less is the recommended response time (with requested data being returned) for using DirectQuery for visuals; the maximum recommended time is 30 seconds. それ以上長くなると、レポート使用のユーザー エクスペリエンスが許容範囲外になります。Any longer, and the experience of a user consuming the report becomes unacceptably poor. レポートが Power BI サービスに発行された後、数分以上かかるクエリはすべてタイムアウトとなり、ユーザーはエラーを受け取ります。After a report is published to the Power BI service, any query that takes longer than a few minutes will time out, 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) を使用する場合も、大きな影響を与える可能性があります。Using Row Level Security (RLS) can have a significant impact as well. 複数のユーザーによって共有される RLS 以外のダッシュボード タイルでは、データベースに対して 1 つのクエリが実行されます。A non-RLS dashboard tile shared by multiple users results in a single query to the database. しかし、ダッシュボード タイルで RLS を使用することは、通常、タイルの更新には、"ユーザーごと" に 1 つのクエリが必要になり、ソース データベースへの負荷が大幅に増加し、パフォーマンスに影響する可能性があることを意味します。Using RLS on a dashboard tile, however, usually means the refresh of a tile requires one query per user, 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 a refresh that would fail. このような状況の一例として、生成されたクエリで、バックエンド データ ソースから非常に多数の行が取得される場合が挙げられます。One example of this situation is when a generated query retrieves an excessively large number of rows from the back-end data source. この場合、次のエラーが発生します。In this case, the following error occurs:

    The resultset of a query to external data source has exceeded
    

    このような状況は、カーディナリティが非常に高い列を含む簡単なグラフで集計オプションが [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 it must apply the appropriate filters.

  • セキュリティ:既定では、発行されたレポートを利用するすべてのユーザーは、Power BI サービスへの発行後に入力された資格情報を利用して、バックエンド データ ソースに接続します。Security: By default, 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 process is the same for data that's imported: all users see the same data, regardless of any security rules defined in the backend source.

    DirectQuery ソースで実装されたユーザーごとのセキュリティが必要なお客様は、RLS を使用するか、ソースに対する Kerberos 制約付き認証を構成する必要があります。Customers who want per-user security implemented with DirectQuery sources should either use RLS or configure Kerberos-constrained authentication against the source. Kerberos はすべてのソースで使用できるわけではありません。Kerberos isn't available for all sources. RLS についての詳細情報Learn more about RLS. DirectQuery についての詳細情報Learn more about Kerberos in DirectQuery.

  • サポートされている機能:Power BI Desktop の一部の機能は DirectQuery モードでサポートされていないか、制限があります。Supported features: Some features in Power BI Desktop are unsupported in DirectQuery mode, or they have limitations. また、Power BI サービスの一部の機能 (クイック分析情報など) は、DirectQuery を使用するデータセットでは利用できませんAlso, some capabilities in the Power BI service (such as Quick Insights) aren't available for datasets using DirectQuery. DirectQuery を使用するかどうかを決定するときは、これらの機能の制限事項を考慮する必要があります。When determining whether to use DirectQuery, you should consider these feature limitations.

注意

Azure SQL Database とプライベート IP アドレスで DirectQuery を使用する場合は、オンプレミスのゲートウェイが必要です。When using DirectQuery with an Azure SQL Database and a private IP address, an on-premises gateway is required.

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 used data source doesn't need the On-premises data gateway (Azure SQL Database, Azure SQL Data Warehouse, or Redshift), you must provide credentials before the Power BI service shows the published report. 資格情報を入力するには、これらの手順に従います。Follow these instructions to provide the credentials:

  1. Power BI にサインインします。Sign in to Power BI.

  2. Power BI サービスで、 [設定] 歯車アイコンを選択し、 [設定] メニュー項目を選びます。In the Power BI service, select the Settings gear icon and choose the Settings menu item.

    [設定]、Power BI サービス

  3. Power BI サービスの [設定] ページで、 [データセット] タブを選択し、DirectQuery を使用するデータセットを選び、 [資格情報を編集] を選択します。In the Power BI service's Settings page, select the Datasets tab, choose the dataset that uses DirectQuery, and select Edit credentials.

  4. 資格情報を追加します。Add the credentials. そうしないと、発行されたレポートを開いたとき、または DirectQuery 接続で作成されたデータセットを探索したときにエラーが発生します。Otherwise, an error occurs when you open a published report or explore a dataset that's created with a DirectQuery connection.

DirectQuery を使用する Azure SQL DatabaseAzure SQL Data WarehouseRedshift、または Snowflake Data Warehouse 以外のデータ ソースのデータ接続を行うには、オンプレミス データ ゲートウェイをインストールし、データ ソースを登録します。To make a data connection for data sources other than Azure SQL Database, Azure SQL Data Warehouse, Redshift, or Snowflake Data Warehouse that use DirectQuery, install an On-premises data gateway and register the data source. 詳細については、「オンプレミス データ ゲートウェイとは」を参照してくださいFor more information, see What is an on-premises data gateway?

次の手順Next steps

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