Hallo, Habr! Momentan ist in OTUS die Anmeldung fĂŒr einen neuen Kursstart geöffnet. . Im Vorfeld des Kursstarts teilen wir weiterhin nĂŒtzliche Materialien mit Ihnen.

Datenmanagement
Starkes Datenmanagement (Strong Data Governance) ist ein Grundprinzip der Twitter-Technik. Da wir BigQuery in unsere Plattform integrieren, konzentrieren wir uns auf die Datenerkennung, den Zugangskontroll, Sicherheit und Datenschutz.
Um Daten zu erkennen und zu verwalten, haben wir unsere Zugriffsebene (Data Access Layer â ) erweitert, um sowohl fĂŒr lokale Daten als auch fĂŒr Google Cloud-Daten Werkzeuge bereitzustellen, wodurch unseren Nutzern eine einheitliche Schnittstelle und API zur VerfĂŒgung steht. WĂ€hrend Google in Richtung Ăffentlichkeit geht, werden wir es in unsere Projekte einbinden, um Funktionen wie die Spaltensuche bereitzustellen.
BigQuery ermöglicht es, Daten einfach zu teilen und darauf zuzugreifen, aber wir mussten dies bis zu einem gewissen Grad kontrollieren, um Datenexfiltration zu verhindern. Unter anderen Tools haben wir zwei Funktionen ausgewÀhlt:
- : eine Beta-Funktion, die es Nutzern untersagt, BigQuery-Datasets mit Nutzern auĂerhalb von Twitter zu teilen.
- : ein Steuerungselement, das die Datenexfiltration verhindert und von Nutzern verlangt, auf BigQuery von bekannten IP-Adressbereichen aus zuzugreifen.
Wir haben die Anforderungen an Authentifizierung, Autorisierung und Audit (AAA) zur GewÀhrleistung der Sicherheit wie folgt implementiert:
- Authentifizierung: Wir haben GCP-Benutzerkonten fĂŒr Ad-hoc-Abfragen und Dienstkonten fĂŒr Arbeitsabfragen verwendet.
- Autorisierung: Wir haben gefordert, dass jedes Dataset ein Dienstkontokonto des EigentĂŒmers und eine Lesergruppe hat.
- Audit: Wir haben die Stackdriver-Protokolle von BigQuery exportiert, die detaillierte Informationen ĂŒber die AbfrageausfĂŒhrung enthalten, in ein BigQuery-Dataset zur einfachen Analyse.
Um den ordnungsgemĂ€Ăen Umgang mit persönlichen Daten der Twitter-Nutzer zu gewĂ€hrleisten, mĂŒssen wir alle BigQuery-Datasets registrieren, persönliche Daten kennzeichnen, eine angemessene Speicherung aufrechterhalten und Daten, die von Nutzern gelöscht wurden, entfernen (bereinigen).
Wir haben das Google , das maschinelles Lernen zur Klassifizierung und Bearbeitung vertraulicher Daten nutzt, aber sich entschieden hat, aufgrund der Genauigkeit eine manuelle Annotation des Datensatzes vorzunehmen. Wir planen, die Data Loss Prevention API zu verwenden, um die Benutzerannotation zu ergÀnzen.
Bei Twitter haben wir vier Kategorien der Vertraulichkeit fĂŒr DatensĂ€tze in BigQuery erstellt, die hier in absteigender Reihenfolge der SensitivitĂ€t aufgelistet sind:
- Hochsensible DatensĂ€tze sind nach Bedarf auf der Basis des Prinzips der minimalen Berechtigungen verfĂŒgbar. Jeder Datensatz hat eine separate Gruppe von Lesern, und wir werden die Nutzung einzelner Konten ĂŒberwachen.
- DatensĂ€tze mittlerer SensitivitĂ€t (einseitige Pseudonyme mit gesalzenem Hashing) enthalten keine persönlichen Informationen (Personally Identifiable Information â PII) und sind einer gröĂeren Gruppe von Mitarbeitern zugĂ€nglich. Dies stellt einen guten Ausgleich zwischen Datenschutz und NĂŒtzlichkeit der Daten dar. Es ermöglicht Mitarbeitern, Analyseaufgaben durchzufĂŒhren, wie z. B. die Berechnung der Anzahl der Nutzer, die eine Funktion verwendet haben, ohne zu wissen, wer die tatsĂ€chlichen Nutzer sind.
- DatensĂ€tze mit niedriger SensitivitĂ€t enthalten alle Informationen zur Identifizierung des Nutzers. Dies ist ein guter Ansatz aus datenschutzrechtlicher Sicht, kann jedoch nicht fĂŒr Analysen auf Nutzerbasis verwendet werden.
- Ăffentliche DatensĂ€tze (die auĂerhalb von Twitter veröffentlicht wurden) sind fĂŒr alle Twitter-Mitarbeiter zugĂ€nglich.
Was die Registrierung betrifft, haben wir geplante Aufgaben verwendet, um die DatensĂ€tze in BigQuery aufzulisten und sie im Data Access Layer (), dem Metadaten-Speicher von Twitter, zu registrieren. Nutzer werden die DatensĂ€tze mit Informationen zum Datenschutz annotieren und auch die Speicherfrist angeben. Was die Bereinigung betrifft, prĂŒfen wir die LeistungsfĂ€higkeit und Kosten von zwei Optionen: 1. Bereinigung von DatensĂ€tzen in GCS mit Tools wie Scalding und deren Hochladen in BigQuery; 2. Verwendung von DML-Operatoren in BigQuery. Wahrscheinlich werden wir eine Kombination beider Methoden verwenden, um den Anforderungen verschiedener Gruppen und Daten gerecht zu werden.
FunktionalitÀt des Systems
Da BigQuery ein verwalteter Dienst ist, war es nicht notwendig, das SRE-Team von Twitter in das Systemmanagement oder die AusfĂŒhrung von Bereitschaftsdiensten einzubeziehen. Es war einfach, sowohl fĂŒr die Speicherung als auch fĂŒr das Rechnen eine groĂe KapazitĂ€t bereitzustellen. Wir konnten die Slotreservierungen Ă€ndern, indem wir Tickets im Google-Support erstellt haben. Wir haben festgestellt, dass wir Verbesserungen vornehmen könnten, wie zum Beispiel Self-Service zur Verteilung von Slots und eine Verbesserung des Dashboards zur Ăberwachung, und haben diese Anfragen an Google weitergeleitet.
Kosten
Unsere erste Analyse hat ergeben, dass die Kosten fĂŒr Abfragen bei BigQuery und Presto auf einem Ă€hnlichen Niveau lagen. Wir haben Slots zu Preisen erworben, um eine stabile monatliche Kostenstruktur zu haben, anstatt nach pro TB verarbeiteten Daten zu bezahlen. Diese Entscheidung basierte auch auf dem Feedback der Nutzer, die nicht ĂŒber die Kosten nachdenken wollten, bevor sie jede Abfrage ausfĂŒhren.
Die Speicherung von Daten in BigQuery brachte zusĂ€tzliche Kosten neben den Ausgaben fĂŒr GCS. Werkzeuge wie Scalding erfordern DatensĂ€tze in GCS, und um auf BigQuery zuzugreifen, mussten wir dieselben DatensĂ€tze im BigQuery-Format hochladen. . Wir arbeiten daran, Scalding mit BigQuery-DatensĂ€tzen zu verbinden, was die Notwendigkeit beseitigen wĂŒrde, DatensĂ€tze sowohl in GCS als auch in BigQuery zu speichern.
FĂŒr seltene FĂ€lle, die nicht hĂ€ufige Anfragen an Dutzende von Petabyte erforderten, haben wir entschieden, dass die Speicherung von DatensĂ€tzen in BigQuery wirtschaftlich nicht sinnvoll ist, und haben Presto fĂŒr den direkten Zugriff auf die DatensĂ€tze in GCS verwendet. DafĂŒr sehen wir uns BigQuery External Data Sources an.
NĂ€chste Schritte
Wir haben seit der Alpha-Veröffentlichung ein groĂes Interesse an BigQuery festgestellt. Wir fĂŒgen mehr DatensĂ€tze und mehr Teams in BigQuery hinzu. Wir entwickeln Connectoren fĂŒr Datenanalysetools wie Scalding, um in BigQuery zu lesen und zu schreiben. Wir betrachten Werkzeuge wie Looker und Apache Zeppelin, um Unternehmensberichte ĂŒber QualitĂ€t und Notizen unter Verwendung von BigQuery-DatensĂ€tzen zu erstellen.
Die Zusammenarbeit mit Google war sehr produktiv, und wir freuen uns, diese Partnerschaft fortzusetzen und weiterzuentwickeln. Wir haben mit Google zusammengearbeitet, um unseren eigenen , einzufĂŒhren, um Anfragen direkt an Google zu senden. Einige davon, wie der BigQuery Parquet Uploader, wurden bereits von Google umgesetzt.
Hier sind einige unserer hochpriorisierten Anfragen fĂŒr Funktionen von Google:
- Werkzeuge fĂŒr den bequemen Datenaustausch und UnterstĂŒtzung des LZO-Thrift-Formats.
- StĂŒndliche Segmentierung
- Verbesserungen im Bereich des Zugriffsmanagements, wie Berechtigungen auf Tabellen-, Zeilen- und Spaltenebene.
- BigQuery mit Integration und UnterstĂŒtzung von Hive Metastore fĂŒr das LZO-Thrift-Format.
- Verbesserte Integration des Datenkatalogs in die BenutzeroberflÀche von BigQuery
- Self-Service zur Verteilung und Ăberwachung von Slots.
Fazit
Die Demokratisierung von Datenanalyse, Visualisierung und maschinellem Lernen auf sichere Weise hat fĂŒr das Data Platform-Team höchste PrioritĂ€t. Wir haben Google BigQuery und Data Studio als Werkzeuge identifiziert, die uns bei der Erreichung dieses Ziels unterstĂŒtzen können, und haben im letzten Jahr BigQuery Alpha fĂŒr das gesamte Unternehmen veröffentlicht.
Wir haben festgestellt, dass Anfragen 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 aufbauen. Im Bereich Datenmanagement erfĂŒllen die BigQuery-Dienste unsere Anforderungen an Authentifizierung, Autorisierung und Auditing. 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 Dienst war einfach zu bedienen. Die Abfragekosten waren vergleichbar mit bestehenden Werkzeugen. Die Datenspeicherung in BigQuery verursachte zusĂ€tzliche Kosten neben den Ausgaben fĂŒr GCS.
Insgesamt funktioniert BigQuery gut fĂŒr allgemeine SQL-Analysen. Wir verzeichnen groĂes Interesse an BigQuery, und wir arbeiten daran, mehr DatensĂ€tze zu migrieren, mehr Teams zu gewinnen und mehr Pipelines mit BigQuery zu erstellen. Bei Twitter werden verschiedene Daten verwendet, fĂŒr die eine Kombination von Werkzeugen wie Scalding, Spark, Presto und Druid erforderlich ist. Wir beabsichtigen, unsere Datenanalysewerkzeuge weiter auszubauen und unseren Nutzern klare Empfehlungen zu geben, wie sie unsere Angebote optimal nutzen können.
Dankesworte
Ich möchte meinen Co-Autoren und Teamkollegen, Anzhu Dja und Will Pascucci, fĂŒr ihre hervorragende Zusammenarbeit und harte Arbeit an diesem Projekt danken. Ich möchte auch den Ingenieuren und Managern aus mehreren 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, werfen Sie einen Blick auf unsere im Data Platform-Team.
Quelle: habr.com
