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

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 â ), 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 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:
- : en beta-funktion som förhindrar anvÀndare frÄn att dela BigQuery-dataset med anvÀndare utanför Twitter.
- : 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 , 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 (), 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 pris för att ha en stabil mÄnadsavgift istÀllet för att betala 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. . 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 , 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 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 i Data Platform-teamet.
KĂ€lla: habr.com
