Youdao erstellt eine Quasi-Echtzeit-Lake-Warehouse-Praxis basierend auf dem Amoro Mixed Format

Über den Autor

Xie Yi , leitender Big-Data-Entwicklungsingenieur bei NetEase Youdao, beschäftigt sich derzeit hauptsächlich mit der Forschung und Entwicklung von Echtzeit-Computing und Lake-Warehouse-Integration.

Wang Tao , leitender Plattformentwicklungsingenieur bei NetEase, beschäftigt sich hauptsächlich mit dem Bau von Big Data- und Lake Warehouse-Plattformen

Business-Hintergrund

Die Datenschichtarchitektur von Youdao kann in zwei Teile unterteilt werden: Offline und Echtzeit. Offline-Berechnungen verwenden hauptsächlich Hive und Spark, und die Stapelverarbeitung wird für die geplante Planung verwendet. Der Echtzeitteil verwendet Flink+Doris (Version 0.14.0), um ein Echtzeit-Data-Warehouse aufzubauen, das zur Verarbeitung vergrabener Protokolle und Änderungsdaten der Geschäftsdatenbank in Echtzeit verwendet wird. Die Datenquellen der ODS-Schicht sind Kafka-vergrabene Protokolle und Datenbankgeschäftsdaten. Die Daten der DWD- und DWS-Schicht werden von der Flink-Computing-Engine verarbeitet und in Doris geschrieben. Gleichzeitig werden Doris-Daten für Offline-Planungsberechnungen regelmäßig mit Hive synchronisiert. Diese Architektur weist die folgenden Probleme auf:

  1. Hohe Entwicklungs-, Betriebs- und Wartungskosten: Die Syntax von Flink SQL unterscheidet sich stark von der von Hive/Spark, die Migrationskosten von Hive/Spark zu Flink sind hoch und der Betrieb, die Wartung und die Optimierung der Großzustandsaufgaben von Flink sind schwierig.
  2. Die Unterstützung für vollständig inkrementelle Streaming-Leseszenarien ist schwach und es ist schwierig, die Anforderungen von Flink zum vollständigen Lesen historischer Hive-Daten und inkrementeller Kafka-Daten in Youdao-Szenarien zu erfüllen.
  3. Die Streaming-Batch-Speicherung ist nicht einheitlich, was zu doppelten Datenentwicklungs- und Speicherkosten führt und leicht zu Inkonsistenzen im Datenformat führen kann.
  4. Als Dateninsel verwendet Doris SSD-Speicher, der teuer ist und nicht für die Speicherung umfangreicher Wörterbuchprotokolldaten geeignet ist. Auf lange Sicht sind zwei Speicherlösungen nicht förderlich für die Kostenoptimierung.
  5. Daten müssen kontinuierlich zwischen Hive und Doris importiert und exportiert werden. Eine lange Verbindung kann leicht zu Instabilitätsfaktoren führen. Wenn beispielsweise große Datenmengen geschrieben werden, exportiert Doris Daten nach Hive und verliert gelegentlich Daten, und die Speicherung wird nicht unterstützt von langen Zeichenfolgen vom Typ String.

Aufgrund der oben genannten Probleme hofft Youdao auf ein Upgrade von Hive auf eine integrierte Lake- und Warehouse-Lösung, die Streaming-Batch-Lesen und -Schreiben sowie eine einheitliche Datenspeicherung unterstützt. Und bauen Sie ein Data Warehouse auf Minuten-/Stundenebene nahezu in Echtzeit auf Basis von Spark/Trino/Hive ETL auf, um die Entwicklungs-, Betriebs- und Wartungskosten zu senken. Es kann in den meisten Szenarien das Data Warehouse-Szenario auf Minutenebene von Doris ersetzen und die Datenbankdatensynchronisierung reduzieren Kosten, und Kosten effektiv senken und Kosten erhöhen. Wirkung.

