Tous les produits
Search
Centre de documentation

Simple Log Service:Enrichissement des données provenant d'ApsaraDB RDS for MySQL

Dernière mise à jour :Aug 07, 2026

Lorsque vos données sont stockées à la fois dans un logstore Simple Log Service et dans une base de données ApsaraDB RDS for MySQL, utilisez la fonctionnalité de transformation de données de Simple Log Service pour accéder à la base de données via son endpoint interne et enrichir vos données.

Fonctionnement

Le schéma suivant illustre comment la transformation de données dans Simple Log Service accède à une base de données ApsaraDB RDS for MySQL pour l'enrichissement des données.

image

Présentation de la solution

Cette solution se déroule en trois étapes :

  1. Obtention des paramètres avancés pour la tâche de transformation de données : Connectez-vous d'abord à la console ApsaraDB RDS pour récupérer les informations de l'instance ApsaraDB RDS for MySQL. Ensuite, utilisez OpenAPI Explorer pour appeler une opération API et obtenir les paramètres avancés.

  2. Démarrage d'une tâche de transformation de données dans le logstore source : Configurez une règle de transformation de données pour enrichir les informations.

  3. Enregistrement des résultats de la transformation dans le logstore de destination : Stockez les données enrichies dans un logstore de destination.

Prérequis

  • Le logstore source contient des données de journal brutes.

  • L'instance ApsaraDB RDS for MySQL et le projet Simple Log Service se trouvent dans la même région.

Étape 1 : Obtention des paramètres avancés

  1. Connectez-vous à la console ApsaraDB RDS.

  2. Configurez une liste d'autorisation (whitelist). Pour plus d'informations, reportez-vous à Configurer une liste d'autorisation.

    1. Dans le volet de navigation de gauche, cliquez sur Whitelist and SecGroup > Create Whitelist, saisissez un nom pour le groupe et définissez la liste d'autorisation IP sur 100.104.0.0/16.

    Dans le volet de navigation de gauche, cliquez sur Instances. Localisez l'instance cible et cliquez sur son ID.

  3. Récupérez l'ID de l'instance et le port interne.

    1. Dans le volet de navigation de gauche, cliquez sur Basic Information. Sur la page Basic Information, localisez et copiez l'Instance ID.

    2. Dans le volet de navigation de gauche, cliquez sur Database Connection. Sur la page Database Connection, localisez et copiez le Internal Port:.

  4. Obtenez le VpcId et le VpcCloudInstanceId de l'instance cible.

    1. Ouvrez la page OpenAPI Explorer. Sur la page Parameters > Input Parameters, localisez la zone de texte Instance ID correspondant au paramètre DBInstanceId et saisissez l'ID de l'instance cible que vous avez copié précédemment. Pour plus d'informations sur cette opération API, reportez-vous à Interroger les détails de l'instance.

    2. Cliquez sur Operations. Sur la page Invocation Result, copiez les valeurs VpcId et VpcCloudInstanceId.

      "VSwitchId": "xxx",
      "TipsLevel": 0,
      "PayType": "Postpaid",
      "LockMode": "Unlock",
      "DeletionProtection": false,
      "DBInstanceStorageType": "general_essd",
      "InsId": 1,
      "VpcId": "xxx",
      "ConnectionMode": "Standard",
      "VpcCloudInstanceId": "xxx",
      "RegionId": "cn-hangzhou",
      "ConnectionString": "xxx",
      "ExpireTime": ""

