Brug disse open source-værktøjer til datalagring

I disse dage taler alle om open source-software. Dette er dog stadig ikke almindeligt i feltet Data Warehousing (DWH). Hvorfor er det?

Til dette indlæg valgte jeg nogle open source-teknologier og brugte dem sammen til at opbygge en fuld dataarkitektur til et Data Warehouse-system.

Jeg gik med Apache Druid til datalagring, Apache Superset til forespørgsel og Apache Airflow som en task orchestrator.

Druid - datalageret

Druid er en open source, kolonneorienteret, distribueret datalager skrevet i Java. Det er designet til hurtigt at indtage store mængder hændelsesdata og give forespørgsler om lav latenstid oven på dataene.

Hvorfor bruge Druid?

Druid har mange nøglefunktioner, herunder OLAP-forespørgsler under andet sekund, indtagelse af streaming i realtid, skalerbarhed og omkostningseffektivitet.

Med sammenligningen af ​​moderne OLAP-teknologier i tankerne valgte jeg Druid fremfor ClickHouse, Pinot og Apache Kylin. For nylig meddelte Microsoft, at de vil føje Druid til deres Azure HDInsight 4.0.

Hvorfor ikke Druid?

Carter Shanklin skrev et detaljeret indlæg om Druids begrænsninger på Horthonwork.com. Hovedproblemet er med dets understøttelse af SQL-sammenføjninger og avancerede SQL-funktioner.

Arkitekturen af ​​Druid

Druid er skalerbar på grund af sin klyngearkitektur. Du har tre forskellige nodetyper - Middle-Manager-Node, den historiske node og mægleren.

Det fantastiske er, at du kan tilføje så mange noder, som du vil, i det specifikke område, der passer bedst til dig. Hvis du har mange forespørgsler at køre, kan du tilføje flere mæglere. Eller hvis meget data skal batch-indtages, tilføjer du mellemledere og så videre.

En simpel arkitektur er vist nedenfor. Du kan læse mere om Druids design her.

Apache Superset - brugergrænsefladen

Den nemmeste måde at spørge mod Druid på er ved hjælp af et let open source-værktøj kaldet Apache Superset.

Det er let at bruge og har alle almindelige diagramtyper som Bubble Chart, Word Count, Heatmaps, Boxplot og mange flere.

Druid leverer en Rest-API og i den nyeste version også en SQL Query API. Dette gør det nemt at bruge med ethvert værktøj, hvad enten det er standard SQL, ethvert eksisterende BI-værktøj eller en brugerdefineret applikation.

Apache Airflow - Orchestrator

Som nævnt i Orchestrators - Planlægning og overvågning af arbejdsgange er dette en af ​​de mest kritiske beslutninger.

Tidligere blev ETL-værktøjer som Microsoft SQL Server Integration Services (SSIS) og andre meget brugt. De var, hvor din datatransformation, rengøring og normalisering fandt sted.

I mere moderne arkitekturer er disse værktøjer ikke nok længere.

Desuden er kode- og datatransformationslogik meget mere værdifuldt for andre datakyndige mennesker i virksomheden.

Jeg kan varmt anbefale dig at læse et blogindlæg fra Maxime Beauchemin om Functional Data Engineering - et moderne paradigme til batch-databehandling. Dette går meget dybere ind i, hvordan moderne datarørledninger skal være.

Overvej også læsningen af ​​dataingeniørens undergang, hvor Max forklarer om den banebrydende "datasilo" og meget mere.

Hvorfor bruge Airflow?

