Duomenų saugojimui naudokite šiuos atvirojo kodo įrankius

Šiais laikais visi kalba apie atvirojo kodo programinę įrangą. Tačiau tai vis dar nėra įprasta duomenų saugyklos (DWH) lauke. Kodėl tai?

Šiam įrašui pasirinkau kelias atvirojo kodo technologijas ir kartu jas panaudojau kurdama pilną duomenų architektūrą „Data Warehouse“ sistemai.

Aš nuėjau su „Apache Druid“ duomenų saugojimui, „Apache Superset“ už užklausas ir „Apache Airflow“ kaip užduočių organizatoriui.

Druidas - duomenų saugykla

„Druid“ yra atviro kodo, į stulpelius orientuota, paskirstyta duomenų saugykla, parašyta „Java“. Jis sukurtas norint greitai įsisavinti didžiulius įvykių duomenų kiekius ir pateikti duomenis apie mažo delsos užklausas.

Kodėl naudoti Druid?

„Druid“ turi daug pagrindinių funkcijų, įskaitant antrojo sekundės OLAP užklausas, srauto perdavimą realiuoju laiku, mastelio keitimą ir ekonomiškumą.

Atsižvelgdamas į šiuolaikinių OLAP technologijų palyginimą, aš pasirinkau „Druid“, o ne „ClickHouse“, „Pinot“ ir „Apache Kylin“. Neseniai „Microsoft“ paskelbė, kad jie pridės Druid prie savo „Azure HDInsight 4.0“.

Kodėl ne Druidas?

Carteris Shanklinas parašė išsamų įrašą apie Druido apribojimus Horthonwork.com. Pagrindinis klausimas yra palaikymas SQL sujungimams ir pažangios SQL galimybės.

Druido architektūra

„Druid“ yra keičiamo dydžio dėl savo grupių architektūros. Turite tris skirtingus mazgų tipus - „Middle-Manager-Node“, „Historical Node“ ir „Broker“.

Puiku tai, kad galite pridėti tiek mazgų, kiek norite, tam tikroje srityje, kuri jums labiausiai tinka. Jei turite daug užklausų, galite pridėti daugiau brokerių. Arba, jei reikia daug duomenų pakuoti, pridėtumėte vidurinius vadovus ir pan.

Paprasta architektūra parodyta žemiau. Daugiau apie „Druid“ dizainą galite perskaityti čia.

„Apache Superset“ - vartotojo sąsaja

Paprasčiausias būdas pateikti užklausą prieš Druidą yra lengvas, atviro kodo įrankis, vadinamas „Apache Superset“.

Tai lengva naudoti ir turi visus įprastus diagramų tipus, tokius kaip „Bubble Chart“, „Word Count“, „Heatmaps“, „Boxplot“ ir daug daugiau.

„Druid“ pateikia „Rest-API“, o naujausioje versijoje - ir „SQL Query“ API. Tai leidžia lengvai naudoti bet kurį įrankį, nesvarbu, ar jis yra standartinis SQL, bet kuris esamas BI įrankis ar pasirinktinė programa.

Apache oro srautas - orkestro vadovas

Kaip minėta „Orchestrators“ - Darbo eigos planavimas ir stebėjimas, tai yra vienas kritiškiausių sprendimų.

Anksčiau ETL įrankiai, tokie kaip „Microsoft SQL Server Integration Services“ (SSIS) ir kiti, buvo plačiai naudojami. Čia vyko jūsų duomenų transformavimas, valymas ir normalizavimas.

Šiuolaikiškesnėse architektūrose šių įrankių nebepakanka.

Be to, kodas ir duomenų transformavimo logika yra daug vertingesnė kitiems žmonėms, turintiems žinių apie duomenis.

Labai rekomenduoju perskaityti Maxime'o Beauchemino tinklaraščio įrašą apie funkcinę duomenų inžineriją - modernią paketinių duomenų apdorojimo paradigmą. Tai daug giliau į tai, kokie turėtų būti šiuolaikiniai duomenų perdavimo vamzdynai.

Taip pat apsvarstykite skaitymą „Duomenų inžinieriaus žlugimas“, kuriame Maksas paaiškina apie „duomenų silo“ trūkumus ir daug daugiau.

Kodėl verta naudoti oro srautą?

„Apache Airflow“ yra labai populiarus šios užduoties orkestravimo įrankis. Oro srautas parašytas „Python“. Užduotys rašomos kaip „Directed Acyclic Graphs“ (DAG). Tai taip pat parašyta „Python“.

Užuot savo kritinės transformacijos logiką sukomponavęs kur nors įrankyje, įdėkite ją ten, kur ji priklauso „Orchestrator“ viduje.

Kitas privalumas yra paprasto „Python“ naudojimas. Nereikia apibendrinti kitų priklausomybių ar reikalavimų, pavyzdžiui, gauti iš FTP, kopijuoti duomenis iš A į B, rašyti paketinį failą. Jūs darote tai ir visa kita toje pačioje vietoje.