Wir stellen vor: Amoro Mixed Hive

Amoro Mixed Hive bietet Hive-Lese-/Schreibkompatibilität und Datenselbstoptimierungsfunktionen. Auf dieser Grundlage bietet es zwei verschiedene zeitkritische Lesefunktionen:

  1. Durch die Zusammenführung beim Lesen kann eine Datenaktualität auf Minutenebene erreicht werden
  2. Hive-Lesen kann eine Aktualität auf Stundenebene erreichen und auch die Aktualisierung und Löschung von Hive-Daten realisieren. Alte Downstream-Hive-Aufgaben können die Datenaktualität ohne Änderungen auf Stundenebene verbessern. Für Analysten, die an die Verwendung von Hive gewöhnt sind, ist dies möglich senkt die Hemmschwelle für den Einsatz neuer Technologien.

Kompatibel mit dem Hive-Tabellenformat

Amoro hat Mixed Hive so konzipiert, dass es mit Hive kompatibel ist. Die Speicherstruktur von Mixed Hive ist wie in der Abbildung dargestellt. BaseStore ist eine unabhängige Eisbergtabelle. Die Hive-Tabelle ist Teil von BaseStore. ChangeStore ist eine unabhängige Eisbergtabelle. Mixed Hive unterstützt:

  • Schema, Partition und Typen stimmen mit dem Hive-Format überein
  • Verwenden Sie den Hive-Connector, um die gemischte Hive-Tabelle als Hive-Tabelle zu lesen und zu schreiben
  • Hive-Tabellen können direkt auf gemischte Hive-Tabellen aktualisiert werden. Während des Upgrade-Vorgangs erfolgt kein Umschreiben oder Migrieren der Daten und die Antwort erfolgt innerhalb von Sekunden.
  • Es verfügt über die Merkmale der Integration von Seen und Lagerhäusern, einschließlich Primärschlüssel-Upsert, Streaming-Lese- und Schreibvorgängen, ACID, Zeitreisen und anderen Funktionen.

Die Lese-/Schreibkompatibilitätsfunktion von Hive ermöglicht die nahtlose Migration von Hive-Tabellen zu Mixed Hive und kann keine Kenntnis von Upstream und Downstream erreichen.

Aktualisierung der Hive-Daten

Amoro nutzt Selbstoptimierung, um schriftliche Änderungen in Echtzeit in Hive zusammenzuführen und Hive-Datenaktualisierungen zu implementieren. Das Ziel der Selbstoptimierung besteht darin, einen sofort einsatzbereiten Streaming-Lake-Warehouse-Dienst wie eine Datenbank oder ein herkömmliches Data Warehouse auf Basis des neuen Data-Lake-Tabellenformats zu erstellen. Die Selbstoptimierung umfasst unter anderem die Zusammenführung von Dateien und die Deduplizierung , und Sortieren. Amoro unterteilt die Dateien in der Tabelle nach Größe in zwei Kategorien:

  • Fragmentdatei: Fragmentierte Dateien, Dateien, die in der Standardkonfiguration kleiner als 16 MB sind. Solche Dateien müssen rechtzeitig zu größeren Dateien zusammengeführt werden, um die Leseleistung zu verbessern.
  • Segmentdatei: Dateien, die in der Standardkonfiguration größer als 16 MB sind. Solche Dateien haben bereits eine bestimmte Größe, liegen jedoch unter den idealen 128 MB.

Basierend auf der Dateiklassifizierung unterteilt Amoro Dateioptimierungsaufgaben in drei Kategorien: Kleinere Optimierung, Große Optimierung und Vollständige Optimierung. Es reagiert auf schreibfreundliche und lesefreundliche Szenarien und sorgt für ein Gleichgewicht zwischen Leseleistung und Sicherstellung der Schreibleistung. Insbesondere führt die vollständige Optimierung regelmäßig die in Echtzeit in das Hive-Verzeichnis geschriebenen Daten zusammen, um die Hive-Datenansicht zu aktualisieren und die Aktualität der Hive-Daten zu verbessern. Durch kontinuierliche Selbstoptimierung kann die Größenverteilung der Dateien in der Tabelle effektiv optimiert, die Anzahl kleiner Dateien reduziert und der Leistungsaufwand für AP-Abfragen verringert werden.

