Wie Google BigQuery die Datenanalyse demokratisiert hat. Teil 2

Hallo, Habr! Der neue Kurs bei OTUS ist jetzt geöffnet. „Data Engineer“. Im Vorfeld des Kursstarts teilen wir weiterhin nĂŒtzliche Materialien mit Ihnen.

Erste Teil lesen

Wie Google BigQuery die Datenanalyse demokratisiert hat. Teil 2

Datenmanagement

Starke Datenverwaltung (Strong Data Governance) ist ein grundlegendes Prinzip von Twitter Engineering. Da wir BigQuery in unsere Plattform integrieren, konzentrieren wir uns auf die Datenerkennung, Zugriffssteuerung, Sicherheit und Datenschutz.

Um Daten zu erkennen und zu verwalten, haben wir unsere Datenzugriffsebene (Data Access Layer — DAL), um Werkzeuge sowohl fĂŒr lokale Daten als auch fĂŒr Google Cloud-Daten bereitzustellen und unseren Nutzern eine einheitliche Schnittstelle und API zu bieten. WĂ€hrend Google Data Catalog einen Weg zur AllgemeingĂŒltigkeit einschlĂ€gt, werden wir ihn in unsere Projekte integrieren, um den Nutzern Funktionen wie die Suche nach Spalten anzubieten.

BigQuery ermöglicht einen einfachen Datenaustausch und -zugriff, aber wir mussten dies bis zu einem gewissen Grad kontrollieren, um Datenexfiltration zu verhindern. Unter den anderen Werkzeugen haben wir uns fĂŒr zwei Funktionen entschieden:

  • Domain Restricted Sharing: eine Beta-Funktion, die es Nutzern untersagt, BigQuery-DatensĂ€tze mit Nutzern außerhalb von Twitter zu teilen.
  • VPC Service Controls: eine Steuerung, die die Datenexfiltration verhindert und von Benutzern verlangt, auf BigQuery von bekannten IP-Adressbereichen zuzugreifen.

Wir haben die Anforderungen an Authentifizierung, Autorisierung und Auditing (AAA) wie folgt umgesetzt:

  • Authentifizierung: Wir haben GCP-Benutzerkonten fĂŒr Ad-hoc-Anfragen und Dienstkonten fĂŒr Arbeitsanfragen verwendet.
  • Autorisierung: Wir haben gefordert, dass jedes Datenset ein Dienstkonto als EigentĂŒmer und eine Lesergruppe hat.
  • Audit: Wir haben die Protokolle von BigQuery Stackdriver exportiert, die detaillierte Informationen ĂŒber die AusfĂŒhrung von Abfragen enthielten, in ein BigQuery-Dataset zum einfacheren Analysieren.

Um eine ordnungsgemĂ€ĂŸe Verarbeitung persönlicher Daten von Twitter-Nutzern sicherzustellen, mĂŒssen wir alle BigQuery-DatensĂ€tze anmelden, persönliche Daten annotieren, eine ordentliche Aufbewahrung sicherstellen und Daten löschen (bereinigen), die von Nutzern entfernt wurden.

Wir haben Google Cloud Data Loss Prevention API, der maschinelles Lernen zur Klassifizierung und Bearbeitung sensibler Daten verwendet, aber sich aufgrund der Genauigkeit fĂŒr die manuelle Annotation des Datensatzes entschieden hat. Wir planen, die Data Loss Prevention API zu nutzen, um die benutzerdefinierte Annotation zu ergĂ€nzen.

In Twitter haben wir vier Datenschutzkategorien fĂŒr DatensĂ€tze in BigQuery erstellt, die hier in absteigender Reihenfolge der SensibilitĂ€t aufgefĂŒhrt sind:

  • Hochsensibler Datensatz ist je nach Bedarf gemĂ€ĂŸ dem Prinzip der minimalen Privilegien verfĂŒgbar. Jeder Datensatz hat eine separate Gruppe von Lesern, und wir werden die Nutzung einzelner Konten ĂŒberwachen.
  • DatensĂ€tze mit mittlerer SensitivitĂ€t (einseitige Pseudonyme unter Verwendung von gesalzenem Hashing) enthalten keine persönlichen Informationen (Personally Identifiable Information – PII) und sind fĂŒr eine grĂ¶ĂŸere Gruppe von Mitarbeitern zugĂ€nglich. Dies bietet einen guten Ausgleich zwischen DatenschutzĂŒberlegungen und der NĂŒtzlichkeit der Daten. Dadurch können Mitarbeiter Analyseaufgaben durchfĂŒhren, wie z.B. die Berechnung der Anzahl der Benutzer, die eine Funktion verwendet haben, ohne zu wissen, wer die tatsĂ€chlichen Benutzer sind.
  • DatensĂ€tze mit niedriger SensitivitĂ€t enthalten alle Informationen, die den Benutzer identifizieren. Dies ist aus Datenschutzsicht ein guter Ansatz, kann jedoch nicht fĂŒr die Analyse auf Benutzerebene verwendet werden.
  • Öffentlich zugĂ€ngliche DatensĂ€tze (außerhalb von Twitter veröffentlicht) sind fĂŒr alle Twitter-Mitarbeiter zugĂ€nglich.

