Lezen uit een database
In deze oefening ga je data ophalen uit tabellen van een lokale PostgreSQL-database. De data die je gebruikt komt uit de Pagila-voorbeeldatabase. Deze database ondersteunt een fictieve dvd-winkelapplicatie en wordt vaak gebruikt als voorbeeld in educatieve context.
Je maakt en gebruikt een functie die een databasetabel in een pandas DataFrame-object zet. De tabellen die je ophaalt zijn:
film: de films die in de dvd-winkel worden verhuurd.customer: de klanten die films hebben gehuurd in de dvd-winkel.
Om verbinding te maken met de database gebruik je een PostgreSQL connection URI, die er ongeveer zo uitziet:
postgresql://[user[:password]@][host][:port][/database]
Deze oefening maakt deel uit van de cursus
Introductie tot Data Engineering
Oefeninstructies
- Maak de functiedefinitie van
extract_table_to_pandas()af door het argumenttablenamein de query op te nemen. - Vul de connection URI in. De gebruikersnaam en het wachtwoord zijn respectievelijk
replenpassword. De host islocalhosten de poort is5432. De database ispagila. - Maak de aanroepen van
extract_table_to_pandas()af om de tabellen film en customer op te halen.
Praktische interactieve oefening
Probeer deze oefening eens door deze voorbeeldcode in te vullen.
# Function to extract table to a pandas DataFrame
def extract_table_to_pandas(tablename, db_engine):
query = "SELECT * FROM {}".format(____)
return pd.read_sql(query, db_engine)
# Connect to the database using the connection URI
connection_uri = "postgresql://____:____@____:____/____"
db_engine = sqlalchemy.create_engine(connection_uri)
# Extract the film table into a pandas DataFrame
extract_table_to_pandas("____", db_engine)
# Extract the customer table into a pandas DataFrame
extract_table_to_pandas("____", db_engine)