Implementierungsplan

Transformation von Datenverbindungen

Basierend auf Amoro haben wir die folgenden Transformationen an traditionellen Links vorgenommen:

  1. In Bezug auf die Entwicklungsmethode wurde der Datenimport auf der Quellebene von Flink SQL auf die Echtzeit-Data-Lake-Plattform umgestellt, und das Unternehmen kann das Hive-Upgrade und den Aufbau der Verbindung zum Lake durch einfache Interaktion abschließen .
  2. Die Verbindung von der Datenbank zu Hive wird regelmäßig durch Datenübertragung synchronisiert und in Echtzeit in eine Tabelle im gemischten Hive-Format umgewandelt. Während die Aktualität der Daten verbessert wird, wird auch die Basislinie des Offline-Workflows verbessert und die Datenausgabezeit wird erheblich verlängert.
  3. Amoro ersetzt Doirs, reduziert die Komplexität von Datenverknüpfungen, vereinheitlicht Speicherströme und Batches und verbessert die Stabilität.
  4. Auf der Seite der Datenabfrage wird die Aktualität der Daten durch direktes Abfragen der Tabelle im gemischten Hive-Format verbessert. Die Aktualität von Datenberichten kann die Minutenebene erreichen; die Aktualität des ursprünglichen Berichtslinks zum Abfragen von Hive kann auf die Stundenebene verbessert werden.

Kokonstruktion einer Echtzeit-Data-Lake-Plattform

Um die Lernkosten der Geschäftsentwicklung abzuschirmen, die durch zugrunde liegende Speicheränderungen verursacht werden, bietet NetEase Hangyan eine intern auf Amoro basierende Echtzeit-Data-Lake-Entwicklungsplattform an, die den gesamten Prozess vom Hive-Tabellen-Upgrade bis zum Aufbau von Daten im Lake kapselt und den Benutzern hilft Komplette Entwicklung und Betrieb aus einer Hand. Dimensionierung, Senkung von Benutzerbarrieren und Kosten.

  • Hive-Tabellen werden auf gemischte Hive-Tabellen aktualisiert, einschließlich Primärschlüsselkonfiguration und Partitionsschlüsselkonfiguration.
  • Erstellen Sie eine Lake-Eintragsaufgabe vom Quellende zur Mixed Hive-Tabelle, die den CDC-Eintrag der Datenbank in den Lake und den Protokolleintrag in den Lake unterstützt.
    • Basierend auf NDC (NetEase Data Canal) wird der vollständige inkrementelle eingehende Lake-Link aus dem Binlog der Quelldatenbank direkt in die Mixed Hive-Tabelle ausgegeben.
    • Unterstützt die Konfiguration der Echtzeit-Lake-Verbindung von Log Kakfa zur Mixed Hive-Tabelle.

Durch Benutzerforschung sind die Entwicklungskosten der Benutzer im Vergleich zur Architektur, die vor der Einführung von Amoro auf dem Flink-Echtzeitzugang zum See basiert, um 65 % und die Betriebs- und Wartungskosten um 40 % gesunken. Über die Echtzeit-Data-Lake-Plattform kann auf Flink in den Lake zugegriffen werden, Benutzer können Spark/Trino-SQL schreiben, um die ETL-Verarbeitung auf den DWD- und DWS-Ebenen zu implementieren und nahezu in Echtzeit Data Warehouses auf Minuten- und Stundenebene aufzubauen , was die Entwicklungskosten der Benutzer erheblich senkt. Darüber hinaus verfügt diese Lösung über die Merkmale eines einheitlichen Speicherflusses und einer einheitlichen Stapelverarbeitung, wodurch auch die Kosten für die Entwicklung und Reparatur von Benutzerdaten gesenkt werden. Gleichzeitig kann die vollständige/inkrementelle Flink-Streaming-Lesefunktion von Amoro auch Streaming-Verarbeitungsszenarien erfüllen, die eine höhere Aktualität erfordern.

