Tous les produits
Search
Centre de documentation

E-MapReduce:Lire et écrire dans StarRocks

Dernière mise à jour :Sep 29, 2026

StarRocks propose un connecteur Spark officiel permettant le transfert de données entre Spark et StarRocks. Ajoutez les configurations nécessaires dans EMR Serverless Spark pour vous connecter à une instance StarRocks. Cette rubrique explique comment lire et écrire des données dans StarRocks à l'aide d'EMR Serverless Spark.

Méthodes d'accès

Vous pouvez accéder à StarRocks de deux manières, selon vos besoins :

Méthode 1 : Configuration au niveau de la tâche ou de la session

Avec cette méthode, configurez les informations de connexion à StarRocks (telles que l'URL JDBC, le nom d'utilisateur et le mot de passe) directement dans chaque tâche ou session. Cette approche convient aux scénarios suivants :

  • Accès temporaire ou ponctuel aux données

  • Différentes tâches doivent accéder à différents clusters StarRocks

  • Un contrôle d'accès granulaire est requis pour chaque tâche

Méthode 2 : Configuration centralisée avec Data Catalog

Remarque
  • Seules les versions de moteur suivantes sont prises en charge : esr-4.8.0 ou ultérieure, et esr-5.2.0 ou ultérieure.

Utilisez la fonctionnalité Data Catalog d'EMR Serverless Spark pour ajouter un catalogue de données StarRocks. Une fois configuré, toutes les jobs et sessions de l'espace de travail peuvent accéder par défaut aux données autorisées du catalogue, ce qui élimine le besoin de répéter la configuration dans chaque tâche. Pour plus d'informations, consultez Gérer les catalogues de données.

Cette méthode est recommandée dans les cas suivants :

  • Accès fréquent aux données StarRocks

  • Plusieurs tâches partagent la même configuration d'accès à StarRocks

  • Simplification de la configuration des tâches et amélioration de l'efficacité du développement

Remarque

Pour les espaces de travail nécessitant un accès fréquent et durable à StarRocks, nous vous recommandons d'utiliser le Data Catalog (Méthode 2) afin de réduire la surcharge de configuration et d'améliorer l'efficacité du développement.

Prérequis

Limites

La version du moteur Serverless Spark doit être esr-2.5.0, esr-3.1.0, esr-4.1.0 ou une version ultérieure.

Procédure

Étape 1 : Télécharger et importer le JAR du connecteur Spark

  1. Téléchargez le JAR du connecteur Spark correspondant à votre version de moteur. Pour plus d'informations, consultez Lire des données depuis StarRocks à l'aide du connecteur Spark.

    Remarque

    Pour les versions de moteur esr-4.8.0 ou ultérieures et esr-5.2.0 ou ultérieures, le JAR du connecteur Spark est intégré. Vous pouvez ignorer cette étape.

    Dans cet exemple, nous téléchargeons un JAR précompilé depuis le dépôt central Maven.

    Remarque

    Le fichier JAR du connecteur suit le format de nommage starrocks-spark-connector-${spark_version}_${scala_version}-${connector_version}.jar. Par exemple, si vous utilisez la version de moteur esr-4.1.0 (Spark 3.5.2, Scala 2.12) et souhaitez utiliser la version 1.1.2 du connecteur, sélectionnez starrocks-spark-connector-3.5_2.12-1.1.2.jar.

  2. Importez le JAR du connecteur Spark téléchargé dans OSS. Pour plus d'informations, consultez Importation simple.

Étape 2 : Ajouter une connexion réseau

  1. Récupérez les informations réseau.

    Sur la page EMR Serverless StarRocks, accédez à la page Instance Details de votre instance StarRocks cible pour obtenir les informations relatives au Virtual Private Cloud (VPC) et au vSwitch.

  2. Créez une connexion réseau.

    1. Sur la page EMR Serverless Spark, accédez à la page Network Connection de votre espace de travail Spark, puis cliquez sur Create Network Connection.

    2. Dans la boîte de dialogue Create Network Connection, saisissez un Name, sélectionnez le VPC et le vSwitch de l'instance StarRocks, puis cliquez sur OK.

      Remarque

      La connexion réseau doit correspondre à l'instance StarRocks. Sélectionnez un vSwitch situé dans le même VPC que l'instance StarRocks. Si aucun vSwitch n'est disponible dans la zone de disponibilité actuelle, cliquez sur vSwitch pour accéder à la console VPC et en créer un. Pour plus d'informations, consultez VPC et vSwitches.