Was die Registrierung betrifft, so haben wir geplante Aufgaben verwendet, um die BigQuery-DatensĂ€tze aufzulisten und sie im Data Access Layer zu registrieren (DAL), Twitter-Metadaten-Repository. Nutzer werden DatensĂ€tze mit Informationen zur Vertraulichkeit annotieren und die Speicherfristen angeben. Bei der Bereinigung bewerten wir die Leistung und die Kosten von zwei Optionen: 1. Bereinigung von DatensĂ€tzen in GCS mit Tools wie Scalding und deren Upload nach BigQuery; 2. Verwendung von BigQuery DML-Operatoren. Wahrscheinlich werden wir eine Kombination beider Methoden nutzen, um die Anforderungen verschiedener Gruppen und Daten zu erfĂŒllen.

SystemfunktionalitÀt

Da BigQuery ein verwalteter Dienst ist, war es nicht nötig, das SRE-Team von Twitter in das Management der Systeme oder in Bereitschaftsdienste einzubeziehen. Es war einfach, große KapazitĂ€ten sowohl fĂŒr Speicherung als auch fĂŒr Rechenleistung bereitzustellen. Wir konnten das Slot-Booking Ă€ndern, indem wir Tickets beim Google-Support erstellt haben. Wir haben festgestellt, dass wir beispielsweise das Self-Service fĂŒr die Slot-Verteilung und die Verbesserung des Dashboards zur Überwachung optimieren könnten, und haben diese Anfragen an Google weitergeleitet.

Kosten

Unsere Vorabanalyse hat gezeigt, dass die Kosten fĂŒr Anfragen bei BigQuery und Presto auf Ă€hnlichem Niveau lagen. Wir haben Slots zu festen Preisen erworben. Preis, um eine stabile monatliche Kostenstruktur zu haben, anstatt zu zahlen auf Anfrage pro TB verarbeiteten Daten. Diese Lösung basierte auch auf dem Feedback von Nutzern, die nicht ĂŒber Kosten nachdenken wollten, bevor sie jede Anfrage ausfĂŒhrten.

Die Speicherung von Daten in BigQuery fĂŒhrte zu zusĂ€tzlichen Kosten neben den GCS-Ausgaben. Werkzeuge wie Scalding erfordern DatensĂ€tze in GCS, und um auf BigQuery zuzugreifen, mussten wir die gleichen DatensĂ€tze im BigQuery-Format hochladen Capacitor. Wir arbeiten an der Verbindung von Scalding mit BigQuery-DatensĂ€tzen, um die Notwendigkeit zu beseitigen, DatensĂ€tze sowohl in GCS als auch in BigQuery zu speichern.

In seltenen FĂ€llen, die nicht hĂ€ufige Anfragen von mehreren Petabytes erforderten, entschieden wir, dass die Speicherung von DatensĂ€tzen in BigQuery nicht wirtschaftlich ist, und verwendeten Presto fĂŒr den direkten Zugriff auf DatensĂ€tze in GCS. DafĂŒr prĂŒfen wir BigQuery External Data Sources.

Die nÀchsten Schritte

Seit der Veröffentlichung der Alpha-Version haben wir ein reges Interesse an BigQuery festgestellt. Wir fĂŒgen weitere DatensĂ€tze und mehr Teams zu BigQuery hinzu. Wir entwickeln Connectoren fĂŒr Datenanalyse-Tools wie Scalding, um in das BigQuery-Speicher zu lesen und zu schreiben. Wir prĂŒfen Tools wie Looker und Apache Zeppelin zur Erstellung von Unternehmensberichten zur QualitĂ€t und Notizen mit Hilfe von BigQuery-DatensĂ€tzen.

