PostgreSQL

まとめ

項目 説明
リリース状態 一般提供
製品 Excel
Power BI (セマンティック モデル)
Power BI (データフロー)
ファブリック (データフロー Gen2)
Power Apps (データフロー)
Dynamics 365 Customer Insights
Analysis Services
サポートされている認証の種類 データベース (ユーザー名/パスワード)
関数リファレンス ドキュメント PostgreSQL.Database

Note

デプロイ スケジュールにより、またホスト固有の機能があることにより、ある製品に存在する機能が他の製品にはない場合があります。

前提条件

2019 年 12 月のリリース時点では、NpgSQL 4.0.10 は Power BI Desktop に同梱されており、追加のインストールは必要ありません。 GAC をインストールすると、Power BI Desktop で提供されているバージョンが上書きされ、それが既定値になります。 更新は、Power BI サービスのクラウドと、オンプレミス データ ゲートウェイを介したオンプレミスの両方でサポートされます。 オンプレミスデータ ゲートウェイなしで Power BI サービスからデータを更新するには、Azure 上の Power BI サービスからの直接接続を許可する方法で PostgreSQL をホストする必要があります。 これは、Microsoft Azure でホストされている PostgreSQL でネイティブにサポートされています。 その他のホスティング環境については、インターネットから直接アクセスするための PostgreSQL の構成について、ホスティング プロバイダーに問い合わせてください。 PostgreSQL がインターネットから直接アクセスできないように構成されている場合 (セキュリティに推奨)、更新にはオンプレミス データ ゲートウェイを使用する必要があります。 Power BI サービスでは、NpgSQL 4.0.10 が使用されますが、オンプレミスの更新では、使用可能な場合は NpgSQL のローカル インストールが使用され、それ以外の場合には NpgSQL 4.0.10 が使用されます。

2019 年 12 月より前にリリースされた Power BI Desktop のバージョンについては、NpgSQL プロバイダーをローカル マシンにインストールする必要があります。 NpgSQL プロバイダーをインストールするには、[リリース ページ] に移動し、v4.0.10 を検索し、.msi ファイルをダウンロードして実行します。 プロバイダー アーキテクチャ (32 ビットまたは 64 ビット) は、コネクタを使用する製品のアーキテクチャと一致している必要があります。 インストールするときは、NpgSQL GAC インストールを選択して、NpgSQL 自体がコンピューターに追加されていることを確認してください。

NpgSQL 4.0.10 をお勧めします。 NpgSQL 4.1 以降は、.NET バージョンの非互換性のため動作しません。

GAC インストールが選択された NpgSQL インストーラー。

Power Apps の場合は、ローカル コンピューターに NpgSQL プロバイダーをインストールする必要があります。 NpgSQL プロバイダーをインストールするには、[リリース ページ] に移動し、関連するバージョンをダウンロードします。 インストーラー (NpgSQL-[バージョン番号].msi) ファイルをダウンロードして実行します。 NpgSQL GAC インストールを選択し、完了したらコンピューターを再起動してこのインストールを有効にします。

サポートされる機能

  • インポート
  • DirectQuery (Power BI セマンティック モデル)
  • 高度なオプション
    • 分単位のコマンド タイムアウト
    • ネイティブ SQL ステートメント
    • リレーションシップ列
    • 階層全体を使ってナビゲートする

Power Query Desktop から PostgreSQL データベースに接続する

