Kursusel oli kokku 9 moodulit, kus iga juurde anti ka ports kohustuslikku kirjandust lugeda. Loomulikult sel ajal ma seda ei jõudnud lugeda, kuid võtan nüüd eesmärgiks kuu aega järjest lugeda. Vaatame, kuhu jõuame. Lugemine suvalises järjekorras.
Airbyte: What is Data Extraction? Data Extraction Tools and Techniques moodulist 3: andmete integreerimine. Küll väga sissejuhatuslikult, aga puudutab andmete saamisega seotud teemasid nagu eetilised aspektid ja anonümiseerimine. Just nende teemade pärast loe originaalartikli teist poolt.
Andmete väljavõtt (extraction) on esimene samm andmete integreerimisel, kus kogutakse kokku andmeid erinevatest allikatest. Artiklis jagatakse see etapp järgmisteks osadeks:
- identifitseerimine: milliste allikatega on meil tegu? veebileht, fail, andmebaas
- ühenduste loomine: kuidas me need andmed lähtekohast kätte saame?
- andmete eraldamine sobivate meetoditega: veebikraapimine, SQL päring
- andmete teisendamine ehk puhastamine, valideerimine, ühendamine, agregeerimine, andmetüüpide ühtlustamine, ärireeglite rakendamine
- valideerimine ehk terviklikkuse, täielikkuse, kehtestatud reeglite vastavuskontroll
- valideeritud andmete laadimine sihtsüsteemi
Mõisteid lisaks juba tuttavatele "ETL", "ELT", "andmetoru":
- data connector/ andmekonnektor: ühenduskomponent, mis loob ühenduse andmeallikaga, et andmeid sealt saada. Lihtsamalt öeldes, mida on vajaks, et luua ühendus andmebaasi, APIga.
- full extraction / täielik andmete väljavõtt, igal andmetoru käivitamisel laaditakse kõik andmed uuesti
- incremental stream extraction/ inkrementaalne voopõhine andmete väljavõtt, st ainult viimasel käivitamisel lisandunud või muutunud andmed
- incremental batch extraction/ inkrementaalne partii põhine andmete väljavõtt, st kindla ajakava alusel, nt kord päevas/nädalas/kuus.
Meetoditena andmete väljavõtmiseks on veel mainitud veebikraapimine ja parsimine ( web-scraping, parsing). Veebilehtedel korjatakse infot automaatselt kasutade pythoni teeke BeautifulSoup või Selenium. Skannitud dokumentide masinloetavaks muutmine OCR (optical character recognition) ehk optilise märgituvastuse abil. Ja kui muud üle jää, siis kuhugi ei ole ka kadunud manuaalne andmete sisestus või parandamine.
Eetilised otsused
Artikkel rõhutab, et tänases reguleeritud maailmas tuleb (isiku)andmete haldamise põhimõtted ja nõuetele vastavus läbi mõelda juba andmetorude kavandamise protsessis. Kasutatakse erinevaid anonüümimise võimalusi, et tagada privaatsus, aga säilitada analüütikaks vajalikku andmestikku.
- diferentsiaalne privaatsus (differenecial privacy) - andmetele lisatakse matemaatiliselt kontrollitud müra, millega pole võimalik üksikisikut tuvastada. Samas saab andmeid statistiliselt kasutada. Näiteks saame keskmiseks vanuseks 32.5, aga näitame seda 32.8. Suurusjärk jääb samaks, aga kas konkreetne isik ka sees on raske öelda.
- K-anonüümsus (K-anonymity) lisab müra, üldistab või muudab andmeid nii, et kirje oleks eristamatu teisest kirjest k-1 põhimõttel. Meil on vanus, diagnoos, elukoht: 27, astma, Viljandi; 28, astma, Viljandi; 27, astma Viljandi. Saama kuvada välja vanusegrupina, nt 20-30 aastased Viljandimaalt - kas konkreetne isik sees oli, jällegi ei saa täpselt öelda.
Lisaks neile ei tasu ära unustada ka eetilisi põhimõtteid andmete päritolu läbipaistvuste ning kallutatuse vältimine koodi, päringuid kirjutades või ka mõju keskkonnale:
- kas andmed on saadud kasutaja nõusolekul?
- kas andmed on saadud läbipaistvalt?
- milline on andmetest saadav kasu kasutajale?
- milline on vastavus eetilistele ja õiguslikele nõuetele?
Sellele aitab kaasa andmete päritolu jälgitavus (provenance tracking) ehk peaksime talletama:
- andmete väljavõtmise aja
- lähteinfosüsteemi
- andmete töötlemise etapid
Allikas: https://airbyte.com/data-engineering-resources/data-extraction