Todos os produtos
Search
Central de documentação

AnalyticDB:Acessar uma fonte de dados do RDS MySQL

Última atualização: Aug 24, 2026

AnalyticDB for MySQL permite acessar dados no ApsaraDB RDS for MySQL na mesma conta da Alibaba Cloud ou em contas diferentes. É possível acessar os dados do ApsaraDB RDS for MySQL por meio de uma ENI ou de uma conexão SSL. A conexão SSL oferece maior segurança que a ENI, pois criptografa a conexão de rede para garantir a proteção dos dados. Este tópico descreve os métodos específicos para acessar dados do ApsaraDB RDS for MySQL usando uma ENI e uma conexão SSL.

Pré-requisitos

Preparar dados

Na sua instância do ApsaraDB RDS for MySQL, crie um banco de dados e uma tabela e insira dados. Por exemplo:

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);

Acessar dados do RDS MySQL por uma ENI

Fazer upload do driver e da dependência JAR

  1. Escreva um programa de exemplo para acessar uma tabela do ApsaraDB RDS for MySQL, compile-o e empacote-o. O pacote JAR gerado é uma dependência para o job Spark e, neste artigo, recebe o nome de rds_test.jar. O código de exemplo é o seguinte:

    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()
        // The internal endpoint of the ApsaraDB RDS for MySQL instance. For information about how to view the endpoint, see View or change internal and public endpoints and port numbers.
        val url = "jdbc:mysql://rm-bp11mpql1e01****.mysql.rds.aliyuncs.com"
        // The name of the ApsaraDB RDS for MySQL table in the "db_name.table_name" format.
        val dbtable = "test.persons"
        // The username for connecting to the ApsaraDB RDS for MySQL database.
        val user = "mysql_username"
        // The password for the database username.
        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. Baixe o driver compatível com a versão do seu ApsaraDB RDS for MySQL no site oficial do MySQL.

    Este tópico usa mysql-connector-java-8.0.11.jar como exemplo.

  3. Faça upload da dependência JAR do job Spark e do driver do ApsaraDB RDS for MySQL para o OSS. Para mais informações, consulte Upload objects.

Acesso na mesma conta

  1. Faça login no console do AnalyticDB for MySQL. No canto superior esquerdo do console, selecione uma região. No painel de navegação à esquerda, clique em Clusters. Localize o cluster que deseja gerenciar e clique no ID do cluster.

  2. No painel de navegação à esquerda, clique em Job Development > Spark JAR Development.

  3. Acima do editor, selecione um grupo de recursos de job e um tipo de job. Este tópico usa Batch como exemplo.

  4. Insira a seguinte configuração de job no 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"
        }
    }

    A tabela a seguir descreve os parâmetros.

    Parâmetro

    Descrição

    name

    Nome do job Spark.

    jars

    Caminho do OSS para o driver do ApsaraDB RDS for MySQL.

    Este exemplo usa o caminho do OSS do pacote mysql-connector-java-8.0.11.jar.

    file

    Caminho do OSS para o arquivo JAR de dependência do job Spark.

    className

    Nome da classe de entrada do programa Java ou Scala.

    Este exemplo usa com.aliyun.spark.SparkRDS.

    spark.adb.eni.enabled

    Define se o acesso por ENI deve ser ativado. Defina como true para ativar.

    spark.adb.eni.vswitchId

    ID do vSwitch. Na página Database Connection da instância do ApsaraDB RDS for MySQL, passe o mouse sobre a Virtual Private Cloud (VPC) para obter o ID do vSwitch.

    spark.adb.eni.securityGroupId

    ID do grupo de segurança ao qual a instância do ApsaraDB RDS for MySQL foi adicionada. Se nenhum grupo de segurança tiver sido adicionado, consulte Set security group rules.

    Outros parâmetros conf

    Essas configurações são praticamente idênticas às do Spark open-source. Os parâmetros seguem o formato key:value. Separe múltiplos parâmetros com vírgula. Para mais informações sobre parâmetros de configuração de aplicação, consulte Spark application configuration parameters.

  5. Clique em Run Now.

  6. Após a execução bem-sucedida do job Spark, visualize os dados da tabela do ApsaraDB RDS for MySQL nos logs do Spark. Para saber como visualizar logs, consulte View information about a Spark application.

