Hur BigQuery frÄn Google har demokratiserat datanalys. Del 1

Hej, Habr! Just nu Ă€r anmĂ€lan till den nya omgĂ„ngen av kursen pĂ„ OTUS öppen. „Data Engineer“. I förberedelserna inför start av kursen har vi traditionellt förberett en översĂ€ttning av ett intressant material för er.

Mer Àn hundra miljoner mÀnniskor besöker Twitter varje dag för att ta reda pÄ vad som hÀnder i vÀrlden och diskutera det. Varje tweet och varje annan anvÀndarÄtgÀrd genererar en hÀndelse som Àr tillgÀnglig för intern dataanalys pÄ Twitter. Hundratals anstÀllda analyserar och visualiserar dessa data, och att förbÀttra deras upplevelse Àr högsta prioritet för Twitter Data Platform-teamet.

Vi anser att anvÀndare med en bredd av tekniska fÀrdigheter ska kunna hitta data och fÄ tillgÄng till vÀlinarbetade verktyg för analys och visualisering baserat pÄ SQL. Detta skulle möjliggöra för en helt ny grupp anvÀndare med mindre teknisk bakgrund, inklusive dataanalytiker och produktledare, att extrahera insikter frÄn data, vilket hjÀlper dem att bÀttre förstÄ och utnyttja möjligheterna pÄ Twitter. SÄ demokratiserar vi dataanalys pÄ Twitter.

Medan vĂ„ra verktyg och möjligheter för intern dataanalys har förbĂ€ttrats har vi sett en förbĂ€ttring av Twitter-tjĂ€nsten. ÄndĂ„ finns det fortfarande utrymme för tillvĂ€xt. Nuvarande verktyg, sĂ„som Scalding, krĂ€ver programmeringskunskaper. SQL-baserade analysverktyg, sĂ„som Presto och Vertica, har prestandaproblem i stor skala. Vi har ocksĂ„ problem med att sprida data över flera system utan konstant tillgĂ„ng till dem.

Förra Äret tillkÀnnagav vi ett nytt samarbete med Google, dÀr vi flyttar delar av vÄr datainfrastruktur till Google Cloud Platform (GCP). Vi har kommit fram till att Googles verktyg Big Data kan hjÀlpa oss i vÄra initiativ för att demokratisera analys, visualisering och maskininlÀrning pÄ Twitter:

  • BigQuery: företagsdatabas med en SQL-motor baserad pĂ„ Dremel, som Ă€r kĂ€nd för sin hastighet, enkelhet och hanterar , maskininlĂ€rning.
  • Data Studio: ett verktyg för visualisering av big data med samarbetsfunktioner som i Google Docs.

I denna artikel fÄr du veta om vÄra erfarenheter med dessa verktyg: vad vi har gjort, vad vi har lÀrt oss och vad vi ska göra hÀrnÀst. Just nu fokuserar vi pÄ batch- och interaktiv analys. Realtidsanalys kommer vi att diskutera i nÀsta artikel.

Historien om datalager pÄ Twitter

Innan vi dyker djupare in i BigQuery Ă€r det vĂ€rt att kort sammanfatta historien om datalager pĂ„ Twitter. År 2011 utfördes dataanalys pĂ„ Twitter med Vertica och Hadoop. För att skapa Hadoop's MapReduce jobb anvĂ€nde vi Pig. År 2012 bytte vi ut Pig mot Scalding, som hade ett Scala API med fördelar som möjligheten att skapa komplexa flöden och enkel testning. Men för mĂ„nga dataanalytiker och produktchefer som kĂ€nde sig mer bekvĂ€ma med SQL var detta en ganska brant inlĂ€rningskurva. UngefĂ€r 2016 började vi anvĂ€nda Presto som SQL-grĂ€nssnitt för Hadoop-data. Spark erbjöd ett Python-grĂ€nssnitt vilket gör det till ett bra val för ad hoc dataanalyser och maskininlĂ€rning.

FrÄn och med 2018 har vi anvÀnt följande verktyg för dataanalys och visualisering:

  • Scalding för produktionsflöden
  • Scalding och Spark för ad hoc dataanalys och maskininlĂ€rning
  • Vertica och Presto för ad hoc och interaktiv SQL-analys
  • Druid för liten interaktiv, utforskande och lĂ„glatens Ă„tkomst till tidsseriemetrik
  • Tableau, Zeppelin och Pivot för datavisualisering

Vi upptÀckte att Àven om dessa verktyg erbjuder mycket kraftfulla funktioner, hade vi svÄrigheter med att göra dessa funktioner tillgÀngliga för en bredare publik pÄ Twitter. NÀr vi utvidgar vÄr plattform med Google Cloud, fokuserar vi pÄ att förenkla vÄra analysverktyg för hela Twitter.

BigQuery datalager frÄn Google

Flera team pÄ Twitter har redan inkluderat BigQuery i vissa av sina produktionsflöden. Genom att anvÀnda deras erfarenhet började vi utvÀrdera BigQuery:s kapabiliteter för alla anvÀndningsscenarier pÄ Twitter. VÄrt mÄl var att erbjuda BigQuery till hela företaget samt att standardisera och underhÄlla det inom ramen för verktygen pÄ Data Platform. Detta var besvÀrligt av mÄnga skÀl. Vi behövde utveckla en infrastruktur för tillförlitlig mottagning av stora datavolymer, stöd för datastyrning pÄ företagsnivÄ, sÀkerstÀllande av korrekt Ätkomstkontroll och skydd av kunders integritet. Vi var ocksÄ tvungna att skapa system för resursfördelning, övervakning och betalningsÄtervinning sÄ att teamen effektivt kunde anvÀnda BigQuery.

