すべてのプロダクト
Search
ドキュメントセンター

AnalyticDB:Spark SQL を使用した RDS for PostgreSQL データの読み書き

最終更新日:Dec 03, 2025

AnalyticDB for MySQL では、Spark SQL ジョブを送信できます。ビューを使用して、自主管理 PostgreSQL データベースまたは ApsaraDB RDS for PostgreSQL データベースにアクセスできます。このトピックでは、RDS for PostgreSQL を例として、Spark SQL を使用して RDS for PostgreSQL データベースのデータを読み書きする方法について説明します。

前提条件

ステップ 1:データの準備

RDS for PostgreSQL で、demo という名前のスキーマと tbl という名前のテーブルを作成し、データを挿入します。次のコードは、サンプル文です。

CREATE SCHEMA demo;

CREATE TABLE demo.tbl (
  id INTEGER,
  first_name VARCHAR(32),
  last_name VARCHAR(32),
  age INTEGER
);

INSERT INTO demo.tbl VALUES(1,'a','b',5);
INSERT INTO demo.tbl VALUES(2,'c','d',6);
INSERT INTO demo.tbl VALUES(3,'e','f',7);

ステップ 2:RDS for PostgreSQL ドライバーのダウンロードとアップロード

  1. 公式サイトから、ご利用の RDS for PostgreSQL のバージョンと互換性のあるドライバーをダウンロードします。詳細については、「postgresql」をご参照ください。

    このトピックでは、postgresql-42.7.7.jar パッケージを例として使用します。

  2. RDS for PostgreSQL ドライバーを OSS にアップロードします。

ステップ 3:Spark SQL ジョブの送信

  1. AnalyticDB for MySQL コンソールにログインします。コンソールの左上でリージョンを選択します。左側のナビゲーションウィンドウで、クラスターリスト をクリックします。管理するクラスターを見つけ、クラスター ID をクリックします。

  2. 左側のナビゲーションウィンドウで、ジョブを開発する > Sql開発 をクリックします。

  3. [SQLConsole] ウィンドウで、Spark エンジンとジョブ固有のリソースグループを選択します。

  4. [SQLConsole] ウィンドウに、次のジョブ内容を入力します。

    ADD jar oss://testBucketName/postgresql-42.7.7.jar;
    SET spark.adb.eni.enabled=true;
    SET spark.adb.eni.vswitchId=vsw-bp1sxxsodv28ey5dl****;
    SET spark.adb.eni.securityGroupId=sg-bp19mr685pmg4ihc****;   
    
    CREATE TEMPORARY VIEW table_tmp
    USING org.apache.spark.sql.jdbc
    OPTIONS (
      url 'jdbc:postgresql://pgm-t4n37****.pgsql.singapore.rds.aliyuncs.com:5432/test',     
      driver 'org.postgresql.Driver',
      dbtable 'demo.tbl',    
      user 'user',       
      password 'password****'      
    );
    
    INSERT INTO table_tmp VALUES(4,'e','f',8);
    
    SELECT * FROM table_tmp;

    次の表にパラメーターを示します。

    パラメーター

    説明

    ADD jar

    RDS for PostgreSQL ドライバーの OSS パスです。

    このトピックの例は、postgresql-42.7.7.jar パッケージの OSS パスです。

    spark.adb.eni.enabled

    Elastic Network Interface (ENI) アクセスを有効にします。

    データにアクセスするには、spark.adb.eni.enabled パラメーターを true に設定します。

    spark.adb.eni.vswitchId

    RDS for PostgreSQL インスタンスの vSwitch の ID です。

    RDS for PostgreSQL インスタンスの データベースの接続 ページで、VPC にポインターを合わせると vSwitch ID を取得できます。

    spark.adb.eni.securityGroupId

    RDS for PostgreSQL インスタンスに関連付けられているセキュリティグループ ID です。

    table_tmp

    ビューの名前です。このトピックでは、table_tmp を例として使用します。

    USING org.apache.spark.sql.jdbc

    このパラメーターの値は USING org.apache.spark.sql.jdbc に固定されています。

    OPTIONS

    • url:RDS for PostgreSQL インスタンスの接続エンドポイント、ポート番号、およびデータベース名です。フォーマットは jdbc:postgresql://pgm-t4n37****.pgsql.singapore.rds.aliyuncs.com:5432/db_name です。

    • driver:このパラメーターの値は org.postgresql.Driver に固定されています。

    • dbtable:RDS for PostgreSQL 内のテーブルの名前です。フォーマットは schema_name.table_name です。このトピックでは、demo.tbl を例として使用します。

    • user:RDS for PostgreSQL のデータベースアカウントです。

    • password:RDS for PostgreSQL データベースアカウントのパスワードです。

  5. SQL の実行 をクリックします。

  6. Spark ジョブが正常に実行された後、ジョブを開発する > Spark Jar 開発 ページの アプリケーションリスト タブにある ログ でテーブルデータを確認できます。詳細については、「Spark 開発エディター」をご参照ください。