Kako je Googleov BigQuery demokratizovao analizu podataka. Dio 2

Zdravo, Habr! Upis za novi stream kursa je trenutno otvoren na OTUS-u Data Engineer. U iščekivanju početka kursa, nastavljamo sa dijeljenjem korisnih materijala s vama.

Pročitaj prvi dio

Kako je Googleov BigQuery demokratizovao analizu podataka. Dio 2

Upravljanje podacima

Snažno upravljanje podacima je osnovni princip Twitter inženjeringa. Dok implementiramo BigQuery u našu platformu, fokusiramo se na otkrivanje podataka, kontrolu pristupa, sigurnost i privatnost.

Da bismo otkrili i upravljali podacima, proširili smo naš sloj pristupa podacima na DAL) za pružanje alata za lokalne i Google Cloud podatke, pružajući jedinstven interfejs i API za naše korisnike. Kao Google Katalog podataka kreće se prema općoj dostupnosti, uključit ćemo ga u naše projekte kako bismo korisnicima pružili funkcije kao što je pretraživanje kolona.

BigQuery olakšava dijeljenje i pristup podacima, ali morali smo imati određenu kontrolu nad ovim kako bismo spriječili eksfiltraciju podataka. Između ostalih alata, odabrali smo dvije funkcije:

  • Dijeljenje ograničeno na domenu: Beta funkcija koja sprečava korisnike da dijele BigQuery skupove podataka sa korisnicima izvan Twittera.
  • VPC servisne kontrole: Kontrola koja sprječava eksfiltraciju podataka i zahtijeva od korisnika da pristupe BigQueryju iz poznatih raspona IP adresa.

Implementirali smo zahtjeve za provjeru autentičnosti, autorizaciju i reviziju (AAA) za sigurnost kako slijedi:

  • Autentifikacija: Koristili smo GCP korisničke račune za ad hoc zahtjeve i servisne račune za proizvodne zahtjeve.
  • Autorizacija: zahtijevali smo da svaki skup podataka ima vlasnički servisni račun i grupu čitača.
  • Revizija: Izvezli smo BigQuery evidencije stackdrivera, koji su sadržavali detaljne informacije o izvršavanju upita, u BigQuery skup podataka radi jednostavne analize.

Kako bismo osigurali da se ličnim podacima korisnika Twittera rukuje pravilno, moramo registrirati sve BigQuery skupove podataka, označiti lične podatke, održavati odgovarajuću pohranu i izbrisati (scrape) podatke koje su korisnici izbrisali.

Pogledali smo Google API za prevenciju gubitka podataka u oblaku, koji koristi mašinsko učenje za klasifikaciju i uređivanje osjetljivih podataka, ali je odlučio u korist ručnog označavanja skupa podataka zbog tačnosti. Planiramo koristiti Data Loss Prevention API za povećanje prilagođene bilješke.

Na Twitteru smo kreirali četiri kategorije privatnosti za skupove podataka u BigQueryju, ovdje navedene u opadajućem redoslijedu osjetljivosti:

  • Visoko osjetljivi skupovi podataka dostupni su prema potrebi na osnovu principa najmanje privilegija. Svaki skup podataka ima zasebnu grupu čitača, a mi ćemo pratiti korištenje po pojedinačnim nalozima.
  • Skupovi podataka srednje osjetljivosti (jednosmjerni pseudonimi koji koriste slano heširanje) ne sadrže lične informacije (PII) i dostupni su većoj grupi zaposlenih. Ovo je dobar balans između brige o privatnosti i korisnosti podataka. Ovo omogućava zaposlenima da obavljaju zadatke analize, kao što je izračunavanje broja korisnika koji su koristili funkciju, a da ne znaju ko su pravi korisnici.
  • Skupovi podataka niske osjetljivosti sa svim informacijama za identifikaciju korisnika. Ovo je dobar pristup iz perspektive privatnosti, ali se ne može koristiti za analizu na nivou korisnika.
  • Javni skupovi podataka (objavljeni izvan Twittera) dostupni su svim zaposlenima na Twitteru.

Što se tiče evidentiranja, koristili smo zakazane zadatke da nabrojimo BigQuery skupove podataka i registrujemo ih u sloju pristupa podacima (DAL), Twitter spremište metapodataka. Korisnici će označiti skupove podataka informacijama o privatnosti i također odrediti period čuvanja. Što se tiče čišćenja, ocjenjujemo performanse i cijenu dvije opcije: 1. Čišćenje skupova podataka u GCS-u pomoću alata kao što je Scalding i njihovo učitavanje u BigQuery; 2. Korištenje BigQuery DML naredbi. Vjerovatno ćemo koristiti kombinaciju obje metode kako bismo zadovoljili zahtjeve različitih grupa i podataka.

Funkcionalnost sistema

Budući da je BigQuery usluga kojom se upravlja, nije bilo potrebe da se Twitterov SRE tim uključi u upravljanje sistemima ili poslove na stolu. Bilo je lako obezbediti više kapaciteta i za skladištenje i za računarstvo. Mogli bismo promijeniti rezervaciju mjesta kreiranjem karte uz Google podršku. Identificirali smo područja koja bi se mogla poboljšati, kao što je samouslužna alokacija slotova i poboljšanja kontrolne ploče za praćenje, te smo te zahtjeve poslali Googleu.

