Plus d'exemples de Talend. Exécution d'instructions SQL construit à l'exécution.

Après avoir terminé la dimension de temps avec l'aide de Talend processus ETL, pour examiner les dossiers DWD_TIEMPO table, nous voyons que depuis quelques années, la dernière semaine de l'année a été remplie avec la valeur 1. L'explication est que Java utilise la norme ISO pour le nombre de semaines, et il ne peut jamais dépasser 52. Par conséquent, depuis quelques années, la dernière semaine de l'année a été enregistrée avec la valeur 1.

Cette question sert de base pour développer notre SUIT ETL processus qui encandenado la colère de générer des enregistrements de la dimension temporelle, ce qui aura pour but d'organiser les enregistrements qui ont eu le tort de la base de données.

Le procèsou les étapes suivantes:

1) Recouvrement pour chaque année, le plus grand nombre de semaines consignés dans le tableau: Pour ce faire, nous exécuter une instruction SQL, en utilisant le groupe de composants TMySqlInput bases de données, Mysql).

L'instruction exécutée est la suivante:

"Dwd_tiempo.ano_id SELECT max (dwd_tiempo.sem_id) semaines
Du groupe dwd_tiempo par dwd_tiempo.ano_id
ordre dwd_tiempo.ano_id " 

Cette commande génère un flux de tous les enregistrements renvoyés par la requête SQL et chaque enregistrement prendra les mesures suivantes:

2) Pour chaque année, nous exécuter une instruction SQL construite à l'exécution avec les données transmises par le contrôle précédent, de fixer le nombre mauvaise semaine (à l'aide d'autant de semaines + 1).Pour ce faire, utilisez la commande tMySqlRow. Cette commande vous permet d'exécuter une instruction SQL pour chaque enregistrement dans le flux et la transmission de l'emploi à l'étape suivante.

L'instruction exécutée est la suivante (note que nous construisons l'instruction SQL en concaténant des morceaux de texte fixe des valeurs de la variable de ligne, qui sera adoptée par la composante précédente séquentiel):

"Septembre dwd_tiempo sem_id en mise à jour =" + + row2.semana
"+ 1 WHERE Ano_ =" +
 row2.ano_id + "et sem_id = 1 et Mes_ = 12" 

3) Nous avons terminé le processus de correction sur le terrain sous semano_id composé, qui est également erroné et qu'il est pour la semaine de l'année dans la notation AAAA-SS, où AAAA est l'année et SS de la semaine.Pour ce faire, nous utilisons aussi le contrôle tMySqlRow.

L'instruction exécutée est la suivante (également construit par la concaténation des morceaux de texte fixe des valeurs de la variable de ligne, qui sera adoptée par la composante précédente séquentielle).Dans ce cas, nous utilisons les fonctions MySQL (CONCAT et CAST) pour avoir une idée de la puissance du langage SQL en combinaison avec l'utilisation de variables Talend:

"Mise à jour enobi.dwd_tiempo" +
"Set semano_id = CONCAT (CAST (AS CHAR ),'-', Ano_ CAST (AS CHAR sem_id))"
+ "Où Ano_ =" + row2.ano_id + "et Mes_ = 12" 

Les étapes 2 et 3 auraient pu être faites etn une seule instruction SQL, mais nous nous sommes séparés pour plus de clarté.

L'ensemble du processus serait:


Aperçu complet de Talend emploi dans le règlement de semaines

Nous continuons de faire progresser notre projet et l'une des choses qui devient clair, c'est que la connaissance de consultant BI doit couvrir de nombreux domaines: bases de données, SQL, certains langages de programmation (Java, dans le cas de Talend), des outils la modélisation, les outils ETL, la théorie de la modélisation de données multidimensionnelles et ses variantes, quelques statistiques pour l'exploration de données, la perception des ERP, CRM, etc.C'est à l'insu de l'entreprise, indicateurs d'activité et le point de vue différent qu'il y aura à contribuer à la société que vous réaliser le projet. Nous avons à nouveau nous rappeler de ce qu'il a dit Jorge Fernandez sur son blog (" Le consultant BI, qui weirdo »).

Ensuite, nous allons effectuer le processus ETL pour la dimension Product.