Përshëndetje, Habr! Aktualisht në OTUS është hapur regjistrimi për një grup të ri të kursit . Para fillimin e kursit, vazhdojmë të ndajmë me ju materiale të dobishme.

Menaxhimi i të dhënave
Menaxhimi i fortë i të dhënave (Strong Data Governance) është parimi kryesor i Twitter Engineering. Ndërsa po implementojmë BigQuery në platformën tonë, ne përqendrohemi në zbulimin e të dhënave, kontrollin e aksesit, sigurinë dhe privatësinë.
Për zbulimin dhe menaxhimin e të dhënave, ne kemi zgjeruar nivelin tonë të aksesit në të dhëna (Data Access Layer - ), në mënyrë që të ofrojmë mjete si për të dhënat lokale ashtu edhe për të dhënat në Google Cloud, duke ofruar një ndërfaqe të vetme dhe API për përdoruesit tanë. Ndërsa Google po shkon drejt këtë këndvështrim publik, ne do ta përfshijmë në projektet tona për të ofruar përdoruesve funksione si kërkimi për kolonat.
BigQuery lejon shkëmbimin dhe aksesin e lehtë të të dhënave, por na duhej të kishim një kontroll në një farë mase për të parandaluar ekzsfiltrimin e të dhënave. Ndër mjete të tjera, ne zgjodhëm dy funksione:
- : një funksion beta që ndalon përdoruesit të ndajnë grupe të dhënash BigQuery me përdoruesit jashtë Twitter.
- : një mjet kontrolli që parandalon ekzsfiltrimin e të dhënave dhe kërkon që përdoruesit të kenë akses në BigQuery nga gamat e njohura të adresave IP.
Kemi implementuar kërkesat për autentikim, autorizim dhe auditim (AAA) për të siguruar sigurinë në këtë mënyrë:
- Autentikimi: ne përdorëm llogaritë e përdoruesve GCP për kërkesa ad hoc dhe llogaritë shërbimi për kërkesat e punës.
- Autorizimi: kërkuam që çdo grup të dhënash të kishte një llogari shërbimi pronari dhe një grup lexuesish.
- Auditimi: ne eksportuam logjet e shërbimit BigQuery, të cilat përmbanin informacione të detajuara mbi ekzekutimin e kërkesave, në grupin e të dhënave të BigQuery për lehtësimin e analizës.
Për të siguruar përpunimin e duhur të të dhënave personale të përdoruesve të Twitter, ne duhet të regjistrojmë të gjitha grupet e të dhënave BigQuery, të shpallim të dhënat personale, të mbajmë ruajtjen e duhur dhe të fshijmë (pastruar) të dhënat që janë fshirë nga përdoruesit.
Ne shqyrtuam Google , e cila përdor mësimin e makinës për klasifikimin dhe redaktimin e të dhënave të ndjeshme, por morëm vendim për annotimin manual të grupit të të dhënave për shkak të saktësisë. Ne planifikojmë të përdorim API-në e Parandalimit të Humbjes së Të Dhënave për të plotësuar annotimin e përdoruesve.
Në Twitter kemi krijuar katër kategori privatësie për grupe të dhënash në BigQuery, të listuara këtu në rend të zbritës së ndjeshmërisë:
- Grupet e të dhënave me ndjeshmëri të lartë janë të arritshme sipas nevojës mbi parimin e privilegjeve më të vogla. Secili grup të dhënash ka një grup lexuesish të veçantë, dhe ne do të monitorojmë përdorimin e llogarive të veçanta.
- Grupet e tĂ« dhĂ«nave me ndjeshmĂ«ri mesatare (pseudonime unidirezionale me hashing tĂ« kriptuar) nuk pĂ«rmbajnĂ« informacion personal (Informacion Personal Identifikues â PII) dhe janĂ« tĂ« arritshme pĂ«r njĂ« grup mĂ« tĂ« madh punonjĂ«sish. Kjo Ă«shtĂ« njĂ« balancĂ« e mirĂ« midis shqetĂ«simeve tĂ« privatĂ«sisĂ« dhe pĂ«rdorshmĂ«risĂ« sĂ« tĂ« dhĂ«nave. Kjo lejon punonjĂ«sit tĂ« kryejnĂ« analiza, siç Ă«shtĂ« numĂ«rimi i pĂ«rdoruesve qĂ« kanĂ« pĂ«rdorur funksionalitetin, pa ditur kush janĂ« pĂ«rdoruesit e vĂ«rtetĂ«.
- Grupet e të dhënave me ndjeshmëri të ulët përmbajnë të gjithë informacionin që identifikon përdoruesin. Kjo është një qasje e mirë në aspektin e privatësisë, por nuk mund të përdoret për analiza në nivelin e përdoruesit.
- Grupet e të dhënave publike (të lëshuara jashtë Twitter) janë të arritshme për të gjithë punonjësit e Twitter.
Sa i përket regjistrimit, ne përdorëm detyra të planifikuara për të listuar grupet e të dhënave BigQuery dhe për t'i regjistruar ato në Shtresën e Qasjes së Të Dhënave (), depoja e të dhënave të Twitter. Përdoruesit do të annotojnë grupet e të dhënave me informacion mbi privatësinë, si dhe do të specifikojnë periudhën e ruajtjes. Sa i përket pastrimit, ne po vlerësojmë performancën dhe koston e dy opsioneve: 1. Pastrimi i grupeve të të dhënave në GCS duke përdorur mjete si Scalding dhe ngarkimi i tyre në BigQuery; 2. Përdorimi i operatorëve DML të BigQuery. Probabilisht do të përdorim një kombinim të të dyjave për të përmbushur kërkesat e grupeve të ndryshme dhe të dhënave.
Funksionaliteti i sistemit
Duke qenë se BigQuery është një shërbim i menaxhuar, nuk ishte e nevojshme të angazhoheshin ekipet SRE të Twitter në menaxhimin e sistemeve ose në kryerjen e detyrave të shërbimit. Ishte lehtë të ofronim kapacitet të madh si për ruajtjen ashtu edhe për llogaritjen. Ne mund të ndryshonim rezervimin e slotëve duke krijuar bileta në mbështetje të Google. E identifikuam se duhej përmirësuar, për shembull, vetë-shërbimi për shpërndarjen e slotëve dhe përmirësimi i panelit për monitorimin dhe i dërguam këto kërkesa në Google.
Ămimi
Analiza jonë paraprake tregoi se kostot e kërkesave për BigQuery dhe Presto ishin në të njëjtin nivel. Ne blejmë slotë me për të pasur një kostos së stabilizuar mujor në vend që të paguanim për TB të dhënash të përpunuara. Ky vendim gjithashtu bazohej në feedback-un e përdoruesve, të cilët nuk dëshironin të mendonin për kostot para se të kryenin çdo kërkesë.
Ruajtja e të dhënave në BigQuery solli shpenzime përveç kostove për GCS. Vegla të tilla si Scalding kërkojnë që setet e dhënave të jenë në GCS, dhe për të pasur qasje në BigQuery, na duhej të ngarkonim të njëjtat sete të dhënash në formatin BigQuery . Ne po punojmë mbi lidhjen e Scalding me setet e dhënave BigQuery, e cila do të eliminojë nevojën për të ruajtur setet e dhënash si në GCS ashtu edhe në BigQuery.
Për raste të rralla që kërkonin kërkesa të pakta për dhjetëra petabyte, ne vendosëm se ruajtja e seteve të dhënave në BigQuery nuk ishte ekonomikisht e efektshme dhe përdorëm Presto për qasje direkte në setet e dhënave në GCS. Për këtë, ne jemi duke shqyrtuar Burimet e Dhënave të Jashtme të BigQuery.
Hapat e ardhshëm
Ne kemi vënë re një interes të madh për BigQuery që nga lëshimi i alafës. Ne po shtojmë më shumë sete të dhënash dhe më shumë ekipe në BigQuery. Ne po zhvillojmë lidhës për veglat e analizës së të dhënave, siç është Scalding, për të lexuar dhe shkruar në depo BigQuery. Ne po shqyrtojmë vegla si Looker dhe Apache Zeppelin për të krijuar raporte korporatash mbi cilësinë dhe shënime duke përdorur sete të dhënash BigQuery.
Bashkëpunimi me Google ka qenë shumë produktiv dhe ne jemi të gëzuar të vazhdojmë dhe zhvillojmë këtë partneritet. Ne kemi punuar me Google për të zbatuar sistemin tonë të , për të dërguar drejtpërdrejt kërkesat në Google. Disa prej tyre, si ngarkuesi BigQuery Parquet, janë realisht zbatuar nga Google.
Këtu janë disa nga kërkesat tona më prioritare për veçori për Google:
- Mjetet për pranim të dhënash të lehtë dhe mbështetje për formatin LZO-Thrift.
- Segmentimi me orë
- Përmirësime në fushën e kontrollit të aksesit, si lejet në nivel tabela, rreshti dhe kolona.
- BigQuery me integrim dhe mbështetje për Hive Metastore për formatin LZO-Thrift.
- Integrim i përmirësuar i katalogut të të dhënave në ndërfaqen BigQuery
- Shërbime vetë-shërbimi për shpërndarjen dhe monitorimin e hapësirave.
Përfundim
Demokratizimi i analizës së të dhënave, vizualizimeve dhe mësimit të makinerisë në një mënyrë të sigurt është prioriteti më i lartë për ekipin e Platformës së të Dhënave. Ne kemi identifikuar Google BigQuery dhe Data Studio si mjete që mund të ndihmojnë në arritjen e kësaj qellimi dhe lançuam vitin e kaluar BigQuery Alpha për të gjithë kompaninë.
Kemi zbuluar se kërkesat në BigQuery ishin të thjeshta dhe efikase. Për pranim dhe përpunim të dhënash kemi përdorur mjete nga Google për linja të thjeshta, por për linja më komplekse na duhej të ndihmonim infrastrukturën tonë Airflow. Në fushën e menaxhimit të të dhënave, shërbimet e BigQuery për autentikimin, autorizimin dhe auditimin plotësojnë nevojat tona. Për menaxhimin e metadata dhe ndershmërinë na dëshirohej fleksibilitet i madh dhe na duhej të krijonim sisteme tona. BigQuery, duke qenë shërbim i menaxhuar, ishte i lehtë për t'u operuar. Kostot e kërkesave ishin të ngjashme me mjetet ekzistuese. Ruajtja e të dhënave në BigQuery kishte shpenzime përveç kostove për GCS.
Përgjithësisht, BigQuery funksionon mirë për analizën e përgjithshme SQL. Ne vërejmë interes të madh për BigQuery dhe po punojmë për të transferuar më shumë grupe të dhënash, për të angazhuar më shumë ekipe dhe për të krijuar më shumë linja me BigQuery. Në Twitter përdoren të dhëna të ndryshme, për të cilat do të nevojiten një kombinim i mjeteve si Scalding, Spark, Presto dhe Druid. Ne synojmë të vazhdojmë të rrisim mjetet tona të analizës së të dhënave dhe të ofrojmë rekomandime të qarta për përdoruesit tanë se si të shfrytëzojnë më së miri ofertat tona.
Fjalë falënderimi
Dëshiroj të falënderoj bashkëautorin tim dhe shokët e ekipit, Anju Dja dhe Will Pascucci, për bashkëpunimin e tyre të shkëlqyer dhe punën e rëndësishme në këtë projekt. Gjithashtu, dua të falënderoj inxhinierët dhe menaxherët nga disa ekipe në Twitter dhe Google, të cilët na ndihmuan dhe përdoruesve të BigQuery në Twitter, duke ofruar feedback të vlefshëm.
Nëse jeni të interesuar të punoni në këto detyra, shikoni në ekipin Data Platform.
Burimi: habr.com