trošak

Naša preliminarna analiza je pokazala da su troškovi upita za BigQuery i Presto bili na istom nivou. Kupili smo slotove za fiksno cijena imati stabilan mjesečni trošak umjesto plaćanja na zahtjev po TB obrađenih podataka. Ova odluka je također zasnovana na povratnim informacijama korisnika koji nisu željeli razmišljati o troškovima prije svakog zahtjeva.

Pohranjivanje podataka u BigQuery donosi troškove pored GCS troškova. Alati poput Scalding zahtijevaju skupove podataka u GCS-u, a da bismo pristupili BigQueryju morali smo učitati iste skupove podataka u BigQuery format kondenzator. Radimo na Scalding vezi sa BigQuery skupovima podataka koja će eliminisati potrebu za pohranjivanjem skupova podataka u GCS i BigQuery.

Za rijetke slučajeve koji su zahtijevali rijetke upite od desetina petabajta, odlučili smo da pohranjivanje skupova podataka u BigQuery nije isplativo i koristili smo Presto za direktan pristup skupovima podataka u GCS-u. Da bismo to učinili, gledamo BigQuery eksterne izvore podataka.

Sljedeći koraci

Vidjeli smo veliko interesovanje za BigQuery od alfa izdanja. Dodajemo još skupova podataka i više komandi u BigQuery. Razvijamo konektore za alate za analizu podataka kao što je Scalding za čitanje i pisanje u BigQuery skladište. Gledamo alate kao što su Looker i Apache Zeppelin za kreiranje izvještaja i bilješki o kvalitetu preduzeća koristeći BigQuery skupove podataka.

Naša suradnja s Googleom je bila vrlo produktivna i drago nam je što nastavljamo i razvijamo ovo partnerstvo. Radili smo s Googleom na implementaciji vlastitog Partner Issue Trackerza slanje upita direktno Googleu. Neke od njih, poput BigQuery utovarivača parketa, Google je već implementirao.

Evo nekih od naših zahtjeva za funkcije visokog prioriteta za Google:

  • Alati za praktičan prijem podataka i podršku za LZO-Thrift format.
  • Segmentacija po satu
  • Poboljšanja kontrole pristupa kao što su dozvole na nivou tabele, reda i kolone.
  • bigquery Eksterni izvori podataka sa Hive Metastore integracijom i podrškom za LZO-Thrift format.
  • Poboljšana integracija kataloga podataka u BigQuery korisnički interfejs
  • Samoposluživanje za dodjelu slotova i praćenje.

zaključak

Demokratizacija analitike podataka, vizualizacije i mašinskog učenja na siguran način je glavni prioritet tima Data Platforma. Identificirali smo Google BigQuery i Data Studio kao alate koji bi mogli pomoći u postizanju ovog cilja, a prošle godine smo objavili BigQuery Alpha širom kompanije.

Utvrdili smo da su upiti u BigQueryju jednostavni i efikasni. Koristili smo Google alate za unos i transformaciju podataka za jednostavne cjevovode, ali za složene cjevovode morali smo izgraditi vlastiti okvir Airflow. U prostoru za upravljanje podacima, BigQuery usluge za autentifikaciju, autorizaciju i reviziju zadovoljavaju naše potrebe. Da bismo upravljali metapodacima i održavali privatnost, bila nam je potrebna veća fleksibilnost i morali smo izgraditi vlastite sisteme. BigQuery, kao servis kojim se upravlja, bio je jednostavan za korištenje. Troškovi upita bili su slični postojećim alatima. Pohranjivanje podataka u BigQuery uzrokuje troškove pored GCS troškova.

Sve u svemu, BigQuery dobro funkcionira za opću SQL analizu. Vidimo veliko interesovanje za BigQuery i radimo na migraciji više skupova podataka, dovođenju više timova i izgradnji više cevovoda uz BigQuery. Twitter koristi razne podatke koji će zahtijevati kombinaciju alata kao što su Scalding, Spark, Presto i Druid. Namjeravamo nastaviti jačati naše alate za analizu podataka i pružati jasne smjernice našim korisnicima o tome kako najbolje iskoristiti našu ponudu.

Riječi zahvalnosti

Želio bih da se zahvalim svojim koautorima i saigračima, Anju Jha i Will Pascucci, na njihovoj sjajnoj saradnji i napornom radu na ovom projektu. Takođe bih želeo da se zahvalim inženjerima i menadžerima iz nekoliko timova na Twitter-u i Google-u koji su nam pomogli i BigQuery korisnicima na Twitter-u koji su dali dragocene povratne informacije.

Ako ste zainteresirani za rad na ovim problemima, pogledajte našu slobodna radna mjesta u timu Data Platforme.

Kvalitet podataka u DWH - Dosljednost skladišta podataka

izvor: www.habr.com

Dodajte komentar