Tietoputki on sarja tietojenkäsittelyvaiheita. Jos dataa ei ole tällä hetkellä ladattu data-alustaan, se syötetään dataputken alussa. Sitten on sarja vaiheita, joissa jokainen vaihe tuottaa tuloksen, joka on seuraavan vaiheen syötteenä. Tämä jatkuu, kunnes putki on valmis. Joissakin tapauksissa itsenäisiä vaiheita voidaan ajaa rinnakkain.
Dataputket koostuvat kolmesta keskeisestä elementistä: lähteestä, käsittelyvaiheesta tai -vaiheista ja määränpäästä. Joissakin dataputkissa määränpäätä voidaan kutsua nieluksi. Dataputket mahdollistavat tiedonkulun sovelluksesta tietovarastoon, datajärvestä analytiikkatietokantaan tai esimerkiksi maksujenkäsittelyjärjestelmään. Dataputkissa voi myös olla sama lähde ja nielu, jolloin putkessa on kyse pelkästään tietokokonaisuuden muokkaamisesta. Aina kun dataa käsitellään pisteen A ja pisteen B (tai pisteiden B, C ja D) välillä, näiden pisteiden välillä on dataputki.
Organisaatiot pyrkivät rakentamaan sovelluksia, joilla on pienet koodipohjat ja jotka palvelevat hyvin tiettyä tarkoitusta (tämäntyyppisiä sovelluksia kutsutaan ”mikropalveluiksi”), ja ne siirtävät dataa yhä useampien sovellusten välillä, minkä vuoksi dataputkien tehokkuus on kriittinen näkökohta niiden suunnittelussa ja kehittämisessä. Yhdessä lähdejärjestelmässä tai -sovelluksessa tuotetut tiedot voivat syöttää useita dataputkistoja, ja näillä putkistoilla voi olla useita muita putkistoja tai sovelluksia, jotka ovat riippuvaisia niiden tuotoksista.
Asettele yksittäistä kommenttia sosiaalisessa mediassa. Tämä tapahtuma voi tuottaa dataa, jolla syötetään reaaliaikaista raporttia, jossa lasketaan sosiaalisen median mainintoja, sentimenttianalyysisovellusta, joka tuottaa positiivisen, negatiivisen tai neutraalin tuloksen, tai sovellusta, joka kartoittaa jokaisen maininnan maailmankartalla. Vaikka tiedot ovat kaikissa tapauksissa peräisin samasta lähteestä, kukin näistä sovelluksista rakentuu ainutlaatuisten dataputkien varaan, jotka on saatava sujuvasti valmiiksi ennen kuin loppukäyttäjä näkee tuloksen.
Dataputkien yleisiä vaiheita ovat tietojen muuntaminen, lisääminen, rikastaminen, suodattaminen, ryhmittely, aggregointi ja algoritmien ajaminen kyseisiä tietoja vastaan.
Mikä on Big Data Pipeline?
Kun datan määrä, monimuotoisuus ja nopeus ovat kasvaneet dramaattisesti viime vuosina, arkkitehtien ja kehittäjien on täytynyt sopeutua ”big dataan”. Termi ”big data” viittaa siihen, että käsiteltävänä on valtava määrä. Tämä tietomäärä voi avata mahdollisuuksia käyttötapauksille, kuten ennakoivalle analytiikalle, reaaliaikaiselle raportoinnille ja hälytyksille, monien esimerkkien ohella.
Kuten monet data-arkkitehtuurin osat, dataputketkin ovat kehittyneet tukemaan big dataa. Big data -putkistot ovat dataputkistoja, jotka on rakennettu yhden tai useamman big datan kolmen ominaisuuden huomioon ottamiseksi. Suuren datan nopeus tekee houkuttelevaksi rakentaa suoratoistoputkistoja suurta dataa varten. Tällöin tiedot voidaan kerätä ja käsitellä reaaliajassa, jolloin voidaan ryhtyä toimenpiteisiin. Big datan määrä edellyttää, että dataputkien on oltava skaalautuvia, koska määrä voi vaihdella ajan mittaan. Käytännössä on todennäköistä, että monet big data -tapahtumat tapahtuvat samanaikaisesti tai hyvin lähellä toisiaan, joten big data -putkilinjan on pystyttävä skaalautumaan niin, että se pystyy käsittelemään merkittäviä määriä dataa samanaikaisesti. Big datan monimuotoisuus edellyttää, että big data -putkistot pystyvät tunnistamaan ja käsittelemään dataa monissa eri muodoissa – strukturoidussa, strukturoimattomassa ja puolistrukturoidussa.
Data Pipeline vs. ETL
ETL viittaa tietyntyyppiseen dataputkeen. ETL tulee sanoista ”extract, transform, load”. Se on prosessi, jossa tiedot siirretään lähteestä, kuten sovelluksesta, määränpäähän, yleensä tietovarastoon. ”Louhinta” tarkoittaa tietojen ottamista lähteestä, ”muunnos” tarkoittaa tietojen muokkaamista siten, että ne voidaan ladata määränpäähän, ja ”lataus” tarkoittaa tietojen lisäämistä määränpäähän.
ETL:ää on perinteisesti käytetty eräajona tapahtuvaan työmäärään, erityisesti suuressa mittakaavassa. Mutta uudenlaiset streaming ETL-työkalut ovat tulossa osaksi reaaliaikaisen streaming-tapahtumatiedon putkistoa.
Dataputkistoon liittyviä näkökohtia
Dataputkistojen arkkitehtuurit vaativat monia näkökohtia. Pitääkö putkiston esimerkiksi käsitellä suoratoistodataa? Millaista datanopeutta odotat? Kuinka paljon ja minkälaista käsittelyä dataputkessa on tehtävä? Tuotetaanko data pilvessä vai toimitiloissa, ja minne sen on mentävä? Aiotteko rakentaa putken mikropalveluiden avulla? Onko olemassa tiettyjä teknologioita, joiden ohjelmoinnissa ja ylläpidossa tiimisi on jo hyvin perehtynyt?
Arkkitehtuuriesimerkkejä
Dataputkia voidaan arkkitehturoida useilla eri tavoilla. Yksi yleinen esimerkki on eräpohjainen dataputki. Tässä esimerkissä sinulla voi olla sovellus, kuten myyntipistejärjestelmä, joka tuottaa suuren määrän datapisteitä, jotka sinun täytyy työntää tietovarastoon ja analyysitietokantaan. Tässä on esimerkki siitä, miltä tämä näyttäisi:
Toinen esimerkki on suoratoistodataputki. Suoratoistodataputkessa myyntipistejärjestelmästä tulevia tietoja käsiteltäisiin sitä mukaa kuin niitä syntyy. Virtauskäsittelymoottori voisi syöttää putkiston tuotoksia muun muassa tietovarastoihin, markkinointisovelluksiin ja CRM-järjestelmiin sekä takaisin itse myyntipistejärjestelmään.
Kolmas esimerkki dataputkesta on Lambda-arkkitehtuuri, jossa yhdistyvät erä- ja streaming-putkistot yhdeksi arkkitehtuuriksi. Lambda-arkkitehtuuri on suosittu big data -ympäristöissä, koska sen avulla kehittäjät voivat ottaa huomioon sekä reaaliaikaiset suoratoistokäyttötilanteet että historialliset eräanalyysit. Yksi tämän arkkitehtuurin keskeisistä piirteistä on se, että se kannustaa tallentamaan dataa raakamuodossa, jotta voit jatkuvasti ajaa uusia dataputkia korjataksesi aiempien putkien koodivirheitä tai luodaksesi uusia datakohteita, jotka mahdollistavat uudentyyppiset kyselyt.
Seuraavat aiheet
Streaming ETL
Lambda-arkkitehtuuri
Stream Processing