# Extraure, transformar, carregar

En informàtica, extreure, transformar, carregar (ETL) és un procés de tres fases on les dades s'extreuen d'una font d'entrada, es transformen (inclosa la neteja) i es carreguen en un contenidor de dades de sortida. Les dades es poden recopilar d'una o més fonts i també es poden enviar a una o més destinacions. El processament ETL s'executa normalment mitjançant aplicacions de programari, però també es pot fer manualment pels operadors del sistema. El programari ETL normalment automatitza tot el procés i es pot executar manualment o en programes recurrents, ja sigui com a treballs individuals o agregats en un lot de treballs.
Un sistema ETL dissenyat correctament extreu dades dels sistemes font i fa complir els estàndards de tipus de dades i de validesa de dades i assegura que s'ajusta estructuralment als requisits de la sortida. Alguns sistemes ETL també poden oferir dades en un format llest per a la presentació perquè els desenvolupadors d'aplicacions puguin crear aplicacions i els usuaris finals puguin prendre decisions.
El procés ETL s'utilitza sovint en l'emmagatzematge de dades. Els sistemes ETL solen integrar dades de múltiples aplicacions (sistemes), normalment desenvolupades i suportades per diferents proveïdors o allotjades en maquinari informàtic independent. Els sistemes separats que contenen les dades originals són sovint gestionats i operats per diferents parts interessades. Per exemple, un sistema de comptabilitat de costos pot combinar dades de nòmines, vendes i compres.
L'extracció de dades consisteix a extreure dades de fonts homogènies o heterogènies; La transformació de dades processa les dades netejant-les i transformant-les en un format/estructura d'emmagatzematge adequat amb finalitats de consulta i anàlisi; finalment, la càrrega de dades descriu la inserció de dades a la base de dades objectiu final, com ara un magatzem de dades operacionals, un data mart, un data llac o un magatzem de dades.

## Extracte

El processament d'ETL implica extreure les dades dels sistemes d'origen. En molts casos, aquest representa l'aspecte més important de l'ETL, ja que l'extracció de dades correctament prepara les bases per a l'èxit dels processos posteriors. La majoria dels projectes d'emmagatzematge de dades combinen dades de diferents sistemes font. Cada sistema independent també pot utilitzar una organització i/o format de dades diferents. Els formats de font de dades habituals inclouen bases de dades relacionals, bases de dades de fitxer pla, XML i JSON, però també poden incloure estructures de bases de dades no relacionals com IBM Information Management System o altres estructures de dades com Virtual Storage Access Method (VSAM) o Indexed Sequential. Mètode d'accés (ISAM), o fins i tot formats obtinguts de fonts externes mitjançant mitjans com ara un rastrejador web o un raspat de dades. La transmissió en temps real de la font de dades extreta i la càrrega sobre la marxa a la base de dades de destinació és una altra manera de realitzar ETL quan no cal cap emmagatzematge de dades intermedi.
Una part intrínseca de l'extracció implica la validació de dades per confirmar si les dades extretes de les fonts tenen els valors correctes/esperats en un domini determinat (com ara un patró/per defecte o una llista de valors). Si les dades no compleixen les regles de validació, es rebutgen totalment o parcialment. L'ideal és que les dades rebutjades es reportin al sistema d'origen per a una anàlisi posterior per identificar i rectificar registres incorrectes o per dur a terme una disputa de dades.

## Transformar

En l'etapa ed transformació de dades, s'apliquen una sèrie de regles o funcions a les dades extretes per tal de preparar-les per carregar-les a l'objectiu final.
Una funció important de la transformació és la neteja de dades, que té com a objectiu passar només dades "adequades" a l'objectiu. El repte quan interactuen diferents sistemes està en la interfície i la comunicació dels sistemes rellevants. Els conjunts de caràcters que poden estar disponibles en un sistema poden no ser-ho en altres.
En altres casos, es pot requerir un o més dels tipus de transformació següents per satisfer les necessitats comercials i tècniques del servidor o magatzem de dades:
* Seleccionant només certes columnes per carregar: (o seleccionant columnes nul·les per no carregar). Per exemple, si les dades d'origen tenen tres columnes (també coneguts com "atributs"), roll_no, age i salari, la selecció només pot prendre roll_no i salari. O bé, el mecanisme de selecció pot ignorar tots aquells registres on el salari no està present (salari = nul).
* Traduir valors codificats: ( p. ex., si el sistema font codifica l'home com a "1" i la dona com a "2", però el magatzem codifica l'home com a "M" i la dona com a "F")
* Codificació de valors de forma lliure: ( p. ex., assignant "Masculí" a "M")
* Derivació d'un nou valor calculat: ( p. ex., import_venda = quantitat * preu_unitat)
* Ordenar o ordenar les dades en funció d'una llista de columnes per millorar el rendiment de la cerca
* Unir dades de diverses fonts ( per exemple, cercar, combinar) i desduplicar les dades
* Agregació (per exemple, acumulació - resum de diverses files de dades - vendes totals per a cada botiga i per a cada regió, etc.)
* Generació de valors de clau substitutiva
* Transposició o gir (convertir diverses columnes en diverses files o viceversa)
* Dividir una columna en diverses columnes ( p. ex., convertir una llista separada per comes, especificada com a cadena en una columna, en valors individuals en columnes diferents)
* Desagregació de columnes repetides
* Consulta i validació de les dades rellevants de taules o fitxers de referència
* Aplicar qualsevol forma de validació de dades; La validació fallida pot donar lloc a un rebuig total de les dades, un rebuig parcial o cap rebuig i, per tant, cap, algunes o totes les dades es lliuraran al següent pas depenent del disseny de la regla i el maneig de les excepcions; moltes de les transformacions anteriors poden donar lloc a excepcions, per exemple, quan una traducció de codi analitza un codi desconegut a les dades extretes.

