Tous les produits
Search
Centre de documentation

DataWorks:Bonnes pratiques relatives à RestAPI Reader

Dernière mise à jour :Aug 12, 2026

Le plugin RestAPI Reader de Data Integration permet de lire des données provenant d'API RESTful. En configurant une URL de requête HTTP, vous pouvez récupérer des données selon diverses méthodes : extraction sur une plage horaire spécifique, pagination ou itération sur des paramètres de requête. Le plugin convertit les données récupérées dans des types pris en charge par Data Integration, puis les transmet à un plugin writer en aval. Cette rubrique décrit les cas d'utilisation courants pour les sources de données API RESTful.

Remarque

Contexte

Cette rubrique explique comment RestAPI Reader de DataWorks Data Integration lit les données et retourne les résultats.

Propriété

Description

Format de réponse

Seules les réponses JSON sont prises en charge.

Types de données lisibles

RestAPI Reader prend en charge la lecture des types de données INT, BOOLEAN, DATE, DOUBLE, FLOAT, LONG et STRING.

Méthodes de requête

RestAPI Reader prend en charge les méthodes de requête GET et POST.

Méthodes d'authentification

RestAPI Reader fonctionne sans authentification ou avec l'une des méthodes suivantes : Basic Auth, Token Auth et Aliyun API Signature. Sélectionnez une méthode d'authentification prise en charge par votre source de données et configurez les paramètres requis.

  • Basic Auth : Authentification basique.

    Si l'API de la source de données prend en charge l'authentification par nom d'utilisateur et mot de passe, choisissez cette méthode. Configurez ensuite le nom d'utilisateur et le mot de passe. Lors de l'intégration des données, les identifiants sont envoyés à l'endpoint RESTful via le protocole Basic Auth pour authentification.

  • Token Auth : Authentification par jeton.

    Si l'API de la source de données prend en charge l'authentification par jeton, sélectionnez cette méthode. Définissez ensuite une valeur de jeton fixe. Pendant l'intégration des données, le jeton est transmis dans l'en-tête de la requête pour l'authentification. Exemple : {"Authorization":"Bearer TokenXXXXXX"}.

    Remarque

    Pour utiliser une méthode de chiffrement personnalisée, employez la méthode d'authentification Token et fournissez les informations d'authentification chiffrées en tant que AuthToken.

Pratique 1 : Lire des données depuis une API interrogeant une plage horaire

Scénario exemple : Définition de l'API

Dans cet exercice, vous lisez des données depuis une API RESTful pour les écrire dans une table partitionnée MaxCompute. L'API RESTful utilisée est une API GET de test auto-générée qui retourne des données comprises dans une plage horaire spécifiée via des paramètres d'entrée. Voici les détails de cette API.

Remarque

Lors de vos opérations réelles, adaptez les configurations à l'API que vous utilisez. L'API présentée ici sert uniquement d'exemple pour illustrer le flux de travail.

  • Exemple de requête API :

    http://TestAPIAddress:Port/rest/test2?startTime=<StartTime>&endTime=<EndTime>

    Les paramètres startTime et endTime définissent la plage horaire pour la lecture des données.

  • Exemple de réponse :

    {
        "status": "success",
        "totalNum": 187,
        "data": [
            {
                "axis": "series1",
                "value": 9191352,
                "createTime": "2023-01-04 00:07:20"
            },
            {
                "axis": "series1",
                "value": 6645322,
                "createTime": "2023-01-04 00:14:47"
            },
            {
                "axis": "series1",
                "value": 2078369,
                "createTime": "2023-01-04 00:22:13"
            },
            {
                "axis": "series1",
                "value": 7325410,
                "createTime": "2023-01-04 00:29:30"
            },
            {
                "axis": "series1",
                "value": 7448456,
                "createTime": "2023-01-04 00:37:04"
            },
            {
                "axis": "series1",
                "value": 5808077,
                "createTime": "2023-01-04 00:44:30"
            },
            {
                "axis": "series1",
                "value": 5625821,
                "createTime": "2023-01-04 00:52:06"
            }
        ]
    }

    Le champ data correspond au chemin JSON de stockage des données. Les données retournées comportent trois colonnes : axis, value et createTime.

  • Exemple d'appel API dans un outil de test : Envoyez une requête GET via un outil tel que Postman. Passez les paramètres startTime et endTime (par exemple, de 2023-01-04 00:00:00 à 2023-01-04 23:59:59). L'API renvoie une réponse 200 OK avec un totalNum de 187. Le tableau data contient les éléments situés dans la plage horaire indiquée.

