Databricks | En guide

01.05.2023 | 8 min lesetid

Med riktig datastrategi, data-organisering og arkitektur kan virksomheter få innsikt som gir en konkurransefordel. Du trenger også teknologi. I denne artikkelen diskuterer vi en stor - og raskt voksende - SaaS-teknologi, Databricks. Vi går gjennom nøyaktig hva Databricks er, og hvordan teknologien understøtter en data lakehouse-arkitektur. Vi gir eksperttips om hvordan det bør brukes for data engineering eller maskinlæring, og dekker hva som skiller Databricks fra andre verktøy som tilbyr lignende muligheter. Vi gir også ressurser for å hjelpe deg med å komme i gang.

Hva er Databricks?

Databricks, utviklet av skaperne av Apache Spark, er en skybasert plattform for dataprosessering til analyse og rapportering. Plattformen kan transformere data til innsikt ved hjelp av SparkSQL, gi aktive API-tilkoblinger til rapporteringsverktøy som Power BI, Qlikview og Tableau, og bygge prediktive modeller ved hjelp av SparkML.

Databricks kjører på Microsoft Azure, Amazon Web Services (AWS) og Google Cloud Platform (GCP), noe som gjør det enkelt for virksomheter å håndtere enorme mengder data og utføre maskinlæringsoppgaver.

Databricks reduserer kompleksitetene i databehandling for Data Scientists og Data Engineers, noe som gjør at de kan utvikle ML-applikasjoner ved hjelp av R, Scala, Python eller SQL-grensesnitt i Apache Spark.

Databricks Data Lakehouse Platform (hentet fra Databricks.com)
Databricks Data Lakehouse Platform (hentet fra Databricks.com)

Hvordan understøtter Databricks en data lakehouse-arkitektur?

Mange virksomheter har frem til nå samlet store mengder data enten i datavarehus eller data lakes. Databricks-teknologien muliggjør en data lakehouse-arkitektur ved å kombinere de beste funksjonene fra både data lakes og datavarehus. Et data lakehouse er en ny type dataarkitektur som tilbyr fordelene med datainnsjøer (skalerbarhet, lav kostnad og fleksibilitet) og datavarehus (ytelse, pålitelighet og strukturert data).

Databricks sin beskrivelse av et data lakehouse
Databricks sin beskrivelse av et data lakehouse

Vi mener databricks støtter data lakehouse-arkitekturen gjennom følgende egenskaper og funksjoner:

  1. Databricks introduserte Delta Lake, en lagringsformat som tilfører pålitelighet og ytelse til data lakes. Delt Lake gir transaksjonell konsistens, versjonskontroll ved hjelp av en ACID-transaksjonsmotor. Dette bidrar til å løse noen av de vanligste utfordringene knyttet til data lakes, slik som å håndtere ustrukturerte data og sørge for pålitelighet.
  2. Databricks benytter seg av Apache Spark, en open-source distribuert databehandlingsmotor, for å tilby skalerbarhet og høy ytelse. Databricks har flere innebygde optimaliseringer, som Adaptive Query Execution (AQE) og Delta Engine, som forbedrer ytelsen ved å optimalisere spørringer automatisk. Dette betyr at data lakehouse-arkitekturen kan skalere for å håndtere store mengder data og utføre komplekse analyser raskt.
  3. Databricks har innebygde funksjoner for å støtte utvikling og implementering av maskinlærings- og AI-modeller, og støtter samtidig grensensnitt mot vanlige rappporteringsverktøy som Power BI, Tableau og Qlik.
  4. Databricks støtter en rekke datakilder og integrasjoner, slik at virksomheter kan samle og konsolidere data fra forskjellige kilder i data lakehouse-arkitekturen. Plattformen støtter både batch- og streamingdata. Databricks kan lese og skrive data fra/til forskjellige dataformater som Delta Lake, CSV, JSON, XML, Parquet, og andre.

Databricks var selskapet som først innførte data lakehouse-konseptet. Merk at også andre prosesseringsmotorer kan benyttes for å muliggjør en slik arkitektur.