Étape 3 : Créer une base de données et une table

  1. Connectez-vous à l'instance StarRocks. Pour plus d'informations, consultez Se connecter à une instance StarRocks à l'aide d'EMR StarRocks Manager.

  2. Sur la page SQL Editor Queries, cliquez sur File ou sur l'icône image située à droite, puis cliquez sur OK pour créer un nouveau fichier.

  3. Dans le nouveau fichier, saisissez les instructions SQL suivantes et cliquez sur Run.

    CREATE DATABASE `testdb`;
    CREATE TABLE `testdb`.`score_board`
    (
        `id` int(11) NOT NULL COMMENT "",
        `name` varchar(65533) NULL DEFAULT "" COMMENT "",
        `score` int(11) NOT NULL DEFAULT "0" COMMENT ""
    )
    ENGINE=OLAP
    PRIMARY KEY(`id`)
    COMMENT "OLAP"
    DISTRIBUTED BY HASH(`id`);

Étape 4 : Lire et écrire dans StarRocks

Méthode 1 : Sessions SQL et Notebook

Pour plus d'informations sur les types de sessions, consultez Session Manager.

Session SQL

  1. Écrivez des données dans StarRocks à l'aide d'EMR Serverless Spark.

    1. Créez une session SQL. Pour plus d'informations, consultez Gérer les sessions SQL.

      Lors de la création d'une session, sélectionnez la version de moteur correspondant à la version du connecteur Spark, choisissez la connexion réseau créée à l'étape précédente dans Network Connection, et ajoutez les paramètres suivants dans Spark Configuration pour charger le connecteur Spark.

      spark.emr.serverless.user.defined.jars  oss://<bucketname>/path/connector.jar

      Remplacez oss://<bucketname>/path/connector.jar par le chemin OSS du connecteur Spark que vous avez importé à l'étape 1. Par exemple : oss://emr-oss/spark/starrocks-spark-connector-3.5_2.12-1.1.2.jar.

    2. Sur la page Development, créez une tâche SparkSQL. Ensuite, sélectionnez la session SQL que vous venez de créer dans le coin supérieur droit.

      Pour plus d'informations, consultez Développer une job SparkSQL.

    3. Copiez le code suivant dans le nouvel onglet SparkSQL, remplacez les valeurs des espaces réservés selon vos besoins, puis cliquez sur Run.

      CREATE TEMPORARY VIEW score_board
      USING starrocks
      OPTIONS
      (
        "starrocks.table.identifier" = "testdb.score_board",
        "starrocks.fe.http.url" = "<fe_host>:<fe_http_port>",
        "starrocks.fe.jdbc.url" = "jdbc:mysql://<fe_host>:<fe_query_port>",
        "starrocks.user" = "<user>",
        "starrocks.password" = "<password>"
      );
      INSERT INTO `score_board` VALUES (1, "starrocks", 100), (2, "spark", 100);

      Description des paramètres :

      • <fe_host> : le point de terminaison interne ou public du nœud FE de votre instance EMR Serverless StarRocks. Vous trouverez cette information sur la page Instance Details, dans la section FE Details.

        • Si vous utilisez un point de terminaison interne, assurez-vous que les deux services se trouvent dans le même VPC.

        • Si vous utilisez un point de terminaison public, vérifiez que les règles du groupe de sécurité autorisent le trafic sur les ports requis. Pour plus d'informations, consultez Paramètres d'accès réseau et de sécurité.

      • <fe_http_port> : le port HTTP du nœud FE de l'instance EMR Serverless StarRocks. La valeur par défaut est 8030. Vous trouverez cette information sur la page Instance Details, dans la section FE Details.

      • <fe_query_port> : le port de requête du nœud FE de l'instance EMR Serverless StarRocks. La valeur par défaut est 9030. Vous trouverez cette information sur la page Instance Details, dans la section FE Details.

      • <user> : le nom d'utilisateur de l'instance Serverless StarRocks. Par défaut, un utilisateur administrateur disposant des privilèges d'administration est fourni. Vous pouvez également ajouter de nouveaux utilisateurs pour vous connecter via la page User Management. Pour savoir comment ajouter des utilisateurs, consultez Gérer les utilisateurs et l'autorisation des données.

      • <password> : le mot de passe correspondant à l'utilisateur <user>.

  2. Interrogez les données écrites à l'aide d'EMR Serverless Spark.

    Dans cet exemple, nous créons une vue temporaire nommée test_view dans la tâche Spark SQL et l'utilisons pour interroger les données de score_board. Copiez le code suivant dans un nouvel onglet Spark SQL, sélectionnez-le, puis cliquez sur Run the selected.

    CREATE TEMPORARY VIEW test_view
    USING starrocks
    OPTIONS
    (
       "starrocks.table.identifier" = "testdb.score_board",
       "starrocks.fe.http.url" = "<fe_host>:<fe_http_port>",
       "starrocks.fe.jdbc.url" = "jdbc:mysql://<fe_host>:<fe_query_port>",
       "starrocks.user" = "<user>",
       "starrocks.password" = "<password>"
    );
    SELECT * FROM test_view;

    Résultat

    La requête renvoie deux enregistrements : (1, "starrocks", 100) et (2, "spark", 100).