Préparation : Créer une table partitionnée MaxCompute

Dans cette pratique, les données lues depuis l'API sont synchronisées vers une table partitionnée MaxCompute. Vous devez d'abord créer une table partitionnée pour stocker ces données synchronisées.

Remarque

L'utilisation d'une table partitionnée avec la commande overwrite permet d'écraser la partition concernée. Ainsi, la tâche de synchronisation peut être relancée sans duplication des données, ce qui facilite également l'analyse ultérieure.

Voici l'instruction CREATE TABLE correspondante.

CREATE TABLE IF NOT EXISTS ods_xiaobo_rest2
(
  `axis`  STRING
  ,`value` BIGINT
  ,`createTime` STRING
)
PARTITIONED BY
(
  ds  STRING
)
LIFECYCLE 3650;

Si vous utilisez DataWorks Standard Edition et soumettez la table partitionnée créée à l'environnement de production, celle-ci sera visible dans Data Map.

Configurer la tâche de synchronisation

  1. Ajoutez une source de données RestAPI.

    Ajoutez une source de données RestAPI dans votre espace de travail DataWorks. Pour plus d'informations, consultez Ajouter une source de données RestAPI. Dans la boîte de dialogue Add RestAPI Data Source, spécifiez le Data Source Name et la Data Source Description, sélectionnez l'Applicable Environment (développement ou production), puis configurez le Default Request Header (valeur par défaut : {}). Les configurations clés sont les suivantes.

    • url : Définissez l'adresse de l'API RESTful.

    • Authentication Method : Choisissez une méthode d'authentification compatible avec l'API de votre source de données et renseignez les paramètres nécessaires.

    • Resource group connectivity : Les sources de données RestAPI ne prennent en charge que les groupes de ressources exclusifs pour Data Integration. Sélectionnez un groupe de ressources exclusif dédié à Data Integration et testez la connectivité entre la source de données et ce groupe.

  2. Créez un nœud de synchronisation par lots et configurez la tâche.

    Créez un nœud de synchronisation par lots dans DataWorks Data Studio. Pour plus de détails, reportez-vous à Créer un nœud de synchronisation par lots. Voici les configurations principales.

    • Configurations de la Data Source :

      • Data Source : Sélectionnez la source de données RestAPI créée à l'étape précédente.

      • Request Method : L'API exemple étant de type GET, sélectionnez GET.

      • Return Data Structure : La réponse de l'API exemple est un tableau JSON. Choisissez Array Data.

      • The JSON path for data storage : Les données retournées par l'API exemple se trouvent sous le champ data. Indiquez data.

      • Request Param : Combinez les paramètres de requête avec des paramètres de planification afin de synchroniser quotidiennement les données de la journée en cours.

        • Définissez les paramètres de requête sur startTime=${extract_day} ${start_time}&endTime=${extract_day} ${end_time}

        • Dans les paramètres de planification, ajoutez trois variables : extract_day=${yyyy-mm-dd}, start_time=00:00:00 et end_time=23:59:59.

        Si la date d'exécution est le 2023-01-05, la valeur de extract_day sera 2023-01-04, et les paramètres de requête seront concaténés ainsi : startTime=2023-01-04 00:00:00&endTime=2023-01-04 23:59:59.

    • Configurations de la Data Destination :

      • Data Source et Table : Sélectionnez la table partitionnée MaxCompute créée précédemment.

      • Partition Information : Associez les informations de partition aux paramètres de planification.

        • Définissez l'information de partition sur ${bizdate}.

        • Dans les paramètres de planification, ajoutez une variable : bizdate=$bizdate.

        Si la date d'exécution est le 2023-01-05, la valeur de l'information de partition sera 20230104.

    • Configurations du Field Mapping : Conformément à la définition des données de l'API, saisissez les noms de colonnes issus de la réponse RestAPI. Ces noms respectent la casse. Une fois les colonnes ajoutées, utilisez The same name mapping ou tracez manuellement des lignes pour établir les correspondances.