Apache Airflow er et meget populært værktøj til denne opgaveorkestrering. Luftstrøm er skrevet i Python. Opgaver er skrevet som dirigerede cykliske grafer (DAG'er). Disse er også skrevet i Python.

I stedet for at indkapsle din kritiske transformationslogik et eller andet sted i et værktøj, placerer du den, hvor den hører til, inde i Orchestrator.

En anden fordel er at bruge almindelig Python. Der er ikke behov for at indkapsle andre afhængigheder eller krav, som f.eks. Hentning fra en FTP, kopiering af data fra A til B, skrivning af en batchfil. Du gør det og alt andet på samme sted.

Funktioner af luftstrøm

Desuden får du et fuldt funktionelt overblik over alle aktuelle opgaver ét sted.

Mere relevante funktioner i Airflow er, at du skriver arbejdsgange, som om du skriver programmer. Eksterne job som databaser, gnist osv. Er ingen problemer.

Jobtest gennemgår selve Airflow. Dette inkluderer at videregive parametre til andre job nedstrøms eller kontrollere, hvad der kører på Airflow og se den faktiske kode. Logfilerne og andre metadata er tilgængelige via web-GUI'en.

(Gen) kun køre på dele af arbejdsgangen, og afhængige opgaver er en afgørende funktion, der kommer ud af kassen, når du opretter dine arbejdsgange med Airflow. Job / opgaver køres i en sammenhæng, planlæggeren videregiver de nødvendige detaljer plus arbejdet distribueres på tværs af din klynge på opgaveniveau, ikke på DAG-niveau.

For mange flere funktioner besøg den fulde liste.

ETL med Apache Airflow

Hvis du vil starte med Apache Airflow som dit nye ETL-værktøj, skal du starte med denne ETL-bedste praksis med Airflow delt med dig. Det har enkle ETL-eksempler med almindelig SQL, med HIVE, med Data Vault, Data Vault 2 og Data Vault med Big Data-processer. Det giver dig et fremragende overblik over, hvad der er muligt, og også hvordan du vil nærme dig det.

På samme tid er der en Docker-container, som du kan bruge, hvilket betyder at du ikke engang behøver at oprette nogen infrastruktur. Du kan trække containeren herfra.

For GitHub-repo skal du følge linket på etl-med-luftstrøm.

Konklusion

Hvis du søger efter open source-dataarkitektur, kan du ikke ignorere Druid for hurtige OLAP-svar, Apache Airflow som en orkestrator, der holder din datalinje og tidsplaner på linje plus et brugervenligt dashboardværktøj som Apache Superset.

Min erfaring indtil videre er, at Druid er blodig hurtig og en perfekt pasform til udskiftning af OLAP-terninger på en traditionel måde, men stadig har brug for en mere afslappet opstart for at installere klynger, indtage data, se logfiler osv. Impy, som blev oprettet af grundlæggerne af Druid. Det opretter alle de tjenester omkring Druid, du har brug for. Desværre er det dog ikke open source.

Apache Airflow og dets funktioner som orkestrator er noget, der endnu ikke er sket meget i traditionelle Business Intelligence-miljøer. Jeg tror, ​​at denne ændring kommer meget naturligt, når du begynder at bruge open source og flere nye teknologier.

Og Apache Superset er en nem og hurtig måde at være i gang og vise data fra Druid. Der for bedre værktøjer som Tableau osv., Men ikke gratis. Derfor passer Superset godt ind i økosystemet, hvis du allerede bruger ovenstående open source-teknologier. Men som en virksomhedsvirksomhed vil du måske bruge nogle penge i den kategori, for det er det, som brugerne kan se i slutningen af ​​dagen.

Relaterede links:

  • Forståelse af Apache Airflow's nøglekoncepter
  • Hvordan Druid muliggør analyse på Airbnb
  • Google lancerer Cloud Composer, et nyt automatiseringsværktøj til workflow til udviklere
  • En fuldt administreret orkestreringstjeneste til workflow bygget på Apache Airflow
  • Integrering af Apache Airflow og Databricks: Bygning af ETL-rørledninger med Apache Spark
  • ETL med Apache Airflow
  • Hvad er Data Engineering og fremtiden for datalagring
  • Implicere - Managed Druid platform (lukket kilde)
  • Ultrahurtig OLAP Analytics med Apache Hive og Druid

Oprindeligt offentliggjort på www.sspaeti.com den 29. november 2018.