Hur Google BigQuery demokratiserade datanalys. Del 2

Hej, Habr! Just nu Ă€r anmĂ€lan till den nya omgĂ„ngen av kursen pĂ„ OTUS öppen. „Data Engineer“. Inför kursstarten fortsĂ€tter vi att dela med oss av nyttig information.

LÀs första delen

Hur Google BigQuery demokratiserade datanalys. Del 2

Datastyrning

Stark datastyrning (Strong Data Governance) Àr en grundlÀggande princip för Twitter Engineering. NÀr vi implementerar BigQuery pÄ vÄr plattform fokuserar vi pÄ datadetektering, Ätkomstkontroll, sÀkerhet och integritet.

För datadetektering och hantering har vi utökat vĂ„rt datatillgĂ„ngslager (Data Access Layer — DAL), för att tillhandahĂ„lla verktyg för bĂ„de lokala data och Google Cloud-data, vilket ger ett enhetligt grĂ€nssnitt och API för vĂ„ra anvĂ€ndare. NĂ€r Google Data Catalog blir mer tillgĂ€nglig, kommer vi att inkludera den i vĂ„ra projekt för att ge anvĂ€ndare funktioner sĂ„som sökning efter kolumner.

BigQuery gör det enkelt att dela och fÄ Ätkomst till data, men vi behövde kontrollera detta till viss del för att förhindra datalÀckage. Bland andra verktyg valde vi tvÄ funktioner:

  • DomĂ€nbegrĂ€nsad delning: en beta-funktion som förhindrar anvĂ€ndare frĂ„n att dela BigQuery-dataset med anvĂ€ndare utanför Twitter.
  • VPC-tjĂ€nstkontroller: en kontrollmekanism som förhindrar datalĂ€ckage och krĂ€ver att anvĂ€ndare fĂ„r Ă„tkomst till BigQuery frĂ„n kĂ€nda IP-adressintervall.

Vi har implementerat autentisering, auktorisering och revision (AAA) för sÀkerhet pÄ följande sÀtt:

  • Autentisering: vi har anvĂ€nt GCP-anvĂ€ndarkonton för ad hoc-förfrĂ„gningar och tjĂ€nstekonton för arbetsförfrĂ„gningar.
  • Auktorisering: vi krĂ€ver att varje dataset har ett tjĂ€nkontoinnehav och en lĂ€sargrupp.
  • Revision: vi exporterade BigQuery:s stackdrivrutinsloggar, som innehöll detaljerad information om frĂ„getillĂ€mpningar, till ett BigQuery-dataset för enkel analys.

För att sÀkerstÀlla korrekt hantering av personuppgifter frÄn Twitter-anvÀndare mÄste vi registrera alla BigQuery-datasets, annotera personuppgifter, sÀkerstÀlla lÀmplig lagring och radera (stÀda) data som har tagits bort av anvÀndare.

Vi övervÀgde Google Cloud Data Loss Prevention API, som anvÀnder maskininlÀrning för att klassificera och redigera konfidentiella data, men beslutade att gÄ med manuell annotering av datamÀngden pÄ grund av noggrannheten. Vi planerar att anvÀnda Data Loss Prevention API för att komplettera anvÀndarannoteringen.

PÄ Twitter har vi skapat fyra kategorier av konfidentialitet för datamÀngder i BigQuery, listade hÀr i ordning efter kÀnslighet:

  • HögkĂ€nsliga datamĂ€ngder Ă€r tillgĂ€ngliga efter behov baserat pĂ„ principen om minimiĂ„tkomst. Varje datamĂ€ngd har en separat lĂ€sartgrupp, och vi kommer att övervaka anvĂ€ndningen av individuella konton.
  • DatamĂ€ngder med medelkĂ€nslighet (enkelsidiga pseudonymer med saltade hash) innehĂ„ller ingen personlig information (Personally Identifiable Information – PII) och Ă€r tillgĂ€ngliga för en större grupp anstĂ€llda. Detta ger en bra balans mellan sekretessövervĂ€ganden och anvĂ€ndbarhet. Det gör att anstĂ€llda kan utföra analysuppgifter, sĂ„som att rĂ€kna antalet anvĂ€ndare som har anvĂ€nt en funktion, utan att veta vilka som Ă€r de verkliga anvĂ€ndarna.
  • DatamĂ€ngder med lĂ„g kĂ€nslighet innehĂ„ller all information som identifierar anvĂ€ndaren. Detta Ă€r en bra metod ur sekretessynpunkt, men den kan inte anvĂ€ndas för analys pĂ„ anvĂ€ndarnivĂ„.
  • Offentliga datamĂ€ngder (utgivna utanför Twitter) Ă€r tillgĂ€ngliga för alla Twitter-anstĂ€llda.

NÀr det kommer till registrering anvÀnde vi schemalagda uppgifter för att lista datamÀngder i BigQuery och registrera dem i Data Access Layer (DAL), Twitter's metadata-lager. AnvÀndare kommer att annotera datamÀngder med sekretessinformation samt specificera lagringstid. NÀr det kommer till rensning utvÀrderar vi prestanda och kostnad för tvÄ alternativ: 1. Rensning av datamÀngder i GCS med hjÀlp av verktyg som Scalding och laddning av dem i BigQuery; 2. AnvÀndning av BigQuery DML-operatörer. Vi kommer troligen att anvÀnda en kombination av bÄda metoderna för att möta behoven hos olika grupper och data.

Systemets funktionalitet