I november 2018 slÀppte vi alpha-versionen av BigQuery och Data Studio för hela företaget. Vi erbjöd Twitter-anstÀllda nÄgra av vÄra mest anvÀnda tabeller med rengjorda personuppgifter. Mer Àn 250 anvÀndare frÄn olika team, inklusive teknik, finans och marknadsföring, anvÀnde BigQuery. Nyligen genomförde de omkring 8 000 förfrÄgningar, vilket hanterade cirka 100 PB per mÄnad, utan att rÀkna med schemalagda förfrÄgningar. Efter att ha fÄtt mycket positiv feedback beslutade vi oss för att gÄ vidare och erbjuda BigQuery som en primÀr resurs för datainteraktion pÄ Twitter.

HÀr Àr en hög nivÄ av arkitekturdiagrammet för vÄrt datalager Google BigQuery.

Hur BigQuery frÄn Google har demokratiserat datanalys. Del 1
Vi kopierar data frÄn lokala Hadoop-kluster till Google Cloud Storage (GCS) med hjÀlp av vÄrt interna verktyg Cloud Replicator. DÀrefter anvÀnder vi Apache Airflow för att skapa rörledningar som anvÀnder "bq_load" för att ladda data frÄn GCS till BigQuery. Vi anvÀnder Presto för att frÄga dataset Parquet eller Thrift-LZO i GCS. BQ Blaster Àr ett internt verktyg i Scalding för att ladda dataset HDFS Vertica och Thrift-LZO till BigQuery.

I de följande avsnitten kommer vi att diskutera vÄrt tillvÀgagÄngssÀtt och vÄra kunskaper om anvÀndarvÀnlighet, prestanda, datastyrning, systemens driftsÀkerhet och kostnad.

AnvÀndarvÀnlighet

Vi har upptĂ€ckt att det var lĂ€tt för anvĂ€ndarna att börja med BigQuery, eftersom det inte krĂ€vde programvaruinstallation och anvĂ€ndarna kunde fĂ„ Ă„tkomst via en intuitiv webbgrĂ€nssnitt. ÄndĂ„ behövde anvĂ€ndarna bekanta sig med vissa GCP-funktioner och dess koncept, inklusive resurser som projekt, dataset och tabeller. Vi har utvecklat utbildningsmaterial och handledningar för att hjĂ€lpa anvĂ€ndare att komma igĂ„ng. NĂ€r de fick en grundlĂ€ggande förstĂ„else blev det enkelt för anvĂ€ndarna att navigera i dataset, granska scheman och data i tabeller, utföra enkla förfrĂ„gningar och visualisera resultat i Data Studio.

VÄrt mÄl för datainmatningen i BigQuery var att sÀkerstÀlla en smidig inladdning av dataset HDFS eller GCS med ett klick. Vi övervÀgde Cloud Composer (styrt Airflow), men vi kunne ikke bruke det pÄ grunn av vÄr sikkerhetsmodell «Domain Restricted Sharing» (les mer om dette i avsnittet «Datastyring» nedenfor). Vi eksperimenterte med Ä bruke Google Data Transfer Service (DTS) for Ä organisere lastoppgaver i BigQuery. Mens DTS ble satt opp raskt, var det ikke fleksibelt for Ä bygge pipelines med avhengigheter. For vÄr alfa-versjon opprettet vi vÄrt eget Apache Airflow-miljÞ i GCE og forbereder det til produksjon og muligheten til Ä stÞtte flere datakilder, som Vertica.

For Ä transformere data til BigQuery oppretter brukere enkle SQL-datapipelines ved hjelp av planlagte forespÞrseler. For komplekse flerstegs-pipelines med avhengigheter planlegger vi Ä bruke enten vÄr egen Airflow-infrastruktur eller Cloud Composer sammen med Cloud Dataflow.

Performance

BigQuery er laget for generelle SQL-forespÞrseler som behandler store datamengder. Den er ikke designet for forespÞrseler med lav ventetid og hÞy gjennomstrÞmning, som kreves for transaksjonsdatabaser, eller for lav-latens analyse av tidsserier, implementert av Apache Druid. For interaktive analytiske forespÞrseler forventer brukerne vÄre en responstid pÄ under ett minutt. Vi mÄtte designe bruken av BigQuery slik at den oppfylte disse forventningene. For Ä sikre forutsigbar ytelse for vÄre brukere, brukte vi BigQuery-funksjonaliteten tilgjengelig for kunder med fast pris, som lar prosjektseierne reservere minimale slots for sine forespÞrseler. Slot BigQuery er en enhet for beregningskraft som kreves for Ä utfÞre SQL-forespÞrseler.

Vi har analyserat mer Àn 800 förfrÄgningar som hanterar ungefÀr 1 TB data vardera och upptÀckte att den genomsnittliga exekveringstiden var 30 sekunder. Vi lÀrde oss ocksÄ att prestandan Àr starkt beroende av hur vÄr slot anvÀnds i olika projekt och uppgifter. Vi var tvungna att tydligt separera vÄra produktions- och ad hoc slot-reserver för att upprÀtthÄlla prestanda för produktionsanvÀndningssituationer och interaktiv analys. Detta pÄverkade i hög grad vÄr design för slot-reservering och projekt hierarki.

Om datastyrning, funktionalitet och kostnad för system kommer vi att prata mer om i de kommande dagarna i den andra delen av översĂ€ttningen, men just nu inbjuder vi alla intresserade till gratis live-webinar, dĂ€r man kan fĂ„ veta mer om kursen och Ă€ven stĂ€lla frĂ„gor till vĂ„r expert — Yegor Mateshchuk (Senior Data Engineer, MaximaTelecom).

LĂ€s mer:

KĂ€lla: habr.com

Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar đŸ”„ Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar | ProHoster