Faire correspondre les attributs de données source aux attributs des données destination
Lors d'un traitement, les étapes suivantes se succèdent :
- FME lit les données sources et stocke les informations relatives à leurs entités sous forme d'attributs de format. Ces attributs de format reflètent les données stockées dans le format original du lecteur.
- FME convertit les attributs de format des données source en attributs FME. Ces attributs FME reflètent les données source telles que le format interne de FME les stockerait.
- FME écrit les données de destination en créant un nouvel ensemble d'attributs de format. Ces attributs de format reflètent les données destination telles qu'elles seront stockées dans le format du rédacteur.
FME convertit d'un format à un autre sans avoir à mapper séparément les attributs de format des données sources directement aux attributs du format de destination pour chaque format. FME convertit tout dans un standard FME, puis le convertit à nouveau dans le format du rédacteur.
L'avantage d'utiliser des attributs génériques plutôt que des attributs spécifiques au format est qu'ils ont la même signification dans tous les Readers et Writers qui les prennent en charge. Par exemple, les attributs d'entité fme_color et fme_fill_color représentent les intensités rouge, verte et bleue d'une entité. Si un format prend en charge les couleurs génériques, les données source ajouteront aux entités les attributs de couleur génériques FME et les attributs de couleur spécifiques au format. Les données destination qui prennent en charge la couleur générique donneront la priorité aux attributs de couleur spécifiques au format s'ils sont présents en plus des attributs génériques.
Les attributs génériques les plus importants sont fme_type et fme_geometry . Ces deux attributs se rapportent à la géométrie d'une entité. La classe Geometry représente les informations de position d'une entité. La géométrie d'une entité peut être constituée de points, de lignes ou de polygones. Les entités qui contiennent plusieurs parties géométriques sont dites avoir une géométrie agrégée. Les entités sans géométrie sont également prises en charge.
La distinction entre fme_type et fme_geometry est importante : fme_geometry indique le type de géométrie des coordonnées réelles, tandis que fme_type spécifie comment cette géométrie doit être interprétée. Par exemple, un type géométrique de point peut être interprété comme l'un des types FME suivants : point, arc, ellipse ou texte. Pour plus d'informations sur les combinaisons valides de fme_type et de fme_geometry pour les entités, consultez le modèle géométrique FME.
Noms d'attributs
De nombreux formats ont des restrictions sur la structure et le format des noms d'attributs. Le format Shape d'Esri, par exemple, n'autorise que les noms en MAJUSCULES et la longueur maximale des noms d'attributs est de dix caractères.
Lors de la création d'un traitement, FME convertit les noms d'attributs en MAJUSCULES dans le schéma de destination si nécessaire. Dans un tel cas, les connexions d'attributs ne peuvent pas être implicites. FME génère donc un mappage de schéma qui joint les attributs source à la destination.
Notez toutefois qu'il ne s'agit que d'un point de départ. Les modifications apportées au traitement peuvent rompre le mappage du schéma généré par FME et, par conséquent, vous obliger à créer vos propres connexions d'attributs.
Taille du champ Attribut
Certains formats comportent des restrictions sur la taille des attributs, par exemple une longueur maximale du champ de caractères ou un nombre maximal dans un champ numérique. Dans la mesure du possible, FME génère un schéma de destination qui reflète ces limitations.
Types de données d'attributs
Les différents formats prennent en charge différents types de données. Même lorsque deux formats prennent en charge le même type de données, celui-ci est souvent représenté par un nom différent. Dans cette situation, FME doit décider comment mapper les attributs entre les types de données.
FME résout le problème en prenant en charge tous ces types de données en interne dans son modèle de données amélioré. Un métafichier pour le format du lecteur indique à FME comment faire correspondre ses types de données d'attributs au modèle FME et un second métafichier indique à FME comment faire correspondre ses types de modèle au schéma de destination.
Voici en exemple un mappage de types de données au format MapInfo :
Type de données MapInfo | Type de données FME |
---|---|
char(width) | fme_char(width) |
date | fme_date |
decimal(width,decimal) | fme_decimal(width,decimal) |
float | fme_real64 |
integer | fme_int32 |
logical | fme_boolean |
smallint | fme_int16 |
Voici un exemple de mappage de types de données Oracle :
Type de données Oracle | Type de données FME |
---|---|
char(width) | fme_char(width) |
float | fme_real32 |
number(width,decimal) | fme_decimal(width,decimal) |
double | fme_real64 |
integer | fme_int32 |
logical | fme_boolean |
smallint | fme_int16 |
Ces mappages montrent qu'un attribut de type MapInfo decimal
devient un type fme_decimal
dans le modèle de données FME, qui devient ensuite un type de données number
lorsqu'il est écrit dans Oracle.
Pour plus d'informations sur les types de données, se reporter à la section Types de données FME.