Eftersom BigQuery Àr en hanterad tjÀnst behövde SRE-teamet pÄ Twitter inte kopplas in för att hantera systemen eller utföra driftuppgifter. Det var enkelt att sÀkerstÀlla hög kapacitet bÄde för lagring och berÀkningar. Vi kunde justera slotreservationen genom att skapa biljetter till Google-supporten. Vi identifierade att vi kunde förbÀttra, till exempel sjÀlvbetjÀningen för slottdistribution och förbÀttra instrumentpanelen för övervakning, och vi vidarebefordrade dessa förfrÄgningar till Google.

Kostnad

VÄr preliminÀra analys visade att kostnaden för förfrÄgningar för BigQuery och Presto var pÄ samma nivÄ. Vi köpte slots till ett fast pris för att ha en stabil mÄnadsavgift istÀllet för att betala per begÀran per TB bearbetad data. Detta beslut baserades ocksÄ pÄ feedback frÄn anvÀndare som inte ville tÀnka pÄ kostnaderna innan de gjorde varje förfrÄgning.

Datlagring i BigQuery medförde kostnader utöver kostnaderna för GCS. Verktyg som Scalding krÀver att dataset finns i GCS, och för att fÄ tillgÄng till BigQuery var vi tvungna att ladda upp samma dataset i BigQuery-format. Capacitor. Vi arbetar med att koppla samman Scalding med BigQuery-dataset, vilket skulle eliminera behovet av att lagra dataset bÄde i GCS och BigQuery.

För sÀllsynta fall som krÀvde sÀllsynta förfrÄgningar pÄ tiotals petabyte beslutade vi att lagring av dataset i BigQuery inte var kostnadseffektivt och anvÀnde Presto för direkt Ätkomst till dataset i GCS. För detta ser vi pÄ BigQuery External Data Sources.

Följande steg

Vi har noterat stort intresse för BigQuery sedan alfa-lanseringen. Vi lÀgger till fler dataset och fler team i BigQuery. Vi utvecklar kopplingar för dataanalysverktyg som Scalding för att lÀsa och skriva till BigQuery-lagringen. Vi övervÀger verktyg som Looker och Apache Zeppelin för att skapa företagsrapporter om kvalitet och anteckningar med hjÀlp av BigQuery-dataset.

Samarbetet med Google har varit mycket produktivt, och vi ser fram emot att fortsÀtta och utveckla detta partnerskap. Vi har arbetat med Google för att implementera vÄr egen Partner Issue Tracker, för att direkt skicka förfrÄgningar till Google. Vissa av dessa, som BigQuery Parquet-laddaren, har redan implementerats av Google.

HÀr Àr nÄgra av vÄra högprioriterade funktionsförfrÄgningar för Google:

  • Verktyg för smidig datainhĂ€mtning och stöd för LZO-Thrift-formatet.
  • Timbaserad segmentering
  • FörbĂ€ttringar inom Ă„tkomstkontroll, sĂ„som behörigheter pĂ„ tabell-, rad- och kolumnnivĂ„.
  • BigQuery Externa datakĂ€llor med integration och stöd för Hive Metastore för LZO-Thrift-formatet.
  • FörbĂ€ttrad integration av datakatalog i BigQuery-anvĂ€ndargrĂ€nssnittet
  • SjĂ€lvbetjĂ€ning för distribution och övervakning av slots.

Slutsats

Demokratisering av dataanalys, visualisering och maskininlÀrning pÄ ett sÀkert sÀtt Àr en högsta prioritet för Data Platform-teamet. Vi har identifierat Google BigQuery och Data Studio som verktyg som kan hjÀlpa till att nÄ detta mÄl, och vi slÀppte BigQuery Alpha för hela företaget förra Äret.

Vi har funnit att förfrÄgningar i BigQuery var enkla och effektiva. För datainhÀmtning och transformation anvÀnde vi Googles verktyg för enkla rörledningar, men för mer komplexa rörledningar var vi tvungna att skapa vÄr egen Airflow-infrastruktur. Vad gÀller datastyrning uppfyller BigQuerys tjÀnster för autentisering, auktorisering och granskning vÄra behov. För hantering av metadata och sekretesskrav behövde vi stor flexibilitet och var tvungna att bygga egna system. BigQuery, som en hanterad tjÀnst, var lÀtt att anvÀnda. Kostnaderna för förfrÄgningar var jÀmförbara med befintliga verktyg. Datastore i BigQuery medförde kostnader utöver kostnaderna för GCS.

Överlag fungerar BigQuery bra för allmĂ€n SQL-analys. Vi noterar stort intresse för BigQuery och arbetar med att migrera fler dataset, attrahera fler team och skapa fler rörledningar med BigQuery. PĂ„ Twitter anvĂ€nds olika data som krĂ€ver en kombination av verktyg som Scalding, Spark, Presto och Druid. Vi avser att fortsĂ€tta utveckla vĂ„ra analysverktyg och ge klara rekommendationer till vĂ„ra anvĂ€ndare om hur man bĂ€st anvĂ€nder vĂ„ra erbjudanden.

Tackord

Jag vill tacka mina medförfattare och teamkollegor, Anju Dja och Will Pascucci, för deras fantastiska samarbete och hÄrda arbete i detta projekt. Jag vill ocksÄ tacka ingenjörer och chefer frÄn flera team pÄ Twitter och Google som hjÀlpte oss och anvÀndarna av BigQuery pÄ Twitter genom att ge vÀrdefull feedback.

Om du Àr intresserad av att arbeta med dessa uppgifter, ta en titt pÄ vÄra lediga tjÀnster i Data Platform-teamet.

Datakvalitet i DWH – konsistens i datalagringen

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