PostgreSQL データベースをデータポータルに接続して、データを可視化して分析できます。PostgreSQL コネクタを使用して、データをインタラクティブなダッシュボードとレポートに変換します。その後、データベースに直接アクセスできないチームや関係者と分析情報を共有できます。
サポート対象のバージョン
データポータルの動作検証は、次の PostgreSQL バージョンで実施されています。
- 9.6
- 10
- 11
- 12
- 13
- 14
サポートされるバージョンの使用で問題が発生した場合は、データポータル コミュニティでお知らせください。機能リクエストの追加や投票は、Issue Tracker から行うこともできます。
PostgreSQL への接続方法
PostgreSQL コネクタは、PostgreSQL JDBC ドライバを使用して、データポータルのデータソースを単一の PostgreSQL データベース テーブルまたは指定したカスタムクエリに接続します。
PostgreSQL データベースに接続する手順は次のとおりです。
- データポータルにログインします。
- データポータルのホームページで、[ 作成] をクリックし、[データソース] を選択します。
- PostgreSQL コネクタを選択します。
- 求められた場合は、データポータルにデータへのアクセスを許可します。
- 接続オプションのいずれかを使用して、データベースへのアクセスを構成します。
- [AUTHENTICATE] をクリックします。そのデータベース内のテーブルのリストが表示されます。
- リストからテーブルを選択するか、カスタムクエリを入力します。
- [接続] をクリックします。
これで、テーブル内のすべての列にレポートのフィールドとしてアクセスできるようになりました。
接続オプション
ホスト名または IP アドレスを使用して接続する
接続パネルで [BASIC] を選択します。接続の詳細を入力します。
- ホスト名または IP アドレス
- ポート(省略可)
- データベース
- ユーザー名
- パスワード
JDBC URL を使用して接続する
接続パネルで [JDBC URL] を選択します。接続の詳細を入力します。
- JDBC URL
例
jdbc:postgresql://HOSTNAME[:PORT]/DATABASE_NAMECloud SQL(プライベート IP)の場合
jdbc:google:postgresql://< var>INSTANCE_CONNECTION_NAME/DATABASE_NAME
- ユーザー名
- パスワード
IPv6 リテラル アドレスを使用して接続するには、アドレスを角かっこで囲みます。次に例を示します。jdbc:postgresql://[2001:db8:1:1:1:1:1:1]/your_db
SSL を使用して接続する
データポータルでは、TLS(Transport Layer Security)プロトコル(TLS 1.2)を使用して、サーバーへの接続を保護(暗号化)できます。TLS は SSL(セキュア ソケット レイヤ)とも呼ばれます。
保護された接続を使用するには、[SSL を有効にする] を選択して、SSL 構成ファイルを指定します。
クライアント認証を使用して接続する
[クライアント認証を有効にする] チェックボックスをオンにすると、データベースにアクセスする際に、必要に応じてクライアントの秘密鍵とクライアント証明書をアップロードできます。
PostgreSQL のセキュアな接続の詳細を確認する。
カスタムクエリ
1 つの表に接続する代わりに、SQL クエリを指定するには [カスタムクエリ] オプションを選択します。データポータルでは、データベースに対するクエリが生成されると、このカスタム SQL を内部 SELECT ステートメントとして使用します。
カスタム SQL クエリには、1 つのステートメントのみを含めることができます。たとえば以下は、複数の 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 のデータタイプをご確認ください。
パブリック接続とプライベート接続
データポータルは、Cloud SQL 上の PostgreSQL へのパブリック IP 接続とプライベート IP 接続の両方をサポートしています。
プライベート IP を使用して Cloud SQL for PostgreSQL インスタンスに接続するには、次の要件を確認します。
- Identity and Access Management(IAM)権限: Cloud SQL インスタンスを含む Google Cloudプロジェクトに Cloud SQL クライアント(
roles/cloudsql.client)IAM ロールを付与します。このロールは、データポータルで接続を認証するユーザー アカウント、またはデータソースの認証情報のオーナーに付与する必要があります。データソースで閲覧者の認証情報が使用されている場合は、各レポート閲覧者にこのロールを付与します。 - インスタンスの設定: Cloud SQL インスタンスの設定で、[Google Cloud サービスのプライベート パス] オプションを選択します。
JDBC URL: 接続パネルで [JDBC URL] 接続オプションを選択し、次の形式で接続文字列を入力します。
jdbc:google:postgresql://INSTANCE_CONNECTION_NAME/DATABASE_NAME
次のように置き換えます。
INSTANCE_CONNECTION_NAME: インスタンス接続名(PROJECT_ID:REGION:INSTANCE_ID形式)。DATABASE_NAME: PostgreSQL データベースの名前
次に例を示します。
jdbc:google:postgresql://my-project:us-central1:my-instance/my-db接続文字列の接頭辞として組織名や組織 ID を追加しないでください。また、URL からスペースを削除してください。
ファイアウォールとデータベースへのアクセス
データポータルがファイアウォールの内側にあるデータベースに接続してクエリを実行できるようにするには、次のいずれかの IP アドレスへのアクセスを可能にする必要があります。また、これらのアドレスからのトラフィックを受け入れるようにデータベースを設定する必要があります。詳しい手順については、該当するデータベースの各ドキュメントをご覧ください。
IP アドレス
次のアドレスは、データポータルのグローバル インフラストラクチャ用に予約されています。
142.251.74.0/232001:4860:4807::/48(省略可、IPv6 をサポートするプラットフォームの場合)
データポータル Pro サブスクリプションでデータ所在地を有効にしている場合は、代わりに次のアドレスを使用します。
142.251.56.0/242001:4860:4815::/48(省略可、IPv6 をサポートするプラットフォームの場合)
PostgreSQL コネクタに関する制限事項
PostgreSQL コネクタは、Cloud SQL PostgreSQL インスタンスへの接続時に Cloud SQL Proxy を使用しません。パブリック IP を使用して Cloud SQL PostgreSQL インスタンスに接続する場合は、リストに記載されている IP を承認済みネットワーク リストに追加する必要があります。詳しくは、Cloud SQL ドキュメントをご覧ください。
AlloyDB は認証局(CA)証明書のエクスポートをサポートしていないため、SSL 経由で AlloyDB データソースに接続することはできません。
publicスキーマ外のテーブルの選択はサポートされていません。ただし、[カスタムクエリ] オプションを選択して、任意のスキーマのテーブルを含むクエリを作成することは可能です。このコネクタを使用すると、1 クエリあたり最大 15 万行のクエリを実行できます。この上限値を超えたデータは切り捨てられます。
列見出し(フィールド名)には ASCII 文字のみを使用する必要があります。ASCII 以外の文字はサポートされていません。
トラブルシューティング
一般的なエラー メッセージとその解決方法については、データポータルのトラブルシューティング ガイドをご覧ください。