Eenvoudige Snowflake-Python connecties met BAG data en Snowpark

Michael Tuijp

Geospatial Data Scientist

De Snowflake Marketplace BAG dataset is een gratis dataset die met één simpele query toegankelijk is. In ons vorige artikel over Snowflake toonden we hoe je met Tableau verbinding maakt met de dataset. Deze keer laten we zien hoe je Python en het Snowpark-pakket gebruikt om toegang te krijgen tot de gegevens vanuit Snowflake, rechtstreeks in een lokaal Python Jupyter Notebook.

Wat is Snowpark?

Snowpark is onderdeel van Snowflake. Snowpark biedt in de kern een API die ontwikkelaars kunnen gebruiken om DataFrames te construeren die worden uitgevoerd op het platform van Snowflake. Het maakt coderingen in andere talen dan SQL zoals Scala, Java en Python mogelijk om te profiteren van het krachtige platform Snowflake, zonder dat je Snowflake hoeft te verlaten. Hierdoor kunnen ontwikkelaars van datatoepassingen complexe transformaties uitvoeren binnen Snowflake en tegelijkertijd profiteren van ingebouwde, onbeperkte schaalbaarheid, prestaties, bestuurs- en beveiligingsfuncties. 

Snowflake

Starten met de data-analyse

Uiteraard heb je eerst een (gratis) Snowflake-account nodig. Je kunt je via deze link aanmelden. De standaardrol is ingesteld op 'Public'. Het enige dat je hoeft te doen om je query's te verwerken, is een warehouse aanmaken voor je account. Als je naar het tabblad 'Worksheets' gaat en op de '+Worksheet' knop klikt, kun je een nieuwe warehouse maken met de volgende opdrachten:

CREATE OR REPLACE WAREHOUSE MY_WH WITH WAREHOUSE_SIZE='X-SMALL';
GRANT USAGE ON WAREHOUSE MY_WH TO ROLE PUBLIC

Hiermee creëer je een nieuwe warehouse (kleinste versie) en wijs je gebruiksrechten toe aan je publieke rol. Na deze stap zijn we klaar om Jupyter Notebook te installeren. De instructies vind je hier. De volgende stap is de installatie van het Snowpark-pakket. Dit kun je eenvoudig doen met het pip commando in de omgeving waarin je werkt. 

pip install snowflake-snowpark-python

Zorg ervoor dat je het standaard pandas-pakket installeert, omdat we onze opgevraagde tabel in een pandas-dataframe willen veranderen.

pip install pandas

Eenmaal geïnstalleerd, kunnen we beginnen met het maken van onze verbinding.

De bibliotheek importeren

Om van start te gaan, importeren we de relevante Snowflake-bibliotheken. Dat doen we met deze code: 

### Import Snowpark for Python
from snowflake.snowpark import Session
from snowflake.snowpark.functions import col
import pandas as pd

Een sessie object maken

Na het importeren van het Snowpark pakket, maken we een sessie-object. Hier kun je je accounts, credentials, rol en warehouse invullen om verbinding te maken met de BAG dataset binnen de Marketplace. Dat doe je met deze functie.

Verbinding maken met de BAG-dataset in de Snowflake Marketplace

Zodra een sessie object is aangemaakt, kunnen we verbinding maken met de BAG dataset. Je kunt de volledige dataset raadplegen of een specifieke query naar wens schrijven (zoals deze voorbeelden). Daarna zet je de geraadpleegde tabellen om in Pandas dataframes, waarop je de gewone datatransformaties kunt uitvoeren. 

Nadat je de code hebt uitgevoerd, zou je een Pandas dataframe moeten zien, zoals onderstaande afbeelding. 

Pandas dataframe

Gefeliciteerd, je hebt zojuist de BAG dataset opgevraagd vanuit Snowflake door alleen Jupyter Notebook te gebruiken! Je bent nu klaar om complexe Python data-analysetools te gebruiken voor je opgevraagde data. 

Heb je nog vragen of opmerkingen rondom dit onderwerp? Neem contact met ons op en we helpen je hier graag bij. 

Adviesgesprek