Zusätzlich zu den Open-Source-Echtzeit-Data-Lake-Plattformen Amoro und Hangyan war Youdao auch stark an Community-Beiträgen und dem gemeinsamen Aufbau von Plattformen beteiligt, darunter:

  • Tragen Sie Mixed Format zur Unterstützung des ORC-Formats bei, wodurch die Einschränkung behoben wird, dass Amoro nur Hive-Tabellen im Parquet-Format unterstützt, und der Aktualisierungsprozess durch Kopieren von ORC in Parquet-Tabellen vermieden wird. Es wird erwartet, dass 20 TB redundanter Speicher eingespart werden.
  • Erstellen Sie ein Amoro-Plattformüberwachungssystem und eine automatische Betriebs- und Wartungsoptimierung, um die Qualität der Online-Tabelle, die Aktualität der Daten und die Clusterstabilität sicherzustellen.
  • Die Trino-Engine fragt Amoro ab, unterstützt Hadoop-Proxy und implementiert die Berechtigungsverwaltung basierend auf dem Youdao HDFS Ranger.
  • Mehrere Amoro Optimizer-Optimierungen zur Verbesserung der Optimizer-Stabilität, wie zum Beispiel: Flink Optimizer-Aufgabenwiederholungsberichte an AMS
  • Mehrere Optimierungen der Echtzeit-Data-Lake-Plattform zur Verbesserung der Zuverlässigkeit und Benutzererfahrung, wie zum Beispiel: Die Echtzeit-Data-Lake-Plattform unterstützt die Hochverfügbarkeit von Amoro

Abfrageoptimierung

Derzeit verwendet Youdao hauptsächlich die MPP-Engine Trino, um zeitkritische OLAP-Abfragen auf Minutenebene für Mixed Hive-Tabellen durchzuführen. In den meisten Szenarios erfüllt die Standardabfrageleistung die Anforderungen. Bei einigen Szenarien mit hohen Anforderungen an die Abfrageantwort wurde festgestellt, dass die Abfrageleistung von Mixed Hive die Geschäftsanforderungen nicht erfüllen kann und schlechter ist als die Abfrageleistung anderer Geschäftsumgebungen. Amoro und Youdao analysierten das Abfrageprofil von Trino und die zugrunde liegende HDFS-Leistung und fanden drei Optimierungspunkte: Nach der Optimierung wurde die Abfrageleistung der Mixed Hive-Tabelle erheblich verbessert und die Abfragezeit um 92 % reduziert, was im Grunde der Hive-Statik nahe kommt Datenabfrage und kann Geschäftsanforderungen erfüllen. Die drei Optimierungen lauten wie folgt:

  1. Für die Abfrageplanphase schreibt Amoro die ursprüngliche Planlogik neu und erhält die Sequenznummer, die erforderlich ist, um zu bestimmen, ob die Daten direkt aus einem Multithread-Plan gelöscht wurden, wodurch die Notwendigkeit reduziert wird, einen zusätzlichen Single-Thread-Plan zum Abrufen der Variablen zu verwenden. s Ausgaben;
  2. Um das Problem des Datenversatzes anzugehen, teilt Amoro Aufgaben mit geringerem Aufwand für das Löschen von Dateien, aber einer größeren Anzahl von Dateien auf eine feinkörnigere Art und Weise auf. Durch die Erhöhung des Parallelitätsgrads wird die Leistung um 50 % verbessert.
  3. Youdao optimierte HDFS. Während des Analyseprozesses wurde festgestellt, dass die RPC-Antwortzeit von 0,95, auf die über den Router zugegriffen wurde, 262 ms erreichte und damit die 5 ms des normalen Clusters weit übertraf. Durch Umschalten des HDFS-Zugriffs auf den direkt verbundenen HDFS-Cluster wurde die RPC-Antwort erreicht Die Zeit wurde auf 0,95 reduziert. Sie dauert 15 ms und die durchschnittliche Abfragezeit der Mixed Hive-Tabelle wird um 83,3 % reduziert. Darüber hinaus kann in Szenarien, in denen die Aktualitätsanforderungen reduziert werden können, durch direktes Abfragen des BaseStore von Mixed Hive auch eine Aktualität auf Minutenebene erreicht werden, und die Abfrageleistung ist besser, was mit der Abfrage statischer Daten durch Hive vergleichbar ist.