Session Notebook

  1. Écrivez des données dans StarRocks à l'aide d'EMR Serverless Spark.

    1. Créez une session Notebook. Pour plus d'informations, consultez Gérer les sessions Notebook.

      Lors de la création d'une session, sélectionnez la version de moteur correspondant à la version du connecteur Spark, choisissez la connexion réseau créée à l'étape précédente dans Network Connection, et ajoutez les paramètres suivants dans Spark Configuration pour charger le connecteur Spark.

      spark.emr.serverless.user.defined.jars  oss://<bucketname>/path/connector.jar

      Remplacez oss://<bucketname>/path/connector.jar par le chemin OSS du connecteur Spark que vous avez importé à l'étape 1. Par exemple : oss://emr-oss/spark/starrocks-spark-connector-3.5_2.12-1.1.2.jar.

    2. Sur la page Development, créez une tâche Interactive Development > Notebook, puis sélectionnez la session Notebook créée dans le coin supérieur droit.

      Pour plus d'informations, consultez Gérer les sessions Notebook.

    3. Copiez le code suivant dans une cellule Python du Notebook et cliquez sur Run.

      # Replace the placeholders with your EMR Serverless StarRocks configurations.
      fe_host = "<fe_host>"
      fe_http_port = "<fe_http_port>"
      fe_query_port = "<fe_query_port>"
      user = "<user>"
      password = "<password>"
      # Create a view.
      create_table_sql = f"""
      CREATE TEMPORARY VIEW score_board
      USING starrocks
      OPTIONS (
        "starrocks.table.identifier" = "testdb.score_board",
        "starrocks.fe.http.url" = "{fe_host}:{fe_http_port}",
        "starrocks.fe.jdbc.url" = "jdbc:mysql://{fe_host}:{fe_query_port}",
        "starrocks.user" = "{user}",
        "starrocks.password" = "{password}"
      )
      """
      spark.sql(create_table_sql)
      # Insert data.
      insert_data_sql = """
      INSERT INTO `score_board` VALUES (1, "starrocks", 100), (2, "spark", 100)
      """
      spark.sql(insert_data_sql)
      

      Description des paramètres :

      • <fe_host> : le point de terminaison interne ou public du nœud FE de votre instance EMR Serverless StarRocks. Vous trouverez cette information sur la page Instance Details, dans la section FE Details.

        • Si vous utilisez un point de terminaison interne, assurez-vous que les deux services se trouvent dans le même VPC.

        • Si vous utilisez un point de terminaison public, vérifiez que les règles du groupe de sécurité autorisent le trafic sur les ports requis. Pour plus d'informations, consultez Paramètres d'accès réseau et de sécurité.

      • <fe_http_port> : le port HTTP du nœud FE de l'instance EMR Serverless StarRocks. La valeur par défaut est 8030. Vous trouverez cette information sur la page Instance Details, dans la section FE Details.

      • <fe_query_port> : le port de requête du nœud FE de l'instance EMR Serverless StarRocks. La valeur par défaut est 9030. Vous trouverez cette information sur la page Instance Details, dans la section FE Details.

      • <user> : le nom d'utilisateur de l'instance Serverless StarRocks. Par défaut, un utilisateur administrateur disposant des privilèges d'administration est fourni. Vous pouvez également ajouter de nouveaux utilisateurs pour vous connecter via la page User Management. Pour savoir comment ajouter des utilisateurs, consultez Gérer les utilisateurs et l'autorisation des données.

      • <password> : le mot de passe correspondant à l'utilisateur <user>.

  2. Interrogez les données écrites à l'aide d'EMR Serverless Spark.

    Dans une nouvelle cellule Python, créez une vue temporaire nommée test_view pour interroger la table score_board. Copiez le code suivant dans la cellule et cliquez sur l'icône d'exécution (image) pour l'exécuter.

    # Create a view.
    create_view_sql=f"""
    CREATE TEMPORARY VIEW test_view
    USING starrocks
    OPTIONS (
      "starrocks.table.identifier" = "testdb.score_board",
      "starrocks.fe.http.url" = "{fe_host}:{fe_http_port}",
      "starrocks.fe.jdbc.url" = "jdbc:mysql://{fe_host}:{fe_query_port}",
      "starrocks.user" = "{user}",
      "starrocks.password" = "{password}"
    )
    """
    spark.sql(create_view_sql)
    # Query the data.
    query_sql="SELECT * FROM test_view"
    result_df = spark.sql(query_sql)
    result_df.show()

    Résultat

    +---+---------+-----+
    | id|     name|score|
    +---+---------+-----+
    |  2|    spark|  100|
    |  1|starrocks|  100|
    +---+---------+-----+

