Ahoj, Habr! Právě teď je v OTUS otevřená registrace na nový běh kurzu . V předvečer spuštění kurzu pokračujeme v sdílení užitečných materiálů.

Správa dat
Silná správa dat (Strong Data Governance) je základní princip Twitter Engineering. Protože implementujeme BigQuery na naši platformu, zaměřujeme se na objevování dat, kontrolu přístupu, bezpečnost a ochranu soukromí.
Pro objevování a správu dat jsme rozšířili naši úroveň přístupu k datům (Data Access Layer — ), abychom poskytli nástroje jak pro místní data, tak pro data Google Cloud, přičemž nabízíme jednotné rozhraní a API našim uživatelům. Jak Google se posouvá k veřejnosti, zařadíme ho do našich projektů, abychom uživatelům nabídli funkce, jako je vyhledávání podle sloupců.
BigQuery umožňuje snadné sdílení dat a přístup k nim, ale museli jsme do určité míry tento proces kontrolovat, abychom zabránili exfiltraci dat. Mezi dalšími nástroji jsme vybrali dvě funkce:
- : beta funkce, která zakazuje uživatelům sdílet datové sady BigQuery s uživateli mimo Twitter.
- : prvek zabezpečení, který brání exfiltraci dat a vyžaduje, aby uživatelé měli přístup k BigQuery z určitých IP adres.
Implementovali jsme požadavky na autentizaci, autorizaci a audit (AAA) pro zajištění bezpečnosti následujícím způsobem:
- Autentizace: použili jsme uživatelské účty GCP pro ad hoc dotazy a účty služeb pro pracovní dotazy.
- Autorizace: vyžadovali jsme, aby každá datová sada měla účet služby vlastníka a skupinu čtenářů.
- Audit: exportovali jsme protokoly BigQuery Stackdriver, které obsahovaly podrobnosti o provedených dotazech, do datové sady BigQuery pro snadnou analýzu.
Abychom zajistili řádné zpracování osobních údajů uživatelů Twitteru, musíme registrovat všechny datové sady BigQuery, anotovat osobní údaje, udržovat řádné uchovávání a odstraňovat (čistit) data, která byla uživateli smazána.
Zvažovali jsme Google , která používá strojové učení k klasifikaci a úpravě citlivých údajů, ale rozhodli jsme se pro ruční anotaci datového souboru kvůli přesnosti. Plánujeme použít API pro prevenci ztráty dat, abychom doplnili uživatelskou anotaci.
Na Twitteru jsme vytvořili čtyři kategorie důvěrnosti pro datové soubory v BigQuery, uvedené zde v sestupném pořadí citlivosti:
- Vysoce citlivé datové soubory jsou dostupné na základě zásady nejmenších privilegijních práv. Každý datový soubor má zvláštní skupinu čtenářů a budeme sledovat používání jednotlivých účtů.
- Datové soubory střední citlivosti (jednosměrné pseudonymy s použitím solené hashování) neobsahují osobní informace (Personally Identifiable Information – PII) a jsou k dispozici pro širší skupinu zaměstnanců. To představuje dobrou rovnováhu mezi ohledy na důvěrnost a užitečnost dat. Umožňuje to zaměstnancům provádět analytické úkoly, jako je výpočet počtu uživatelů, kteří použili funkci, aniž by věděli, kdo jsou skuteční uživatelé.
- Datové soubory s nízkou citlivostí obsahují veškeré informace, které identifikují uživatele. To je dobrý přístup z hlediska důvěrnosti, ale nelze ho použít pro analýzu na úrovni uživatele.
- Veřejné datové soubory (vydané mimo Twitter) jsou dostupné všem zaměstnancům Twitteru.
Pokud jde o registraci, použili jsme naplánované úkoly k výpisu datových souborů BigQuery a jejich registraci do vrstvy přístupu k datům (), úložiště metadat Twitteru. Uživatelé budou anotovat datové soubory informacemi o důvěrnosti a také uvádět dobu uchovávání. Pokud jde o čištění, hodnotíme výkon a náklady obou možností: 1. Úklid datových souborů v GCS pomocí nástrojů, jako je Scalding, a jejich nahrávání do BigQuery; 2. Použití příkazů DML BigQuery. Pravděpodobně použijeme kombinaci obou metod, abychom splnili požadavky různých skupin a dat.
Funkčnost systému
Jelikož je BigQuery spravovanou službou, nebylo potřeba zapojovat tým SRE z Twitteru do správy systémů nebo plnění pohotovostních povinností. Bylo snadné zajistit velkou kapacitu jak pro úložiště, tak pro výpočetní výkon. Mohli jsme změnit rezervaci slotů vytvářením tiketů na podpoře Google. Určili jsme, že se dá vylepšit například samoobsluha pro rozdělení slotů a vylepšení řídicího panelu pro monitoring, a tyto požadavky jsme předali Googlu.
Náklady
Naše předběžná analýza ukázala, že náklady na dotazy pro BigQuery a Presto byly na stejné úrovni. Zakoupili jsme sloty za cenu, abychom měli stabilní měsíční náklady místo placení za TB zpracovaných dat. Toto rozhodnutí bylo také založeno na názorech uživatelů, kteří nechtěli myslet na náklady před každým dotazem.
Uložení dat v BigQuery přineslo náklady navíc ke nákladům na GCS. Nástroje jako Scalding vyžadují, aby datové soubory byly v GCS, a pro přístup k BigQuery jsme museli nahrát stejné datové soubory ve formátu BigQuery . Pracujeme na propojení Scalding s datovými soubory BigQuery, což odstraní potřebu ukládat datové sady jak v GCS, tak v BigQuery.
Pro vzácné případy, které vyžadovaly méně časté dotazy na desítky petabajtů, jsme usoudili, že ukládání datových souborů v BigQuery není ekonomicky výhodné, a použili jsme Presto pro přímý přístup k datovým souborům v GCS. K tomu se díváme na BigQuery External Data Sources.
Další kroky
Zaznamenali jsme velký zájem o BigQuery od doby vydání alfa verze. Přidáváme více datových sad a více týmů do BigQuery. Vyvíjíme konektory pro analytické nástroje, jako je Scalding, pro čtení a zápis do úložiště BigQuery. Zvažujeme nástroje jako Looker a Apache Zeppelin pro vytváření podnikových zpráv o kvalitě a poznámek pomocí datových souborů BigQuery.
Spolupráce s Googlem byla velmi plodná a těšíme se na pokračování a rozvoj tohoto partnerství. Pracovali jsme s Googlem na implementaci našeho vlastního , abychom mohli přímo zasílat žádosti Googlu. Některé z nich, jako například BigQuery Parquet loader, již byly Googlem realizovány.
Zde je několik našich vysoce prioritních požadavků na funkce pro Google:
- Nástroje pro pohodlné přijímání dat a podpora formátu LZO-Thrift.
- Hodinové segmentování
- Vylepšení v oblasti kontroly přístupu, jako jsou oprávnění na úrovni tabulek, řádků a sloupců.
- BigQuery s integrací a podporou Hive Metastore pro formát LZO-Thrift.
- Vylepšená integrace katalogu dat v uživatelském rozhraní BigQuery
- Self-service pro distribuci a monitorování slotů.
Závěr
Demokratizace analýzy dat, vizualizace a strojového učení bezpečným způsobem je nejvyšší prioritou týmu Data Platform. Identifikovali jsme Google BigQuery a Data Studio jako nástroje, které mohou pomoci dosáhnout tohoto cíle, a loni jsme zpřístupnili BigQuery Alpha pro celou společnost.
Zjistili jsme, že dotazy v BigQuery byly jednoduché a efektivní. Pro příjem a transformaci dat jsme použili nástroje Google pro jednoduché pipeline, ale pro složité pipeline jsme museli vytvořit vlastní infrastrukturu Airflow. V oblasti správy dat služby BigQuery pro autentizaci, autorizaci a audit splňují naše potřeby. Pro správu metadat a dodržování soukromí jsme potřebovali větší flexibilitu a museli jsme vytvořit vlastní systémy. BigQuery, jako spravovaná služba, byl snadný na ovládání. Náklady na dotazy byly srovnatelné s existujícími nástroji. Uložení dat v BigQuery mělo náklady navíc ke nákladům na GCS.
Obecně BigQuery dobře funguje pro obecnou SQL analýzu. Pozorujeme velký zájem o BigQuery a pracujeme na přenesení většího počtu datasetů, zapojení více týmů a vytváření více pipeline s BigQuery. Na Twitteru jsou používána různá data, pro která bude potřeba kombinace takových nástrojů, jako jsou Scalding, Spark, Presto a Druid. Máme v úmyslu pokračovat v rozvoji našich analytických nástrojů a poskytovat jasné doporučení našim uživatelům, jak nejlépe využít naše nabídky.
Slova vděčnosti
Rád bych poděkoval svým spoluautorům a členům týmu, Anže Dža a Willu Pascucci, za jejich skvělou spolupráci a tvrdou práci na tomto projektu. Také bych chtěl poděkovat inženýrům a manažerům z několika týmů na Twitteru a Googlu, kteří nám pomohli a uživatelům BigQuery na Twitteru poskytli cennou zpětnou vazbu.
Pokud máte zájem pracovat na těchto úlohách, podívejte se na naše v týmu Data Platform.
Zdroj: habr.com
