Tous les produits
Search
Centre de documentation

DataWorks:Poussée de données

Dernière mise à jour :Aug 10, 2026

La fonctionnalité de poussée de données est un service DataWorks qui récupère des données depuis une source à l'aide de requêtes SQL et les envoie vers un Webhook ou une adresse e-mail. Vous pouvez facilement configurer des envois périodiques de données métier vers plusieurs Webhooks ou adresses e-mail. Cette rubrique explique comment configurer et utiliser la fonctionnalité de poussée de données.

Présentation

Vous pouvez planifier des tâches périodiques pour pousser des données vers un Webhook cible ou une adresse e-mail.

image

Sources de données et canaux pris en charge

  • Types de sources de données pris en charge :

    • MySQL (compatible avec StarRocks et Doris)

    • PostgreSQL (compatible avec Snowflake et Redshift)

    • Hologres

    • MaxCompute (ODPS)

    • ClickHouse

  • Les canaux de poussée pris en charge incluent DingTalk, Lark, WeCom, l'e-mail et Teams.

Limites

  • Chaque instruction SELECT du service de poussée de données peut retourner au maximum 10 000 lignes.

  • Le mécanisme de requête paginée Next Token est également soumis à la limite de 10 000 lignes par instruction SELECT. Les requêtes paginées ne permettent pas de dépasser cette limite.

  • Si vous devez récupérer plus de 10 000 lignes, utilisez l'une des alternatives suivantes :

    • Utilisez la commande MaxCompute Tunnel pour exporter les données vers votre environnement local afin de les traiter ultérieurement.

    • Utilisez l'intégration de données DataWorks pour exporter les données vers un autre système de stockage.

  • Limites de taille des données selon les destinations :

    • Pour DingTalk, la taille des données poussées ne doit pas dépasser 20 Ko.

    • Pour Lark, la taille des données poussées ne doit pas dépasser 20 Ko, et chaque image doit être inférieure à 10 Mo.

    • Pour WeCom, chaque bot peut envoyer jusqu'à 20 messages par minute.

    • Pour Teams, le contenu poussé ne doit pas dépasser 28 Ko.

    • Pour l'e-mail, chaque tâche de poussée de données prend en charge un seul corps d'e-mail. Pour connaître les autres limites, consultez les restrictions SMTP de votre service de messagerie.

  • La fonctionnalité de poussée de données est disponible uniquement dans les espaces de travail DataWorks des régions suivantes : Chine (Hangzhou), Chine (Shanghai), Chine (Pékin), Chine (Shenzhen), Chine (Chengdu), Chine (Hong Kong), Singapour, Japon (Tokyo), États-Unis (Silicon Valley), États-Unis (Virginie) et Allemagne (Francfort).

Prérequis

Étape 1 : Créer une tâche de poussée

  1. Accédez au Service de données.

    Connectez-vous à la console DataWorks. Dans la barre de navigation supérieure, sélectionnez la région où réside votre source de données. Dans le volet de navigation de gauche, choisissez Data Analysis and Service > Data Services. Sélectionnez l'espace de travail souhaité dans la liste déroulante et cliquez sur Go to Data Service.

  1. Créez une tâche de poussée de données.

    Dans le volet de navigation de gauche de Data Services, choisissez Service Development > Data Push pour accéder à la page Data Push. Cliquez sur l'icône image, sélectionnez Create Data Push Task, saisissez un nom pour la tâche, puis cliquez sur OK. La page de configuration de la tâche s'ouvre.

Étape 2 : Configurer la tâche de poussée

Préparation (facultative)

Pour vous aider à effectuer rapidement une poussée de données, cette rubrique utilise un exemple pour expliquer comment pousser les résultats d'une requête provenant d'une table MaxCompute. Dans cet exemple, vous utilisez la fonctionnalité de poussée de données pour envoyer les données d'une table nommée sales vers un canal spécifié. Les données incluent le montant des ventes quotidiennes pour chaque département et la variation du montant des ventes par rapport à la veille. Si vous souhaitez suivre les étapes de cet exemple, vous devez d'abord créer la table sales dans votre environnement. Le code suivant fournit les instructions pour créer la table sales et y insérer des données. Pour plus d'informations sur la création d'une table, consultez Créer et utiliser des tables MaxCompute.

