全部產品
Search
文件中心

AnalyticDB:通過Spark SQL讀寫RDS PostgreSQL資料

更新時間:Nov 20, 2025

AnalyticDB for MySQL支援提交Spark SQL作業,您可以通過View方式訪問自建PostgreSQL資料庫或ApsaraDB RDS for PostgreSQL資料庫。本文以RDS for PostgreSQL為例,介紹如何通過Spark SQL讀寫RDS for PostgreSQL資料。

前提條件

步驟一:資料準備

RDS for PostgreSQL中建立schemademo和表tbl,並插入資料。樣本語句如下:

CREATE SCHEMA demo;

CREATE TABLE tbl (
  id INTEGER,
  first_name VARCHAR(32),
  laster_name VARCHAR(32),
  age INTEGER
);

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

步驟二:下載並上傳RDS for PostgreSQL驅動程式

  1. 在官方網站下載適配RDS for PostgreSQL版本的驅動程式。下載地址,請參見 postgresql

    本文以postgresql-42.7.7.jar包為例。

  2. RDS for PostgreSQL驅動程式上傳至OSS

步驟三:提交Spark SQL作業

  1. 登入雲原生資料倉儲AnalyticDB MySQL控制台,在左上方選擇叢集所在地區。在左側導覽列,單擊集群清單,然後單擊目的地組群ID。

  2. 在左側導覽列,單擊作業開發 > SQL開發

  3. SQLConsole視窗,選擇Spark引擎和Job型資源群組。

  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

    開啟ENI訪問。

    訪問資料時,需將spark.adb.eni.enabled參數設定為true。

    spark.adb.eni.vswitchId

    RDS for PostgreSQL執行個體的交換器ID。

    RDS for PostgreSQL執行個體資料庫連接的頁面,將滑鼠移動至VPC處,擷取交換器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開發編輯器