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

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 â ), 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 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:
- : eine Beta-Funktion, die es Nutzern untersagt, BigQuery-DatensĂ€tze mit Nutzern auĂerhalb von Twitter zu teilen.
- : 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 , 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 (), 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 Preis, um eine stabile monatliche Kostenstruktur zu haben, anstatt zu zahlen 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 . 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 , 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 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 im Data Platform-Team an.
Quelle: habr.com