CREATE TABLE IF NOT EXISTS sales (
    id BIGINT COMMENT 'Unique identifier',
    department STRING COMMENT 'Department name',
    revenue DOUBLE COMMENT 'Revenue amount'
) PARTITIONED BY (ds STRING);
-- Insert sample data into partitions
INSERT INTO TABLE sales PARTITION(ds='20240101')(id, department, revenue ) VALUES (1, 'Department 1', 12000.00);
INSERT INTO TABLE sales PARTITION(ds='20240101')(id, department, revenue ) VALUES (2, 'Department 2', 21000.00);
INSERT INTO TABLE sales PARTITION(ds='20240101')(id, department, revenue ) VALUES (3, 'Department 3', 5000.00);
INSERT INTO TABLE sales PARTITION(ds='20240102')(id, department, revenue ) VALUES (1, 'Department 1', 11000.00);
INSERT INTO TABLE sales PARTITION(ds='20240102')(id, department, revenue ) VALUES (2, 'Department 2', 20000.00);
INSERT INTO TABLE sales PARTITION(ds='20240102')(id, department, revenue ) VALUES (3, 'Department 3', 10000.00);

Sélectionner une source de données

Sélectionnez le Data Source Type, le Data Source Name et l'Data Source Environment pour déterminer l'environnement de la table de données pour la poussée de données. Vous pouvez sélectionner l'environnement de la source de données en fonction du fait que la poussée concerne une table de développement ou une table de production. Si vous effectuez un exercice pratique, confirmez l'environnement dans lequel se trouve la table sales que vous avez créée lors de la phase de préparation.

Par exemple, définissez Data source type sur odps, Data source name sur MaxCompute_Source et Data source environment sur production environment. Pour créer une nouvelle source de données, cliquez sur le lien situé sous le champ Data source name.

Remarque

Pour la liste des types de sources de données pris en charge, consultez Sources de données et canaux pris en charge.

Écrire le SQL de requête

  • Définissez la portée des données et récupérez-les.

    Dans la section Edit Query SQL, utilisez des requêtes SQL mono-table ou multi-tables pour définir les données à pousser. Par exemple :

    -- Get the sales revenue for each department on 20240102
    SELECT id, department, revenue FROM sales WHERE ds='20240102';
    -- Get the change in sales revenue compared to the previous day
    SELECT  a.revenue - b.revenue AS diff FROM sales a LEFT JOIN sales b ON a.id = b.id AND a.ds > b.ds WHERE a.ds = '20240102'AND b.ds = '20240101';

    Après avoir écrit le SQL, les champs de résultat sont automatiquement renseignés dans la section Parameters > Output Parameters. Si l'analyse des paramètres de sortie échoue ou si elle est incorrecte, désactivez Automatically Parse Parameters et Add Parameter manuellement.

    Vous pouvez également configurer des variables personnalisées dans le SQL en utilisant le format ${variable_name}. Cette variable est un Assignment Parameters (les Assignment Parameters peuvent recevoir des expressions temporelles et des constantes) pour implémenter une entrée de paramètres dynamique pour votre code. Pour plus d'informations, consultez Configurer le contenu de la poussée.

    -- Use scheduling parameters to dynamically assign time variables.
    -- Get the latest daily sales revenue for each department
    SELECT id, department, revenue FROM sales WHERE ds='${date}';
    -- Get the change in sales revenue compared to the previous day
    SELECT a.revenue - b.revenue AS diff FROM sales a LEFT JOIN sales b ON a.id = b.id  and  a.ds > b.ds WHERE a.ds = '${date}' AND b.ds = '${previous_date}';
  • Requête paginée.

    Pour les grandes tables, la poussée de données prend en charge les requêtes paginées à l'aide d'un Next Token. Cliquez sur Code Help > Code Template > Next Token dans la barre d'outils de l'éditeur de code pour obtenir des instructions d'utilisation.

Configurer le contenu de la poussée

Dans la section Content to Push, vous pouvez modifier le contenu du message en utilisant les formats Markdown et Table. Ce contenu sera poussé vers le Webhook.

