Aller au contenu

Sert à convertir des tables de données courtes et larges en tables de données longues et étroites. Les colonnes sélectionnées sont transposées, et leurs noms sont convertis en valeurs réparties sur plusieurs lignes.

L’exemple le plus facile à comprendre est sans doute une table de données dont les en-têtes de colonne sont des mois :

Le dépivotage de cette table de données convertit toutes les colonnes de mois en lignes.

large (avant)ProductJanFebWidget1020Gadget58dépivotagelong (après)ProductMonthValueWidgetJan10WidgetFeb20GadgetJan5GadgetFeb8
Le dépivotage (unpivot) transforme le large en long : les colonnes Jan/Feb se regroupent en lignes Month + Value, identifiées par les colonnes que vous laissez intactes.

En indiquant les colonnes à transposer et celles à laisser intactes, cet outil devient très puissant. Réaliser cette conversion dans d’autres outils ETL pourrait nécessiter une douzaine d’étapes de plus.

Source et cible de Table Melt

Pour définir la source et la cible, sélectionnez d’abord la table de données à extraire dans la liste déroulante Table source.

Table cible

Table cible

Pour définir la table cible, sélectionnez une table existante à l’aide de la liste déroulante Table cible, ou cliquez sur le signe « + » vert pour créer une nouvelle table cible.

Création de table

Lorsque vous créez une nouvelle table, vous pouvez la créer soit comme Vue, soit comme Table.

Vues :

Les vues sont utiles car le temps d’exécution d’une étape est nettement inférieur à celui d’une étape qui utilise une table. L’inconvénient des vues est qu’elles se prêtent moins à l’exploration des données dans le mode Détails de la table.

Tables :

Lorsque la cible est une table, l’exécution d’une étape prend plus de temps, mais l’exploration des données dans le mode Détails est bien plus rapide qu’avec une vue.

Sélection des données de table avant dépivotage

Section intitulée « Sélection des données de table avant dépivotage »

Table Melt avant dépivotage

Cette section diffère un peu de la sélection standard des données de la table. Elle sert essentiellement à indiquer les colonnes utilisées dans l’opération de dépivotage, y compris les colonnes d’ID et les colonnes de variable/valeur.

L’enregistrement avec une table source choisie mais sans colonnes source ou sans colonnes cibles remplit le côté vide à partir de la source, comme le ferait Renseigner les deux tables de mappage.

Pour offrir un maximum de souplesse, des filtres de données sont disponibles sur les données source et sur les données cible. Pour les jeux de données volumineux, il peut être particulièrement avantageux de filtrer des lignes dès la source afin que les opérations suivantes portent sur un jeu de données plus petit.

Sélectionner un sous-ensemble des données source

Section intitulée « Sélectionner un sous-ensemble des données source »

Toute expression Python valide est acceptée pour obtenir un sous-ensemble des données. Consultez Expressions

pour plus de détails et d’exemples.

Appliquer un filtre secondaire aux données de résultat

Section intitulée « Appliquer un filtre secondaire aux données de résultat »

Toute expression Python valide est acceptée pour obtenir un sous-ensemble des données. Consultez Expressions pour plus de détails et d’exemples.

Pour limiter les données, cochez simplement la case Appliquer le découpeur de lignes, puis indiquez les éléments suivants :

  • Lignes initiales à ignorer : lignes de données à ignorer (la ligne d’en-tête de colonne n’est pas comptée)
  • Terminer à la ligne : dernière ligne de données à inclure. Ce n’est pas la même chose que de simplement compter des lignes à la fin pour les supprimer

Disposition de Table Melt

Un bouton Guess Layout permet à Analyze de faire une première proposition pour les colonnes d’ID. Par défaut, toutes les colonnes de texte (type de données Chaîne) sont placées dans la section Keys. Les colonnes numériques ne sont pas placées dans Keys par défaut, mais elles peuvent l’être selon les besoins du modèle.

Les colonnes d’ID sont les colonnes qui restent intactes. Ces colonnes sont en pratique répétées pour chaque combinaison variable/valeur. Pour une table mensuelle, cela donnerait 12 répétitions des colonnes d’ID.

Les colonnes d’ID peuvent être ajoutées automatiquement ou manuellement. Pour les ajouter automatiquement, utilisez le bouton Guess Layout mentionné plus haut. Pour ajouter d’autres colonnes manuellement, effectuez un clic droit n’importe où dans la section et sélectionnez Insérer une ligne ou Ajouter une ligne, afin d’ajouter respectivement une ligne avant la ligne actuellement sélectionnée ou une ligne à la fin. Saisissez ensuite le nom de la colonne à utiliser comme ID.

Pour retirer un champ des IDs, effectuez simplement un clic droit et sélectionnez Supprimer.

Deux valeurs sont à renseigner. Elles deviennent toutes deux des noms de colonne dans la table de données cible.

  • Nom de la colonne de variable : comme indiqué dans la transformation, les noms de variable sont dérivés des noms de colonne source actuels. Indiquez en pratique un nom de colonne qui représentera les données initialement représentées par les colonnes de la table de données source.
  • Nom de la colonne de valeur : indiquez un nom de colonne pour représenter les données contenues dans la table de données source. Il s’agit généralement d’une unité numérique : dollars, livres, degrés, pourcentage, etc.

Autres options de dépivotage comprend les champs suivants :

  • Dépivoter aussi toutes les autres colonnes de la table à l’exécution de l’étape (melt_all_columns) : dépivote aussi, à l’exécution de l’étape, toutes les colonnes de la table source que l’étape ne répertorie pas et qui ne sont pas des colonnes d’ID, dans l’ordre où la table les contient.
  • Nom de la colonne de position (position_name) : écrit aussi une colonne de ce nom contenant la position (à partir de 0) de la colonne de valeur de chaque ligne parmi les colonnes de valeur.
  • Nom de la colonne de type (type_name) : écrit aussi une colonne de ce nom contenant le type de données de la colonne de valeur de chaque ligne, par exemple integer, numeric, text, boolean, date ou timestamp.

Voir la documentation ci-dessus.