Dans une tâche de synchronisation en temps réel de table unique Data Integration de DataWorks, utilisez le composant d'analyse JSON pour convertir les données JSON de la source en données tabulaires correspondantes.
Créer et configurer un composant d'analyse JSON
Étape 1 : Configurer une tâche Data Integration
Créez une source de données. Pour plus d'informations, consultez Gestion des sources de données.
-
Créez une tâche Data Integration. Pour plus d'informations, consultez Configurer une tâche de synchronisation en temps réel de table unique.
RemarquePour les tâches Data Integration de synchronisation en temps réel de table unique, vous pouvez ajouter un composant de traitement des données entre les composants source et destination. Pour plus d'informations, consultez Sources de données prises en charge et solutions de synchronisation.
Étape 2 : Ajouter un composant d'analyse JSON
Dans la tâche de synchronisation en temps réel de table unique, activez l'interrupteur Data Processing, cliquez sur +Add Node, puis sélectionnez le composant JSON Parsing.
-
Saisissez un nom et une description pour le nœud, puis configurez le composant d'analyse JSON.
ImportantPour obtenir la structure des données JSON, effectuez d'abord l'opération Data Sampling dans la source de données (par exemple Kafka).
Ajouter des champs d'analyse JSON fixes
-
Obtenir des données JSON formatées.
Source JSON
Description
Obtenir des données JSON à partir de l'échantillonnage des données
Après avoir effectué l'échantillonnage des données, cliquez sur Add Fixed Parsing Field pour ouvrir la boîte de dialogue JSON Fixed Parsing Field. Sélectionnez un champ source et cliquez sur Get JSON Structure pour récupérer la structure des données JSON.
Obtenir des données JSON saisies manuellement
Si vous n'avez pas effectué d'échantillonnage des données ou si les données source sont vides, vous pouvez modifier manuellement les champs :
Cliquez sur le bouton Edit JSON Text pour passer en mode édition. Dans la fenêtre Edit JSON Text, saisissez manuellement le contenu JSON, puis cliquez sur Back to Selection pour sélectionner les champs.
-
Ajoutez manuellement un champ via Add Field. Si vous ne pouvez pas récupérer les valeurs des champs en amont et que vous n'avez pas téléchargé manuellement de contenu JSON en cliquant sur le bouton Edit JSON Text, définissez manuellement les règles d'analyse des champs fixes en modifiant le contenu de la valeur pour obtenir le contenu JSON. Les paramètres des champs ajoutés manuellement sont les suivants :
Paramètre
Description
Field
Nom de référence du nouveau champ analysé dans les nœuds en aval.
Value acquisition
Spécifie le chemin d'analyse JSON. La syntaxe d'analyse est la suivante :
$: représente le nœud racine..: représente un nœud enfant.[]:[number]représente un index de tableau, commençant à 0.[*]: développe le tableau en une sortie multiligne. Chaque élément est combiné avec les autres champs de l'enregistrement pour former une ligne indépendante destinée aux nœuds en aval.
RemarqueSeuls les lettres, les chiffres, les traits d'union (-) et les underscores (_) sont autorisés dans les noms de champs JSON au sein du chemin d'analyse JSON.
Default
Valeur par défaut lorsque le chemin d'analyse JSON n'existe pas en raison de modifications apportées aux champs de la table en amont.
NULL : Le champ reçoit la valeur NULL.
Do Not Fill : Le champ n'est rempli avec aucune valeur. Contrairement à NULL, lors de l'écriture dans le champ correspondant de la table de destination, si le champ de destination possède une valeur par défaut configurée, cette valeur par défaut est utilisée à la place de NULL.
Dirty Data : L'enregistrement est comptabilisé dans les statistiques de données incorrectes de la tâche de synchronisation, et la sortie anormale de la tâche est déterminée par la configuration de tolérance aux données incorrectes.
Saisir manuellement une constante : Utilise une constante saisie manuellement comme valeur du champ.
Ajouter des champs d'analyse JSON dynamiques
Dans le contenu JSON formaté, sélectionnez le champ d'objet JSON cible pour l'analyse dynamique. Le système ajoute automatiquement une configuration d'analyse pour chaque champ situé sous l'objet JSON dans les champs de sortie fixes.
Une fois l'analyse dynamique définie pour un objet JSON, lors de l'exécution réelle de la tâche de synchronisation, chaque champ situé sous le chemin spécifié dans l'objet JSON est ajouté à l'enregistrement en tant que type STRING avec son nom de champ JSON d'origine et sa valeur, puis transmis aux nœuds en aval. Ainsi, lorsque la structure de l'objet JSON spécifié change ou que de nouveaux champs sont ajoutés pendant la synchronisation, ils sont automatiquement identifiés et transmis aux nœuds en aval.
-
Obtenir des données JSON formatées.
Source JSON
Description
Obtenir des données JSON à partir de l'échantillonnage des données
Après avoir effectué l'échantillonnage des données, cliquez sur Add Dynamic Parsing Field pour ouvrir la boîte de dialogue JSON Dynamic Output Fields. Sélectionnez un champ source et cliquez sur Get JSON Structure pour récupérer la structure des données JSON.
Obtenir des données JSON saisies manuellement
Si vous n'avez pas effectué d'échantillonnage des données ou si les données source sont vides, vous pouvez modifier manuellement les champs :
Cliquez sur le bouton Edit JSON Text pour passer en mode édition. Dans la fenêtre Edit JSON Text, saisissez manuellement le contenu JSON, puis cliquez sur Back to Selection pour sélectionner les champs.
-
Analyse dynamique des objets JSON
-
Méthode de configuration :
Dans le panneau JSON Data Structure situé à gauche, cliquez sur le bouton de sélection à côté du champ d'objet JSON cible (par exemple dynamic). Une configuration Specify JSON Object est automatiquement ajoutée à la section Dynamic Output Fields située à droite, avec la Value renseignée automatiquement avec le chemin correspondant (par exemple
$.dynamic) et la Default Value définie sur Ignore. -
Supposons que le champ dynamique ajoute c3. Les résultats d'analyse avant et après la modification sont les suivants :
_value_(STRING)
c1(STRING)
c2(STRING)
c3(STRING)
{ "dynamic": { "c1": 2, "c2": ["a1","b1"] } }2["a1","b1"]Non rempli
{ "dynamic": { "c1": 2, "c2": ["a1","b1"], "c3": {"name": "jack"} } }2["a1","b1"]{"name": "jack"}
-
-
Ajouter manuellement des champs.
L'ajout manuel de champs consiste à définir manuellement les règles d'analyse des champs dynamiques en modifiant le contenu de la valeur lorsque vous ne pouvez pas récupérer les valeurs des sous-champs en amont et que vous n'avez pas téléchargé manuellement de contenu JSON en cliquant sur le bouton Edit JSON Text :
Paramètre
Description
Specify JSON Object
Spécifie le chemin d'analyse de l'objet JSON. La syntaxe d'analyse est la suivante :
$: représente le nœud racine..: représente un nœud enfant.[]: [number] représente un index de tableau, commençant à 0.
Remarque : Seuls les lettres, les chiffres, les traits d'union (-) et les underscores (_) sont autorisés dans les noms de champs JSON au sein du chemin d'analyse JSON.
Default
Spécifie le comportement par défaut lorsque le chemin d'analyse JSON spécifié échoue ou que le champ correspondant n'existe pas.
Ignore: N'effectue pas d'analyse dynamique.Dirty Data: L'enregistrement est comptabilisé dans les statistiques de données incorrectes de la tâche de synchronisation, et la sortie anormale de la tâche est déterminée par la configuration de tolérance aux données incorrectes.
-
Politique en cas de détection d'un nom de champ en double.
Lorsque les champs dynamiques JSON sont développés par paire clé-valeur, seul le premier niveau est développé. Si un champ portant le même nom existe déjà lors du développement, les politiques suivantes sont appliquées :
Overwrite : La valeur issue du développement ultérieur remplace la valeur du champ existant.
Discard : La valeur du champ existant est conservée et la valeur issue du développement ultérieur est ignorée.
Error : La tâche signale une erreur et s'arrête.
-
Étape suivante
Après avoir configuré les composants Data Source et JSON Parsing, cliquez sur Output Preview pour vérifier si les données de sortie du nœud actuel répondent à vos exigences.
