Cette rubrique explique comment configurer une tâche de synchronisation par lots pour qu'elle s'exécute périodiquement en mode script dans Data Integration.
Prérequis
-
Avant de configurer une tâche de synchronisation par lots, configurez les sources et destinations de données. Vous pourrez ainsi les sélectionner par leur nom lors de la configuration de la tâche. Pour plus d'informations sur les sources de données prises en charge et leurs plug-ins Reader et Writer, consultez Sources de données prises en charge et plug-ins Reader et Writer.
RemarquePour en savoir plus sur les sources de données, consultez
Présentation des sources de données
.
Vous avez acheté un groupe de ressources exclusif pour Data Integration. Pour plus d'informations, consultez Utilisation d'un groupe de ressources exclusif pour Data Integration.
Une connexion réseau est établie entre le groupe de ressources exclusif pour Data Integration et la source de données. Pour plus d'informations, consultez Solutions de connectivité réseau.
Accès à la page DataStudio
Connectez-vous à la console DataWorks.
Dans le volet de navigation de gauche, cliquez sur Workspace list.
Sélectionnez la région de votre espace de travail, localisez l'espace de travail, puis cliquez sur Data Studio dans la colonne Actions.
Procédure
-
Étape 2 : Configuration de la tâche de synchronisation par lots
Configuration du lien réseau de synchronisation
Basculement vers le mode script et importation d'un modèle
Modification du script pour configurer la source de données, la destination, la limite de débit de transmission et les règles de gestion des données incorrectes
Configuration des propriétés de planification
Étape 1 : Création d'un nœud de synchronisation par lots
Créez un workflow. Pour plus d'informations, consultez Création d'un workflow.
-
Créez un nœud de synchronisation par lots.
Créez un nœud de synchronisation par lots de l'une des deux manières suivantes :
Méthode 1 : Développez le workflow, effectuez un clic droit sur Data integration, puis choisissez .
Méthode 2 : Double-cliquez sur le nom du workflow. Dans le dossier Data integration, faites glisser le nœud Batch Synchronization vers le canevas de l'éditeur de workflow sur la droite.
Dans la boîte de dialogue qui s'affiche, spécifiez les paramètres du nœud de synchronisation par lots.
Étape 2 : Configuration de la tâche de synchronisation par lots
-
Configurez le lien réseau de synchronisation.
Sélectionnez les sources et destinations de données, ainsi que le groupe de ressources pour la tâche. Ensuite, testez la connectivité.
RemarqueVous pouvez synchroniser les données provenant de bases de données et de tables fragmentées à la source vers une seule table à la destination. Pour plus d'informations, consultez Synchronisation des données depuis des bases de données et des tables fragmentées.
En cas d'échec de la connexion réseau entre la source de données et le groupe de ressources, suivez les instructions affichées à l'écran ou la documentation pour configurer la connectivité réseau. Pour plus d'informations, consultez Solutions de connectivité réseau.
-
Basculez vers le mode script.
Cliquez sur l'icône
Switch to script
dans la barre d'outils.
Si aucun script n'est configuré, cliquez sur l'icône
dans la barre d'outils et suivez les instructions pour importer un modèle de script. -
Modifiez le script pour configurer la tâche de synchronisation.
Le code suivant illustre la configuration générale d'un script en mode script :
RemarqueLes champs
typeetversionont des valeurs par défaut et ne peuvent pas être modifiés.Ignorez la configuration
Processordans le script. Aucune configuration n'est requise.
{ "type": "job", "version": "2.0", "steps": [ { "stepType": "plugin_name", "parameter": {...}, "name": "Reader", "category": "reader" }, { "stepType": "plugin_name", "parameter": {...}, "name": "Writer", "category": "writer" }, { "name": "Processor", "stepType": null, "category": "processor", "copies": 1, "parameter": {...} } ], "setting": { "executeMode": null, "errorLimit": { "record": "" }, "speed": { "concurrent": 2, "throttle": false } }, "order": { "hops": [ { "from": "Reader", "to": "Writer" } ] } }-
Configurez les informations de base et les mappages de champs pour le Reader et le Writer.
La configuration de ces paramètres vous permet d'effectuer les opérations suivantes. Pour plus de détails, consultez la documentation de chaque plug-in :
Sources de données prises en charge et plug-ins Reader et Writer
.
-
Reader
Actions Description Configurer la portée de la synchronisation Certains plug-ins prennent en charge des paramètres de filtre pour effectuer une synchronisation incrémentielle. Par exemple, lorsque vous utilisez le plug-in MySQL Reader pour synchroniser des données MySQL, vous pouvez utiliser le paramètre where conjointement avec les paramètres de planification DataWorks pour mettre en œuvre une synchronisation incrémentielle. Pour plus d'informations, consultez Scénario : Configuration d'une tâche de synchronisation par lots incrémentielle. Remarque- La prise en charge de la synchronisation incrémentielle et sa mise en œuvre varient selon le plug-in. Pour plus de détails, consultez la documentation du plug-in spécifique.
- Si vous utilisez un plug-in prenant en charge la synchronisation incrémentielle mais ne spécifiez aucune condition de filtrage des données, une synchronisation complète des données est effectuée par défaut.
- Lors de la configuration des propriétés de planification, attribuez des valeurs aux variables définies dans les configurations de filtre de données et de table de destination. Cela vous permet d'effectuer des opérations telles que l'écriture de données incrémentielles ou complètes dans les partitions temporelles correspondantes de la table de destination. Pour plus d'informations sur les paramètres de planification, consultez Formats pris en charge des paramètres de planification.
- La syntaxe des conditions de filtre pour la synchronisation incrémentielle est presque identique à la syntaxe de la base de données. Lors de la synchronisation, la tâche de synchronisation par lots assemble une instruction SQL complète pour extraire les données de la source de données.
Configurer une clé de fragmentation pour une base de données relationnelle Spécifie le champ des données source à utiliser pour la fragmentation. La tâche se divise ensuite en plusieurs sous-tâches basées sur ce champ pour lire les données en parallèle.Remarque- Nous vous recommandons d'utiliser la clé primaire de la table comme valeur
splitPk. Une clé primaire présente généralement une distribution uniforme des données, ce qui aide à prévenir les points chauds de données dans les fragments. - Actuellement,
splitPkprend uniquement en charge la fragmentation basée sur des entiers. Il ne prend pas en charge d'autres types tels que les chaînes, les nombres à virgule flottante ou les dates. Si vous spécifiez une colonne d'un type non pris en charge, le paramètresplitPkest ignoré et la tâche synchronise les données via un seul canal. - Si vous ne spécifiez pas
splitPkou si sa valeur est vide, la synchronisation des données est effectuée via un seul canal. - Tous les plug-ins ne prennent pas en charge la spécification d'une clé de fragmentation pour configurer la logique de fragmentation de la tâche. Les informations fournies sont données à titre d'exemple. Pour plus de détails, consultez la documentation du plug-in spécifique. Pour plus d'informations, consultez Sources de données prises en charge et plug-ins Reader et Writer.
Attribuer des valeurs aux champs de destination Ajoutez des colonnes à la sortie qui sont renseignées avec des valeurs constantes ou des variables, telles que '123' ou '${variable_name}'. Attribuez des valeurs aux variables que vous définissez ici lors de la configuration des propriétés de planification à l'étape suivante. Pour plus d'informations sur les paramètres de planification, consultez Formats pris en charge des paramètres de planification. Modifier les champs de la table source Utilisez des fonctions prises en charge par la base de données source pour traiter les champs. Par exemple, utilisez Max(id)pour synchroniser uniquement l'enregistrement ayant la valeur d'ID maximale.Remarque Le lecteur MaxCompute ne prend pas en charge les fonctions. -
Writer
Actions Description | Configurer les instructions SQL avant et après la synchronisation | Certaines sources de données vous permettent d'exécuter des instructions SQL sur la destination avant et après l'écriture des données.
Exemple : MySQL Writer prend en charge la configuration de preSql et postSql, ce qui vous permet d'exécuter des commandes MySQL avant ou après l'écriture des données dans MySQL. Par exemple, dans le paramètre Pre-SQL Statement (preSql), spécifiez la commandetruncate table tablenamepour effacer les anciennes données d'une table avant le début d'une tâche de synchronisation.|
Configurer le mode d'écriture en cas de conflit
Définissez la manière de gérer les conflits, tels que les conflits de chemin ou de clé primaire, lors de l'écriture des données dans la destination. Les options disponibles dépendent de la source de données de destination et du plug-in Writer. Pour les détails de configuration, consultez la documentation du plug-in Writer spécifique.
-
-
Contrôle des canaux.
Configurez les paramètres de performance dans la section
setting
, tels que la concurrence, le débit de transmission et la gestion des données incorrectes.
Paramètre Description executeMode (capacité de traitement distribué) Détermine si la tâche s'exécute en mode distribué. distribute: Active le mode distribué. Dans ce mode, la tâche est divisée et distribuée sur plusieurs nœuds d'exécution pour s'exécuter en parallèle. Cela permet à la vitesse de synchronisation de s'adapter horizontalement à la taille du cluster, surmontant ainsi les goulots d'étranglement de performance des nœuds uniques.null: Désactive le mode distribué. La concurrence configurée est limitée aux threads sur un seul nœud et la tâche ne peut pas exploiter la puissance de calcul de plusieurs machines.
Important- Si votre groupe de ressources exclusif pour Data Integration ne comporte qu'une seule machine, n'utilisez pas le mode distribué.
- Si une seule machine répond déjà à vos exigences de performance, nous vous recommandons d'utiliser le mode mono-nœud pour simplifier l'exécution de la tâche.
- Le mode distribué ne peut être activé que lorsque la concurrence est définie sur 8 ou plus.
- La prise en charge du mode distribué varie selon la source de données. Pour plus de détails, consultez la documentation du plug-in spécifique.
concurrent (concurrence maximale attendue) Spécifie le nombre maximal de threads concurrents pour la lecture depuis la source et l'écriture dans la destination. Remarque En raison de facteurs tels que les spécifications des ressources, la concurrence réelle lors de l'exécution peut être inférieure ou égale à la valeur configurée. La facturation est basée sur la concurrence réellement utilisée. Pour plus d'informations, consultez Métriques de performance.throttle (débit de transmission) Contrôle le débit de transmission. true: Active la limitation du débit. Cela protège la base de données source d'une charge excessive en limitant la vitesse d'extraction des données. Le débit minimum est de 1 Mo/s.Remarque Si vous définissezthrottlesur true, définissez également le paramètre mbps pour spécifier le débit de transmission maximal.false: Désactive la limitation du débit. La tâche utilise la bande passante maximale disponible en fonction de l'environnement matériel et de la concurrence configurée.
Remarque Le débit de transmission est une métrique interne à Data Integration et ne représente pas le trafic réel de la carte d'interface réseau (NIC). Généralement, le trafic NIC est une à deux fois supérieur au trafic du canal, selon la sérialisation des données du système de stockage.errorLimit (contrôle des enregistrements d'erreur) Définit la tolérance aux données incorrectes. Important Une quantité excessive de données incorrectes peut dégrader la vitesse globale de synchronisation.- Si ce paramètre n'est pas configuré, les données incorrectes sont autorisées par défaut et la tâche continue de s'exécuter même si des données incorrectes sont générées.
- Si ce paramètre est défini sur
0, aucune donnée incorrecte n'est autorisée. La tâche échoue si des données incorrectes sont générées. - Si vous autorisez les données incorrectes et définissez un seuil :
- Si le nombre d'enregistrements de données incorrectes est inférieur ou égal au seuil, les enregistrements sont ignorés (non écrits dans la destination) et la tâche continue de s'exécuter normalement.
- Si le nombre d'enregistrements de données incorrectes dépasse le seuil, la tâche échoue.
Remarque Qu'est-ce qu'une donnée incorrecte ? Une donnée incorrecte est une donnée qui n'a pas de sens pour votre activité, dont le format est invalide ou qui provoque une erreur lors de la synchronisation. Tout enregistrement qui ne parvient pas à s'écrire dans la source de données de destination est considéré comme une donnée incorrecte.Par exemple, si vous tentez d'écrire des données VARCHAR d'une source dans une colonne INT de la destination, une erreur de conversion se produit et l'enregistrement n'est pas écrit. Cet enregistrement est considéré comme une donnée incorrecte. Vous pouvez configurer l'autorisation des données incorrectes et définir une limite sur le nombre d'enregistrements incorrects. Si le nombre d'enregistrements incorrects dépasse la limite spécifiée, la tâche échoue.
RemarqueOutre ces paramètres, la vitesse globale de synchronisation est affectée par des facteurs tels que les performances de la source de données et l'environnement réseau. Pour plus d'informations sur les débits de transmission et l'optimisation des performances, consultez
Accélération ou limitation de la vitesse d'une tâche de synchronisation par lots
.
-
Cliquez sur Next pour configurer les propriétés de planification.
Pour exécuter une tâche de synchronisation par lots de manière périodique, configurez ses propriétés de planification. Pour plus d'informations sur les paramètres de planification, consultez
Utilisation des paramètres de planification dans Data Integration
.
Configuration des propriétés de planification des nœuds : Attribuez des paramètres de planification aux variables que vous avez définies aux étapes précédentes. Vous pouvez attribuer à la fois des constantes et des variables.
Configuration des propriétés temporelles : Définissez la manière dont la tâche est planifiée périodiquement dans l'environnement de production. Configurez des propriétés telles que le mode de génération d'instance, le type de planification et le cycle de planification.
-
Configuration des propriétés de ressources : Définissez le groupe de ressources de planification utilisé pour soumettre la tâche au groupe de ressources d'exécution Data Integration. Sélectionnez le groupe de ressources pour l'exécution de la tâche dans cette section.
RemarqueUn groupe de ressources de planification soumet une tâche par lot Data Integration au groupe de ressources d'exécution correspondant pour Data Integration. Ce processus entraîne des frais liés à la planification. Pour plus d'informations sur le mécanisme de soumission, consultez
Présentation des groupes de ressources DataWorks
.
Étape 3 : Validation et publication de la tâche
Si la tâche doit s'exécuter selon une planification périodique, déployez-la dans l'environnement de production. Pour plus d'informations sur le déploiement des tâches, consultez Déploiement des tâches.
Étapes suivantes
Une fois la tâche déployée dans l'environnement de production, accédez à Operation Center pour consulter la tâche planifiée. Pour plus d'informations sur les opérations et la maintenance (O&M), telles que l'exécution et la gestion des tâches, la surveillance de l'état des tâches et la gestion des groupes de ressources pour les tâches de synchronisation par lots, consultez
O&M pour les tâches de synchronisation par lots
.