Exécution de test

Cet exercice utilise des paramètres de planification. Une fois la configuration de la tâche de synchronisation par lots terminée, cliquez sur Run with Parameters dans la barre d'outils située en haut de la page du nœud. Saisissez les valeurs de test demandées, puis lancez la synchronisation pour vérification. Ce bouton apparaît sous forme d'icône d'exécution accompagnée d'un marqueur de paramètre, à droite du bouton Run. À l'issue du test, consultez le journal d'exécution en bas de page pour confirmer que les valeurs des paramètres correspondent bien à vos attentes.

Vérification des données

Exécutez une requête ad hoc dans Data Studio afin de vérifier si les données ont été correctement synchronisées vers MaxCompute. Voici un exemple de requête.

select * from ods_xiaobo_rest2 where ds='20230104' order by createtime;

Dans cette instruction, ods_xiaobo_rest2 désigne la table partitionnée MaxCompute créée précédemment, tandis que 20230104 correspond à la valeur de partition utilisée lors du test.

Une fois la requête terminée, examinez les résultats affichés en bas de page pour valider la synchronisation vers MaxCompute. Le tableau de résultats doit présenter les valeurs des colonnes axis, value et createTime, ainsi que la partition ds. Ces éléments doivent correspondre aux données JSON retournées par l'API, confirmant ainsi la bonne synchronisation des données.

Soumettre, déployer et recharger les données

Après avoir terminé les tests et validé les données, soumettez et déployez la tâche de synchronisation par lots en environnement de production. Pour plus d'informations, consultez Déployer un nœud. Cliquez sur l'icône Submit dans la barre d'outils en haut de la page d'édition du nœud pour finaliser la soumission. Après un déploiement réussi, cette tâche planifiée apparaîtra dans Operation Center. Vous pourrez alors utiliser la fonctionnalité de backfill pour recharger les données historiques des périodes passées. Pour en savoir plus sur cette fonctionnalité et les opérations associées, reportez-vous à Backfill data.

Pratique 2 : Lire des données depuis une API RestAPI paginée

Scénario exemple : Définition de l'API

Dans cet exercice, vous lisez des données depuis une API RESTful pour les écrire dans une table partitionnée MaxCompute. L'API RESTful utilisée est une API GET de test auto-générée. Voici les détails de cette API.

Remarque

Lors de vos opérations réelles, adaptez les configurations à l'API que vous utilisez. L'API présentée ici sert uniquement d'exemple pour illustrer le flux de travail.

  • Exemple de requête API :

    http://TestAPIAddress:Port/rest/test1?pageSize=5&pageNum=1

    Les paramètres pageSize et pageNum définissent respectivement la taille de la page et le numéro de page.

  • Exemple de réponse :

    {
        "status": "success",
        "totalNum": 304,
        "data": [
            {
                "id": 6,
                "name": "Test User 6"
            },
            {
                "id": 7,
                "name": "Test User 7"
            },
            {
                "id": 8,
                "name": "Test User 8"
            },
            {
                "id": 9,
                "name": "Test User 9"
            },
            {
                "id": 10,
                "name": "Test User 10"
            }
        ]
    }

    Le champ data correspond au chemin JSON de stockage des données. Les données retournées comportent deux colonnes : id et name.

  • Exemple d'appel API dans un outil de test : Envoyez une requête GET via un outil tel que Postman. Passez les paramètres pageSize=5 et pageNum=2. L'API renvoie une réponse 200 OK avec un totalNum de 304. Le tableau data contient les utilisateurs de la page 2 (par exemple, id:6, name:Test User 6).

Préparation : Créer une table partitionnée MaxCompute

Dans cette pratique, les données lues depuis l'API sont synchronisées vers une table partitionnée MaxCompute. Vous devez d'abord créer une table partitionnée pour stocker ces données synchronisées.

Remarque

L'utilisation d'une table partitionnée avec la commande overwrite permet d'écraser la partition concernée. Ainsi, la tâche de synchronisation peut être relancée sans duplication des données, ce qui facilite également l'analyse ultérieure.

Voici l'instruction CREATE TABLE correspondante.