Étape 2 : Démarrage d'une tâche de transformation de données

  1. Connectez-vous à la console Simple Log Service.

  2. Accédez à la page de transformation de données.

    1. Dans la section Projets, cliquez sur le projet cible.

    2. Sous l'onglet Log Storage > Logstores, cliquez sur le logstore cible.

    3. Sur la page de requête et d'analyse, cliquez sur Data Transformation.

    4. Sur la page de transformation de données, cliquez sur Switch to Data Transformation (Old Version).

  3. Ajoutez les paramètres avancés.

    1. Dans le coin supérieur droit de la page, sélectionnez Advanced et cliquez sur Preview Data.

    2. Dans le panneau Add Preview Settings, cliquez sur Advanced Options et ajoutez les paramètres suivants.

      Important

      Pour tous les paramètres de configuration du tableau, la valeur your_name est personnalisable mais doit rester cohérente. Elle doit également correspondre à la valeur your_name utilisée dans les règles de traitement.

      Paramètre

      Valeur

      Description

      config.vpc.vpc_id.your_name

      vpc-uf6mskb0b****n9yj

      L'ID VPC de l'instance cible.

      Pour obtenir des instructions, consultez la section Obtenir le VpcId de l'instance cible.

      config.vpc.instance_id.your_name

      rm-uf6e61k****ahd7-2024091513

      L'ID de l'instance cible.

      Pour obtenir des instructions, consultez la section Obtenir le VpcCloudInstanceId de l'instance cible.

      Pour une base de données MySQL auto-gérée située dans la même région Alibaba Cloud, utilisez le paramètre config.vpc.instance_ip.your_name pour spécifier l'adresse IP de la base de données au sein du VPC.

      config.vpc.instance_port.your_name

      3306

      Le port interne de l'instance cible.

      Pour obtenir des instructions, consultez la section Obtenir le port interne de l'instance cible.

    3. Une fois les paramètres confirmés, cliquez sur OK.

  4. Modifiez la règle de transformation.

    1. Dans l'éditeur, ajoutez les instructions suivantes.

      Le code ci-dessous fournit un exemple de syntaxe. Pour plus d'informations sur les fonctions d'enrichissement de données et les fonctions de ressource, reportez-vous aux rubriques Enrichir des données à l'aide de données provenant d'une base de données ApsaraDB RDS for MySQL et Fonctions de ressource.

      /*
      e_table_map()     Data enrichment function.
      res_rds_mysql()   Pull function. Pulls table content or SQL execution results from an ApsaraDB RDS for MySQL database.
      str_format()      String formatting function. The `your_name` in `res_local()` must match the `your_name` in the advanced parameter settings.
      field             Matching field. The field used as the basis for matching log data in the logstore with data in the ApsaraDB RDS for MySQL table. A match is successful only when the value of this field is identical in both sources.
      output_fields     Output fields. If a match is successful, the values of these fields are returned to generate a new log entry.
      */
      e_table_map(
          res_rds_mysql(
              str_format("{}:{}", 
                         res_local("config.vpc.instance_id.your_name"), 
                         res_local("config.vpc.instance_port.your_name")), 
              "database_username", 
              "database_password", 
              "database_name",
              table="table_name"
          ), 
          "field", 
          "output_fields"
      )

      La déclaration de transformation est la suivante :

      La règle suivante fait correspondre le champ process_time_in_ms d'un logstore Simple Log Service avec le champ process_time_in_ms d'une table de base de données RDS MySQL. La correspondance réussit uniquement si les valeurs du champ process_time_in_ms sont identiques. Après une correspondance réussie, la règle récupère les champs model et purchase_price ainsi que leurs valeurs depuis la table RDS MySQL, puis les combine avec les données du logstore pour générer de nouvelles données.

      e_table_map(
        res_rds_mysql(
          str_format("{}:{}",
              res_local("config.vpc.instance_id.test"),
              res_local("config.vpc.instance_port.test")),
          "xxx",
          "xxx","xxx xxx",
          "database",
          table="bicycles",
          primary_keys="process_time_in_ms"),
        "process_time_in_ms",
        ["model","purchase_price"]
      )
  5. Consultez les Transformation Results.

    Dans le tableau principal, les journaux sont routés vers la cible de sortie __default__ en conservant les paires clé-valeur d'origine telles que remote_addr et request_method. Cela signifie que la règle de transformation n'a pas trouvé de correspondance pour ces journaux et qu'ils ont été envoyés vers la cible par défaut dans leur état initial.

    Un enregistrement de journal ayant trouvé une correspondance inclut des champs clés tels que model (XTC 800), purchase_price (3000.00) et process_time_in_ms (788). L'entrée de journal complète est la suivante :

    __source__ :127.0.0.1
    __tag__:__receive_time__ :1725962982
    __tag__:_container_ip_ :183.227.33.184
    __tag__:_container_name_ :container3
    __tag__:_image_name_ :image3
    __tag__:_path_ :/home/local
    __topic__ :tomcat_access_log
    body_bytes_sent :6344
    model :XTC 800
    process_time_in_ms :788
    purchase_price :3000.00
    referer :www.phn.mock.com
    remote_addr :202.92.0.182
    remote_user :v-0
    request_method :GET
    request_protocol :HTTP/2.0
    request_uri :/request/path-3/file-1
    status :200
    time :10/Sep/2024:09:09:35
    user_agent :Mozilla/5.0 (Windows NT 6.1) AppleWebKit/534.24 (KHTML, like Gecko) Chrome/11.0.696.3 Safari/534.24

    Dans le coin supérieur droit, cliquez sur Preview Data pour traiter les données.

Étape 3 : Enregistrement des résultats de la transformation

  1. Dans le coin inférieur droit, cliquez sur Save as Transformation Job (Old Version).

    Dans la boîte de dialogue Create Data Transformation Job, saisissez d'abord un Job Name (préfixé par etl-), un Display Name et une Job Description. Sélectionnez Default Role pour la Authorization Method. Ensuite, dans la section Storage Target, configurez le Target Name, la Target Region, le Target Project et le Target Logstore, puis sélectionnez Default Role pour l'autorisation. Enfin, dans la section Processing Scope (Data Reception Time), sélectionnez une plage horaire, telle que All, From a Specific Time ou Specific Time Range.

  2. Dans le volet de navigation de gauche, sous Logstores, cliquez sur le logstore de destination où les résultats de la transformation sont enregistrés. Dans le coin supérieur droit de la page, sélectionnez une plage horaire pour les données.

    Après avoir sélectionné une plage horaire, vérifiez l'onglet Raw Logs pour vous assurer que les résultats de la transformation ont bien été enregistrés.

    Les journaux traités contiennent désormais les nouveaux champs model (XTC 800) et purchase_price (3000.00). Cela confirme que les résultats de la transformation ont été écrits dans le logstore de destination.

Annexe : Accès à AnalyticDB et PolarDB for MySQL

Outre ApsaraDB RDS for MySQL, Simple Log Service prend également en charge l'accès aux bases de données AnalyticDB for MySQL et PolarDB for MySQL via leurs endpoints internes. Les configurations requises sont décrites ci-dessous :

  • Base de données AnalyticDB for MySQL

    Lorsque vous configurez les Advanced Parameter Settings, définissez la valeur de config.vpc.instance_id.your_name sur l'ID de votre instance AnalyticDB for MySQL suivi de -controller. Pour les autres paramètres, reportez-vous à ce document.

    Vous devez également définir config.vpc.vpc_id.your_name sur l'ID VPC correspondant et config.vpc.instance_port.your_name sur 3306.

  • Pour PolarDB for MySQL, utilisez la même configuration que pour ApsaraDB RDS for MySQL.