Acesso entre contas

  1. Faça login no console do AnalyticDB for MySQL. No canto superior esquerdo do console, selecione uma região. No painel de navegação à esquerda, clique em Clusters. Localize o cluster que deseja gerenciar e clique no ID do cluster.

  2. No painel de navegação à esquerda, clique em Job Development > Spark JAR Development.

  3. Acima do editor, selecione um grupo de recursos de job e um tipo de job. Este tópico usa Batch como exemplo.

  4. Insira a seguinte configuração de job no 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"
        }
    }

    A tabela a seguir descreve os parâmetros.

    Parâmetro

    Descrição

    spark.adb.eni.roleArn

    Função RAM usada para acesso entre contas à fonte de dados do ApsaraDB RDS for MySQL. Separe múltiplas funções com vírgulas (,). O formato é acs:ram::testAccountID:role/testUserName.

    • testAccountID: ID da conta da Alibaba Cloud proprietária da fonte de dados do ApsaraDB RDS for MySQL.

    • testUserName: Função RAM criada para autorização entre contas. Para mais informações, consulte Cross-account authorization.

    Para mais informações sobre os demais parâmetros, consulte a tabela parameter description na seção anterior.

  5. Clique em Run Now.

  6. Após a execução bem-sucedida do job Spark, visualize os dados da tabela do ApsaraDB RDS for MySQL nos logs do Spark. Para saber como visualizar logs, consulte View information about a Spark application.

Acessar dados por uma conexão SSL

Para acessar dados em uma instância do ApsaraDB RDS for MySQL por uma conexão SSL, ative a criptografia SSL na instância e garanta que o endpoint interno esteja criptografado. Para mais informações, consulte Enable SSL encryption for an ApsaraDB RDS for MySQL instance.

Baixar e fazer upload do certificado CA

  1. Faça login no console do ApsaraDB RDS. No canto superior esquerdo, selecione a região da sua instância. No painel de navegação à esquerda, clique em Instances e clique no ID da instância desejada.

  2. No painel de navegação à esquerda, clique em Security Controls.

  3. Clique em Download CA Certificate.

    Importante

    Um certificado CA tem validade de um ano. Para manter o acesso SSL, substitua o certificado antes que ele expire.

  4. Descompacte o pacote do certificado CA e faça upload do arquivo JKS para o OSS. Para mais informações, consulte Upload objects.

Fazer upload do driver e da dependência JAR

  1. Escreva um programa de exemplo para acessar a tabela do ApsaraDB RDS for MySQL, compile-o e empacote-o. Neste exemplo, o pacote JAR gerado recebe o nome de test.jar. O seguinte código de exemplo é utilizado:

    package org.example
    import org.apache.spark.sql.SparkSession
    
    object Test {
      def main(args: Array[String]): Unit = {
        // The OSS path of the JKS file, for example, oss://testBucketName/folder/ApsaraDB-CA-Chain.jks.
        val JKS_FILE_PATH = args(0)
        
        // The username for connecting to the ApsaraDB RDS for MySQL database.
        val USERNAME = args(1)
    
        // The password for the database username.
        val PASSWORD = args(2)
    
        // The name of the ApsaraDB RDS for MySQL database.
        val DATABASE_NAME = args(3)
    
        // The name of the table in the database.
        val TABLE_NAME = args(4)
        // The internal endpoint of the ApsaraDB RDS for MySQL instance.
        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()
      }
    }

    A tabela a seguir descreve os parâmetros de conexão.

    Parâmetro

    Descrição

    useSSL

    Define se uma conexão criptografada por SSL deve ser usada. Valores válidos:

    • true: Uma conexão criptografada por SSL é utilizada.

    • false (padrão): Nenhuma conexão criptografada por SSL é utilizada.

    Neste exemplo, defina este parâmetro como true.

    trustCertificateKeyStoreUrl

    Caminho local do arquivo de certificado JKS no formato file:///tmp/<JKS_FILE_PATH>, onde <JKS_FILE_PATH> é o caminho do OSS para o certificado JKS.

    Por exemplo, se o caminho do OSS para o certificado JKS for oss://testBucketName/folder/ApsaraDB-CA-Chain.jks, o caminho local será file:///tmp/testBucketName/folder/ApsaraDB-CA-Chain.jks.

    trustCertificateKeyStorePassword

    Senha do certificado JKS. O valor é fixo como apsaradb.

    trustCertificateKeyStoreType

    Formato de armazenamento do certificado. O valor é fixo como JKS.

  2. Faça upload do pacote test.jar para o OSS. Para mais informações, consulte Upload objects.

