Créer un pipeline de données
Utiliser des méthodes de fabrique rend le code non seulement plus lisible, mais aussi plus facile à utiliser. Dans cet exemple, vous allez vous entraîner à créer un pipeline de données qui extrait des données d'une base de données. La classe DataPipeline met en œuvre le patron de conception « factory method » et est présentée ici. Deux produits concrets de la classe Database sont également définis pour vous : Postgres et Redshift.
class DataPipeline:
def _get_database(self, provider):
if provider == "Postgres":
return Postgres()
elif provider == "Redshift":
return Redshift()
def extract_data(self, provider, query):
database = self._get_database(provider)
dataset = database.query_data(query)
print(f"Extracted dataset from {provider} database")
return dataset
Cet exercice fait partie du cours
Programmation orientée objet intermédiaire en Python
Instructions
- Créez un
items_pipelineen utilisant la classeDataPipeline, puis extrayez un jeu de données depuis une base"Redshift"avec la requêteSELECT * FROM items;. - Mettez à jour
items_pipelinepour récupérer depuis une base"Postgres"à la place, en utilisant la même requête qu'auparavant. - Créez un
etl_pipelinequi extrait des données depuis"Redshift".
Exercice interactif pratique
Essayez cet exercice en complétant cet exemple de code.
# Create an ETL DataPipeline, query using Redshift
items_pipeline = ____()
____.extract_data("____", "SELECT * FROM items;")
# Now, switch the pipeline to Postgres
____
# Finally, create an etl_pipeline with Redshift
____ = ____()
____.____("____", "SELECT * FROM sales;")