CREATE TABLE IF NOT EXISTS ods_xiaobo_rest1
(
  `id` BIGINT
  ,`name` STRING
)
PARTITIONED BY
(
  ds  STRING
)
LIFECYCLE 3650;

Si vous utilisez DataWorks Standard Edition et soumettez la table partitionnée créée à l'environnement de production, celle-ci sera visible dans Data Map.

Configurer la tâche de synchronisation

  1. Ajoutez une source de données RestAPI.

    Ajoutez une source de données RestAPI dans votre espace de travail DataWorks. Pour plus d'informations, consultez Ajouter une source de données RestAPI. Dans la boîte de dialogue Add RestAPI Data Source, spécifiez le Data Source Name et la Data Source Description, sélectionnez l'Applicable Environment (développement ou production), puis configurez le Default Request Header (valeur par défaut : {}). Les configurations clés sont les suivantes.

    • url : Définissez l'adresse de l'API RESTful.

    • Authentication Method : Choisissez une méthode d'authentification compatible avec l'API de votre source de données et renseignez les paramètres nécessaires.

    • Resource group connectivity : Les sources de données RestAPI ne prennent en charge que les groupes de ressources exclusifs pour Data Integration. Sélectionnez un groupe de ressources exclusif dédié à Data Integration et testez la connectivité entre la source de données et ce groupe.

  2. Créez un nœud de synchronisation par lots et configurez la tâche.

    Créez un nœud de synchronisation par lots dans DataWorks Data Studio. Pour plus de détails, reportez-vous à Créer un nœud de synchronisation par lots. Voici les configurations principales.

    • Configurations de la Data Source :

      • Data Source : Sélectionnez la source de données RestAPI créée à l'étape précédente.

      • Request Method : L'API exemple étant de type GET, sélectionnez GET.

      • Return Data Structure : La réponse de l'API exemple est un tableau JSON. Choisissez Array Data.

      • The JSON path for data storage : Les données retournées par l'API exemple se trouvent sous le champ data. Indiquez data.

      • Request Param : La taille de page est fixe. Définissez-la sur pageSize=50. Il est recommandé de ne pas définir une taille de page trop importante, car cela pourrait exercer une pression excessive sur le serveur RestAPI et sur la tâche de synchronisation.

      • The number of requests : Sélectionnez Multiple Requests pour cet exemple.

        Le paramètre de pagination pour cette API est pageNum. Après avoir sélectionné Multiple Requests, configurez les paramètres associés comme suit :

        • Parameter used for multiple requests : Définissez cette valeur sur pageNum.

        • StartIndex : Définissez cette valeur sur 1.

        • Step : Définissez cette valeur sur 1.

        • EndIndex : Définissez cette valeur sur 100.

    • Configurations de la Data Destination :

      • Data Source et Table : Sélectionnez la table partitionnée MaxCompute créée précédemment.

      • Partition Information : Associez les informations de partition aux paramètres de planification.

        • Définissez l'information de partition sur ${bizdate}.

        • Dans les paramètres de planification, ajoutez une variable : bizdate=$bizdate.

        Si la date d'exécution est le 2023-01-05, la valeur de l'information de partition sera 20230104.

    • Configurations du Field Mapping : Conformément à la définition des données de l'API, saisissez les noms de colonnes issus de la réponse RestAPI. Ces noms respectent la casse. Une fois les colonnes ajoutées, utilisez The same name mapping ou tracez manuellement des lignes pour établir les correspondances.

Exécution de test

Cet exercice utilise des paramètres de planification. Une fois la configuration de la tâche de synchronisation par lots terminée, cliquez sur Run with Parameters dans la barre d'outils située en haut de la page du nœud. Saisissez les valeurs de test demandées, puis lancez la synchronisation pour vérification. Ce bouton apparaît sous forme d'icône d'exécution accompagnée d'un marqueur de paramètre, à droite du bouton Run. À l'issue du test, consultez le journal d'exécution en bas de page pour confirmer que les valeurs des paramètres correspondent bien à vos attentes.

Vérification des données

Exécutez une requête ad hoc dans Data Studio afin de vérifier si les données ont été correctement synchronisées vers MaxCompute. Voici un exemple de requête.