Acesso na mesma conta

  1. Faça login no console do AnalyticDB for MySQL. No canto superior esquerdo do console, selecione uma região. No painel de navegação à esquerda, clique em Clusters. Localize o cluster que deseja gerenciar e clique no ID do cluster.

  2. No painel de navegação à esquerda, clique em Job Development > Spark JAR Development.

  3. Acima do editor, selecione um grupo de recursos de job e um tipo de job. Este tópico usa Batch como exemplo.

  4. Insira a seguinte configuração de job no 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****"
        }
    }
    

    A tabela a seguir descreve os parâmetros.

    Parâmetro

    Descrição

    name

    Nome do job Spark.

    file

    Caminho do OSS para o arquivo JAR de dependência do job Spark.

    className

    Nome da classe de entrada do programa Java ou Scala.

    Este exemplo usa org.example.Test.

    spark.kubernetes.driverEnv.ADB_SPARK_DOWNLOAD_FILES

    Parâmetro do driver Spark que especifica o caminho do OSS para o arquivo de certificado JKS. Para especificar vários arquivos de certificado JKS, separe os caminhos com vírgula. Exemplo: spark.kubernetes.driverEnv.ADB_SPARK_DOWNLOAD_FILES: "oss://testBucketName/a.jks,oss://testBucketName/b.jks".

    spark.executorEnv.ADB_SPARK_DOWNLOAD_FILES

    Parâmetro do executor Spark que especifica o caminho do OSS para o arquivo de certificado JKS. Para especificar vários arquivos de certificado JKS, separe os caminhos com vírgula. Exemplo: spark.executorEnv.ADB_SPARK_DOWNLOAD_FILES: "oss://testBucketName/a.jks,oss://testBucketName/b.jks".

    spark.adb.eni.enabled

    Define se o acesso por ENI deve ser ativado. Defina como true para ativar.

    spark.adb.eni.vswitchId

    ID do vSwitch. Na página Database Connection da instância do ApsaraDB RDS for MySQL, passe o mouse sobre a VPC para obter o ID do vSwitch.

    spark.adb.eni.securityGroupId

    ID do grupo de segurança ao qual a instância do ApsaraDB RDS for MySQL foi adicionada. Se nenhum grupo de segurança tiver sido adicionado, consulte Set security group rules.

    Outros parâmetros conf

    Essas configurações são praticamente idênticas às do Spark open-source. Os parâmetros seguem o formato key:value. Separe múltiplos parâmetros com vírgula. Para mais informações sobre parâmetros de configuração de aplicação, consulte Spark application configuration parameters.

  5. Clique em Run Now.

  6. Após a execução bem-sucedida do job Spark, visualize os dados da tabela do ApsaraDB RDS for MySQL nos logs do Spark. Para saber como visualizar logs, consulte View information about a Spark application.

Acesso entre contas

  1. Faça login no console do AnalyticDB for MySQL. No canto superior esquerdo do console, selecione uma região. No painel de navegação à esquerda, clique em Clusters. Localize o cluster que deseja gerenciar e clique no ID do cluster.

  2. No painel de navegação à esquerda, clique em Job Development > Spark JAR Development.

  3. Acima do editor, selecione um grupo de recursos de job e um tipo de job. Este tópico usa Batch como exemplo.

  4. Insira a seguinte configuração de job no 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"
        }
    }

    A tabela a seguir descreve os parâmetros.

    Parâmetro

    Descrição

    spark.adb.eni.roleArn

    Função RAM usada para acesso entre contas à fonte de dados do ApsaraDB RDS for MySQL. Separe múltiplas funções com vírgulas (,). O formato é acs:ram::testAccountID:role/testUserName.

    • testAccountID: ID da conta da Alibaba Cloud proprietária da fonte de dados do ApsaraDB RDS for MySQL.

    • testUserName: Função RAM criada para autorização entre contas. Para mais informações, consulte Cross-account authorization.

    Para mais informações sobre os demais parâmetros, consulte a tabela parameter description na seção anterior.

  5. Clique em Run Now.

  6. Após a execução bem-sucedida do job Spark, visualize os dados da tabela do ApsaraDB RDS for MySQL nos logs do Spark. Para saber como visualizar logs, consulte View information about a Spark application.