Oro srauto ypatybės

Be to, vienoje vietoje gausite funkcionalią visų esamų užduočių apžvalgą.

Aktualesnės „Airflow“ savybės yra tai, kad rašote darbo eigą taip, tarsi rašytumėte programas. Išoriniai darbai, tokie kaip „Databricks“, „Spark“ ir kt., Nekelia jokių problemų.

Darbo testavimas atliekamas per patį oro srautą. Tai apima parametrų perdavimą kitoms užduotims pasroviui arba patikrinimą, kas veikia „Airflow“, ir tikrojo kodo matymą. Žurnalo failus ir kitus metaduomenis galite pasiekti naudodamiesi žiniatinklio GUI.

(Pakartotinis) vykdymas tik kai kuriose darbo eigos dalyse ir priklausomos užduotys yra svarbiausia funkcija, atsirandanti iš dėžutės, kai kuriate darbo eigą naudodami „Airflow“. Užduotys / užduotys vykdomos kontekste, planavimo priemonė pateikia reikiamą informaciją ir darbas paskirstomas jūsų klasteriui užduočių lygiu, o ne DAG lygiu.

Jei norite sužinoti daugiau funkcijų, apsilankykite visame sąraše.

ETL su „Apache Airflow“

Jei norite pradėti nuo „Apache Airflow“ kaip savo naujojo ETL įrankio, pradėkite nuo šios geriausios ETL praktikos, naudodamiesi „Airflow“ su jumis. Jame yra paprasti ETL pavyzdžiai, naudojant paprastą SQL, su HIVE, su „Data Vault“, „Data Vault 2“ ir „Data Vault“ su „Big Data“ procesais. Tai suteikia puikią apžvalgą apie tai, kas įmanoma, ir tai, kaip jūs prie jos prieitės.

Tuo pačiu metu yra „Docker“ konteineris, kurį galite naudoti, o tai reiškia, kad jums net nereikia nustatyti jokios infrastruktūros. Iš čia galite traukti konteinerį.

Norėdami naudoti „GitHub-repo“, spustelėkite nuorodą etl-with-airflow.

Išvada

Jei ieškote atviro kodo duomenų architektūros, negalite nepaisyti „Druid“ dėl greitų OLAP atsakymų, „Apache Airflow“ kaip orkestro, kuris palaiko jūsų duomenų liniją ir tvarkaraščius, taip pat lengvai naudojamą prietaisų skydelio įrankį, pvz., „Apache Superset“.

Mano patirtis iki šiol yra tokia, kad „Druid“ yra kruvinai greitas ir puikiai tinka OLAP kubo pakeitimams tradiciniu būdu, tačiau vis tiek reikia ramesnio paleidimo, kad įdiegtumėte grupes, įvestumėte duomenis, peržiūrėtumėte žurnalus ir pan. Jei jums to reikia, pasidomėkite „Impy“, kurį sukūrė „Druid“ įkūrėjai. Tai sukuria visas jums reikalingas „Druid“ paslaugas. Deja, tačiau tai nėra atviro kodo.

„Apache Airflow“ ir jo, kaip orkestratoriaus, ypatybės dar nėra labai nutikę tradicinėse verslo žvalgybos aplinkose. Manau, kad šis pokytis įvyksta labai natūraliai, kai pradedate naudoti atvirojo kodo ir daugiau naujų technologijų.

„Apache Superset“ yra paprastas ir greitas būdas veikti ir rodyti „Druid“ duomenis. Yra geresnių įrankių, tokių kaip „Tableau“ ir kt., Bet ne nemokamai. Štai kodėl „Superset“ gerai tinka ekosistemai, jei jau naudojate aukščiau nurodytas atvirojo kodo technologijas. Bet kaip įmonės įmonė galbūt norėsite išleisti šiek tiek pinigų šiai kategorijai, nes tai yra tai, ką vartotojai gali pamatyti dienos pabaigoje.

Susijusios nuorodos:

  • Suprasti pagrindines „Apache Airflow“ sąvokas
  • Kaip Druidas įgalina „Airbnb“ analizę
  • „Google“ išleidžia naują kūrėjų darbo eigos automatizavimo įrankį „Cloud Composer“
  • Visiškai valdoma darbo eigos organizavimo paslauga, sukurta naudojant „Apache Airflow“
  • „Apache“ oro srauto ir duomenų rinkinių integravimas: ETL vamzdynų tiesimas su „Apache Spark“
  • ETL su „Apache Airflow“
  • Kas yra duomenų inžinerija ir duomenų saugojimo ateitis
  • „Implicit“ - valdoma „Druid“ platforma (uždaro kodo)
  • Itin greita „OLAP Analytics“ su „Apache Hive“ ir „Druid“

Iš pradžių paskelbta www.sspaeti.com 2018 m. Lapkričio 29 d.