ETL – Ekstrakcja, przekształcanie i ładowanie

Zanim dane pojawią się w hurtowni muszą przejść kilka etapów. W pierwszej kolejności muszą zostać pobrane z systemów źródłowych – np. innych baz danych, płaskich plików CSV, usług sieciowych. Ten proces nazywamy ekstrakcją. Następnie muszą zostać przekształcone do postaci właściwej dla naszej hurtowni. Zostają wyliczone agregaty, formaty dat, walut etc. zostają zunifikowane, dane są czyszczone z błędów – ten proces nazywamy przekształcaniem. Na koniec pobrane i przekształcone dane muszą zostać załadowane do hurtowni implementując jednocześnie np. metody rozwiązywania problemów ze zmiennością danych w czasie, dostosowując się do struktur logicznych w samej hurtowni. Ten ostatni proces nazywamy ładowaniem.

Sama nazwa procesów ETL bierze się z angielskich słów – Extract, Transform, Load. Niekiedy na potrzeby tych procesów wykorzystywany jest tak zwany obszar przejściowy (występujący także pod nazwą obszar tymczasowy). W takim obszarze przechowywane są dane pobrane z zewnętrznych systemów, w tym samym miejscu są również przetwarzane zanim trafią do obszarów przejściowych. Taki obszar tworzony jest w celu zmniejszenia obciążenia systemów źródłowych oraz zapewnienia spójności danych. Długotrwałe pobieranie danych ze źródeł w sytuacji gdy jednocześnie te dane są przetwarzane po pierwsze obciąża te systemy, po drugie dane mogą zmienić się podczas tego przetwarzania, a to doprowadziłoby do niespójności logicznej danych w hurtowni. Możemy oczywiście zastosować pewne „sztuczki” - jak np. używanie zapytań retrospektywnych lub odpowiedniego poziomu izolacji. Lepiej jest jednak pobrać dane ze źródeł w jak najkrótszym czasie, a następnie przetwarzać je już w obszarze przejściowym. Dzięki takiemu obszarowi łatwiej jest też nam połączyć dane z różnych typów baz danych. Taki obszar przejściowy jest jedynie obszarem roboczym. Zapytania analityczne w żadnym wypadku nie powinny korzystać z niego, ponieważ dane w nim ulegają zmianom i mogą być niespójne.