## Càrrega

La fase de càrrega carrega les dades a l'objectiu final, que pot ser qualsevol magatzem de dades, inclòs un simple fitxer pla delimitat o un magatzem de dades. Segons els requisits de l'organització, aquest procés varia molt. Alguns magatzems de dades poden sobreescriure la informació existent amb informació acumulada; l'actualització de les dades extretes sovint es fa de manera diària, setmanal o mensual. Altres magatzems de dades (o fins i tot altres parts del mateix magatzem de dades) poden afegir dades noves en forma històrica a intervals regulars, per exemple, cada hora. Per entendre-ho, considereu un magatzem de dades que cal per mantenir els registres de vendes de l'últim any. Aquest magatzem de dades sobreescriu qualsevol dada de més d'un any amb dades més noves. Tanmateix, l'entrada de dades per a qualsevol finestra d'un any es fa de manera històrica. El moment i l'abast per substituir o afegir són opcions estratègiques de disseny que depenen del temps disponible i de les necessitats empresarials. Els sistemes més complexos poden mantenir un historial i una pista d'auditoria de tots els canvis a les dades carregades al magatzem de dades. A mesura que la fase de càrrega interacciona amb una base de dades, s'apliquen les restriccions definides a l'esquema de la base de dades, així com en els activadors activats amb la càrrega de dades (per exemple, unicitat, integritat referencial, camps obligatoris), que també contribueixen al rendiment global de la qualitat de les dades. del procés ETL.
* Per exemple, una institució financera pot tenir informació sobre un client en diversos departaments i cada departament podria tenir la informació d'aquest client llistada d'una manera diferent. El departament de membres pot enumerar el client pel nom, mentre que el departament de comptabilitat podria enumerar el client per nombre. ETL pot agrupar tots aquests elements de dades i consolidar-los en una presentació uniforme, com ara per emmagatzemar-los en una base de dades o un magatzem de dades.
* Una altra manera en què les empreses utilitzen ETL és traslladar la informació a una altra aplicació de manera permanent. Per exemple, la nova aplicació pot utilitzar un altre proveïdor de bases de dades i molt probablement un esquema de base de dades molt diferent. ETL es pot utilitzar per transformar les dades en un format adequat per a la nova aplicació.
* Un exemple seria un sistema de recuperació de despeses i costos com el que fan servir els comptadors, consultors i despatxos d'advocats. Les dades normalment acaben al sistema de facturació i temps, tot i que algunes empreses també poden utilitzar les dades en brut per als informes de productivitat dels empleats a Recursos Humans (departament de personal) o informes d'ús d'equips a la Gestió d'instal·lacions.

## Cicle ETL real

El cicle típic d'ETL de la vida real consta dels passos d'execució següents:
* Iniciació al cicle
* Construcció de dades de referència
* Extracte (de fonts)
* Validació
* Transformar (netejar, aplicar regles empresarials, comprovar la integritat de les dades, crear agregats o desagregats)
* Escenari (càrrega a les taules d'escenificació, si s'utilitza)
* Informes d'auditoria (per exemple, sobre el compliment de les normes empresarials. També, en cas de fallada, ajuden a diagnosticar/reparar)
* Publicar (a les taules de destinació)
* Arxiu

## Referències

* ↑ Ralph., Kimball; Caserta, Joe, 1965-. The data warehouse ETL toolkit : practical techniques for extracting, cleaning, conforming, and delivering data (en anglès). Indianapolis, IN: Wiley, 2004. ISBN 978-0764579233. OCLC 57301227.
* ↑ Ralph., Kimball; Caserta, Joe, 1965-. The data warehouse ETL toolkit : practical techniques for extracting, cleaning, conforming, and delivering data (en anglès). Indianapolis, IN: Wiley, 2004. ISBN 978-0764579233. OCLC 57301227.
* ↑ Denney, MJ International Journal of Medical Informatics, 94, 2016, pàg. 271–4. DOI: 10.1016/j.ijmedinf.2016.07.009. PMC: 5556907. PMID: 27506144.
* ↑ Zhao, Shirley. «What is ETL? (Extract, Transform, Load) | Experian» (en anglès americà). Experian Data Quality, 20-10-2017. [Consulta: 12 desembre 2018].
* ↑ Pott, Trevor. «Extract, transform, load? More like extremely tough to load, amirite?» (en anglès). The Register, 04-06-2018. [Consulta: 12 desembre 2018].