Mode avancé pour l'action Load
Personnalisez une action Load directement dans sa configuration JSON, et les options qui diffèrent d'Aggregate
Objectif
Notez que le schéma global est très proche de celui de l'action Aggregate, bien qu'avec certaines limitations sur certaines options. Gardez à l'esprit que les actions Load sont conçues pour simplement charger les données depuis des sources brutes vers la Data Platform, tandis que les actions Aggregate sont conçues pour exécuter des opérations sur des tables contenues au sein de l'entrepôt de données de la Data Platform.
En termes généraux, l'action Load est une version simplifiée de l'action Aggregate, visant à fournir un moyen simple de charger vos données. Pour la documentation complète de l'action Aggregate, veuillez vous référer à la documentation avancée de l'action Aggregate.
Le fichier de configuration JSON d'une action Load 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.
- Schema : définit la correspondance individuelle entre la table de destination et les tables sources.
- Destination : définit dans quelle table les données de sortie de l'action Load 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.
Source
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 :
Pour les sources de type SQL : 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/mysql_source/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.
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 :
schema.keys()les attributs de destinationtypele mode de correspondance de chaque attribut
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.
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.
Clé JSON : params.load_from[0].extract_chunk_size
Exemple :
Cela permettra au worker d'extraire les données par lots de 5000 lignes.
Load_batch_size
load_batch_size est une valeur entière représentant la taille maximale autorisée à la fois pour le chargement des données dans la base de données
Clé JSON : params.load_batch_size
Exemple :
Cela permettra au worker de charger les données par lots de 5000 lignes
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 : 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 : rules
Exemple :
Handling JSON/XML semi structured mapping
afin de gérer la correspondance des données semi-structurées, vous devez indiquer quel est le nœud sur lequel boucler afin de structurer les données de manière normalisée.
par exemple, si votre source ressemble à ceci :
vous devez ajouter dans votre configuration de chargement, dans la section "params" :
More options on structured CSV/XLSX files
Il arrive que les fichiers excel et csv ne commencent pas à la toute première ligne. il existe des paramètres à définir afin de
encoding
spécifier l'encodage des caractères du fichier CSV (par défaut : détection automatique).
vous devez ajouter dans votre configuration de chargement, dans la section "params.load_from[0]" :
header
indique si le fichier a un en-tête en première ligne (par défaut : true).
vous devez ajouter dans votre configuration de chargement, dans la section "params.load_from[0]" :
header_offset
indique combien de lignes dans votre fichier source le DPE doit ignorer avant que le fichier ne commence (par défaut 0).
vous devez ajouter dans votre configuration de chargement, dans la section "params.load_from[0]" :
offset
indique combien de lignes sont vides entre votre en-tête et les lignes de données dans votre fichier source (par défaut 0).
vous devez ajouter dans votre configuration de chargement, dans la section "params.load_from[0]" :
limit
définit le nombre maximum de lignes à lire depuis le fichier (par défaut None).
vous devez ajouter dans votre configuration de chargement, dans la section "params.load_from[0]" :
separator
définit le caractère utilisé pour séparer les champs dans le fichier CSV (par défaut : détection automatique).
vous devez ajouter dans votre configuration de chargement, dans la section "params.load_from[0]" :
quotechar
définit le caractère utilisé pour mettre entre guillemets les champs contenant des caractères spéciaux (par défaut '"').
vous devez ajouter dans votre configuration de chargement, dans la section "params.load_from[0]" :
escapechar
spécifie le caractère utilisé pour échapper le caractère de guillemet au sein des champs (par défaut '').
vous devez ajouter dans votre configuration de chargement, dans la section "params.load_from[0]" :
lineterminator
détermine la séquence de caractères qui indique la fin d'une ligne (par défaut "\n").
vous devez ajouter dans votre configuration de chargement, dans la section "params.load_from[0]" :
skipinitialspace
ignore les espaces suivant immédiatement le séparateur (par défaut false).
vous devez ajouter dans votre configuration de chargement, dans la section "params.load_from[0]" :
doublequote
contrôle si deux caractères de guillemet consécutifs sont interprétés comme un seul (par défaut true).
vous devez ajouter dans votre configuration de chargement, dans la section "params.load_from[0]" :
worksheet
uniquement pour les fichiers sources .xls et .xlsx
Indique quelle feuille de calcul doit être chargée.
vous devez ajouter dans votre configuration de chargement, dans la section "params.load_from[0]" :
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.