select * from ods_xiaobo_rest1 where ds='20230104' order by id;

Dans cette instruction, ods_xiaobo_rest1 désigne la table partitionnée MaxCompute créée précédemment, tandis que 20230104 correspond à la valeur de partition utilisée lors du test.

Une fois la requête terminée, examinez les résultats affichés en bas de page pour valider la synchronisation vers MaxCompute. Le tableau de résultats doit présenter les valeurs des colonnes id et name, ainsi que la partition ds. Ces éléments doivent correspondre aux données JSON retournées par l'API, confirmant ainsi la bonne synchronisation des données.

Pratique 3 : Lire des données depuis une API RestAPI de type POST

Scénario exemple : Définition de l'API

Dans cet exercice, vous lisez des données depuis une API RESTful pour les écrire dans une table partitionnée MaxCompute. L'API RESTful utilisée est une API POST de test auto-générée. Voici les détails de cette API.

Remarque

Lors de vos opérations réelles, adaptez les configurations à l'API que vous utilisez. L'API présentée ici sert uniquement d'exemple pour illustrer le flux de travail.

  • Exemple de requête API :

    http://TestAPIAddress:Port/rest/test3

    Le corps de la requête est au format JSON.

    {
      "userId":16,
      "startTime":"2023-01-04 00:00:00",
      "endTime":"2023-01-04 23:59:59"
    }
  • Exemple de réponse :

    {
        "status": "success",
        "totalNum": 289,
        "data": [
            {
                "user": {
                    "id": 16,
                    "name": "User 16"
                },
                "axis": "series1",
                "value": 8231053,
                "createTime": "2023-01-04 00:04:57"
            },
            {
                "user": {
                    "id": 16,
                    "name": "User 16"
                },
                "axis": "series1",
                "value": 6519928,
                "createTime": "2023-01-04 00:09:51"
            },
            {
                "user": {
                    "id": 16,
                    "name": "User 16"
                },
                "axis": "series1",
                "value": 2915920,
                "createTime": "2023-01-04 00:14:36"
            },
            {
                "user": {
                    "id": 16,
                    "name": "User 16"
                },
                "axis": "series1",
                "value": 7971851,
                "createTime": "2023-01-04 00:19:51"
            },
            {
                "user": {
                    "id": 16,
                    "name": "User 16"
                },
                "axis": "series1",
                "value": 6598996,
                "createTime": "2023-01-04 00:24:30"
            }
        ]
    }

    Le champ data correspond au chemin JSON de stockage des données. Les données retournées comportent cinq colonnes : user.id, user.name, axis, value et createTime.

  • Exemple d'appel API dans un outil de test : Envoyez une requête POST via un outil tel que Postman. Réglez Body sur le format raw avec le type JSON, puis transmettez un corps de requête contenant userId, startTime et endTime. L'API renvoie une réponse 200 OK avec un totalNum de 289. Le tableau data contient les données de l'utilisateur spécifié pour la plage horaire indiquée.

Préparation : Créer une table partitionnée MaxCompute

Dans cette pratique, les données lues depuis l'API sont synchronisées vers une table partitionnée MaxCompute. Vous devez d'abord créer une table partitionnée pour stocker ces données synchronisées.

Remarque

L'utilisation d'une table partitionnée avec la commande overwrite permet d'écraser la partition concernée. Ainsi, la tâche de synchronisation peut être relancée sans duplication des données, ce qui facilite également l'analyse ultérieure.

Voici l'instruction CREATE TABLE correspondante.

CREATE TABLE IF NOT EXISTS ods_xiaobo_rest3
(
  `user_id` BIGINT
  ,`name` STRING
  ,`axis`  STRING
  ,`value` BIGINT
  ,`create_time` STRING
)
PARTITIONED BY
(
  ds  STRING
)
LIFECYCLE 3650;

Si vous utilisez DataWorks Standard Edition et soumettez la table partitionnée créée à l'environnement de production, celle-ci sera visible dans Data Map.

