Snowpark er et kraftig verktøy for å jobbe med data direkte i Snowflake-miljøet. I denne delen skal vi gå gjennom hvordan du kan sette opp Snowpark, autentisere forbindelsen til Snowflake og bruke noen grunnleggende funksjoner for datamanipulering og analyse.
For å komme i gang med Snowpark, trenger du Python versjon 3.8 eller nyere. Først installerer du Snowpark-pakken ved hjelp av pip:
Når installasjonen er fullført, kan du bekrefte at Snowpark er riktig installert ved å kjøre følgende kommando:
Dette vil vise informasjon om installerte versjoner, noe som bør se ut omtrent som skjermbildet i Figur 6-1.
Nå kan du begynne å sette opp forbindelsen til Snowflake. Først oppretter du en ny database og skjema i Snowflake, eller bruker eksisterende:
Deretter, i din IDE, oppretter du en Python-fil, for eksempel ch7_snowpark.py, og setter opp autentisering og tilkobling til Snowflake med følgende kode:
Her er account_name den første delen av URL-en i administrasjonspanelet på Snowflake (før .snowflakecomputing.com). Denne informasjonen finner du under Admin ➤ Accounts ➤ Manage URLs. Bruk de samme innloggingsdetaljene du bruker for Snowflake. Husk også å bruke riktig database- og skjema-navn.
Når tilkoblingen er satt opp, kan du lagre og kjøre filen for å verifisere at alt fungerer som det skal, som vist i Figur 6-3. Funksjonen current_version() returnerer den nåværende versjonen av Snowflake-databasen, som for eksempel kan være "9.2.7" i eksempelet.
Snowpark DataFrame-operasjoner
Snowpark gir mulighet for en rekke kraftige datamanipuleringsoperasjoner via DataFrames. Dette lar utviklere utføre SQL-lignende operasjoner programmessig. For eksempel kan du opprette en DataFrame fra en kundetabell:
Deretter kan du gjøre transformasjoner som filtrering, aggregasjon, sortering og sammenføyning. Her er noen vanlige operasjoner:
-
Filtrering lar deg velge rader basert på spesifikke kriterier, som for eksempel å filtrere kunder med en konto-balanse mellom 5000 og 10000:
-
Aggregasjon lar deg gjøre beregninger på grupper av rader. Eksempelvis kan du aggregere etter nasjonsnøkkel og beregne gjennomsnittlig kontosaldo:
-
Sortering lar deg sortere rader etter en eller flere kolonner, som i dette eksempelet hvor data sorteres etter kontosaldo i synkende rekkefølge:
-
Sammenføyning kombinerer data fra flere tabeller basert på en relatert kolonne. Her blir kundetabellen sammenføyet med bestillingstabellen etter kunde-ID:
-
Vindusfunksjoner lar deg gjøre beregninger på et sett med rader som er relatert til den nåværende raden. For eksempel, for å beregne en løpende total:
Bruke brukerdefinerte funksjoner (UDF)
Snowpark lar deg også definere egne brukerdefinerte funksjoner (UDF). For eksempel kan du opprette en Python UDF for å beregne rabatt på en pris:
Denne funksjonen kan deretter brukes i en SQL-spørring for å beregne rabatt på bestillinger:
Bruke lagrede prosedyrer i Snowpark
Lagrede prosedyrer i Snowpark lar deg kapsle kompleks logikk i gjenbrukbare enheter som kan kjøres som en enkel enhet. Her er et eksempel på en lagret prosedyre som kopierer data fra én tabell til en annen:
Denne prosedyren kan deretter kalles for å kopiere data fra én tabell til en annen:
Maskinlæring med Snowpark
En av de mest kraftfulle funksjonene i Snowpark er muligheten til å integrere maskinlæringsmodeller direkte i Snowflake-miljøet. Du kan bruke biblioteker som scikit-learn for å trene og distribuere maskinlæringsmodeller i Snowflake.
For å gjøre dette, trenger du først å installere nødvendige biblioteker:
Deretter kan du trene en enkel maskinlæringsmodell, for eksempel en lineær regresjon, og bruke den i Snowflake som en UDF for sanntidsforutsigelser:
Modellen kan deretter brukes i sanntidsprosessering, noe som muliggjør prediksjoner direkte i Snowflake.
Hvordan bygge en moderne analytisk løsning med Snowflake
Matillion og Snowflake sammen tilbyr en kraftig plattform for ETL-prosesser (Extract, Transform, Load) og dataintegrasjon. Når du arbeider med Matillion, bruker du hovedsakelig nettleseren som arbeidsflate, og det samme gjelder for Snowflake. Ved å forstå hovedkomponentene i Matillions webgrensesnitt, kan du effektivt bygge og administrere datarørledninger for store datamengder.
Matillion-grensesnittet består av flere nøkkelpaneler. «Pipelines»-panelet viser alle orkestrerings- og transformasjonsrørledninger i prosjektet ditt. «Components»-panelet inneholder tilgjengelige komponenter, som koblinger og flytlogikk. Med «Schemas»-panelet kan du navigere gjennom databasens skjemaer og metadatatabeller, mens «Variables»-panelet viser prosjekt- og rørledningsvariabler som hjelper til med å parameterisere jobbene. Hovedarbeidsområdet er «Designer canvas», hvor du kan dra og arrangere komponenter. I tillegg gir du kontroll over arbeidsflyten gjennom knapper for validering, tidsplanlegging og kjøring av jobbene.
Et viktig aspekt ved å arbeide med Matillion er versjonskontroll. Gjennom grensesnittet kan du administrere endringer, trekke og dytte endringer til og fra prosjektet. Når du har satt opp og validert en jobb, kan du kjøre den for å initiere dataflyten. Denne prosessen kan inkludere flere trinn som å lage tabeller, laste inn data fra S3 til staging-tabeller, og til slutt transformere rådata til tabellformat før de lastes inn i dimensjonstabeller.
Etter at jobben er fullført, kan du sjekke de nye objektene som er opprettet i Snowflake, som tabeller og andre dataressurser. Eksempelet med GreenWave Technologies viser hvordan Matillion orkestrerer prosessen, og hvordan data lastes inn fra en offentlig S3-bucket. Dette eksemplet gir et klart bilde på hvordan du kan håndtere dataintegrasjon fra eksterne kilder og benytte Matillions forhåndsbygde koblinger for å spare tid.
For å oppnå en vellykket dataløsning er det avgjørende å utvikle et solid datamodellkonsept, enten ved å bruke metoder som Data Vault eller dimensjonal modellering. En av de beste måtene å designe en datamodell for Snowflake er ved å bruke SqlDBM, som gir visuelle verktøy for å bygge og administrere modeller. Det er også viktig å koble BI-verktøy til Snowflake for å gjøre dataene tilgjengelige for forretningsbrukere.
Tableau er et ideelt valg for å visualisere dataene i Snowflake. Ved å bruke Tableau kan ikke-tekniske brukere utføre dataoppdagelse ved hjelp av dra-og-slipp-metoder, kombinert med kraftig analyse og visualisering. Når Tableau Desktop er installert og koblet til Snowflake, kan du begynne å lage visualiseringer basert på dataene fra for eksempel CUSTOMER_ACCOUNT-tabellen. Tableau tilbyr både server- og desktopversjoner, i tillegg til en mobilapp som gir tilgang til dataene på farten.
Når du kobler Tableau til Snowflake, må du først installere ODBC-driveren fra Snowflake. Etter at du har gjort dette, kan du angi dine innloggingsdetaljer for å koble til Snowflake. Dette kan være admin-legitimasjonen som ble opprettet under Matillion-ETL-initieringen. Når du er tilkoblet, kan du bruke Tableau til å lage levende dataforbindelser, som betyr at Tableau henter dataene direkte fra Snowflake i sanntid. Denne tilnærmingen er ideell når du arbeider med store datamengder, ettersom den lar Snowflake utføre det tunge løftet mens Tableau håndterer visualiseringen.
En typisk prosess kan innebære å opprette en visualisering som for eksempel viser antall kunder født i USA. Ved å dra inn relevante dimensjoner som fødeland og beregnede felt, kan du raskt lage rapporter som gir innsikt. Tableau genererer bakgrunns-SQL-spørringer som kan inspiseres gjennom Snowflake sin webgrensesnitt for å forstå hvilke operasjoner som blir utført på databaselaget.
Når du bygger slike løsninger, er det viktig å ikke bare fokusere på teknologiens funksjonalitet, men også på den underliggende arkitekturen som støtter den. Valget av datamodelleringsteknikk og hvordan du knytter sammen ulike teknologier som Snowflake og Tableau, er avgjørende for å skape en robust og skalerbar løsning. For eksempel bør du vurdere hvordan du vil strukturere og lagre dataene for å muliggjøre rask spørring og enkel tilgang for sluttbrukere.
I tillegg til å bruke de riktige verktøyene for ETL og BI, bør du også ta hensyn til hvordan disse verktøyene kan integreres med eksisterende systemer og datakilder. Forretningsbehovene vil ofte diktere hvilke eksterne datakilder som skal kobles til løsningen, enten det er sosiale medier, eksterne databaser eller skybaserte datalagre. Derfor er det avgjørende å ha et fleksibelt system som kan tilpasses dynamiske databehov.
Hvordan optimalisere Snowflake for AI og maskinlæring: Nøkkelfunksjoner og beste praksis
Snowflake er mer enn bare en plattform for datalagring; det er et kraftig verktøy for kunstig intelligens (AI) og maskinlæring (ML), og gir muligheter til å bygge, bruke og vedlikeholde ML-modeller med minimal kompleksitet. Integreringen av maskinlæring i Snowflake gjør det mulig for brukere på alle nivåer – fra nybegynnere til erfarne dataforskere – å dra nytte av avanserte funksjoner uten å måtte ha en dyptgående bakgrunn innen datavitenskap.
En av de største fordelene med Snowflake er hvordan det senker terskelen for maskinlæring, og gjør det tilgjengelig gjennom en rekke forhåndsbygde modeller og funksjoner. I denne sammenhengen er det avgjørende å forstå hvordan du kan tilpasse plattformen for å maksimere ytelse, kostnadseffektivitet og ressursutnyttelse, samtidig som du sikrer at du får mest mulig ut av de kraftige AI- og ML-verktøyene.
Forhåndstrente ML-modeller
En av de enkleste måtene å komme i gang med maskinlæring i Snowflake er ved å bruke de forhåndstrente modellene som tilbys av plattformen. Disse modellene kan brukes direkte i SQL-spørringer, noe som eliminerer behovet for ekstra infrastruktur eller kompleks integrering. For eksempel kan du bruke klassifiseringsmodeller for å forutsi kunders kjøpsvaner basert på historiske data, eller du kan bruke anomalideteksjon for å overvåke datakvaliteten i sanntid.
Klassifisering, prognoser og anomalideteksjon
Disse tre funksjonene representerer noen av de mest anvendelige bruksområdene for Snowflake ML. Klassifiseringsmodellene gjør det mulig å tildele nye kunder til en bestemt forbrukskategori (for eksempel høy, middels eller lav) basert på kjøpshistorikk. Prognosemodeller kan brukes til å forutsi fremtidige trender, som f.eks. månedlige inntektsprognoser, og tar hensyn til sesongvariasjoner og spesifikke hendelser som høytider. Anomalideteksjonsmodeller er ideelle for å oppdage unormale hendelser eller avvik i dataene som kan indikere potensielle problemer med datakvalitet eller integritet.
LLM-funksjoner (Store språkmodeller)
En av de mest spennende utviklingene innen Snowflake er integreringen av store språkmodeller (LLMs), som kan brukes til tekstgenerering, oppsummering og sentimentanalyse. Dette åpner opp nye muligheter for naturlig språkbehandling (NLP) direkte på data som er lagret i Snowflake. Eksempler på bruksområder inkluderer automatisk oppsummering av kundevurderinger, sentimentanalyse av innlegg på sosiale medier, eller oversettelse av tekst til forskjellige språk. Bruken av LLM-funksjoner krever ingen kompleks installasjon, og kan enkelt integreres i eksisterende arbeidsflyter.
Egendefinerte modeller og distribusjon
For de som har spesifikke behov eller ønsker å bruke sine egne ML-modeller, tilbyr Snowflake muligheten til å utvikle og distribuere egendefinerte modeller. Gjennom Snowpark ML kan brukerne bygge modeller ved hjelp av populære Python-baserte rammeverk som TensorFlow, PyTorch og Scikit-learn, og deretter lagre disse modellene i Snowflake’s Model Registry. Dette gjør det lettere å administrere og implementere egne ML-løsninger i plattformen.
Embeddings og Feature Store
Snowflake gir også støtte for vektorbasert databehandling, som muliggjør likhetssøk og anbefalingssystemer. For applikasjoner som bildesøk, personlige anbefalinger og NLP-basert søk, kan du bruke Snowflakes funksjoner for å lagre og sammenligne embeddings. En annen viktig funksjon er Snowflake Feature Store, som fungerer som et sentralisert register for ML-features, og gir brukerne et effektivt verktøy for å håndtere datasett som brukes i modelltrening.
Snowflake Copilot
Snowflake Copilot er en LLM-assistent som hjelper brukere med å stille naturlige språkspørsmål om dataene sine og generere SQL-spørringer. Dette verktøyet gjør det enklere for både tekniske og ikke-tekniske brukere å navigere i Snowflake og få ut de mest relevante innsiktene fra dataene sine.
Hvordan sikre god datakvalitet og kostnadseffektivitet
For å maksimere verdien av Snowflake, er det viktig å forstå hvordan man kan optimere både ytelse og kostnader. I tillegg til å bruke ML-modeller effektivt, er det viktig å implementere gode strategier for kostnadsstyring. Dette inkluderer optimalisering av datalagring, finjustering av spørringer for raskere responstider, samt implementering av automatisk skalering for å håndtere varierende arbeidsbelastninger. Snowflake tilbyr også funksjoner som budsjettkontroll og overvåking av kredittbruk, som gir deg bedre innsikt i bruken og hjelper deg med å holde kostnadene under kontroll.
For at Snowflake skal være virkelig effektiv, er det ikke bare nok å bruke teknologiske verktøy på riktig måte. Du må også forstå hvordan du kan administrere og overvåke plattformen over tid. Det er viktig å regelmessig gjennomgå ytelsesmålinger og datakvalitet for å sikre at systemet forblir responsivt og kostnadseffektivt.
Hvordan forberede data for AI-prosjekter i Snowflake
Snowflake har utviklet et sterkt økosystem for datahåndtering, noe som gjør det ideelt for å forberede data til generative AI-prosjekter. Uansett hvor avansert modellen er, vil dens ytelse være begrenset hvis ikke dataene er godt forvaltet og tilstrekkelig forberedt. Dette kapittelet tar for seg de nødvendige trinnene i denne prosessen, fra datadetektering til sikring av datastyring og -sikkerhet.
Dataopplevelse er kritisk for ethvert AI-prosjekt, og derfor er datadetektering et første viktig steg. Snowflake tilbyr SQL-kommandoer og taggingsfunksjoner som forenkler prosessen. Ved hjelp av innebygde kommandoer som DESCRIBE TABLE og SHOW TABLES, kan man raskt analysere egenskapene til dataene, inkludert datatype, distribusjon, nullverdier og andre statistiske egenskaper. Dette er viktig for å forstå hvorvidt dataene er passende for prosjektet, samtidig som det hjelper med å identifisere potensielle datakvalitetsproblemer.
Tagging er en annen viktig funksjon som lar deg organisere og kategorisere dataene dine. Ved å merke datasett med relevante etiketter, som for eksempel "sentimentanalyse" for kundeanmeldelser eller "bilder" for bildegenerering, kan du raskt finne de riktige datasettene. Snowflake gjør det enkelt å bruke denne funksjonaliteten via SQL-kommandoer som ALTER TABLE, som lar deg legge til metadata på tabeller og kolonner.
Når man har identifisert de relevante datasettene, er neste steg å rense og transformere dataene for å gjøre dem egnet for AI-prosjekter. Dette innebærer ofte å håndtere vanlige datakvalitetsproblemer som manglende verdier, irrelevante data, uteliggere og datakonvertering. Snowflake tilbyr en rekke SQL-funksjoner som kan hjelpe til med datarensing. En av de mest vanlige utfordringene er manglende verdier, og det finnes flere måter å håndtere dette på i Snowflake. Den enkleste metoden er å fjerne rader som inneholder manglende verdier, noe som kan gjøres ved å bruke WHERE-klausuler. Alternativt kan man bruke imputeringsmetoder, hvor manglende verdier erstattes med estimerte verdier, som gjennomsnitt, median eller modus, ved hjelp av funksjonene COALESCE eller NVL.
Uteliggere kan også ha stor påvirkning på modellens resultater, og derfor er det viktig å identifisere og håndtere disse. Snowflake tilbyr flere statistiske funksjoner som kan brukes til å oppdage uteliggere, som STDDEV(), PERCENTILE_CONT() og APPROX_PERCENTILE(). Det er viktig å være oppmerksom på hvordan man behandler uteliggere for å sikre at de ikke forvrenger resultatene.
Data kan også kreve konvertering fra en datatype til en annen, spesielt når man arbeider med store datamengder. Snowflake gjør det enkelt å konvertere data til tekstformat ved hjelp av SQL-funksjoner som CAST og TO_VARCHAR, som gjør det lettere å bruke dataene i tekstbaserte applikasjoner og LLM (Large Language Models).
Når det gjelder beste praksis for bruk av Snowflake ML, er det flere faktorer å vurdere. Det er viktig å optimalisere datalagring ved å kun lagre de mest relevante funksjonene for maskinlæringsmodellen. For eksempel, når du arbeider med et bedrageriforebyggingssystem, kan du lagre nøkkelfunksjoner som transaksjonsbeløp og tidsstempler, i stedet for å lagre hele datasettet. Å overvåke ytelsen til modellene regelmessig er også avgjørende for å sikre at de leverer nøyaktige resultater. Dette kan gjøres ved å sammenligne modellens prediksjoner med faktiske utfall, som for eksempel å spore nøyaktigheten til en kundechurn-prediksjonsmodell.
For å automatisere arbeidsflyter kan man bruke verktøy som Snowpark eller Airflow for å sette opp automatiserte arbeidsflyter som for eksempel å retrene modeller med nye data. I tillegg kan Snowflake’s cache-mekanismer brukes for å optimalisere ytelsen til AI-modellene, ved å lagre ofte spurte data som embeddings for anbefalingssystemer.
Det er også viktig å ha gode rutiner for datastyring og sikkerhet gjennom hele prosessen. Snowflake gir en sikker plattform for å håndtere data, og det er viktig å implementere de nødvendige sikkerhetstiltakene for å beskytte sensitive opplysninger.
For AI-prosjekter er det avgjørende at dataene er godt forvaltet, rengjort og transformert før de brukes i modellene. Snowflake gir verktøyene som trengs for å gjøre disse trinnene effektivt og på en sikker måte. Det er ikke nok å bare ha store mengder data – kvaliteten på dataene er det som virkelig avgjør suksessen til AI-prosjektet.

Deutsch
Francais
Nederlands
Svenska
Norsk
Dansk
Suomi
Espanol
Italiano
Portugues
Magyar
Polski
Cestina
Русский