Anwendung

Anfang 2023 begann die Online-Nutzung von Amoro in Youdao. Derzeit verfügt es über mehr als 500 Online-Tabellen, mehr als 100 TB Speicher und einen täglichen Speicherzuwachs von 200 GB/Tag. Das durchschnittliche tägliche Abfragevolumen von Spark/Trino beträgt mehr als 6.000 Mehr als 10 Geschäftsabteilungen von Youdao haben in mehreren Szenarien wie Erneuerung und Lieferung nahezu Echtzeit-Data Warehouses auf Minutenebene implementiert und können durch die von Amoro gehostete Datenselbstoptimierungsfunktion effektiv Probleme mit kleinen Dateien vermeiden Data-Warehouse-Geschäft und erzielen Sie den Effekt einer kontinuierlichen Kostensenkung und Effizienzsteigerung.

Im Hinblick auf die Ersetzung von Doris hat Youdao Dictionary die Ersetzung von Doris durch Amoro abgeschlossen und die Knoten des Doris-Clusters entfernt. Auch Youdao Premium Course ersetzt Doris nach und nach durch Amoro, und die Ersetzung wird voraussichtlich in der ersten Hälfte des nächsten Jahres abgeschlossen sein.

In der Praxis des Aufbaus eines Fast-Echtzeit-Data-Warehouse haben drei Geschäftsabteilungen den Aufbau eines Fast-Echtzeit-Data-Warehouse auf Basis von Amoro abgeschlossen, und die Verzögerung der gesamten Verbindung kann nur 3 Minuten betragen. Gleichzeitig ersetzt das inkrementelle Schreiben von Mixed Hive-Tabellen in Echtzeit die herkömmliche vollständige Datenübertragungsaufgabe, wodurch die Offline-Workflow-Grundlinie verbessert wird und die Ausgabezeit der ADS-Tabelle um bis zu 6 Stunden verlängert werden kann.

Im Hinblick auf das Geschäftsergebnis wurde die Effizienz der Datenausgabe von T+1 auf die Ebene Stunde/Minute verbessert, was eine schnellere und effektivere Entscheidungsanalyse (Lieferung, Vertriebsstrategie usw.) ermöglicht, was zu Kostensenkungen oder Effizienzsteigerungen geführt hat In vielen Abteilungen von Youdao stieg beispielsweise die Wiedergabezeit von Wörterbuch-Community-Videos um 10 % und die Klickrate um 4,6 %.

Gemeinschaftsbeitrag

In der Open-Source-Community von Amoro gab es bei Youdao 13 PR-Zusammenschlüsse, darunter:

  • Das Mix Table Format unterstützt das ORC-Dateiformat
  • Flink DDL unterstützt berechnete Spalten und Wasserzeichen
  • Die Trino-Engine unterstützt Hadoop-Proxy
  • Unterstützen Sie eine HTTP-Anfrage zum Erstellen einer Optimierergruppe
  • Optimierung des Tabellenlöschvorgangs
  • Flink Optimizer-Failover-Wiederholungsmeldung an AMS