Configurer la tâche de synchronisation

  1. Ajoutez une source de données RestAPI.

    Ajoutez une source de données RestAPI dans votre espace de travail DataWorks. Pour plus d'informations, consultez Ajouter une source de données RestAPI. Dans la boîte de dialogue Add RestAPI Data Source, spécifiez le Data Source Name et la Data Source Description, sélectionnez l'Applicable Environment (développement ou production), puis configurez le Default Request Header (valeur par défaut : {}). Les configurations clés sont les suivantes.

    • url : Définissez l'adresse de l'API RESTful.

    • Authentication Method : Choisissez une méthode d'authentification compatible avec l'API de votre source de données et renseignez les paramètres nécessaires.

    • Resource group connectivity : Les sources de données RestAPI ne prennent en charge que les groupes de ressources exclusifs pour Data Integration. Sélectionnez un groupe de ressources exclusif dédié à Data Integration et testez la connectivité entre la source de données et ce groupe.

  2. Créez un nœud de synchronisation par lots et configurez la tâche.

    Créez un nœud de synchronisation par lots dans DataWorks Data Studio. Pour plus de détails, reportez-vous à Créer un nœud de synchronisation par lots. Voici les configurations principales.

    • Configurations de la Data Source :

      • Data Source : Sélectionnez la source de données RestAPI créée à l'étape précédente.

      • Request Method : L'API exemple étant de type POST, sélectionnez POST.

      • Return Data Structure : La réponse de l'API exemple est un tableau JSON. Choisissez Array Data.

      • The JSON path for data storage : Les données retournées par l'API exemple se trouvent sous le champ data. Indiquez data.

      • Header : L'API POST de cet exemple accepte un corps de requête JSON. Définissez cette valeur sur {"Content-Type":"application/json"}.

      • Request Param : Combinez les paramètres de requête avec des paramètres de planification afin de synchroniser quotidiennement les données de la journée en cours.

        • Définissez les paramètres de requête sur

          {
          
              "userId":16,
          
              "startTime":"${extract_day} 00:00:00",
          
              "endTime":"${extract_day} 23:59:59"
          
          }
        • Dans les paramètres de planification, ajoutez une variable : extract_day=${yyyy-mm-dd}.

    • Configurations de la Data Destination :

      • Data Source et Table : Sélectionnez la table partitionnée MaxCompute créée précédemment.

      • Partition Information : Associez les informations de partition aux paramètres de planification.

        • Définissez l'information de partition sur ${bizdate}.

        • Dans les paramètres de planification, ajoutez une variable : bizdate=$bizdate.

        Si la date d'exécution est le 2023-01-05, la valeur de l'information de partition sera 20230104.

    • Configurations du Field Mapping : Conformément à la définition des données de l'API, saisissez les noms de colonnes issus de la réponse RestAPI. Vous pouvez utiliser des points (.) pour séparer les colonnes imbriquées. Ces noms respectent la casse. Une fois les colonnes ajoutées, utilisez The same name mapping ou tracez manuellement des lignes pour établir les correspondances.

Exécution de test

Cet exercice utilise des paramètres de planification. Une fois la configuration de la tâche de synchronisation par lots terminée, cliquez sur Run with Parameters dans la barre d'outils située en haut de la page du nœud. Saisissez les valeurs de test demandées, puis lancez la synchronisation pour vérification. Ce bouton apparaît sous forme d'icône d'exécution accompagnée d'un marqueur de paramètre, à droite du bouton Run. À l'issue du test, consultez le journal d'exécution en bas de page pour confirmer que les valeurs des paramètres correspondent bien à vos attentes.

Vérification des données

Exécutez une requête ad hoc dans Data Studio afin de vérifier si les données ont été correctement synchronisées vers MaxCompute. Voici un exemple de requête.

select * from ods_xiaobo_rest3 where ds='20230105' order by create_time;

Dans cette instruction, ods_xiaobo_rest3 désigne la table partitionnée MaxCompute créée précédemment, tandis que 20230105 correspond à la valeur de partition utilisée lors du test.

Une fois la requête terminée, examinez les résultats affichés en bas de page pour valider la synchronisation vers MaxCompute. Le tableau de résultats doit présenter les valeurs des colonnes user_id, name, axis, value et create_time, ainsi que la partition ds. Ces éléments doivent correspondre aux données JSON retournées par l'API, confirmant ainsi que les colonnes imbriquées sont correctement mappées et synchronisées.