Die Zusammenarbeit mit Google war Ă€ußerst produktiv, und wir freuen uns, diese Partnerschaft fortzusetzen und auszubauen. Wir haben mit Google zusammengearbeitet, um unsere eigene Partner Issue Tracker, um Anfragen direkt an Google zu senden. Einige davon, wie der BigQuery Parquet Loader, wurden bereits von Google realisiert.

Hier sind einige unserer hochpriorisierten Funktionsanfragen an Google:

  • Werkzeuge fĂŒr den einfachen Datenimport und UnterstĂŒtzung des LZO-Thrift-Formats.
  • StĂŒndliche Segmentierung
  • Verbesserungen im Bereich Zugriffskontrolle, wie Berechtigungen auf Tabellen-, Zeilen- und Spaltenebene.
  • BigQuery Externe Datenquellen mit Integration und UnterstĂŒtzung des Hive Metastore fĂŒr das LZO-Thrift-Format.
  • Verbesserte Integration des Datenkatalogs in die BenutzeroberflĂ€che von BigQuery
  • Selbstbedienung zur Verteilung und Überwachung von Slots.

Fazit

Die Demokratisierung von Datenanalyse, Visualisierung und maschinellem Lernen auf sichere Weise hat fĂŒr das Team der Data Platform oberste PrioritĂ€t. Wir haben Google BigQuery und Data Studio als Werkzeuge identifiziert, die uns helfen können, dieses Ziel zu erreichen, und letztes Jahr BigQuery Alpha fĂŒr das gesamte Unternehmen veröffentlicht.

Wir haben festgestellt, dass Abfragen in BigQuery einfach und effizient waren. FĂŒr den Empfang und die Transformation von Daten haben wir Google-Werkzeuge fĂŒr einfache Pipelines verwendet, aber fĂŒr komplexe Pipelines mussten wir unsere eigene Airflow-Infrastruktur erstellen. Im Bereich des Datenmanagements erfĂŒllen die Dienste von BigQuery unsere Anforderungen an Authentifizierung, Autorisierung und Auditierung. FĂŒr das Management von Metadaten und die Einhaltung der Datenschutzbestimmungen benötigten wir mehr FlexibilitĂ€t und mussten eigene Systeme entwickeln. BigQuery, als verwalteter Service, war einfach zu bedienen. Die Abfragekosten waren vergleichbar mit bestehenden Werkzeugen. Die Speicherung von Daten in BigQuery erhöhte die Kosten zusĂ€tzlich zu den Ausgaben fĂŒr GCS.

Insgesamt funktioniert BigQuery gut fĂŒr allgemeine SQL-Analysen. Wir verzeichnen ein starkes Interesse an BigQuery und arbeiten daran, mehr DatensĂ€tze zu ĂŒbertragen, mehr Teams zu gewinnen und mehr Pipelines mit BigQuery zu erstellen. Twitter verwendet unterschiedliche Daten, fĂŒr die eine Kombination von Tools wie Scalding, Spark, Presto und Druid erforderlich ist. Wir sind entschlossen, unsere Datenanalysetools weiter auszubauen und unseren Benutzern klare Empfehlungen zu geben, wie sie unser Angebot optimal nutzen können.

Dankesworte

Ich möchte meinen Mitautoren und Teamkollegen, Anju Dja und Will Pascucci, fĂŒr ihre großartige Zusammenarbeit und harte Arbeit an diesem Projekt danken. Außerdem möchte ich den Ingenieuren und Managern mehrerer Teams bei Twitter und Google danken, die uns und den Nutzern von BigQuery bei Twitter wertvolles Feedback gegeben haben.

Wenn Sie an der Arbeit an diesen Aufgaben interessiert sind, schauen Sie sich unsere Stellenangebote im Data Platform-Team an.

Die DatenqualitĂ€t im DWH – Konsistenz des Data Warehouses

Quelle: habr.com

Erwerben Sie zuverlĂ€ssiges Hosting fĂŒr Websites mit DDoS-Schutz, VPS VDS-Server đŸ”„ Kaufen Sie zuverlĂ€ssiges Hosting fĂŒr Websites mit DDoS-Schutz, VPS VDS-Server | ProHoster