Après avoir personnalisé le titre du message dans le champ Title, cliquez sur Add dans la zone du corps. Ensuite, choisissez Markdown, Table ou Email Body pour modifier le contenu. L'exemple suivant montre une configuration type. Vous pouvez cliquer sur Preview dans la barre d'outils pour voir le format du message.

Remarque
  • Si la destination de la poussée est une adresse e-mail, le contenu personnalisé dans les sections Markdown et Table est envoyé en tant que pièces jointes. Le corps de l'e-mail est rendu et affiché dans le message électronique.

  • Si la destination de la poussée n'est pas une adresse e-mail, le contenu personnalisé dans les sections Markdown et Table s'affiche comme corps principal du message Webhook. Le Email Body sera masqué dans le message de poussée Webhook.

Contenu Markdown

  • Utiliser des variables de paramètre : Lors de la rédaction du contenu de la poussée, vous pouvez ajouter des Assignment Parameters et des Output Parameters au texte enrichi en utilisant le format ${parameter_name}. Ces variables sont remplacées par les données assignées correspondantes ou les résultats de la requête SQL lorsque la tâche de poussée de données s'exécute.

    • Assignment Parameters : Vous devez attribuer une Constant ou une Time Expression d'un paramètre de planification à la variable dans la section Parameters > Assignment Parameters.

    • Output Parameters : Ces paramètres correspondent aux noms de champs ou aux alias de votre requête SQL, tels que A, B, ... dans une instruction comme SELECT A, B, ... FROM TABLE. Ils représentent les données interrogées.

  • @mentionner des membres : Vous pouvez configurer cette option lors de la poussée vers un Webhook Lark pour @mentionner automatiquement des utilisateurs spécifiques.

    • Par défaut, le mode Markdown utilise du texte enrichi pour configurer le contenu du message. Lors de la poussée vers Lark, vous pouvez utiliser la fonction @mention pour notifier le personnel concerné. Vous pouvez cliquer sur l'icône image pour basculer vers le mode source Markdown, puis utiliser <at id="all" /> ou <at email="username@example.com" /> pour y parvenir.

  • En plus des fonctionnalités ci-dessus, Markdown prend également en charge des fonctions telles que Ajouter une image et l'insertion d'Emoji DingTalk.

    Dans la zone de contenu de la poussée, sélectionnez Markdown comme type de modèle. Dans le corps, utilisez la syntaxe ${parameter_name} pour référencer les paramètres définis dans le panneau Input Parameters à droite. Par exemple, si vous écrivez ${creator} et ${subscriber} dans le corps, et que vous définissez creator sur "admin" et subscriber sur "user" dans l'onglet Input parameters, les variables sont automatiquement remplacées par leurs valeurs lors de l'exécution de la tâche. Les paramètres d'entrée prennent également en charge les variables de temps de planification. Par exemple, vous pouvez définir date sur ${yyyymmdd} et previous_date sur ${yyyymmdd-1}. La section Write Query SQL peut également référencer les paramètres d'entrée pour des valeurs dynamiques, par exemple SELECT id, department, revenue FROM sales WHERE ds='${date}';.

    Si le contenu de la poussée contient des balises HTML (par exemple, du texte collé depuis un éditeur externe), une erreur peut se produire lors du passage au mode texte enrichi : Error parsing markdown: Unexpected closing tag. Si cela se produit, passez en mode source dans l'éditeur Markdown, supprimez les balises HTML du contenu afin qu'il ne reste que du texte Markdown brut, puis revenez au mode texte enrichi. Le contenu s'affiche alors correctement.

