All Products
Search
Document Center

AnalyticDB:Akses sumber data RDS MySQL

Last Updated:Aug 25, 2026

AnalyticDB for MySQL mendukung akses data di ApsaraDB RDS for MySQL baik dalam akun Alibaba Cloud yang sama maupun lintas akun Alibaba Cloud berbeda. Anda dapat mengakses data ApsaraDB RDS for MySQL menggunakan ENI atau koneksi SSL. Koneksi SSL lebih aman dibandingkan ENI karena mengenkripsi koneksi jaringan untuk menjamin keamanan data. Topik ini menjelaskan metode spesifik untuk mengakses data ApsaraDB RDS for MySQL menggunakan ENI dan koneksi SSL.

Prasyarat

Persiapkan data

Pada instans ApsaraDB RDS for MySQL Anda, buat database dan tabel, lalu masukkan data. Contohnya:

CREATE DATABASE `test`;

CREATE TABLE `test`.`persons` (
  `id` int(11) DEFAULT NULL,
  `first_name` varchar(32) DEFAULT NULL,
  `last_name` varchar(32) DEFAULT NULL,
  `age` int(11) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8
;

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

Akses data RDS MySQL melalui ENI

Unggah driver dan dependensi JAR

  1. Buat program contoh untuk mengakses tabel ApsaraDB RDS for MySQL, lalu kompilasi dan buat paketnya. Paket JAR yang dihasilkan merupakan dependensi untuk pekerjaan Spark, dan dalam artikel ini diberi nama rds_test.jar. Kode contohnya sebagai berikut:

    package com.aliyun.spark
    import org.apache.spark.sql.SparkSession
    object SparkRDS {
      def main(args: Array[String]): Unit = {
        val sparkSession = SparkSession.builder()
        .appName("rds mysql test")
        .getOrCreate()
        // Titik akhir internal instans ApsaraDB RDS for MySQL. Untuk informasi cara melihat titik akhir, lihat Lihat atau ubah titik akhir internal dan publik serta nomor port.
        val url = "jdbc:mysql://rm-bp11mpql1e01****.mysql.rds.aliyuncs.com"
        // Nama tabel ApsaraDB RDS for MySQL dalam format "nama_db.nama_tabel".
        val dbtable = "test.persons"
        // Username untuk menghubungkan ke database ApsaraDB RDS for MySQL.
        val user = "mysql_username"
        // Password untuk username database.
        val password = "mysql_password"
        val jdbcDF = sparkSession.read
        .format("jdbc")
        .option("url", url)
        .option("driver", "com.mysql.jdbc.Driver")
        .option("dbtable", dbtable)
        .option("user", user)
        .option("password", password)
        .load()
        jdbcDF.show()
      }
    }
  2. Unduh driver yang kompatibel dengan versi ApsaraDB RDS for MySQL Anda dari situs resmi MySQL.

    Topik ini menggunakan mysql-connector-java-8.0.11.jar sebagai contoh.

  3. Unggah dependensi JAR pekerjaan Spark dan driver ApsaraDB RDS for MySQL ke OSS. Untuk informasi selengkapnya, lihat Unggah objek.

Akses dalam akun yang sama

  1. Masuk ke Konsol AnalyticDB for MySQL. Di pojok kiri atas konsol, pilih wilayah. Di panel navigasi sebelah kiri, klik Clusters. Temukan kluster yang ingin Anda kelola dan klik ID kluster tersebut.

  2. Di panel navigasi sebelah kiri, klik Job Development > Spark JAR Development.

  3. Di atas editor, pilih kelompok sumber daya pekerjaan dan jenis pekerjaan. Topik ini menggunakan Batch sebagai contoh.

  4. Masukkan konfigurasi pekerjaan berikut di editor.

    {
        "name": "rds-mysql-example",
        "jars": [
            "oss://testBucketName/mysql-connector-java-8.0.11.jar"
        ],
        "file": "oss://testBucketName/rds_test.jar",
        "className": "com.aliyun.spark.SparkRDS",
        "conf": {
            "spark.adb.eni.enabled": "true",
            "spark.adb.eni.vswitchId": "vsw-bp17jqw3lrrobn6y****",
            "spark.adb.eni.securityGroupId": "sg-bp163uxgt4zandx****",
            "spark.driver.resourceSpec": "small",
            "spark.executor.instances": 1,
            "spark.executor.resourceSpec": "small"
        }
    }

    Tabel berikut menjelaskan parameter-parameter tersebut.

    Parameter

    Deskripsi

    name

    Nama pekerjaan Spark.

    jars

    Jalur OSS driver ApsaraDB RDS for MySQL.

    Contoh ini menggunakan jalur OSS paket mysql-connector-java-8.0.11.jar.

    file

    Jalur OSS file JAR dependensi pekerjaan Spark.

    className

    Nama kelas entri program Java atau Scala.

    Contoh ini menggunakan com.aliyun.spark.SparkRDS.

    spark.adb.eni.enabled

    Menentukan apakah akan mengaktifkan akses melalui ENI. Atur ke true untuk mengaktifkan.

    spark.adb.eni.vswitchId

    ID vSwitch. Pada halaman Database Connection instans ApsaraDB RDS for MySQL, arahkan kursor ke Virtual Private Cloud (VPC) untuk mendapatkan ID vSwitch.

    spark.adb.eni.securityGroupId

    ID grup keamanan tempat instans ApsaraDB RDS for MySQL ditambahkan. Jika belum menambahkan grup keamanan, lihat Atur aturan grup keamanan.

    Parameter conf lainnya

    Konfigurasi ini sebagian besar sama dengan Spark open-source. Parameter dalam format key:value. Pisahkan beberapa parameter dengan koma. Untuk informasi selengkapnya tentang parameter konfigurasi aplikasi, lihat Parameter konfigurasi aplikasi Spark.

  5. Klik Run Now.

  6. Setelah pekerjaan Spark berhasil dijalankan, Anda dapat melihat data dari tabel ApsaraDB RDS for MySQL di log Spark. Untuk informasi cara melihat log, lihat Lihat informasi tentang aplikasi Spark.

Akses lintas akun

  1. Masuk ke Konsol AnalyticDB for MySQL. Di pojok kiri atas konsol, pilih wilayah. Di panel navigasi sebelah kiri, klik Clusters. Temukan kluster yang ingin Anda kelola dan klik ID kluster tersebut.

  2. Di panel navigasi sebelah kiri, klik Job Development > Spark JAR Development.

  3. Di atas editor, pilih kelompok sumber daya pekerjaan dan jenis pekerjaan. Topik ini menggunakan Batch sebagai contoh.

  4. Masukkan konfigurasi pekerjaan berikut di editor.

    {
        "name": "rds-mysql-example",
        "jars": [
            "oss://testBucketName/mysql-connector-java-8.0.11.jar"
        ],
        "file": "oss://testBucketName/rds_test.jar",
        "className": "com.aliyun.spark.SparkRDS",
        "conf": {
            "spark.adb.eni.enabled": "true",
            "spark.adb.eni.vswitchId": "vsw-bp17jqw3lrrobn6y****",
            "spark.adb.eni.securityGroupId": "sg-bp163uxgt4zandx****",
            "spark.driver.resourceSpec": "small",
            "spark.executor.instances": 1,
            "spark.executor.resourceSpec": "small",
            "spark.adb.eni.roleArn":"acs:ram::testAccountID:role/testUserName"
        }
    }

    Tabel berikut menjelaskan parameter-parameter tersebut.

    Parameter

    Deskripsi

    spark.adb.eni.roleArn

    Peran RAM yang digunakan untuk akses lintas akun ke sumber data ApsaraDB RDS for MySQL. Pisahkan beberapa peran dengan koma (,). Formatnya adalah acs:ram::testAccountID:role/testUserName.

    • testAccountID: ID akun Alibaba Cloud pemilik sumber data ApsaraDB RDS for MySQL.

    • testUserName: Peran RAM yang dibuat untuk otorisasi lintas akun. Untuk informasi selengkapnya, lihat Otorisasi lintas akun.

    Untuk informasi selengkapnya tentang parameter lainnya, lihat tabel deskripsi parameter pada bagian sebelumnya.

  5. Klik Run Now.

  6. Setelah pekerjaan Spark berhasil dijalankan, Anda dapat melihat data dari tabel ApsaraDB RDS for MySQL di log Spark. Untuk informasi cara melihat log, lihat Lihat informasi tentang aplikasi Spark.

Akses data melalui koneksi SSL

Untuk mengakses data di instans ApsaraDB RDS for MySQL melalui koneksi SSL, Anda harus mengaktifkan enkripsi SSL pada instans tersebut dan memastikan titik akhir internal telah dienkripsi. Untuk informasi selengkapnya, lihat Aktifkan enkripsi SSL untuk instans ApsaraDB RDS for MySQL.

Unduh dan unggah sertifikat CA

  1. Masuk ke Konsol ApsaraDB RDS. Di pojok kiri atas, pilih wilayah instans Anda. Di panel navigasi sebelah kiri, klik Instances, lalu klik ID instans target.

  2. Di panel navigasi sebelah kiri, klik Security Controls.

  3. Klik Download CA Certificate.

    Penting

    Sertifikat CA berlaku selama satu tahun. Untuk mempertahankan akses SSL, Anda harus mengganti sertifikat sebelum masa berlakunya habis.

  4. Ekstrak paket sertifikat CA dan unggah file JKS ke OSS. Untuk informasi selengkapnya, lihat Unggah objek.

Unggah driver dan dependensi JAR

  1. Buat program contoh untuk mengakses tabel ApsaraDB RDS for MySQL, lalu kompilasi dan buat paketnya. Dalam contoh ini, paket JAR yang dihasilkan diberi nama test.jar. Kode contoh berikut digunakan:

    package org.example
    import org.apache.spark.sql.SparkSession
    
    object Test {
      def main(args: Array[String]): Unit = {
        // Jalur OSS file JKS, misalnya oss://testBucketName/folder/ApsaraDB-CA-Chain.jks.
        val JKS_FILE_PATH = args(0)
        
        // Username untuk menghubungkan ke database ApsaraDB RDS for MySQL.
        val USERNAME = args(1)
    
        // Password untuk username database.
        val PASSWORD = args(2)
    
        // Nama database ApsaraDB RDS for MySQL.
        val DATABASE_NAME = args(3)
    
        // Nama tabel dalam database.
        val TABLE_NAME = args(4)
        // Titik akhir internal instans ApsaraDB RDS for MySQL.
        val mysqlUrl = "jdbc:mysql://rm-bp11mpql1e01****.mysql.rds.aliyuncs.com:3306/?" +
          "useSSL=true" +
          s"&trustCertificateKeyStoreUrl=file:///tmp/testBucketName/folder/ApsaraDB-CA-Chain.jks" +
          "&trustCertificateKeyStorePassword=apsaradb" +
          "&trustCertificateKeyStoreType=JKS"
        
        val spark = SparkSession.builder().getOrCreate()
    
         spark.read.format("jdbc")
          .option("driver", "com.mysql.cj.jdbc.Driver")
          .option("url", mysqlUrl)
          .option("user", USERNAME)
          .option("password",  PASSWORD)
          .option("dbtable", s"${DATABASE_NAME}.${TABLE_NAME}")
          .load()
          .show()
      }
    }

    Tabel berikut menjelaskan parameter koneksi tersebut.

    Parameter

    Deskripsi

    useSSL

    Menentukan apakah akan menggunakan koneksi terenkripsi SSL. Nilai yang valid:

    • true: Menggunakan koneksi terenkripsi SSL.

    • false (default): Tidak menggunakan koneksi terenkripsi SSL.

    Dalam contoh ini, atur parameter ini ke true.

    trustCertificateKeyStoreUrl

    Jalur lokal file sertifikat JKS dalam format file:///tmp/<JKS_FILE_PATH>, di mana <JKS_FILE_PATH> adalah jalur OSS sertifikat JKS.

    Misalnya, jika jalur OSS sertifikat JKS adalah oss://testBucketName/folder/ApsaraDB-CA-Chain.jks, maka jalur lokalnya adalah file:///tmp/testBucketName/folder/ApsaraDB-CA-Chain.jks.

    trustCertificateKeyStorePassword

    Password sertifikat JKS. Nilainya tetap apsaradb.

    trustCertificateKeyStoreType

    Format penyimpanan sertifikat. Nilainya tetap JKS.

  2. Unggah paket test.jar ke OSS. Untuk informasi selengkapnya, lihat Unggah objek.

Akses dalam akun yang sama

  1. Masuk ke Konsol AnalyticDB for MySQL. Di pojok kiri atas konsol, pilih wilayah. Di panel navigasi sebelah kiri, klik Clusters. Temukan kluster yang ingin Anda kelola dan klik ID kluster tersebut.

  2. Di panel navigasi sebelah kiri, klik Job Development > Spark JAR Development.

  3. Di atas editor, pilih kelompok sumber daya pekerjaan dan jenis pekerjaan. Topik ini menggunakan Batch sebagai contoh.

  4. Masukkan konfigurasi pekerjaan berikut di editor.

    {
        "file": "oss://testBucketName/test.jar",
        "className": "org.example.Test",
        "name": "MYSQL SSL Test",
        "conf": {
            "spark.kubernetes.driverEnv.ADB_SPARK_DOWNLOAD_FILES": "oss://testBucketName/folder/ApsaraDB-CA-Chain.jks",
            "spark.executorEnv.ADB_SPARK_DOWNLOAD_FILES": "oss://testBucketName/folder/ApsaraDB-CA-Chain.jks",
            "spark.driver.resourceSpec": "small",
            "spark.executor.instances": 1,
            "spark.executor.resourceSpec": "small",
            "spark.adb.eni.enabled": "true",
            "spark.adb.eni.vswitchId": "vsw-bp17jqw3lrrobn6y****",
            "spark.adb.eni.securityGroupId": "sg-bp163uxgt4zandx****"
        }
    }
    

    Tabel berikut menjelaskan parameter-parameter tersebut.

    Parameter

    Deskripsi

    name

    Nama pekerjaan Spark.

    file

    Jalur OSS file JAR dependensi pekerjaan Spark.

    className

    Nama kelas entri program Java atau Scala.

    Contoh ini menggunakan org.example.Test.

    spark.kubernetes.driverEnv.ADB_SPARK_DOWNLOAD_FILES

    Parameter driver Spark yang menentukan jalur OSS file sertifikat JKS. Untuk menentukan beberapa file sertifikat JKS, pisahkan jalurnya dengan koma. Contoh: spark.kubernetes.driverEnv.ADB_SPARK_DOWNLOAD_FILES: "oss://testBucketName/a.jks,oss://testBucketName/b.jks".

    spark.executorEnv.ADB_SPARK_DOWNLOAD_FILES

    Parameter executor Spark yang menentukan jalur OSS file sertifikat JKS. Untuk menentukan beberapa file sertifikat JKS, pisahkan jalurnya dengan koma. Contoh: spark.executorEnv.ADB_SPARK_DOWNLOAD_FILES: "oss://testBucketName/a.jks,oss://testBucketName/b.jks".

    spark.adb.eni.enabled

    Menentukan apakah akan mengaktifkan akses melalui ENI. Atur ke true untuk mengaktifkan.

    spark.adb.eni.vswitchId

    ID vSwitch. Pada halaman Database Connection instans ApsaraDB RDS for MySQL, arahkan kursor ke VPC untuk mendapatkan ID vSwitch.

    spark.adb.eni.securityGroupId

    ID grup keamanan tempat instans ApsaraDB RDS for MySQL ditambahkan. Jika belum menambahkan grup keamanan, lihat Atur aturan grup keamanan.

    Parameter conf lainnya

    Konfigurasi ini sebagian besar sama dengan Spark open-source. Parameter dalam format key:value. Pisahkan beberapa parameter dengan koma. Untuk informasi selengkapnya tentang parameter konfigurasi aplikasi, lihat Parameter konfigurasi aplikasi Spark.

  5. Klik Run Now.

  6. Setelah pekerjaan Spark berhasil dijalankan, Anda dapat melihat data dari tabel ApsaraDB RDS for MySQL di log Spark. Untuk informasi cara melihat log, lihat Lihat informasi tentang aplikasi Spark.

Akses lintas akun

  1. Masuk ke Konsol AnalyticDB for MySQL. Di pojok kiri atas konsol, pilih wilayah. Di panel navigasi sebelah kiri, klik Clusters. Temukan kluster yang ingin Anda kelola dan klik ID kluster tersebut.

  2. Di panel navigasi sebelah kiri, klik Job Development > Spark JAR Development.

  3. Di atas editor, pilih kelompok sumber daya pekerjaan dan jenis pekerjaan. Topik ini menggunakan Batch sebagai contoh.

  4. Masukkan konfigurasi pekerjaan berikut di editor.

    {
        "file": "oss://testBucketName/test.jar",
        "className": "org.example.Test",
        "name": "MYSQL SSL Test",
        "conf": {
            "spark.kubernetes.driverEnv.ADB_SPARK_DOWNLOAD_FILES": "oss://testBucketName/folder/ApsaraDB-CA-Chain.jks",
            "spark.executorEnv.ADB_SPARK_DOWNLOAD_FILES": "oss://testBucketName/folder/ApsaraDB-CA-Chain.jks",
            "spark.driver.resourceSpec": "small",
            "spark.executor.instances": 1,
            "spark.executor.resourceSpec": "small",
            "spark.adb.eni.enabled": "true",
            "spark.adb.eni.vswitchId": "vsw-bp17jqw3lrrobn6y****",
            "spark.adb.eni.securityGroupId": "sg-bp163uxgt4zandx****",
            "spark.adb.eni.roleArn": "acs:ram::testAccountID:role/testUserName"
        }
    }

    Tabel berikut menjelaskan parameter-parameter tersebut.

    Parameter

    Deskripsi

    spark.adb.eni.roleArn

    Peran RAM yang digunakan untuk akses lintas akun ke sumber data ApsaraDB RDS for MySQL. Pisahkan beberapa peran dengan koma (,). Formatnya adalah acs:ram::testAccountID:role/testUserName.

    • testAccountID: ID akun Alibaba Cloud pemilik sumber data ApsaraDB RDS for MySQL.

    • testUserName: Peran RAM yang dibuat untuk otorisasi lintas akun. Untuk informasi selengkapnya, lihat Otorisasi lintas akun.

    Untuk informasi selengkapnya tentang parameter lainnya, lihat tabel deskripsi parameter pada bagian sebelumnya.

  5. Klik Run Now.

  6. Setelah pekerjaan Spark berhasil dijalankan, Anda dapat melihat data dari tabel ApsaraDB RDS for MySQL di log Spark. Untuk informasi cara melihat log, lihat Lihat informasi tentang aplikasi Spark.