Datatransformasjon, eller bare transformasjon, er en prosess innen databehandling hvor man konverterer data fra en struktur eller format til en annen struktur eller format. Det er en grunnleggende del i det meste av dataintegrasjon, og er vanlig i databehandlingsoppgaver som dataavstemming, dataintegrasjon, applikasjonsintegrasjon og operasjoner i datavarehus.
Kompleksitet Datatransformasjon kan være enkel eller kompleks basert på hvilke endringene som kreves for dataene mellom den går fra kildesystemet og målsystemet. Transformasjon utføres vanligvis via en blanding av manuelle og automatiserte steg.DataXFormer. Morcos, Abedjan, Ilyas, Ouzzani, Papotti, Stonebraker. An interactive data transformation tool. Retrieved from: http://livinglab.mit.edu/wp-content/uploads/2015/12/DataXFormer-An-Interactive-Data-Transformation-Tool.pdf Verktøy og teknologier brukt til datatransformasjon kan variere mye basert på format, struktur, kompleksitet og volum på dataene som transformeres.
Transformasjoner ved grunndata-omarbeiding En grunndata-omarbeiding er en spesiell form for datatransformasjon hvor hele databasen med dataverdier transformeres eller omarbeides uten å trekke ut dataene fra databasen. Alle data i en velutformet database er direkte eller indirekte relatert til en begrenset mengde med grunn-databasetabeller ved hjelp av et nettverk av begrensninger for fremmednøkler. Hver fremmednøkkelbegrensning er avhengig av en unik databaseindeks fra den overordnede databasetabellen. Når den riktige hoved-databasetabellen omarbeides med en annen unik indeks, så skal dette medføre at de direkte og indirekte relaterte dataene også omarbeides. De direkte og indirekte relaterte dataene kan også fremdeles vises i den opprinnelige formen siden den opprinnelige unike indeksen fremdeles eksisterer med grunndataene. Omarbeiding av database må også gjøres på en slik måte at det ikke påvirker applikasjonsarkitektur-programvare.
Når dataavbildningen er gjøres indirekte via en formidlende datamodell kalles prosessen kalles også dataformidling.
Transformasjonsprosessen Datatransformasjon kan deles inn i følgende steg, hvor nødvendigheten av de enkelte stegene avhenger av kompleksiteten som kreves i transformasjonen:
Dataoppdagelse Dataavbildning Kodegenerering Kodekjøring Datagjennomgang
Disse stegne er ofte i fokus for utviklere eller tekniske dataanalytikere som kan bruke flere spesialiserte verktøy for å utføre oppgavene sine.
Stegene kan beskrives som følger:
Dataoppdagelse er det første steget i transformasjonsprosessen. Vanligvis profileres dataene ved hjelp av profileringsverktøy eller noen ganger ved hjelp av manuelt skrevne profileringsskript for bedre å forstå strukturen og egenskapene til dataene og finne ut hvordan de må transformeres.
Dataavbildning er prosessen med å definere hvordan individuelle felter avbildes, modifiseres, skjøtes, filtreres, aggregeres, og så videre, for å gi det ønskede sluttresultatet. Utviklere eller tekniske dataanalytikere utfører tradisjonelt dataavbildning siden de jobber med de spesifikke teknologiene for å definere transformasjonsreglene (for eksempel ETL-vektøyDWBIMASTER. Top 10 ETL Tools. Retrieved from: http://dwbimaster.com/top-10-etl-tools/ eller transformasjonsspråk).
Kodegenerering er prosessen med å generere kjørbar kode (for eksempel SQL, Python, R eller andre kjørbare instruksjoner) som kan transformere dataene basert på de ønskede og definerte dataavbildnings-reglene.Petr Aubrecht, Zdenek Kouba. Metadata driven data transformation. Retrieved from: http://labe.felk.cvut.cz/~aubrech/bin/Sumatra.pdf Vanligvis genererer transformasjonsteknologiene denne kodenLearnDataModeling.com. Code Generators. Retrieved from: http://www.learndatamodeling.com/tm_code_generator.php basert på definisjonene eller metadataene definert av utviklerne.
Kodekjøring er steget der den genererte koden utføres mot dataene for å gi det ønskede resultatet. Koden som kjøres kan være tett integrert med transformasjonsverktøyet, eller kan kreve separate steg av utvikleren for å kjøre den genererte koden manuelt.
Datagjennomgang er det siste steget i prosessen, og fokuserer på å sikre at utdataene oppfyller transformasjonskravene. Det er vanligvis forretningsbrukeren eller den endelige sluttbrukeren av dataene som utfører dette steget. Eventuelle avvik eller feil i dataene som blir funnet og kommuniseres tilbake til utvikleren eller dataanalytikeren som endringsforespørsler eller nye krav som skal implementeres i transformasjonsprosessen.
Typer transformasjoner
Satsvis datatransformasjon Tradisjonelt har datatransformasjon vært en satsvis prosessTDWI. 10 Rules for Real-Time Data Integration. Retrieved from: https://tdwi.org/Articles/2012/12/11/10-Rules-Real-Time-Data-Integration.aspx?Page=1 hvor utviklere skriver kode eller implementerer transformasjonsregler i et dataintegrasjonsverktøy og deretter kjører den koden eller disse reglene på store datamengder.Tope Omitola, Andr´e Freitas, Edward Curry, Sean O'Riain, Nicholas Gibbins, and Nigel Shadbolt. Capturing Interactive Data Transformation Operations using Provenance Workflows Retrieved from: http://andrefreitas.org/papers/preprint_capturing%20interactive_data_transformation_eswc_highlights.pdf Denne prosessen kan følge de lineære stegene som beskrevet om generelle transformasjonsprosesser ovenfor.
Satsvis transformasjon er hjørnesteinen i praktisk talt alle integrasjonsteknologier som datavarehus, datamigrering og applikasjonsintegrasjon.CIO.com. Agile Comes to Data Integration. Retrieved from: https://www.cio.com/article/2378615/data-management/agile-comes-to-data-integration.html
Når data må transformeres og leveres med lav latens brukes ofte begrepet mikrosats (microbatch). Dette refererer til at det behandles små grupper med data (for eksempel et lite antall rader eller en liten mengde dataobjekter) som demed kan behandles veldig raskt og leveres til målsystemet når det trengs.
Fordeler med satsvis datatransformasjon Tradisjonelle transformasjonsprosesser har vært en arbeidshest for selskaper i flere tiår. De ulike verktøyene og teknologiene (dataprofilering, datavisualisering, datavask, dataintegrasjon, og så videre) har modnet, og de fleste (om ikke alle) virksomheter transformerer enorme datamengder som mater interne og eksterne applikasjoner, datavarehus og andre datalagre.The Value of Data Transformation
Begrensninger av tradisjonell datatransformasjon Den tradisjonelle transformasjonsprosessen har også begrensninger som hemmer den generelle effektiviteten og effekten.
Menneskene som trengs for å bruke dataene (for eksempel forretningsbrukere) spiller ikke en direkte rolle i transformasjonsprosessen. Vanligvis gir brukerne transformasjonsoppgaven til utviklere som har de nødvendige tekniske eller kodeferdighetene for å definere transformasjonene og utføre dem på dataene.The Value of Data Transformation
Denne prosessen gjør at mesteparten med å definere de nødvendige transformasjonene lempes over på utvikleren som ofte ikke har den samme domenekunnskapen som forretningsbrukeren. Utvikleren tolker kravene til forretningsbrukeren og implementerer den relaterte koden eller logikken. Dette steget har potensial til å introdusere feil i prosessen (gjennom feiltolkede krav), og øker også tiden for å komme frem til en løsning på forretningsproblemet.McKinsey.com. Using Agile to Accelerate Data Transformation
Dette problemet har gitt opphav til behovet for smidighet og selvbetjening innen dataintegrasjon (altså styrke brukeren av dataene sine datakunnskaper og gjøre dem i stand til å transformere dataene selv interaktivt).McKinsey.com. Using Agile to Accelerate Data Transformation
Det finnes selskaper som tilbyr verktøy for selvbetjening av datatransformasjon. De tar sikte på å effektivt analysere, kartlegge og transformere store datamengder uten å kreve den tekniske kunnskapen og prosesskompleksiteten som vanligvis kreves. Mens disse selskapene på underliggende nivå leverer tradisjonell satsvis transformasjon så muliggjør verktøyene deres en presentasjon som er mer interaktiv for brukerne gjennom å bruke visuelle plattformer og enkle skript som gjenbrukes.
Likevel kan det være noen kompatibilitetsproblemer (som for eksempel at nye datakilder som tingenes internett (IoT) ikke fungerer korrekt med eldre verktøy) og samsvarsbegrensninger på grunn av forskjeller i datastyring-, preparering- og revisjonspraksis.
Interaktiv datatransformasjon Interaktiv datatransformasjon (IDT)Tope Omitola, Andr´e Freitas, Edward Curry, Sean O’Riain, Nicholas Gibbins, and Nigel Shadbolt. Capturing Interactive Data Transformation Operations using Provenance Workflows Retrieved from: http://andrefreitas.org/papers/preprint_capturing%20interactive_data_transformation_eswc_highlights.pdf er en type datatransformasjon som gir et grafisk grensesnitt for datatransformasjoner,Morton, Kristi -- Interactive Data Integration and Entity Resolution for Exploratory Visual Data Analytics. Retrieved from: https://digital.lib.washington.edu/researchworks/handle/1773/35165 og dermed kan legge til rette for transformasjoner av analytikere og forretningsbrukere med begrenset teknisk kompetanse. Verktøyet kan tolke egenskapene til dataene (via automatisert dataprofilering eller visualisering), og brukes for å endre eller korrigere dataene gjennom enkle brukerinteraksjoner som ved å klikke eller velge bestemte elementer i dataene.
Selv om interaktiv datatransformasjon følger de samme integrasjonsstegene som satsvis integrasjon er det en hovedforskjell i at stegene ikke nødvendigvis følges på en lineær måte og vanligvis ikke krever betydelige tekniske ferdigheter for å utføres.Peng Cong, Zhang Xiaoyi. Research and Design of Interactive Data Transformation and Migration System for Heterogeneous Data Sources. Retrieved from: https://ieeexplore.ieee.org/document/5211525/
Det finnes en rekke selskaper som tilbyr interaktive verktøy for datatransformasjon, eksempelvis oppstartsselskaper som Trifacta, Alteryx og Paxata. De tar sikte på å gi effektiv analyse, avbildning og transformasjon av store datamengder samtidig som de abstraherer bort noe av den tekniske kompleksiteten og prosessene som foregår under panseret.
Løsninger for interaktiv datatransformasjon tilbyr et integrert visuelt grensesnitt som kombinerer eller gjør det lettere å hoppe mellom de tidligere adskilte stegene i dataanalyse, dataavbildning og kodegenerering/-kjøring og datainspeksjon.The Value of Data Transformation Altså, hvis det gjøres endringer på ett steg (som for eksempel endring av navn på en variabel) vil programmet automatisk oppdatere de andre foregående og påfølgende stegene tilsvarende. Grensesnitt for interaktiv datatransformasjon inkluderer visualisering for å vise brukeren mønstre og avvik i dataene slik at de visuelt kan identifisere feilaktige eller ekstreme verdier.
Når brukeren er ferdig med å transformere dataene kan systemet generere kjørbar kode eller logikk som gjenbrukes på lignende datamengder.
Ved å fjerne utvikleren fra prosessen kan interaktiv transformasjon bidra til å forkorte tiden som trengs på forberedelse og transformasjon av dataene, eliminere kostbare feil i tolkning av brukerkrav og gi forretningsbrukere og analytikere muligheten til å kontrollere dataene sine og samhandle med dem etter behov.McKinsey.com. Using Agile to Accelerate Data Transformation
Transformasjonsspråk Det finnes mange programmeringsspråk som er egnet for å utføre datatransformasjoner.DMOZ. Extraction and Transformation. Retrieved from: https://dmoztools.net/Computers/Software/Databases/Data_Warehousing/Extraction_and_Transformation/ Mange transformasjonsspråk krever en formell grammatikk. I mange tilfeller er grammatikken strukturert etter et mønster som ligner Backus-Naur-formen (BNF).
Noen eksempler på transformasjonsspråk inkluderer:
Awk, et av de eldste og mest populære tekstdatatransformasjonsspråkene