Mode avancé pour l'action Aggregate
Personnalisez davantage une action Aggregate en travaillant directement sur sa configuration JSON en mode avancé
Objectif
Passer en mode avancé sur l'en-tête de votre éditeur d'action (DPE > Actions > New Action > Aggregate) dans le DPE vous permet d'aller plus loin dans la personnalisation de l'action Aggregate, en affichant et en travaillant directement dans un fichier de configuration JSON. Les fichiers JSON offrent davantage de flexibilité et un accès à toutes les options pour les actions Aggregate.
Le fichier de configuration JSON d'une action Aggregate est composé d'objets de plus haut niveau qui sont obligatoires. Cela inclut :
- Sources : définit les tables sources utilisées pour charger les données.
- Grouping : définit selon quelle dimension les données seront regroupées, en fonction des clés primaires de la table de destination.
- Schema : définit la correspondance individuelle entre la table de destination et les tables sources.
- Join : définit les conditions de jointure envisagées dans le cas où il y a plusieurs sources.
- Destination : définit dans quelle table les données de sortie de l'action Aggregate seront chargées.
D'autres paramètres optionnels peuvent également être ajoutés, nous les aborderons dans la section spécifique Other optional parameters qui inclut par exemple la segmentation, le périmètre ou les règles de transformation.
Sources
Format : le JSON contient une valeur de chaîne qui pointe vers la source et des paramètres additionnels optionnels. Le chemin de la source ressemble à ceci : dwh/database_name/table_name, où database_name est le nom de l'emplacement de la source (source ou provenant du Lakehouse Manager) et table_name le nom de l'objet source ou de l'objet dans le schéma du Lakehouse Manager.
Clé JSON : params.load_from[0].source ou params.load_from.source
Exemple :
Vous pouvez créer un alias de table en ajoutant un espace après le table_name, puis le ou les caractères pour l'alias de la table. Par exemple : "source": "dwh/source_facebook/lifetime_insights fb_i". Cela créera un alias fb_i pour la table lifetime_insights. Vous pouvez ainsi réutiliser cet alias dans les jointures et le schema.
Grouping
Le scaling détermine le niveau de granularité selon lequel les données seront agrégées. Cela aide en particulier à la constitution des données à insérer dans les tables d'agrégation.
Format : il s'agit d'une liste JSON d'attributs ou de règles SQL pour déterminer la granularité du regroupement.
Clé JSON : params.scale
Exemple :
Cela agrégera le nombre de fb_fans par date et page_id
La mise en œuvre d'un scale générera une opération GROUP BY dans la requête d'extraction SQL. Dans cet exemple : GROUP BY page_id, date.
Schema
Le schema détermine le renommage entre le nom des champs tel qu'il est présent dans la source, et le nom que ces champs doivent avoir dans la destination.
Format : l'objet schema contient une série d'objets JSON, dans lesquels chaque clé est le nom d'un attribut de la destination, et la valeur contient les paramètres associés à l'attribut.
Clé JSON : params.schema
Exemple :
Il existe 3 types de correspondance différents :
- type:
default: pour faire correspondre un attribut à un autre sans aucune transformation -
tablel'objet source d'origine de l'attribut
-
attributeattribut source à partir duquel effectuer la correspondance
-
operationreprésente les types d'opération SQL mentionnés dans la section des opérations SQL. (uniquement pour les sources de type SQL).
- type:
replace: placera une valeur codée en dur dans toutes les lignes de destination. -
value: cet attribut sera rempli avec la valeur pour toutes les lignes de destination en cours d'insertion/de mise à jour
type:"sql" : la formule SQL suivante sera appliquée (uniquement pour les sources de type SQL).-
sqlla valeur est une instruction SQL.
Join
Les jointures ne sont possibles qu'entre des tables présentes dans la même base de données ou dans la même instance de base de données (par exemple, uniquement les tables de default_dataset).
Format : une liste d'objets JSON, chacun représentant une instruction JOIN. L'ordre des objets correspond à l'ordre de la séquence des actions JOIN.
Clé JSON : params.joins
Exemple :
table: la table à joindre à la sourcetype: type de jointure mentionné dans la section joincondition: la condition de jointure, qui suit le mot-clé ON dans l'instruction SQL
Destination
Destination représente l'emplacement où les données de l'action seront injectées.
Format : son chemin ressemble à ceci : dwh/database_name/table_name. Où database_name est le nom de la base de données de destination (généralement default_dataset) et table_name le nom de la table de destination dans le schema du Lakehouse Manager.
Clé JSON : params.load_to[source]
Exemple :
Notez que vous pouvez renseigner plusieurs destinations à la fois :
Other optional parameters
Extract_chunk_size
extract_chunk_size est une valeur entière qui représente la taille maximale autorisée à la fois pour l'extraction des données.
Exemple :
Cela permettra au worker d'extraire les données par lots de 5000 lignes.
Clé JSON : params.load_from[0].extract_chunk_size
Source_rules
source_rules représente la règle pour une préparation de données simple. Ce paramètre remplacera les règles existantes synchronisées depuis le DWH. Elles seront appliquées aux attributs de la source. Par exemple, supposons que nous souhaitions appliquer des règles de transformation à l'attribut date_source.
Format : une liste contient des objets JSON, où chacun représente une règle appliquée à un attribut.
Clé JSON : params.load_from[source_rules]
Exemple :
Pour une documentation de configuration détaillée, veuillez vous référer à l'article sur les règles de blueprint
Rules
Les rules sont similaires aux source_rules, à la différence qu'elles seront appliquées à l'attribut de destination plutôt qu'à l'attribut d'extraction. Cela vous permet de faire correspondre différents attributs de destination au même attribut source tout en leur assignant des règles différentes.
Format : une liste contient des objets JSON, où chacun représente une règle appliquée à un attribut.
Clé JSON : params.rules
Exemple :
SQL conditions
Afin de filtrer avec des conditions SQL complexes, vous pouvez les ajouter via l'option « condition ».
Clé JSON : params.load_from[0].condition
Format : une chaîne qui contient la clause « WHERE » de l'extraction de la requête SQL qui sera générée sur la source. (à l'exclusion du « WHERE »).
Exemple :
Aller plus loin
Si vous avez besoin d'une formation ou d'une assistance technique pour la mise en oeuvre de nos solutions, contactez votre commercial ou cliquez sur ce lien pour obtenir un devis et demander une analyse personnalisée de votre projet à nos experts de l’équipe Professional Services.
Posez vos questions, faites-nous part de vos commentaires et interagissez directement avec l’équipe qui développe la Data Platform sur le canal Discord dédié.
Si vous avez besoin d'une assistance concernant vos services OVHcloud, créez une demande depuis notre centre d'aide.
Rejoignez notre communauté d'utilisateurs.