Jak BigQuery od Google zdemokratyzował analizę danych. Część 2

Cześć, Habr! W OTUS trwa rekrutacja na nową edycję kursu Data Engineer. W oczekiwaniu na rozpoczęcie kursu, kontynuujemy dzielenie się z Wami przydatnymi materiałami.

Przeczytaj pierwszą część

Jak BigQuery od Google zdemokratyzował analizę danych. Część 2

Zarządzanie danymi

Silne zarządzanie danymi (Strong Data Governance) to kluczowa zasada inżynierii Twittera. W miarę wprowadzania BigQuery na naszą platformę, koncentrujemy się na odkrywaniu danych, kontroli dostępu, bezpieczeństwie i prywatności.

Aby odkrywać dane i nimi zarządzać, rozszerzyliśmy naszą warstwę dostępu do danych (Data Access Layer — DAL), aby zapewnić narzędzia zarówno dla danych lokalnych, jak i dla danych Google Cloud, oferując jednolity interfejs i API dla naszych użytkowników. W miarę jak Google Data Catalog przemieszcza się w stronę publiczności, włączymy go do naszych projektów, aby zaoferować użytkownikom takie funkcje jak wyszukiwanie po kolumnach.

BigQuery ułatwia wymianę danych i dostęp do nich, ale musieliśmy w pewnym zakresie to kontrolować, aby zapobiec eksfiltracji danych. Spośród innych narzędzi wybraliśmy dwie funkcje:

  • Udostępnianie ograniczone do domeny: funkcja beta, która zabrania użytkownikom udostępniania zbiorów danych BigQuery użytkownikom spoza Twittera.
  • Kontrola usług VPC: element kontroli, który zapobiega eksfiltracji danych i wymaga od użytkowników dostępu do BigQuery z znanych zakresów adresów IP.

Zrealizowaliśmy wymagania dotyczące uwierzytelniania, autoryzacji i audytu (AAA) w następujący sposób:

  • Uwierzytelnianie: użyliśmy kont użytkowników GCP do zapytań ad hoc oraz kont usług do zapytań roboczych.
  • Autoryzacja: wymagaliśmy, aby każdy zbiór danych miał konto właściciela usługi i grupę czytelników.
  • Audyt: eksportowaliśmy dzienniki stack driverów BigQuery, zawierające szczegółowe informacje na temat wykonywania zapytań, do zestawu danych BigQuery dla wygody analizy.

Aby zapewnić odpowiednie przetwarzanie osobistych danych użytkowników Twittera, musimy zarejestrować wszystkie zbiory danych BigQuery, anotować dane osobowe, utrzymywać właściwe przechowywanie i usuwać dane, które zostały usunięte przez użytkowników.

Rozważaliśmy Google Cloud Data Loss Prevention API, który wykorzystuje uczenie maszynowe do klasyfikacji i edytowania danych wrażliwych, ale podjęliśmy decyzję na rzecz ręcznej adnotacji zbioru danych ze względu na dokładność. Planujemy użyć interfejsu API zapobiegania utracie danych, aby uzupełnić adnotacje użytkowników.

W Twitterze stworzyliśmy cztery kategorie prywatności dla zbiorów danych w BigQuery, wymienione tutaj w kolejności malejącej wrażliwości:

  • Zbiory danych o wysokiej wrażliwości są dostępne w razie potrzeby na podstawie zasady najmniejszych uprawnień. Każdy zbiór danych ma oddzielną grupę odbiorców, a my będziemy śledzić korzystanie z poszczególnych kont.
  • Zbiory danych o średniej wrażliwości (jednoznaczne pseudonimy z użyciem solonego hashowania) nie zawierają informacji osobowych (Personally Identifiable Information — PII) i są dostępne dla szerszej grupy pracowników. To dobry balans między kwestiami prywatności a użytecznością danych. Pozwala to pracownikom przeprowadzać analizy, takie jak obliczanie liczby użytkowników, którzy korzystali z funkcji, nie wiedząc, kto jest faktycznym użytkownikiem.
  • Zbiory danych o niskiej wrażliwości zawierają wszystkie informacje identyfikujące użytkownika. To dobre podejście z perspektywy prywatności, ale nie może być używane do analizy na poziomie użytkownika.
  • Publiczne zbiory danych (opublikowane poza Twitterem) są dostępne dla wszystkich pracowników Twittera.

Jeśli chodzi o rejestrację, użyliśmy zaplanowanych zadań do wymienienia zbiorów danych BigQuery i zarejestrowania ich w Warstwie Dostępu do Danych (DAL), magazynie metadanych Twittera. Użytkownicy będą adnotować zbiory danych informacjami o prywatności oraz określać okres przechowywania. Jeżeli chodzi o czyszczenie, oceniamy wydajność i koszty dwóch opcji: 1. Czyszczenie zbiorów danych w GCS za pomocą narzędzi takich jak Scalding i przesyłanie ich do BigQuery; 2. Użycie operatorów DML BigQuery. Prawdopodobnie będziemy używać kombinacji obu metod, aby sprostać wymaganiom różnych grup i danych.

Funkcjonalność systemu

Ponieważ BigQuery jest zarządzaną usługą, nie było potrzeby angażowania zespołu SRE Twittera w zarządzanie systemami czy wykonywanie obowiązków doraźnych. Łatwo było zapewnić dużą pojemność zarówno dla przechowywania, jak i obliczeń. Możemy dostosować rezerwację slotów, tworząc zgłoszenia w wsparciu Google. Zidentyfikowaliśmy możliwości poprawy, takie jak samoobsługa do rozdzielania slotów oraz ulepszenie pulpitu nawigacyjnego do monitorowania, i przesłaliśmy te prośby do Google.