Pratique 4 : Itérer sur un paramètre de requête pour lire depuis une API RestAPI

Scénario exemple : Définition de l'API

Dans cet exercice, vous lisez itérativement des données depuis une API RESTful pour les écrire dans une table partitionnée MaxCompute. L'API RESTful utilisée est une API GET de test auto-générée qui retourne des données météorologiques en fonction des paramètres d'entrée date, province et city.

Remarque

Lors de vos opérations réelles, adaptez les configurations à l'API que vous utilisez. L'API présentée ici sert uniquement d'exemple pour illustrer le flux de travail.

  • Exemple de requête :

    http://TestAPIAddress:Port/rest/test5?date=2023-01-04&province=zhejiang&city=hangzhou
  • Exemple de réponse :

    {
      "province": "P1",
      "city": "hz",
      "date": "2023-01-04",
      "minTemperature": "-14",
      "maxTemperature": "-7",
      "unit": "℃",
      "weather": "cool"
    }
  • Exemple d'appel API dans un outil de test : Envoyez une requête GET via un outil tel que Postman. Passez les paramètres date=2023-01-04, province=p1 et city=hz. L'API renvoie une réponse JSON contenant les informations minTemperature (-14), maxTemperature (-7), unit (℃) et weather (COOL) correspondantes.

Préparation : Créer une table de paramètres et une table partitionnée MaxCompute

Dans cette pratique, les données lues depuis l'API sont synchronisées vers une table partitionnée MaxCompute. Vous devez d'abord créer une table de paramètres pour stocker les valeurs de province et city destinées à l'itération, puis créer une table partitionnée pour accueillir les données synchronisées.

Remarque

L'utilisation d'une table partitionnée avec la commande overwrite permet d'écraser la partition concernée. Ainsi, la tâche de synchronisation peut être relancée sans duplication des données, ce qui facilite également l'analyse ultérieure.

Voici les instructions CREATE TABLE correspondantes :

Création de la table de paramètres

CREATE TABLE IF NOT EXISTS `citys`
(
  `province` STRING ,
  `city` STRING
);

insert into citys
select 'shanghai','shanghai'
union all select 'zhejiang','hangzhou'
union all select 'sichuan','chengdu';

Création de la table partitionnée MaxCompute

CREATE TABLE IF NOT EXISTS ods_xiaobo_rest5
(
    `minTemperature` STRING ,
    `maxTemperature` STRING ,
    `unit` STRING ,
    `weather` STRING 
)
PARTITIONED BY 
(
    `province` STRING ,
    `city` STRING ,
    `ds`  STRING
)
LIFECYCLE 3650;

Si vous utilisez DataWorks Standard Edition et soumettez les tables créées à l'environnement de production, celles-ci seront visibles dans Data Map.

