Community Spring Cleaning week is here! Join your fellow Maveryx in digging through your old posts and marking comments on them as solved. Learn more here!
Free Trial

Blog

Les analyses et les idées des plus grands esprits de l'analyse.
TIPS de la semaine

Chaque semaine, découvrez de nouvelles astuces et bonnes pratiques pour devenir un expert !

Voir l'index
messi007
15 - Aurora
15 - Aurora

 

 

 

messi007_0-1651158582511.png

 

 

 

 

 

Il y a deux manières de définir une chaîne :

  • Longueur fixe (String et WString) : pour le cas d'une chaîne dont la longueur est fixe et constante (ex. un code comme le code Magnitude de 5 caractères format S9999)
  • Longueur variable (V_String et V_WString) : ou VARCHAR pour le cas d'une chaîne dont la longueur est variable tout en étant limitée (ex. un libellé de 10 à 50 caractères)

 

Il faut donc privilégier le String ou WString pour représenter un code car c'est une option économique pour le système. En effet, dans le cas d'une chaîne variable (VARCHAR), le système doit gérer la longueur effective de la chaîne pour connaître la position du champ suivant, ce qu'il n'a pas à faire dans une chaîne fixe.

 

Historiquement le VARCHAR a été introduit pour économiser le volume des chaînes de longueur variable en compressant l'espace vide en fin de chaîne.

 

Mais alors pourquoi deux sous-types à chaque fois ?

Le W de WString et V_WString signifie Wide pour "large" ou étendu.

 

Il faut comprendre qu'un caractère est encodé, historiquement, sur un octet, ce qui permet 256 possibilités.

C'est le fameux code ASCII (American Standard Code for Information Interchange - Code américain normalisé pour l'échange d'information).

 

Or l'anglais (UK/US) n'a pas de lettre accentuée contrairement au français ou aux langues européennes en général. Les langues comme le japonais, chinois, etc. utilisent plus de 256 symboles. Il a donc fallu les encoder sur plus d'un octet. Deux voire trois. C'est ce qui donné lieu à l'UNICODE. Dans cette norme d'encodage des caractères, la norme UTF-8 est la plus connue et utilisée. Elle assure la compatibilité avec les codes ASCII.

 

Ce qu'il faut donc retenir, c'est que si vous utilisez abusivement du WString ou du V_WString, vous perdrez de l'efficacité en volume et en performance. Le pire étant V_WString.

 

 

Pour finir, il faut commencer par bien étudier les données du fichier à manipuler. Pour ce faire, vous pouvez utiliser l'outil Alteryx "Champs Automatiques".  Mais cet outil est à utiliser juste pour analyser le fichier, en mode expérimental, découverte et surtout pas en mode RUN., ce qui serait une surcharge pour votre Workflow. La structure est normalement stable.

 

messi007_0-1652278320386.jpeg

 

 

 

 

Après une première exécution, vous obtiendrez, dans l'onglet "Résultat" du Designer, les informations sur les longueurs optimales et les types à définir dans l'outil "Sélectionner".

Il n'y a plus qu'à reporter dans l'outil "Sélectionner".

 

messi007_1-1652278320462.jpeg

 

 

 

Attention toutefois, vous devez rester maître dans vos décisions. L'outil vous donne juste une indication.

Conseil : Si le fichier est trop volumineux, cette analyse peut être longue. Dans ce cas, limitez le nombre d'enregistrements en effectuant un échantillonnage.

 

 

messi007_2-1652278320526.jpeg

 

 

 

Voici ci-dessous la taille des fichiers de tests qui valident cette démonstration.

 

messi007_3-1652278320559.jpeg

 

 

 

Au passage, et en guise de conclusion, on remarquera que le format natif d'Alteryx YXDB est plutôt avantageux et même performant.

C'est un format propriétaire compressé efficacement ! A utiliser sans modération dès le début du workflow.

 

N’hésitez pas à poster vos questions/remarques  !

 

A bientôt pour un autre article !

Commentaires
TL69
Atome

Merci Mokhtar pour ce partage fort intéressant, détaillé et surtout très utile.
Il serait pertinent de compléter ce billet par l'usage des numériques.

StephaneP
Alteryx
Alteryx

Super article, merci @messi007 😊

 

Petit retour terrain. Effectivement le V_WString est le format le moins optimisé.
Je le conseille cependant régulièrement dans les situations suivantes:

  • Vous êtes débutant et n'avez pas encore vocation à descendre dans ce niveau de détail => on ne se pose pas de question, le format passe partout est le V_WString. Si il n'y en a qu'un à retenir c'est lui.
  • Vous n'avez pas de souci de volumétrie/ perf => Là aussi, on ne se pose pas de question, le V_Wstring passe partout.

 

Pour les formats numériques, l'équivalent du "passe partout" est le Double. Gourmand en stockage mais qui absorbe tout les types de numériques.

 

Plus tard lorsqu'ils maitrisent les outils de base et les workflowsje les réoriente vers les supers articles de @messi007 😄

Étiquettes