一致する NpgSQL プロバイダーがインストールされたら、PostgreSQL データベースに接続できます。 接続するには、次の手順を実行します。

  1. コネクタの選択で [PostgreSQL データベース] オプションを選択します。

  2. 表示される [PostgreSQL データベース] ダイアログで、サーバーとデータベースの名前を指定します。

    Power BI の PostgreSQL 接続ビルダー。

  3. データ接続モードとして [Import] または [DirectQuery] を選択します。

  4. このデータベースに初めて接続する場合は、[データベース] 認証の種類の [ユーザー名][パスワード] ボックスに PostgreSQL の資格情報を入力します。 認証設定を適用するレベルを選択します。 次に、 [接続](Connect) を選択します。

    PostgreSQL のユーザー名とパスワードを入力します。

    認証方法の使用について詳しくは、「データ ソースを使用した認証」を参照してください。

    Note

    接続が暗号化されていない場合は、次のメッセージが表示されます。

    Azure SQL データベースの暗号化のサポート。

    暗号化されていない接続を使用してデータベースに接続するには、[OK] を選択します。または、「データベース エンジンへの暗号化接続の有効化」の手順に従って、PostgreSQL データベースへの暗号化接続を設定します。

  5. [ナビゲーター] で、目的のデータベース情報を選択し、[読み込み] を選択してデータを読み込むか、[データの変換] を選択して Power Query エディターでデータの変換を続行します。

    PostgreSQL データベース内の人事部の従業員データが表示されている Power Query Desktop のナビゲーター。

Power Query Online から PostgreSQL データベースに接続する

接続するには、次の手順を実行します。

  1. コネクタの選択で [PostgreSQL データベース] オプションを選択します。

  2. 表示される [PostgreSQL データベース] ダイアログで、サーバーとデータベースの名前を指定します。

    Power Query Online での PostgreSQL 接続ビルダー。

  3. 使用するオンプレミス データ ゲートウェイの名前を選択します。

  4. [基本] の認証の種類を選択し、 [ユーザー名][パスワード] ボックスに PostgreSQL の資格情報を入力します。

  5. 接続が暗号化されていない場合は、 [Use Encrypted Connection](暗号化された接続を使用する) をオフにします。

  6. [次へ] を選択して、データベースに接続します。

  7. [ナビゲーター] で、必要とするデータを選択してから、 [データの変換] を選択して、Power Query エディターでデータを変換します。

詳細オプションを使用して接続する

Power Query Desktop には、必要に応じてクエリに追加できる一連の詳細オプションが用意されています。

[PostgreSQL 接続] ダイアログ ボックスに含まれる詳細オプション。

次の表に、Power Query Desktop で設定できるすべての詳細オプションを示します。

詳細オプション 説明
分単位のコマンド タイムアウト 接続が 10 分 (既定のタイムアウト) を超える場合は、別の値を分単位で入力して、より長い時間接続を維持できます。 このオプションは Power Query Desktop でのみ使用できます。
SQL ステートメント 詳細については、「ネイティブ データベース クエリを使用してデータベースからデータをインポートする」を参照してください。
リレーションシップ列を含める オンにした場合は、他のテーブルとのリレーションシップがある列が含められます。 このボックスをオフにすると、それらの列は表示されません。
階層全体を使ってナビゲートする オンにすると、接続しているデータベース内のテーブルの完全な階層がナビゲーターに表示されます。 オフにすると、ナビゲーターには、列と行にデータが含まれているテーブルのみが表示されます。

必要とする詳細オプションを選択したら、Power Query Desktop で [OK] を選択して、PostgreSQL データベースに接続します。

ネイティブ クエリ フォールディング

既定では、ネイティブ クエリ フォールディングが有効になっています。 フォールディングが可能な操作は、通常のインポートまたは直接クエリ ロジックに従って、ネイティブ クエリの上に適用されます。 ネイティブ クエリ フォールディングは、Value.NativeQuery() にオプション パラメーターがある場合は適用されません。

ネイティブ クエリ フォールディングが有効になっているとフォールディングが機能しないまれなケースでは、それを無効にできます。 ネイティブ クエリ フォールディングを無効にするには、詳細エディターで Value.NativeQuery()EnableFolding フラグを false に設定します。

サンプル: Value.NativeQuery(target as any, query, null, [EnableFolding=false])

トラブルシューティング

ネイティブ クエリによって次のエラーがスローされる場合があります。

We cannot fold on top of this native query. Please modify the native query or remove the 'EnableFolding' option.

基本的なトラブルシューティング手順では、周囲に limit 1 句を指定したときに Value.NativeQuery() 内のクエリで同じエラーがスローされるかどうかを確認します。

select * from (query) _ limit 1