Méthode 2 : Job par lot Spark

  1. Créez une job par lot Spark.

    1. Sur la page EMR Serverless Spark, cliquez sur Development dans le volet de navigation de gauche.

    2. Sous l'onglet Development, cliquez sur l'icône image.

    3. Dans la boîte de dialogue de création, saisissez un Name, définissez le type sur Application > SQL, puis cliquez sur OK.

      Vous pouvez ajuster le type selon vos besoins. Cette rubrique utilise SQL à titre d'exemple. Pour plus d'informations sur les types de jobs, consultez Développer une application.

  2. Lisez et écrivez dans StarRocks à l'aide de la job par lot Spark.

    1. Dans le coin supérieur droit de la nouvelle page de développement de job, sélectionnez une file d'attente.

      Pour savoir comment ajouter une file d'attente, consultez Gérer les files d'attente de ressources.

    2. Sur la nouvelle page de développement de job, configurez les paramètres suivants, laissez les autres paramètres par défaut, puis cliquez sur Run.

      Paramètre

      Description

      SQL File

      Cet exemple utilise le fichier spark_sql_starrocks.sql, qui contient les instructions SQL de la session SQL. Avant d'utiliser le fichier, téléchargez-le, modifiez les configurations selon vos besoins, puis importez-le sur la page Artifacts.

      Paramètres de spark_sql_starrocks.sql

      Description des paramètres :

      • <fe_host> : le point de terminaison interne ou public du nœud FE de votre instance EMR Serverless StarRocks. Vous trouverez cette information sur la page Instance Details, dans la section FE Details.

        • Si vous utilisez un point de terminaison interne, assurez-vous que les deux services se trouvent dans le même VPC.

        • Si vous utilisez un point de terminaison public, vérifiez que les règles du groupe de sécurité autorisent le trafic sur les ports requis. Pour plus d'informations, consultez Paramètres d'accès réseau et de sécurité.

      • <fe_http_port> : le port HTTP du nœud FE de l'instance EMR Serverless StarRocks. La valeur par défaut est 8030. Vous trouverez cette information sur la page Instance Details, dans la section FE Details.

      • <fe_query_port> : le port de requête du nœud FE de l'instance EMR Serverless StarRocks. La valeur par défaut est 9030. Vous trouverez cette information sur la page Instance Details, dans la section FE Details.

      • <user> : le nom d'utilisateur de l'instance Serverless StarRocks. Par défaut, un utilisateur administrateur disposant des privilèges d'administration est fourni. Vous pouvez également ajouter de nouveaux utilisateurs pour vous connecter via la page User Management. Pour savoir comment ajouter des utilisateurs, consultez Gérer les utilisateurs et l'autorisation des données.

      • <password> : le mot de passe correspondant à l'utilisateur <user>.

      Engine Version

      Sélectionnez la version de moteur correspondant à la version du connecteur Spark.

      Normal Network Connection

      Sélectionnez la connexion réseau que vous avez créée à l'étape précédente.

      Spark Configuration

      Ajoutez le paramètre suivant dans la section Spark Configuration pour charger le connecteur Spark.

      spark.emr.serverless.user.defined.jars  oss://<bucketname>/path/connector.jar

      Remplacez oss://<bucketname>/path/connector.jar par le chemin OSS du connecteur Spark que vous avez importé à l'étape 1. Par exemple : oss://emr-oss/spark/starrocks-spark-connector-3.5_2.12-1.1.2.jar.

  3. Consultez les informations de journalisation.

    1. Dans la section Execution Records en bas de page, cliquez sur Details dans la colonne Actions.

    2. Cliquez sur l'onglet Log Exploration pour afficher les journaux de la job.

      Sélectionnez Driver Log > Stdout pour afficher le fichier stdout.log. Si la job aboutit, la sortie du journal contient starrocks 100 et spark 100. Cela confirme que les données ont été écrites puis lues avec succès dans StarRocks.

Options de configuration

En plus des informations de connexion requises décrites ci-dessus, vous pouvez configurer les options suivantes selon vos besoins.

Option

Description

Comment configurer

starrocks.warehouse

L'entrepôt (warehouse) utilisé pour accéder à StarRocks. Si cette option n'est pas configurée, l'entrepôt par défaut est utilisé.

Configurez cette option de l'une des manières suivantes :

  • Dans la clause OPTIONS lors de la création d'une vue temporaire.

    "starrocks.warehouse" = "<warehouse_name>"
  • Dans un Data Catalog. Pour plus d'informations, consultez Méthode 2 : Configuration centralisée avec Data Catalog.

    spark.sql.catalog.<catalog_name>.starrocks.warehouse=<warehouse_name>

Références

Pour plus d'informations, consultez la documentation officielle de StarRocks :