Koszt

Nasza wstępna analiza wykazała, że koszty zapytań dla BigQuery i Presto były na tym samym poziomie. Zakupiliśmy sloty po stałej cenie, aby mieć stabilny miesięczny koszt, zamiast płacić na żądanie za TB przetworzonych danych. Ta decyzja opierała się również na opiniach użytkowników, którzy nie chcieli martwić się kosztami przed wykonaniem każdego zapytania.

Przechowywanie danych w BigQuery wiązało się z dodatkowymi kosztami oprócz kosztów GCS. Narzędzia takie jak Scalding wymagają posiadania zbiorów danych w GCS, a aby uzyskać dostęp do BigQuery, musieliśmy przesłać te same zbiory danych w formacie BigQuery Capacitor.Pracujemy nad połączeniem Scalding z zbiorami danych BigQuery, co wyeliminuje potrzebę przechowywania zbiorów danych zarówno w GCS, jak i w BigQuery.

W rzadkich przypadkach, które wymagały sporadycznych zapytań na poziomie dziesiątek petabajtów, zdecydowaliśmy, że przechowywanie zbiorów danych w BigQuery nie jest ekonomicznie uzasadnione, i użyliśmy Presto do bezpośredniego dostępu do zbiorów danych w GCS. W tym celu przyglądamy się zewnętrznym źródłom danych BigQuery.

Następne kroki

Zauważyliśmy dużą zainteresowanie BigQuery od momentu premiery wersji alfa. Dodajemy więcej zbiorów danych i więcej zespołów do BigQuery. Opracowujemy konektory dla narzędzi analitycznych, takich jak Scalding, do odczytu i zapisu w przechowalni BigQuery. Rozważamy takie narzędzia jak Looker i Apache Zeppelin, aby tworzyć raporty korporacyjne dotyczące jakości oraz notatki z wykorzystaniem zbiorów danych BigQuery.

Współpraca z Google była bardzo owocna, i cieszymy się, że możemy kontynuować i rozwijać to partnerstwo. Współpracowaliśmy z Google, aby wdrożyć nasz własny Partner Issue Tracker, aby bezpośrednio przesyłać prośby do Google. Niektóre z nich, takie jak ładowarka BigQuery Parquet, zostały już wdrożone przez Google.

Oto niektóre z naszych najwyższych priorytetowych zapytań funkcji dla Google:

  • Narzędzia do wygodnego przyjmowania danych i wsparcie dla formatu LZO-Thrift.
  • Segregacja na godziny
  • Ulepszenia w zakresie kontroli dostępu, takie jak uprawnienia na poziomie tabel, wierszy i kolumn.
  • BigQuery Zewnętrzne źródła danych z integracją i wsparciem dla Hive Metastore dla formatu LZO-Thrift.
  • Udoskonalona integracja katalogu danych w interfejsie użytkownika BigQuery.
  • Samodzielne usługi do dystrybucji i monitorowania slotów.

Podsumowanie

Demokratyzacja analizy danych, wizualizacji i uczenia maszynowego w bezpieczny sposób jest najwyższym priorytetem zespołu Data Platform. Zidentyfikowaliśmy Google BigQuery i Data Studio jako narzędzia, które mogą pomóc w osiągnięciu tego celu, i w zeszłym roku wprowadziliśmy wersję Alpha BigQuery dla całej firmy.

Odkryliśmy, że zapytania w BigQuery były proste i skuteczne. Do przyjmowania i przetwarzania danych korzystaliśmy z narzędzi Google do prostych pipeline'ów, ale do bardziej złożonych musieliśmy stworzyć własną infrastrukturę Airflow. W zakresie zarządzania danymi usługi BigQuery spełniają nasze potrzeby dotyczące uwierzytelniania, autoryzacji i audytu. Do zarządzania metadanymi i przestrzegania prywatności potrzebowaliśmy większej elastyczności i musieliśmy stworzyć własne systemy. BigQuery, będąc usługą zarządzaną, był łatwy w obsłudze. Koszty zapytań były porównywalne z istniejącymi narzędziami. Przechowywanie danych w BigQuery wiązało się z dodatkowymi kosztami poza wydatkami na GCS.

Ogólnie rzecz biorąc, BigQuery dobrze sprawdza się przy ogólnej analizie SQL. Zauważamy duże zainteresowanie BigQuery i pracujemy nad przenoszeniem większej liczby zbiorów danych, angażowaniem większej liczby zespołów i tworzeniem większej liczby pipeline'ów z BigQuery. W Twitterze wykorzystuje się różne dane, które będą wymagały kombinacji takich narzędzi jak Scalding, Spark, Presto i Druid. Zamierzamy nadal rozwijać nasze narzędzia do analizy danych i dostarczać jasne wytyczne naszym użytkownikom, jak najlepiej wykorzystać nasze oferty.

Słowa wdzięczności

Chciałbym podziękować moim współautorom i kolegom z zespołu, Anżu Dża i Willa Pascucci, za ich wspaniałą współpracę i ciężką pracę nad tym projektem. Chciałbym również podziękować inżynierom i menedżerom z różnych zespołów w Twitterze i Google, którzy pomogli nam oraz użytkownikom BigQuery w Twitterze, dostarczając cenne informacje zwrotne.

Jeśli jesteś zainteresowany pracą nad tymi zadaniami, zapoznaj się z naszymi ofertami pracy w zespole Data Platform.

Jakość danych w DWH — spójność magazynu danych

Źródło: habr.com

Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS 🔥 Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS | ProHoster