Power Query を使用すると、サポートされているさまざまなデータベースからデータを柔軟にインポートできます。 ネイティブ データベース クエリを実行できるため、Power Query インターフェイスを使用してクエリを作成するのにかかる時間を節約できます。 この機能は、既に存在する複雑なクエリを使用する場合や、Power Query インターフェイスを使用して再構築する方法を知りたくない場合に特に便利です。
手記
ネイティブ データベース クエリの 1 つの目的は、非副作用になることです。 ただし、Power Query では、クエリがデータベースに影響を与えないという保証はありません。 別のユーザーによって書き込まれたネイティブ データベース クエリを実行する場合は、資格情報で評価されるクエリを確実に認識するように求められます。 詳細については、 ネイティブ データベース クエリのセキュリティに関する情報を参照してください。
Power Query を使用すると、データベースに接続するときに 詳細オプションのテキスト ボックスにネイティブ データベース クエリを指定できます。 次の例では、SQL ステートメントテキスト ボックスに入力されたネイティブ データベース クエリを使用して 、SQL Server データベースからデータをインポートします。 この手順は、Power Query がサポートするネイティブ データベース クエリを使用する他のすべてのデータベースで似ています。
Power Query を使用して SQL Server データベースに接続します。 コネクタ選択で SQL Server データベース のオプションを選択します。
SQL Server データベースの ポップアップ ウィンドウで、次の操作を行います。
ネイティブ データベース クエリを使用してデータをインポートするサーバーとデータベースを指定します。
[詳細オプション]で、SQL ステートメント フィールドを選択し、ネイティブ データベース クエリを貼り付けるか入力し、[OK] 選択します。
このサーバーに初めて接続する場合は、データベースに接続するための認証モードを選択するプロンプトが表示されます。 適切な認証モードを選択し、続行します。
手記
データ ソース (サーバーとデータベースの両方) にアクセスできない場合は、サーバーとデータベースへのアクセスを要求するプロンプトが表示されます (データ ソースの Power BI でアクセス要求情報が指定されている場合)。
接続が確立されると、Power Query エディターで結果データが返されます。
データを好みに応じて整形した後、[適用]、& [閉じる]、 を選択して変更を保存し、データをインポートします。
ネイティブ データベース クエリをサポートするコネクタ
次の Power Query コネクタは、ネイティブ データベース クエリをサポートしています。
| コネクタ | ネイティブ データベース クエリの種類 |
|---|---|
| Amazon Redshift | SQL ステートメント |
| Azure Analysis Services データベース | MDX または DAX クエリ |
| Azure Database for PostgreSQL | SQL ステートメント |
| Azure Cosmos DB | SQL ステートメント |
| Azure Synapse Analytics | SQL ステートメント |
| Azure SQL データベース | SQL ステートメント |
| DataWorld.Dataset | dwSQL |
| Dataverse | SQL ステートメント |
| Essbase | MDX ステートメント |
| FHIR | FHIR 検索 |
| Google ビッグクエリ(Google BigQuery) | SQL ステートメント |
| IBM Db2 データベース | SQL ステートメント |
| IBM Informix データベース (ベータ) | SQL ステートメント |
| MySQL データベース | SQL ステートメント |
| ODBC | SQL ステートメント |
| OLE DB (OLE DB) | SQL ステートメント |
| Oracle データベース | SQL ステートメント |
| PostgreSQL | SQL ステートメント |
| SAP HANA データベース | SQL ステートメント |
| Snowflake | SQL ステートメント |
| SQL Server Analysis Services データベース | MDX または DAX クエリ |
| SQL Server データベース | SQL ステートメント |
| TIBCO(R) データ仮想化 (ベータ) | SQL ステートメント |
| Vena (ベータ) | モデル クエリ (MQL) |
制限事項と問題
ネイティブ データベース クエリを使用する前に、発生する可能性がある制限事項と問題に注意する必要があります。
データ定義言語 (DDL) 操作
Power Query では、データ ソースに対するデータ定義言語 (DDL) 操作の実行は サポートされていません 。 このような操作の例としては、"DROP TABLE"、"CREATE TABLE"、"ALTER TABLE" があります。 このようなコマンドを使用しようとすると、複数のエラーやエラーが発生する可能性があります。
クエリフォールディング
ネイティブ データベース クエリの使用中のクエリ フォールディングは、一部の Power Query コネクタのみに制限されます。 詳細については、「ネイティブ クエリの クエリ フォールディング」を参照してください。
ネイティブ データベース クエリのセキュリティ
場合によっては、別のユーザーによって作成されたクエリ、または高度なエディターまたは数式バー (基本的に、ネイティブ クエリ入力ボックスが表示されているコネクタ ダイアログの外部の他のパス) を使用しようとすると、次のメッセージが表示されることがあります。
このメッセージが表示された場合は、[ アクセス許可の編集] を選択します。 この選択により、[ ネイティブ データベース クエリ ] ダイアログが開きます。 ネイティブ データベース クエリを実行するか、クエリをキャンセルする機会が与えられます。
既定では、コネクタ ダイアログの外部でネイティブ データベース クエリを実行すると、異なるクエリ テキストを実行するたびにプロンプトが表示されます。 このプロンプトにより、実行するクエリ テキストがユーザーによって承認されます。
手記
データの取得操作に挿入するネイティブ データベース クエリでは、クエリを実行するかどうかは確認されません。 実行するだけです。
ネイティブ データベース クエリが Power BI Desktop または Excel で実行されている場合は、ネイティブ データベース クエリのセキュリティ メッセージをオフにすることができます。 セキュリティ メッセージをオフにするには:
Power BI Desktop を使用している場合は、[ファイル] タブで、[オプションと設定] > [オプション]を選択します。
Excel を使用している場合は、[データ] タブの [データの取得] > [クエリ オプション] 選択します。
グローバル 設定で、セキュリティを選択します。
[新しいネイティブ データベース クエリのユーザー承認が必要をクリアします。
[OK]を選択します。
また、Power BI Desktop または Excel で特定のデータ ソースに対して以前に承認したネイティブ データベース クエリの承認を取り消すこともできます。 承認を取り消すには:
Power BI Desktop を使用している場合は、[ファイル] タブの [データ ソースの設定] >オプションと設定を選択します。
Excel を使用している場合は、[データ] タブの [データの取得] > [データ ソース設定]を選択します。
[ データ ソースの設定 ] ダイアログで、[ グローバルアクセス許可] を選択します。 次に、承認を取り消すネイティブ データベース クエリを含むデータ ソースを選択します。
[アクセス許可の編集]を選択します。
[ 権限の編集 ] ダイアログの [ ネイティブ データベース クエリ] で、[ 承認の取り消し] を選択します。