AnalyticDB for PostgreSQL は、PostgreSQL および Greenplum の Java Database Connectivity (JDBC) ドライバーをサポートしています。本ガイドでは、JDBC を使用して AnalyticDB for PostgreSQL インスタンスに接続する方法について説明します。
前提条件
作業を開始する前に、以下の項目を準備してください。
AnalyticDB for PostgreSQL インスタンスのイントラネットまたはパブリックエンドポイント
イントラネットエンドポイント:クライアントが、AnalyticDB for PostgreSQL インスタンスと同じリージョンかつ同じネットワークタイプの Elastic Compute Service (ECS) インスタンス上で実行されている場合に使用します。AnalyticDB for PostgreSQL コンソールの基本情報ページにあるデータベース接続情報セクションでエンドポイントを確認できます。
パブリックエンドポイント: クライアントが異なるリージョンに存在する場合、異なるネットワークタイプを使用する場合、または Alibaba Cloud の外部で実行される場合に使用します。まず、パブリックエンドポイントを申請してください。詳細については、「パブリックエンドポイントの管理」をご参照ください。
インスタンスの IP アドレスホワイトリストに追加されたクライアント IP アドレス。 詳細については、「IP アドレスホワイトリストを設定する」をご参照ください。
JDBC を使用したインスタンスへの接続
手順 1:JDBC ドライバーの追加
PostgreSQL 公式サイトから PostgreSQL JDBC ドライバーをダウンロードし、環境変数にドライバーを追加します。
AnalyticDB for PostgreSQL V7.0 では、JDBC V42.2.0 以降が必要です。
手順 2:接続とクエリの実行
以下の例では、AnalyticDB for PostgreSQL インスタンスに接続し、gp_segment_configuration に対してクエリを実行し、結果を出力します。認証情報はハードコードを避けるため、環境変数から読み取ります。
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class GpConn {
public static void main(String[] args) {
// 認証情報を環境変数から読み取り
String host = System.getenv("ADB_PG_HOST"); // 例: mygpdbpub.gpdb.rds.aliyuncs.com
String port = System.getenv("ADB_PG_PORT"); // 例: 5432
String database = System.getenv("ADB_PG_DATABASE"); // 例: postgres
String username = System.getenv("ADB_PG_USERNAME");
String password = System.getenv("ADB_PG_PASSWORD");
String url = String.format("jdbc:postgresql://%s:%s/%s", host, port, database);
try {
Class.forName("org.postgresql.Driver");
Connection conn = DriverManager.getConnection(url, username, password);
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery("SELECT * FROM gp_segment_configuration;");
while (rs.next()) {
for (int i = 1; i <= 11; i++) {
System.out.print(rs.getString(i));
if (i < 11) System.out.print(" | ");
}
System.out.println();
}
rs.close();
stmt.close();
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
}
}プログラムを実行する前に、以下の環境変数を設定してください。
| 変数 | 説明 | 例 |
|---|---|---|
ADB_PG_HOST | インスタンスのエンドポイント | mygpdbpub.gpdb.rds.aliyuncs.com |
ADB_PG_PORT | インスタンスがリッスンするポート | 5432 |
ADB_PG_DATABASE | データベース名 | postgres |
ADB_PG_USERNAME | データベースアカウント名 | myusername |
ADB_PG_PASSWORD | データベースアカウントパスワード | — |
JDBC URL のフォーマットは次のとおりです。
jdbc:postgresql://<host>:<port>/<database>サポートされている接続パラメーターの完全な一覧については、PostgreSQL JDBC ドライバードキュメントをご参照ください。
次のステップ
Greenplum には、JDBC、ODBC、libpq ドライバーを含むツールパッケージも提供されています。詳細については、Greenplum ドキュメントをご参照ください。