Zukunftsplan

  1. In Bezug auf die Abfrageleistung hat die AP-Abfrageleistung von Amoro in den meisten Szenarien mit hohen Anforderungen an die Abfrageantwort grundsätzlich die Benutzeranforderungen erfüllt. Das Ziel der Plattformschicht besteht darin, sicherzustellen, dass 90 % der Abfrageantwortzeiten innerhalb von 5 Sekunden liegen. Die durchschnittliche Abfragezeit von Doris basierend auf SSD beträgt 1,8 Sekunden. Die durchschnittliche Abfragezeit von Amoro nach der Optimierung beträgt 5 Sekunden, was die meisten zufriedenstellen kann Abfrageszenarien. In Zukunft werden wir die Abfrageleistung weiter optimieren, indem wir beispielsweise die Z-Reihenfolge in der vollständigen Optimierung einführen, um die Trefferquote beim Überspringen von Daten zu verbessern.
  2. Die aktuelle Lake-Eintragsaufgabe ist eine einzelne Formularaufgabe mit einer großen Anzahl sich ändernder Datenbanktabellen, und die Ressourcennutzungsrate der Lake-Eintragsaufgabe ist relativ gering. Hangyans Echtzeit-Data-Lake-Plattform hat Flink Session in den Lake eingeführt, wodurch die JM/TM-Ressourcen von Session wiederverwendet und die Ressourcennutzung von Aufgaben, die in den Lake eintreten, optimiert wird. Es wird erwartet, dass die Speicher- und CPU-Ressourcen der Lake-Entry-Aufgabe um etwa 30 bis 50 % reduziert werden.
  3. Paimon verfügt über eine gute Benutzerfreundlichkeit in Flink-Teilaktualisierungsszenarien und plant, in Zukunft zu versuchen, es über Amoro zu implementieren. Wir hoffen, den einheitlichen Katalog von Amoro verwenden zu können, um Mixed Hive-Tabellen, Paimon-Tabellen und Mixed Iceberg-Tabellen einheitlich zu verwalten. Wir hoffen, Paimon-Tabellen genau wie Mixed Hive verwenden zu können und die aktuelle Amoro-basierte Entwicklungserfahrung der Benutzer beizubehalten.

Ende~

Wenn Sie an Data Lake, Lake-Warehouse-Integration, Tabellenformat oder der Amoro-Community interessiert sind , kontaktieren Sie uns bitte für ausführliche Gespräche.

Weitere Informationen zu Amoro finden Sie unter:

Community-Kommunikation : Suchen Sie nach kllnn999 und fügen Sie Ashida Aina-Assistentin WeChat hinzu, um der Community beizutreten

Autor: Xie Yi & Wang Tao

Herausgeber: Viridian

Broadcom kündigte die Beendigung des bestehenden VMware-Partnerprogramms Deepin-IDE-Versionsupdate, ein neues Erscheinungsbild, an. WAVE SUMMIT feiert seine 10. Ausgabe. Wen Xinyiyan wird die neueste Enthüllung haben! Zhou Hongyi: Der gebürtige Hongmeng wird auf jeden Fall Erfolg haben. Der komplette Quellcode von GTA 5 wurde öffentlich durchgesickert. Linus: Ich werde den Code an Heiligabend nicht lesen. Ich werde eine neue Version des Java-Tool-Sets Hutool-5.8.24 veröffentlichen nächstes Jahr. Lasst uns gemeinsam über Furion klagen. Kommerzielle Erkundung: Das Boot ist vorbei. Wan Zhongshan, v4.9.1.15 Apple veröffentlicht Open-Source-Multimodal-Großsprachenmodell Ferret Yakult Company bestätigt, dass 95 G-Daten durchgesickert sind
{{o.name}}
{{m.name}}

Supongo que te gusta

Origin my.oschina.net/u/6895272/blog/10322356
Recomendado
Clasificación