Eksempel på overordnet arkitektur med Databricks på Microsoft Azure
Eksempel på overordnet arkitektur med Databricks på Microsoft Azure

Hvordan posisjonerer Databricks seg mot andre verktøy?

Det er mange teknologier som gjør en god jobb innen dataprosessering. Vår erfaring er at det kommer an på behovene og kompetansen som er der fra før hvilken teknologi som bør velges.

Vi her trukket frem noen punkter som kan være verdt å vurdere mot de behovene din organisasjon har:

  • Databricks leverer bare prosessering, men ikke lagring. Databricks er primært rettet mot å være en effektiv prosesseringsmotor for kode og algoritmer. Databricks er, relativt til noen andre prosesseringsmotorer, ganske kostnadseffektiv. Dette vil selvfølglig være avhengig av hvilke workloads som skal kjøres.
  • Databricks’ kjernearkitektur kjører på Apache Spark, en åpen kildekode-analyse motor med fokus på data parallellitet. Spark-arkitekturen fungerer med en sjåfør/arbeidsnode-system, som lar deg bruke mange servere som én. Enhver mengde arbeids-/utfører-noder jobber på samme jobb, stykke for stykke, og når hver server er ferdig, tar den med seg utdataene tilbake til hovedserveren/styringsnoden og monterer alt sammen for endelig utdata.
  • Siden Databricks er basert på Open Source, som gjør at mange andre Open Source-biblitok som Koalas kan benyttes (tilsvarende Pandas, men distribuert på Apache). Data scientists kan da bruke vanlige pakker som TensorFlow, PyTorch eller scikit-learn.
  • Databricks virker på mange skyplattformer og mot mange databaser, som gir god portabilitet og reduserer leverandør-lock-in. Databricks kan kjøres på Azure, AWS, og Google Cloud Platform (GCP).
  • Databricks er enkelt å komme i gang med. Data engineers og Data scientist kan skrive kode i deres preferte spåk - SQL, Python, Scala eller R. Notebook-grensesnittet til Databricks gjør det relativt enkelt å samarbeide med andre utviklere om den samme koden. Parprogrammering og debugging blir mer effektivt. Databricks kan også brukes til å synkronisere med GitHub, DevOps eller andre kode-repositorier.

Noen råd fra våre erfarne data engineers før implementering av Databricks

Vi har beskrevet en omfattende plattform for data engineering og maskinlæring som er bygget for å skalere i skyen og som passer godt for mellomstore og store virksomheter. Om du vurderer Databricks som en sentral løsning for å prosessere data, bør tenke på følgende før du tar en beslutning:

  1. Gjør de grunnleggende tingene først: Ikke la deg friste av maskinlæring med en gang. Begynn med å få på plass ett eller flere godt definert kuraterte lag med beskrivende metadata. Hvis du ikke kan fortelle nøyaktig hva salgstallene dine er og hvor du finner dem, bør du ikke benytte et maskinlæringsalgoritme for å forutsi fremtidig salg. Fokuser på den operative verdien av deskriptive data før du går videre til mer komplekse funksjoner.
  2. Design en effektiv og ryddig dataflyt: Data bør flyte i en retning, hvis ikke kan det være krevende å bevare kontrollen over dataenes opprinnelige og transformasjon. Definer guidelines og data-arkitektur som gjør at dere får en data lakehouse og ikke en datasump.
  3. Avklar dirigenten for orkesteret: Hvordan kan du være sikker på at data science-teamet starter jobbene i synkronisering med fullføring av data engineering-jobber? Forstå hvordan Databricks-skriptene dine vil bli orkestrert og bruk eventuelt et eksternt verktøy for å koordinere alle Databricks-jobber. Gå oss opp prosesser og organisering rundt dette.
  4. Forny kompetansen: Databricks er ikke en GUI-styrt programvare. Data engineers og data scientists vil skrive kode som er unik for bruksområdene dine. Har du den interne ekspertisen til å bruke Databricks riktig? Evner dine Data Engineers å skrive ren og effektiv kode? Hvor skal denne koden skrives? Har du dokumentasjon på plass ved overgangen til ny arkitektur? Investeringer i data-organisasjonen din må alltid til for å få verdi i investeringer i teknologi. Invester i talent og Databricks - det er ikke enten eller.