Configurer la tâche de synchronisation

  1. Ajoutez une source de données RestAPI.

    Ajoutez une source de données RestAPI dans votre espace de travail DataWorks. Pour plus d'informations, consultez Ajouter une source de données RestAPI. Dans la boîte de dialogue Add RestAPI Data Source, spécifiez le Data Source Name et la Data Source Description, sélectionnez l'Applicable Environment (développement ou production), puis configurez le Default Request Header (valeur par défaut : {}). Les configurations clés sont les suivantes :

    • url : Définissez l'adresse de l'API RESTful.

    • Authentication Method : Choisissez une méthode d'authentification compatible avec l'API de votre source de données et renseignez les paramètres nécessaires.

    • Resource group connectivity : Sélectionnez le groupe de ressources spécifié et testez la connectivité.

  2. Créez un nœud d'affectation nommé setval_citys dans DataStudio. Pour plus d'informations, consultez Créer un nœud d'affectation.

    Les configurations clés sont les suivantes :

    Description

    • Langage d'affectation : ODPS SQL

    • Code d'affectation :

      SELECT  province
              ,city
      FROM    citys;

    Propriété de réexécution : Définissez cette option sur You can run again after successful or failed operation..

    Une fois la configuration terminée, soumettez et déployez le nœud d'affectation.

  3. Créez un nœud for-each dans DataStudio. Pour plus d'informations, consultez Créer un nœud for-each. Les configurations clés sont les suivantes :

    Description

    Propriété de réexécution : Définissez cette option sur You can run again after successful or failed operation..

    Dépendance du nœud en amont : Sélectionnez le nœud de l'étape précédente, à savoir le nœud setval_citys.

    Paramètre de contexte du nœud : Sélectionnez la source du paramètre d'entrée.

    Nœud de synchronisation par lots : Configurez le nœud de synchronisation par lots à l'intérieur du nœud for-each. Pour plus de détails, voir les étapes suivantes.

  4. Créez un nœud de synchronisation par lots et configurez la tâche. Pour plus d'informations, consultez Créer un nœud de synchronisation par lots.

    Les configurations clés sont les suivantes :

    Description

    Configurez les paramètres de planification comme suit :

    bizdate=$[yyyymmdd-1] 
    bizdate_year=$[yyyy-1] 
    bizdate_month=$[mm-1] 
    bizdate_day=$[dd-1]

    Configurez les paramètres de requête RestAPI. Les paramètres province et city proviennent du nœud for-each.

    date=${bizdate_year}-${bizdate_month}-${bizdate_day}&province=${dag.foreach.current[0]}&city=${dag.foreach.current[1]}

    Configurez le paramètre de partition MaxCompute. Le paramètre province provient du nœud for-each.

    province=${dag.foreach.current[0]}

    Configurez le paramètre de partition MaxCompute. Le paramètre city provient du nœud for-each.

    city=${dag.foreach.current[1]}

    Configurez le paramètre de partition MaxCompute. Le paramètre ds provient des paramètres de planification.

    ds=${bizdate}

    Conformément à la définition des données de l'API, saisissez les noms de colonnes issus de la réponse RestAPI. Ces noms respectent la casse. Une fois les colonnes ajoutées, utilisez The same name mapping ou tracez manuellement des lignes pour établir les correspondances.

    Une fois la configuration terminée, soumettez et déployez le nœud for-each.

Exécution de test

  1. Après avoir soumis et déployé avec succès le nœud d'affectation et le nœud for-each, accédez aux tâches planifiées dans Operation Center et effectuez une opération de backfill sur le nœud d'affectation. Pour plus d'informations, consultez Backfill data.

  2. Sélectionnez la date métier pour la tâche de backfill et les nœuds en aval en fonction de votre scénario réel.

  3. Après l'exécution de la tâche, vérifiez les paramètres d'exécution dans les détails de l'instance de backfill pour vous assurer qu'ils correspondent à vos attentes, et consultez le journal d'exécution pour en valider l'exactitude.

    Dans cet exemple, les données sont écrites dans la partition province=shanghai,city=shanghai,ds=20231215 de la table MaxCompute.

Vérification des données

Exécutez une requête ad hoc dans Data Studio afin de vérifier si les données ont été correctement synchronisées vers MaxCompute. Voici un exemple de requête :

Dans cet exemple, ods_xiaobo_rest5 est la table partitionnée MaxCompute créée lors de l'étape de Préparation.

SELECT  weather
        ,mintemperature
        ,maxtemperature
        ,unit
        ,province
        ,city
        ,ds
FROM    ods_xiaobo_rest5
WHERE   ds != 1
ORDER BY ds,province,city;

Une fois la requête terminée, vérifiez si les données ont été correctement synchronisées vers MaxCompute.

weather

mintemperature

maxtemperature

unit

province

city

ds

COOL

3

9

°C

shanghai

shanghai

20231215

HAZY

-2

6

°C

sichuan

chengdu

20231215

FOGGY

19

28

°C

zhejiang

hangzhou

20231215

SNOWY

-16

-5

°C

shanghai

shanghai

20231216

SNOWY

-16

-8

°C

sichuan

chengdu

20231216

SUNNY

15

25

°C

zhejiang

hangzhou

20231216

COOL

-10

2

°C

shanghai

shanghai

20231217

HAZY

15

24

°C

sichuan

chengdu

20231217

FOGGY

4

11

°C

zhejiang

hangzhou

20231217

HOT

-14

-7

°C

shanghai

shanghai

20231218

FOGGY

-2

4

°C

sichuan

chengdu

20231218

RAINY

9

19

°C

zhejiang

hangzhou

20231218