Contenu du tableau

  • Cliquez sur Add Column pour augmenter le nombre de colonnes dans le tableau. Vous pouvez ensuite associer des Parameters aux colonnes correspondantes.

  • Lorsque la destination de la poussée est un Webhook Lark, cliquez sur l'icône image à droite d'une colonne de tableau créée pour ouvrir la boîte de dialogue Modify Field. Dans cette boîte de dialogue, vous pouvez ajuster le Field, le Display Name, le Display Style et la Condition pour créer divers effets d'affichage pour le contenu poussé.

    • Field : Basculer vers un autre champ Output Parameters.

    • Display Name : Le nom que vous souhaitez afficher dans l'en-tête du tableau lors de la poussée vers des outils de collaboration.

    • Display Style : Ajouter un préfixe ou un suffixe fixe avant ou après la Value dans le tableau.

    • Condition : Compare la Value d'un tableau avec une valeur de comparaison configurée. Vous pouvez personnaliser la couleur d'affichage pour les valeurs qui répondent Yes ou No, et spécifier un Additional Unicode. Condition : Vous pouvez activer la logique conditionnelle, définir un opérateur (tel que >=) et un seuil (tel que 60). Si la condition est remplie, vous pouvez sélectionner Change to green. Si la condition n'est pas remplie, vous pouvez sélectionner Change to red. Vous pouvez également configurer un Appended Identifier.

    Remarque
    • La méthode de création des tableaux varie selon le canal. La prise en charge du contenu des tableaux pour différents canaux est la suivante :

      • DingTalk : Prend en charge les tableaux Markdown et les tableaux intégrés de la poussée de données. Il ne prend pas en charge le rendu des paramètres Display Style et Condition configurés dans la boîte de dialogue Modify Field. De plus, DingTalk mobile ne prend pas en charge l'affichage des tableaux.

      • Lark : Prend en charge à la fois Markdown et les tableaux intégrés, y compris le rendu des styles d'affichage personnalisés et des conditions.

      • WeCom : Prend en charge la poussée de tableaux Markdown mais ne les rend pas.

      • Teams mobile : Prend en charge la poussée de tableaux Markdown et peut les rendre.

Corps de l'e-mail

La poussée de données DataWorks permet d'ajouter un corps d'e-mail au contenu de la poussée. Lorsque vous modifiez le corps de l'e-mail, tenez compte des points suivants :

  • Chaque tâche de poussée de données prend en charge un seul corps d'e-mail.

  • Le corps de l'e-mail n'est rendu que lorsque la destination de la poussée est une adresse e-mail. Si la destination de la poussée n'est pas une adresse e-mail, le Email Body est masqué dans le message de poussée Webhook.

Étape 3 : Configurer les paramètres de poussée

Avant de configurer les Push Settings, cliquez sur l'icône image dans le coin inférieur gauche de la page Service Development pour ouvrir le panneau des paramètres. Basculez vers l'onglet Destination Management, puis cliquez sur Create Destination pour créer une destination. Les types de canaux pris en charge incluent DingTalk, Lark, WeCom, Teams et E-mail.

Créer une destination Webhook

Lorsque vous cliquez sur Create Destination, configurez les paramètres suivants :

  • Type : Sélectionnez un type de canal. Les options incluent DingTalk, Lark, WeCom et Teams.

  • Destination Name : Saisissez un nom personnalisé pour la nouvelle destination de poussée.

  • Webhook : L'URL Webhook du canal de poussée sélectionné.

Remarque

La liste déroulante Type prend également en charge le canal Email. Une fois la configuration terminée, cliquez sur OK.

Créer une destination e-mail

Avant de configurer les Push Settings, cliquez sur l'icône image dans le coin inférieur gauche de la page Service Development pour ouvrir le panneau des paramètres. Basculez vers l'onglet Destination Management, puis cliquez sur Create Destination pour créer une destination.

Lorsque vous cliquez sur Create Destination, vous devez configurer les paramètres suivants :

  • Type : Sélectionnez Email.

  • Destination Name : Saisissez un nom personnalisé pour la nouvelle destination de poussée.

  • SMTP Host : L'adresse du serveur de messagerie.

  • SMTP Port : Le numéro de port du serveur de messagerie. La valeur par défaut est 465, qui peut être modifiée manuellement.

  • Sender Address : L'adresse d'envoi de l'e-mail.

  • SMTP Account : Le compte e-mail complet.

  • SMTP Password : Le mot de passe du compte e-mail.

  • Receiver Address : L'adresse e-mail de destination.

Paramètres de poussée

