Pozdrav, Habr! Trenutno su u OTUS-u otvorene prijave za novu grupu tečaja . Uoči početka kursa, nastavljamo da delimo korisne materijale s vama.

Upravljanje podatkov
Snažno upravljanje podacima (Strong Data Governance) je osnovni princip inženjeringa na Twitteru. Dok implementiramo BigQuery na našoj platformi, fokusiramo se na otkrivanje podataka, kontrolu pristupa, sigurnost i privatnost.
Za otkrivanje i upravljanje podacima, proširili smo naš nivo pristupa podacima (Data Access Layer — ), kako bismo korisnicima obezbedili alate i za lokalne podatke i za podatke iz Google Cloud-a, pružajući jedinstveni interfejs i API. Kako Google napreduje prema javnosti, uključićemo ga u naše projekte kako bismo korisnicima obezbedili funkcionalnosti poput pretrage po kolonama.
BigQuery olakšava deljenje podataka i pristup istim, ali smo morali da kontrolišemo to do određene mere kako bismo sprečili iscurenje podataka. Uz druge alate, izabrali smo dve funkcije:
- : beta funkcija koja zabranjuje korisnicima da dele BigQuery skupove podataka s korisnicima van Twittera.
- : kontrolni element koji sprečava iscurenje podataka i zahteva od korisnika da pristupaju BigQuery iz poznatih IP adresa.
Implementirali smo zahteve za autentifikaciju, autorizaciju i reviziju (AAA) radi obezbeđenja na sledeći način:
- Autentifikacija: koristili smo GCP korisničke naloge za ad hoc upite i naloge servisa za radne upite.
- Autorizacija: zahtevali smo da svaki skup podataka ima nalog servisa vlasnika i grupu čitaoca.
- Revizija: eksportovali smo logove BigQuery StackDriver-a, koji su sadržavali detaljne informacije o izvršenim upitima, u BigQuery skup podataka radi lakše analize.
Da bismo osigurali pravilnu obradu ličnih podataka korisnika Twittera, moramo registrovati sve skupove podataka BigQuery, anotirati lične podatke, održavati odgovarajuće skladištenje i brisati (pročišćavati) podatke koje su korisnici uklonili.
Razmatrali smo Google , ki uporablja strojno učenje za klasifikacijo in urejanje zaupnih podatkov, vendar smo se odločili za ročno anotacijo niza podatkov zaradi natančnosti. Načrtujemo uporabo API za preprečevanje izgube podatkov, da dopolnimo uporabniško annotacijo.
Na Twitterju smo ustvarili štiri kategorije zasebnosti za niza podatkov v BigQuery, navedene tukaj v padajočem vrstnem redu občutljivosti:
- Visoko občutljivi nizi podatkov so na voljo po potrebi na osnovi načela najmanjših privilegijev. Vsak niz podatkov ima ločeno skupino bralcev in spremljali bomo uporabo posameznih računov.
- Nizi podatkov srednje občutljivosti (enostranske pseudonimizacije s soljenim heširanjem) ne vsebujejo osebnih informacij (Personally Identifiable Information — PII) in so na voljo večji skupini zaposlenih. To je dober kompromis med zahtevami glede zasebnosti in uporabnostjo podatkov. Omogoča zaposlenim izvajanje analiz, kot je izračun števila uporabnikov, ki so uporabili funkcijo, ne da bi vedeli, kdo so dejanski uporabniki.
- Nizi podatkov z nizko občutljivostjo, ki vsebujejo vse informacije, ki identificirajo uporabnika. To je dober pristop z vidika zasebnosti, vendar ga ni mogoče uporabiti za analizo na ravni uporabnika.
- Javni nizi podatkov (objavljeni zunaj Twitterja) so dostopni vsem zaposlenim Twitterja.
Kar se tiče registracije, smo uporabili načrtovane naloge za naštevanje nizov podatkov BigQuery in registracijo v Sloju dostopa do podatkov (), skladišče metapodatkov Twitterja. Uporabniki bodo anotirali nize podatkov z informacijami o zasebnosti, prav tako pa navedenim rokom hrambe. Kar se tiče čiščenja, ocenjujemo uspešnost in stroške dveh možnosti: 1. Čiščenje nizov podatkov v GCS z orodji, kot je Scalding, in nalaganje le-teh v BigQuery; 2. Uporaba operatorjev BigQuery DML. Verjetno bomo uporabili kombinacijo obeh metod za zadovoljevanje potreb različnih skupin in podatkov.
Funkcionalnost sistema
Ker ker BigQuery predstavlja upravljano storitev, ni bilo potrebe po vključitvi SRE ekipe Twitter v upravljanje sistemov ali opravljanje dežurnih nalog. Enostavno je bilo zagotoviti veliko kapaciteto tako za shranjevanje kot za izračune. Rezervacijo slotov smo lahko spreminjali z ustvarjanjem zahtevkov za podporo Googlu. Ugotovili smo, da je mogoče izboljšati, na primer, samooskrbo pri dodeljevanju slotov in izboljšanje nadzorne plošče za spremljanje, in ta prizadevanja smo posredovali Googlu.
Cena
Naša predhodna analiza je pokazala, da so stroški poizvedb za BigQuery in Presto na enakem nivoju. Kupili smo slote po ceni, da bi imeli stabilne mesečne stroške namesto plačevanja za TB obdelanih podatkov. Ta odločitev je bila prav tako podprta z mnenji uporabnikov, ki niso želeli razmišljati o stroških pred izvajanjem vsake poizvedbe.
Shranjevanje podatkov v BigQuery je povzročilo dodatne stroške ob upoštevanju stroškov GCS. Orodja, kot je Scalding, zahtevajo prisotnost podatkovnih nizov v GCS, in za dostop do BigQuery smo morali naložiti iste podatkovne nize v format BigQuery . Delamo na povezovanju Scalding s podatkovnimi nizi BigQuery, kar bo odpravilo potrebo po shranjevanju podatkovnih nizov tako v GCS kot v BigQuery.
Za redke primere, ki so zahtevali redke poizvedbe na desetine petabajtov, smo ugotovili, da shranjevanje podatkovnih nizov v BigQuery ni stroškovno učinkovito, zato smo uporabili Presto za neposreden dostop do podatkovnih nizov v GCS. Pri tem se zanimamo za BigQuery External Data Sources.
Naslednji koraki
Opazili smo velik interes za BigQuery od trenutka izdaje alfa verzije. Dodajamo več podatkovnih nizov in več ekip v BigQuery. Razvijamo povezovalnike za orodja za analizo podatkov, kot je Scalding, za branje in pisanje v skladišče BigQuery. Razmišljamo o orodjih, kot sta Looker in Apache Zeppelin, za ustvarjanje poslovnih poročil o kakovosti in opomb z uporabo podatkovnih nizov BigQuery.
Sodelovanje z Googlom je bilo zelo produktivno in veselimo se, da bomo nadaljevali in razvijali to partnerstvo. Delali smo z Googlom, da bi uvedli naš lasten , da lahko neposredno pošiljamo zahtevke Googlu. Nekateri od njih, kot je nalagalnik BigQuery Parquet, so že bili implemented by Google.
Tukaj je nekaj naših najpomembnejših funkcionalnih zahtev za Google:
- Orodja za enostavno sprejemanje podatkov in podpora za LZO-Thrift format.
- Urejanje po urah
- Izboljšave na področju nadzora dostopa, kot so dovoljenja na ravni tabel, vrstic in stolpcih.
- BigQuery z integracijo in podporo za Hive Metastore za LZO-Thrift format.
- Izboljšana integracija podatkovnega kataloga v uporabniškem vmesniku BigQuery
- Samopostrežnost za razporejanje in spremljanje slotov.
Zaključek
Demokracija analize podatkov, vizualizacije in strojnega učenja na varen način je najvišja prioriteta ekipe Data Platform. Določili smo Google BigQuery in Data Studio kot orodja, ki lahko prispevajo k doseganju tega cilja, in lansirali BigQuery Alpha za celotno podjetje v preteklem letu.
Ugotovili smo, da so poizvedbe v BigQuery preproste in učinkovite. Za sprejem in pretvorbo podatkov smo uporabili Googlove instrumente za preproste cevovode, za zapletene cevovode pa smo morali ustvariti svojo infrastrukturo Airflow. Na področju upravljanja podatkov storitve BigQuery zadostujejo našim potrebam po avtentikaciji, avtorizaciji in reviziji. Za upravljanje metapodatkov in zaščito zasebnosti smo potrebovali veliko prilagodljivosti in morali smo ustvariti lastne sisteme. BigQuery, kot upravljana storitev, je bil enostaven za uporabo. Stroški poizvedb so bili podobni obstoječim orodjem. Stroški shranjevanja podatkov v BigQuery so bili dodatni k stroškom GCS.
Na splošno BigQuery dobro deluje za splošno SQL analizo. Opazili smo veliko zanimanje za BigQuery in delamo na prenosu več podatkovnih nizov, privabljanju več ekip in ustvarjanju več cevovodov z BigQuery. Na Twitterju se uporabljajo različni podatki, za katere bo potrebna kombinacija orodij, kot so Scalding, Spark, Presto in Druid. Namerno je nadaljevati z razvojem naših orodij za analizo podatkov in nuditi jasna priporočila našim uporabnikom o tem, kako najbolje izkoristiti naše ponudbe.
Besede hvaležnosti
Rad bi se zahvalil svojim co-avtorjem in sodelavcem, Anju Dja in Willu Pascucci, za njihovo odlično sodelovanje in trdo delo na tem projektu. Prav tako bi se rad zahvalil inženirjem in vodjem iz več ekip v Twitterju in Googlu, ki so nam in uporabnikom BigQuery na Twitterju pomagali z dragocenimi povratnimi informacijami.
Če vas zanima delo na teh nalogah, si oglejte naše v ekipi Data Platform.
Izvor: habr.com