Vanlige spørsmål om Databricks

Hvordan fungerer Databricks med Apache Spark?

Databricks er tett integrert med Apache Spark, et populært rammeverk for storskala databehandling. Plattformen gir en enkel måte å opprette og administrere Spark-klustre på, og gir data engineers et brukervennlig grensesnitt for å skrive og kjøre Spark-jobber. Databricks sørger også for automatisk skalering, ytelseoptimalisering og feilhåndtering ift vanlig Spark.

Hva er Databricks Runtime?

Databricks Runtime er et distribuert databehandlingsmiljø som er optimalisert for Databricks-plattformen. Det inkluderer innebygde biblioteker som er spesielt designet for å arbeide med store datasett og kjøre komplekse analyser.

Hva er Delta Lake, og hvordan fungerer det med Databricks?

Delta Lake er et lagringssystem for store datasett som er utviklet av Databricks. Delta Lake er basert på Apache Parquet og tilbyr en rekke funksjoner, inkludert ACID-transaksjoner, tidsreise og datakatalog.

Hvordan fungerer Databricks med SQL?

Databricks gir full støtte for både SQL og Python. Dette gjør det enkelt for data engineers å kjøre SQL-spørringer og analysere data, men gir også gode muligheter for data scientists å benytte Python-funksjoner og -bibliotek.

Hva er Databricks Delta Live Tables (DLT)?

Databricks Delta Live Tables (DLT) er en funksjon i Databricks som hjelper Data Engineers og Data Scientists med å forenkle og automatisere bygging og vedlikehold av dataflyt i streaming og batch. DLT lar brukere definere dataflyt ved hjelp av SQL eller Python.

Hva er Databricks Unity Catalog?

Databricks Unity Catalog er en sentralisert datakatalogtjeneste som gir brukere av Databricks-plattformen en enhetlig visning av alle dataressurser og metadata på tvers av organisasjonen. Unity Catalog forenkler datasøk, dataoppdagelse og data governance, og har funksjoner som sentralisert tilgangsstyring på tvers av miljøer, data lineage og felles oversikt over data og ressurser.

Hva er MLflow?

MLflow er et åpen kildekode-prosjekt utviklet av Databricks som har som mål å forenkle maskinlæringsarbeidsflyten. Det gir data engineers og data scientists et rammeverk for å spore eksperimenter, pakke og distribuere modeller og administrere maskinlæringsprosessen fra ende til annen.

Kom i gang med Databricks

  • Databricks Community Edition: Det beste stedet å starte er å opprette en gratis Databricks community-konto. Dette vil la deg starte et lite clluster or å leke rundt og bli kjent med det grunnleggende i Databricks. Det er flott å leke rundt i Databricks på egenhånd, men vi anbefaler å bruke dette sammen med et form for onlinekurs (se nedenfor).
  • Databricks Academy: Den beste ressursen vi har funnet for å lære Databricks er Databricks Academy. Disse kursene er satt sammen av Databricks selv og er designet for å gjøre deg klar til å bruke Databricks på dine use case. Merk at selv om det er noen gratis kurs, er mye av opplæringen relativ kostbar.
  • Databricks Community: Dette er en fin ressurs for å se hva andre brukere gjør med Databricks, og kan være et flott første sted å gå med eventuelle tekniske spørsmål.
  • Databricks Data Engineering Blog: Databricks’ egen blogg har en massevis av løsninger lagt ut for hvordan du kan få mest mulig ut av Databricks.
  • Free YouTube Databricks Overview: Denne videoen av Adam Marczak gir en kortfattet oppsummering av hvordan du kan komme i gang med Databricks.


Magne Bakkeli

Magne har over 20 års erfaring som rådgiver, arkitekt og prosjektleder innen data & analytics, og forstår godt forretningsmessige og tekniske problemstillinger.