Cliquez sur Push Settings à droite pour configurer le cycle de planification, les ressources de planification et les destinations de poussée de la tâche. Les éléments de configuration spécifiques sont les suivants :

  • Configuration du cycle de planification et de l'heure d'exécution : Configurez le cycle de planification et l'heure précise pour que le service de poussée de données pousse le contenu modifié.

    Cycle de planification

    Heure spécifiée

    Heure de planification

    Exemple

    Month

    Spécifiez les jours du mois auxquels exécuter la tâche de poussée.

    L'heure de planification de la tâche de poussée de données le jour de la poussée.

    Scheduling Frequency : Mois

    Specified Time : 1er de chaque mois

    Data Timestamp : 08:00

    Heure d'exécution réelle : La tâche de poussée s'exécute à 08:00 le 1er de chaque mois.

    Week

    Spécifiez les jours de la semaine auxquels exécuter la tâche de poussée.

    L'heure de planification de la tâche de poussée de données le jour de la poussée.

    Scheduling Frequency : Semaine

    Specified Time : Lundi

    Data Timestamp : 09:00

    Heure d'exécution réelle : La tâche de poussée s'exécute à 09:00 tous les lundis.

    Day

    Remarque

    Le cycle quotidien planifie l'exécution de la tâche tous les jours.

    L'heure de planification de la tâche de poussée de données le jour de la poussée.

    Scheduling Frequency : Jour

    Horodatage des données : 08:00

    Heure d'exécution réelle : La tâche de poussée s'exécute à 08:00 tous les jours.

    Hour

    Remarque

    Vous pouvez choisir entre deux modes de poussée :

    • Poussée à un intervalle horaire spécifié.

    • Poussée aux heures et minutes spécifiées.

    Poussée à un intervalle horaire :

    Start Time : 00:00

    Time Interval : 1 heure

    End Time : 23:59

    Heure d'exécution réelle : Poussée une fois par heure de 00:00 à 23:59 quotidiennement.

    Poussée aux heures et minutes spécifiées :

    Hour : 0, 1

    Specified Minute : 10

    Heure d'exécution réelle : Poussée à 00:10 et 01:10 quotidiennement.

  • Timeout Definition : Définit une limite de temps pour l'exécution de la tâche. La tâche est arrêtée si elle dépasse cette limite.

    • Default Value : Avec le paramètre Default Value, le délai d'expiration de la tâche est ajusté dynamiquement en fonction de la charge du système, avec une valeur comprise entre 3 et 7 jours. Les tâches ayant expiré sont arrêtées.

    • Exemple : Si vous définissez un délai d'expiration Custom de 1 heure, la tâche de poussée est arrêtée si elle s'exécute pendant plus d'une heure après son heure de début planifiée.

  • Valid From : Configurez la plage de temps pendant laquelle la tâche de poussée de données est active.

    • Permanent : La tâche de poussée de données reste effective de manière permanente et n'est pas limitée par une plage de dates d'efficacité.

    • Example : Si vous configurez une plage Specified Time du 01/01/2024 au 31/12/2024, la tâche de poussée s'exécute selon le cycle de planification configuré durant cette période.

  • Resource Group for Scheduling : Vous pouvez configurer un groupe de ressources exclusif pour la planification ou un groupe de ressources serverless (groupe de ressources à usage général) pour fournir des ressources de planification à la tâche de poussée de données. Pour plus d'informations sur les groupes de ressources, consultez Gestion des groupes de ressources.

  • Push Every Time : Contrôle l'envoi d'une notification de poussée lorsque la requête SQL ne renvoie aucune donnée.

    • Activé (par défaut) : La poussée est exécutée à chaque exécution planifiée, que la requête renvoie ou non des données.

    • Désactivé : Si toutes les variables utilisées dans le contenu de la poussée, à l'exception des paramètres d'entrée, sont vides, le message n'est pas envoyé. Vous pouvez utiliser les clauses WHERE ou HAVING dans le SQL pour filtrer les données. Si les conditions de filtre ne sont pas remplies et que le résultat de la requête est vide, la tâche de poussée est automatiquement ignorée et aucun message n'est envoyé.

  • Destination : Vous pouvez pousser le contenu configuré vers une destination sélectionnée. Vous ne pouvez choisir que parmi les destinations de poussée existantes, qui sont configurées dans Data Push Task Management.

    Remarque

    Lors de la poussée vers un Webhook DingTalk, vous devez ajouter un mot-clé dans la section Security Settings > Custom Keywords de la configuration du bot. Assurez-vous que le contenu de la poussée inclut ce mot-clé pour que la poussée réussisse.

