Py Gram ETL
Py Gram ETL
Py Gram ETL
Chargement des
import pygrametl packages nécessaires
connection = pygrametl.ConnectionWrapper(pgconn)
print('connexion établie')
TempsDebutEv_dimension = Dimension(
name='TempsDebutEv',
key='id_TempsD',
attributes=['moisTempsD', 'anneeTempsD'])
Location_dimension = Dimension(
name='LocationA',
key='id_Location',
attributes=['Rue','Codemunicipal'])
Evenement_dimension = Dimension(
Reproduction du schéma
name='Evenement', du datawarehouse
key='id_Evenement',
attributes=['nombrePersonneEv'])
Accident_Fact = FactTable(
name='Accident',
measures=['montantDommage'])
Définition des fonctions
de Transformation
# La phase de transformation
def transformerDate(row):
date = row['DateDebutInfraction']
date_split = date.split('/')
row['anneeTempsD'] = date_split[2]
row['moisTempsD'] = date_split[1]
Extraction
for row in AccidentSource:
print(row)
row['id_TempsD']=row['DateDebutInfraction']
Transformation
#
transformerDate(row)
Chargement de la
row['id_TempsD'] = TempsDebutEv_dimension.ensure(row)
dimension
« TempsDebutEv »
row['id_Evenement']=row['Numerodevenement']
row['nombrePersonneEv'] = pygrametl.getint(row['Nombredepersonnesaudossier'])
row['id_Evenement'] = Evenement_dimension.ensure(row)
row['id_Location'] = row['Rue']+row['Codemunicipal']
Location_dimension.ensure(row)
row['montantDommage']=pygrametl.getint(row['montantDommage'])
connection.close()
pgconn.close()