PostgreSQL に接続する

PostgreSQL はオープンソースのリレーショナル データベース管理システム(RDBMS)で、世界的なボランティア チームによって開発されました。

PostgreSQL コネクタを使うと、データポータル内で PostgreSQL に基づくデータベースのデータにアクセスできます。

PostgreSQL への接続方法

このコネクタは PostgreSQL JDBC ドライバを使用して、データポータルのデータソースを単一の PostgreSQL データベース テーブルに接続します。

サポート対象のバージョン

データポータルの動作検証は、次の PostgreSQL バージョンで実施されています。

  • 9.6
  • 10
  • 11
  • 12
  • 13
  • 14

サポートされるバージョンの使用で問題が発生した場合は、データポータルのコミュニティでお知らせください。Issue Tracker で機能に関するリクエストの追加や投票を行うこともできます

サービスとパートナー向けの

  1. データポータルにログインします。
  2. データポータルのホームページで、左上にある [作成] をクリックして、[データソース] を選択します。
  3. [PostgreSQL] コネクタを選択します。
  4. 接続オプションのいずれかを使って、データベースへのアクセス権を設定します。
  5. [AUTHENTICATE] をクリックします。そのデータベース内のテーブルのリストが表示されます。
  6. テーブル を選択します。
  7. [接続] をクリックします。

これで、指定したテーブルのすべての列をレポートの中でフィールドとして使えるようになります。

接続オプション

ベーシック

ホスト名や IP アドレスを使って接続するには、次の情報を入力してください。

  • ホスト名または IP アドレス
  • ポート(省略可)
  • データベース
  • ユーザー名
  • パスワード

JDBC URL

JDBC URL 経由で接続するには、次の接続情報を入力してください。

  • JDBC URL
    • jdbc:postgresql://HOSTNAME[:PORT]/DATABASE
  • パスワード

JDBC ホスト名オプションを使用すると、一般公開されている Whois などの DNS ルックアップ ツールで、そのホスト名がアクセス可能かどうかを確認できます。

IPv6 リテラル アドレスを使用して接続するには、アドレスを角かっこで囲みます例: jdbc:postgresql://[2001:db8:1:1:1:1:1:1]/your_db

SSL を有効にする

データポータルでは、TLS(Transport Layer Security)プロトコルを使用して、サーバーへの接続を保護(暗号化)できます。TLS は SSL(セキュア ソケット レイヤ)とも呼ばれます。保護された接続を使用するには、[SSL を有効にする] をオンにして、SSL 設定ファイルを指定します。

この設定はデータポータルでは必須ではありませんが、データベース構成で必要になる場合があります。詳細については、データベース ベンダーにお問い合わせください。

クライアント認証を有効にする

このチェックボックスをオンにすると、データベースにアクセスする際に、必要に応じてクライアントの秘密鍵とクライアント証明書をアップロードできます。

この設定はデータポータルでは必須ではありませんが、データベース構成で必要になる場合があります。詳細については、データベース ベンダーにお問い合わせください。

: データポータルでは、PKCS-8 クライアント キー形式を使用する必要があります。

詳しくは、PostgreSQL の安全な接続をご確認ください。

カスタムクエリ

1 つの表に接続する代わりに、SQL クエリを指定するには [カスタムクエリ] オプションを選択します。データポータルでは、データベースに対するクエリが生成されると、このカスタム SQL を内部 SELECT ステートメントとして使用します。

たとえば以下は、複数の SQL ステートメントが含まれるため機能しません


DECLARE cost_per_tb_in_dollar FLOAT64 DEFAULT 4.2;

SELECT total_bytes_billed / (1024 * 1024))* cost_per_tb_in_dollar)/(1024*1024))) FROM billing-table;

データポータルのクエリは 3 ~ 5 分後にタイムアウトする場合があります。カスタムクエリがタイムアウトした場合は、次の方法で問題を解決してみてください。

  • 実行速度を上げるために、クエリを簡素化します。
  • データベースでクエリを実行し、結果を別のテーブルに保存します。データソース内の新しいテーブルに接続します。

メモ

サポートされるデータタイプ

PostgreSQL コネクタは、次のデータタイプをサポートしています。

  • 数値
  • 文字
  • ブール値
  • 日時(時間隔を除く)

データポータルでサポートされていないタイプの列については、フィールドが作成されません。

詳しくは、PostgreSQL のデータタイプをご確認ください。

ファイアウォールとデータベースへのアクセス

データポータルがファイアウォールの内側にあるデータベースに接続してクエリを実行できるようにするには、次のいずれかの IP アドレスへのアクセスを可能にする必要があります。また、これらのアドレスからのトラフィックを受け入れるようにデータベースを設定する必要があります。詳しい手順については、該当するデータベースの各ドキュメントをご覧ください。

IP アドレス

  • 142.251.74.0/23

  • 2001:4860:4807::/48(省略可、IPv6 をサポートするプラットフォームの場合)

PostgreSQL コネクタを使用する場合は、次のネットワーク制限事項に注意してください。

  • データポータルは、Cloud SQL 上の PostgreSQL へのプライベート IP 接続をサポートしていません。

  • PostgreSQL コネクタは、Cloud SQL PostgreSQL インスタンスへの接続時に Cloud SQL Proxy を使用しません。Cloud SQL PostgreSQL インスタンスに接続する場合は、リストに記載されている IP を承認済みネットワーク リストに追加する必要があります。詳しくは、Cloud SQL ドキュメントをご覧ください。

PostgreSQL コネクタに関する制限事項

  • AlloyDB は認証局(CA)証明書のエクスポートをサポートしていないため、SSL 経由での AlloyDB データソースへの接続はサポートされていません。

  • public スキーマ以外のテーブルを選択することはできません。ただし、[カスタムクエリ] オプションを選択して、任意のスキーマのテーブルを含むクエリを作成することは可能です。

  • このコネクタを使用すると、1 クエリあたり最大 15 万行のクエリを実行できます。この上限値を超えたデータは切り捨てられます。

  • 列見出し(フィールド名)には ASCII 文字のみを使用する必要があります。ASCII 以外の文字はサポートされていません。

トラブルシューティング

一般的なエラー メッセージとその解決方法については、データポータルのトラブルシューティング ガイドをご覧ください。

レポートにデータを追加する