Étape 4 : Tester la tâche de poussée

Après avoir créé la tâche de poussée de données, cliquez sur le bouton Save dans la barre d'outils pour enregistrer la configuration actuelle. Ensuite, cliquez sur Test pour effectuer un test en phase de développement afin de vérifier que la poussée de données fonctionne correctement. Vous devez attribuer manuellement des valeurs constantes aux variables pour le test.

Remarque

Une tâche de poussée de données doit réussir un test de poussée dans l'environnement de développement avant de pouvoir être Submit et Publish.

Étape 5 : Publier la tâche de poussée

Gérer les versions de tâche

  1. Après avoir confirmé que les tests lors du développement sont réussis, cliquez sur Submit. Si la tâche de poussée n'est pas soumise, elle reste à l'état de brouillon et aucune nouvelle version n'est générée.

  2. Après avoir soumis le service, une nouvelle version est générée. Dans le panneau Version à droite, trouvez la version soumise qui est Can Be Published et cliquez sur Publish. La publication de la tâche active sa planification telle que définie dans les Push Settings.

    Dans le panneau Version, gérez la tâche de poussée de données comme suit.

    Statut

    Actions

    Description

    Publish

    Data Push Task Management

    Accède à la page Data Push Task Management, où vous pouvez afficher les informations détaillées sur les tâches publiées. Pour plus d'informations, consultez Gérer les tâches de poussée de données.

    Can Be Published

    Publish

    Publie la version correspondante de la tâche.

    Abandoned

    Supprime la version correspondante de la tâche et change son statut en Abandoned.

    Off-Line, Abandoned

    Version Details

    Affichez les informations de configuration et le contenu de poussée correspondant pour cette version de la tâche de poussée de données.

    Roll Back

    Restaure cette version, en faisant la configuration actuelle.

    Remarque

    Les opérations Version Details et Roll Back sont disponibles et fonctionnent de manière identique pour les tâches dans tous les statuts.

Gérer les tâches de poussée

Une fois qu'une tâche de poussée de données est publiée avec succès, cliquez sur Data Push Task Management dans la colonne Operation du panneau Version, ou accédez à la page de liste Data Push Tasks via le chemin Service Management > Data Push Task Management.

Cette page répertorie toutes les Data Push Tasks publiées et affiche des détails tels que leur ID, leur Name, le Data Source Name, l'Data Source Environment, le Node Mode, le Resource Group for Scheduling, le Owner, le Deployer et l'Published Time. Dans la colonne Operation, effectuez les opérations suivantes sur les tâches de poussée de données publiées :

Actions

Description

Unpublish

Met hors ligne la tâche sélectionnée.

Test

Accède à la page Test Data Push Task, où vous pouvez tester une tâche publiée.

Remarque

Cliquer sur l'icône image dans la colonne Name vous emmène vers la page Version Details pour la tâche sélectionnée.

Tester une tâche publiée

Accédez à la page Data Push Test de l'une des manières suivantes :

  • Méthode 1 : Choisissez Service Management > Test Data Push Task.

  • Méthode 2 : Choisissez Service Management > Data Push Task Management > Data Push Tasks.

Le test d'une tâche publiée confirme qu'elle s'exécute correctement et que la destination reçoit les données comme prévu.

Sur la page Data Push Test, sélectionnez ou recherchez la tâche de poussée de données cible dans la liste déroulante, cochez la case Push to Destination si nécessaire, puis cliquez sur Start Test.

FAQ

Q : La poussée de données prend-elle en charge les poussées à la demande ?

R : Pour les poussées occasionnelles à la demande, utilisez la fonction Test avec l'option Push to Destination sélectionnée. Pour les poussées récurrentes conditionnelles, désactivez le paramètre Push Every Time ; la tâche ne s'exécutera alors que si votre requête SQL renvoie des données.