Académique Documents
Professionnel Documents
Culture Documents
L3 BI-EBUS
Haïfa Nakouri
hayfa.nakouri@esen.tn
ESEN Manouba
2021/2022
Objectifs du chapitre
Modèle en étoile
Modèle en constellation
(+) Réduction du
volume
(+) Permettre des
analyses par pallier
(drill down) sur la
dimension
(-) Navigation difficile
hiérarchisé
Haïfa Nakouri LPE-BI ESEN 2021/2022 11
(-) Nombreuses jointures
Modèle en constellation
import pygrametl
from pygrametl.datasources import CSVSource, MergeJoiningSource
products = CSVSource(csvfile=open('products.csv', 'r', 16384),
delimiter=',')
sales = CSVSource(csvfile=open('sales.txt', 'r', 16384), delimiter='\t')
data = MergeJoiningSource(src1=products, key1='productID',
src2=sales, key2='productID')
UnionSource
TransformingSource
RoundRobinSource
ProcessSource
CrossTabbingSource
Exemple
import psycopg2
pgconn = psycopg2.connect(dbname=‘DWProduit',
user='postgres', password='0000')
cursor = pgconn.cursor()
cursor.execute("""SELECT montantVente FROM
"DWProduit".Ventes""")
ListV=[]
for vente in cursor:
ListV.append(vente)
print(ListV) classe cursor.
Permet au code Python d’exécuter une
commande PostgreSQL dans une session de
Haïfa Nakouri LPE-BI ESEN 2021/2022 28
base de données
ETL : Transformation
def extractdomaininfo(row):
# Extraire la partie 'www.domain.org' de cette
# adresse 'http://www.domain.org/page.html'
domaininfo = row['url'].split('/')[-2]
row['domain'] = domaininfo
Haïfa Nakouri LPE-BI ESEN 2021/2022 31
Transformation des données en Python
Ecrire des fonctions spécifiques
def split_timestamp(row):
# récupérer la date de format jj-mm-aaaa
timestamp = row['timestamp']
timestamp_split = timestamp.split(‘-')
# Récupérer chaque élément à part et le rajouter
#dans le dictionnaire
row['year'] = timestamp_split[0]
row['month'] = timestamp_split[1]
row['day'] = timestamp_split[2]
Exemple
insert(row)
insère de nouveaux faits directement dans la table de faits
lorsqu'ils sont transmis à la méthode.
Exemple simple pour charger les faits à partir d’une liste de
dictionnaires :
Lookup({cle1:valeur1},{cle2:valeur2}, …)
vérifie si la base de données contient un fait avec la
combinaison donnée de clés référençant les dimensions.
(2) Clic
Le nouveau schema de la
BD est crée
Supports de Cours
Zahra KODIA AOUINA- « Langage évolué et BI» -
ISG Tunis
Karima Tekaya – « Informatique Décisionnelle » -
INSAT
Fatma Baklouti – « Les entrepôts de données (Data
Warehouses) » - INSAT
Livres
Ralph Kimball - « Concevoir et déployer un Data
Warehouse » - Editions Eyrolles, 2000