Conception des requêtes ETL (pilotage)

De Wiki1000

Sommaire

Principe

Les requêtes ETL lisent les données de l'application pour les écrire dans la base de données du Datamart en générant un script SQL pilotage


Création d'une requête ETL

Il faut créer une nouvelle requête en sélectionnant la table des données sources (Application) dans la champs 'table maitre' et en sélectionnant ETL dans le champs 'Type'.

pilotage

Il faut ensuite insérer les colonnes de la classe source devant être récupérées

pilotage

Affectation des propriétés Datamart de la requête

Il faut ensuite affecter les propriétés datamart de la requête

Proprietesrequetesetl.png

Les champs suivant doivent être renseignés:

  • Table datamart à alimenter
Sélectionnez la table du datamart devant recevoir les données depuis l'application.
  • Datamart colonne clé
Sélectionnez la colonne qui servira de clé de recherche lors des mise à jour différentielles du datamart. Si ce champs n'est pas renseigné, c'est la colonne contenant l'oid (si elle existe) qui sera utilisée.
  • Datamart date de modification
Sélectionnez la colonne qui contient la date de dernière mise à jour des données (pour les mises à jour différentielles. Si ce champs n'est pas renseigné, c'est la colonne UpdDate qui sera utilisée.
  • Datamart colonne société
Sélectionnez la champs de la table du datamart qui doit contenir la nom de la société.
  • Datamart réinitialiser la table datamart
Cochez cette case si la table du datamart est réinitialisée puis alimentée avec la totalité des données à chaque exécution. Il n'y a alors pas de mise à jour différentielle.
  • Datamart créer les nouvelles lignes
Cochez cette case si les données de l'application créée depuis l'exécution précédente doivent être insérées dans la table du datamart.
  • Datamart modifie les lignes existantes
Cochez cette case si les données de l'application modifiées depuis l'exécution précédente doivent doivent être synchronisée dans la table du datamart (Mise à jour différentielle).
  • Datamart supprime les lignes existantes
Cochez cette case si les données qui ont été supprimées de l'application depuis l'exécution précédente doivent être également supprimées dans le datamart.
  • Datamart utilisation de la date de modification
Cochez cette case si la date de dernière modification doit être utilisée pour la mise à jour incrémentielle.
  • Datamart désactive les déclencheur
Cochez cette case pour désactiver les déclencheurs de la table du datamart afin d'améliorer les temps de chargement. Les déclencheurs sont alors réactivés après l'exécution.
  • Datamart ajouter une ligne de code
Cochez cette case pour qu'une ligne dont la clè est égale à * dans le datamart. Cette ligne sera alors utilisée lorsqu'un rôle n'est pas renseigné sans avoir recours à une jointure externe (peu performante).
  • Datamart exécution si la base est vide
Cochez cette case si la requête ETL doit être exécutée si la table du datamart ne contient aucune donnée.
  • Datamart exécution si la base n'est pas vide
Cochez cette case si la requête ETL doit être exécutée si la table du datamart contient déjà des données.
  • Datamart filtre des données
Saisissez éventuellement une condition d'intégration des données.

Affectation des propriétés Datamart des colonnes

Pour chacune des colonnes devant alimenter la table du datamart, il faut renseigner l'onglet Datamart de l'écran de propriétés.

pilotage

  • Le champs 'Champs datamart à alimenter' doit contenir le nom du champs dans la table du datamart qui recevra la donnée.
  • La case à cocher 'Colonne clé' doit être cochée si la clé unique du datamart contient plusieurs colonnes et que cette colonne fait partie de cette clé.

Onglet SQL

Dans le concepteur de requêtes, l'onglet SQL permet de visualiser le script SQL généré.

declare @datemin datetime
select @datemin=Convert(DateTime,"2009-09-07 08:51:09",120) from dbPilotage560biFrsou.dbo.TDI_COMPTE
select
 TCompteGeneral.UpdDate UpdDate,
  SUBSTRING(TCompteGeneral.codeCompte,1,30) codeCompte,
  SUBSTRING(TCompteGeneral.Caption,1,30) Caption
from
db560ProjetEntreprise.dbo.TCOMPTEGENERAL TCompteGeneral WITH (NOLOCK)
where
  (TCompteGeneral.idOTP = 61)
 and (
(TCompteGeneral.UpdDate>@datemin))
select distinct
  SUBSTRING(TCompteGeneral.codeCompte,1,30),
  TCompteGeneral.UpdDate UpdDate,
  SUBSTRING(TCompteGeneral.Caption,1,30) Caption
from
db560ProjetEntreprise.dbo.TCOMPTEGENERAL TCompteGeneral WITH (NOLOCK)
where
  (TCompteGeneral.idOTP = 61)
  and (
(TCompteGeneral.UpdDate>Convert(DateTime,"2009-09-07 08:51:09",120)))
select
 TCompteGeneral.UpdDate UpdDate,
  SUBSTRING(TCompteGeneral.codeCompte,1,30) codeCompte,
  SUBSTRING(TCompteGeneral.Caption,1,30) Caption
from
db560DossierFRPMulti.dbo.TCOMPTEGENERAL TCompteGeneral WITH (NOLOCK)
where
  (TCompteGeneral.idOTP = 61)
 and (
(TCompteGeneral.UpdDate>@datemin))
select distinct
  SUBSTRING(TCompteGeneral.codeCompte,1,30),
  TCompteGeneral.UpdDate UpdDate,
  SUBSTRING(TCompteGeneral.Caption,1,30) Caption
from
db560DossierFRPMulti.dbo.TCOMPTEGENERAL TCompteGeneral WITH (NOLOCK)
where
  (TCompteGeneral.idOTP = 61)
  and (
(TCompteGeneral.UpdDate>Convert(DateTime,"2009-09-07 08:51:09",120)))

Pour chacune des sociétés le requêteur peut génèrer une requête SQL d'insertion, une requête SQL de modification et une requête SQL de suppression.

PilotageDéveloppement DSM





Whos here now:   Members 0   Guests 1   Bots & Crawlers 0
 
Outils personnels