Venice ist eine abgeleitete Datenspeicherplattform, die die folgenden Eigenschaften bietet:
Dadurch eignet sich Venice besonders gut als zustandsbehaftete Komponente, die einen Feature Store wie Feathr unterstützt. KI-Anwendungen speisen die Ergebnisse ihrer ML-Trainingsjobs in Venice ein und fragen die Daten dann zur Verwendung bei Online-Inferenz-Workloads ab.
Venice ist ein System, das die Offline-, Nearline- und Online-Welten umfasst, wie unten dargestellt.
Der Venice-Schreibpfad kann in drei Granularitäten unterteilt werden: vollständiger Datensatzaustausch, Einfügen vieler Zeilen in einen vorhandenen Datensatz und Aktualisierungen einiger Spalten einiger Zeilen. Alle drei Granularitäten werden von Hadoop und Samza unterstützt. Darüber hinaus kann jeder Dienst mithilfe der Online Producer-Bibliothek auch asynchron einzelne Zeileneinfügungen und -aktualisierungen erstellen. Die folgende Tabelle fasst die von jeder Plattform unterstützten Schreibvorgänge zusammen:
Hadoop | Samza | Jeder Dienst | |
---|---|---|---|
Vollständiger Datensatzaustausch | ✅ | ✅ | |
Einfügen einiger Zeilen in einen vorhandenen Datensatz | ✅ | ✅ | ✅ |
Aktualisierungen einiger Spalten einiger Zeilen | ✅ | ✅ | ✅ |
Darüber hinaus können die drei Granularitäten von Schreibvorgängen alle in einem einzigen Datensatz gemischt werden. Ein Datensatz, der neben Zeileneinfügungen oder Zeilenaktualisierungen auch vollständige Datensatzaustausche erhält, wird als Hybrid bezeichnet.
Bei der Konfiguration eines Speichers als Hybrid ist die Rückspulzeit ein wichtiges Konzept. Sie definiert, wie weit die letzten Echtzeit-Schreibvorgänge zurückgespult und auf die neue Generation des eingelagerten Datensatzes angewendet werden sollen.
Durch die Nutzung dieses Mechanismus ist es möglich, die Ausgabe eines Stream-Verarbeitungsauftrags über die eines Batch-Auftrags zu legen. Wenn Teilaktualisierungen verwendet werden, ist es möglich, einige der Spalten in Echtzeit und andere im Batch zu aktualisieren, und diese beiden Spaltensätze können je nach Wunsch entweder überlappen oder disjunkt sein.
Write Compute umfasst zwei Arten von Operationen, die für den mit einem bestimmten Schlüssel verknüpften Wert ausgeführt werden können:
Hinweis: Derzeit wird Schreibberechnung nur in Verbindung mit Aktiv-Passiv-Replikation unterstützt. Unterstützung für die Aktiv-Aktiv-Replikation befindet sich in der Entwicklung.
Venice unterstützt die folgenden Lese-APIs:
Es gibt zwei Hauptmodi für den Zugriff auf Venedig-Daten:
Die folgende Tabelle fasst die Merkmale der Kunden zusammen:
Netzwerk-Hops | Typische Latenz (S. 99) | Staatlicher Fußabdruck | |
---|---|---|---|
Thin Client | 2 | < 10 Millisekunden | Staatenlos |
Schneller Kunde | 1 | < 2 Millisekunden | Minimal (nur Routing-Metadaten) |
Da Vinci-Client (RAM + SSD) | 0 | < 1 Millisekunde | Begrenzter RAM, vollständiger Datensatz auf SSD |
Da Vinci-Client (All-in-RAM) | 0 | < 10 Mikrosekunden | Vollständiger Datensatz im RAM |
Alle diese Clients nutzen dieselben oben beschriebenen Lese-APIs. Dadurch können Benutzer Änderungen an ihrem Kosten-Leistungs-Kompromiss vornehmen, ohne ihre Anwendungen neu schreiben zu müssen.
Der Open Sourcing Venice -Blog und der Konferenzvortrag sind gute Ausgangspunkte, um sich einen Überblick darüber zu verschaffen, welche Anwendungsfälle und Größenordnungen Venice unterstützen kann. Weitere Beiträge, Vorträge und Podcasts zu Venedig finden Sie auf unserer Seite „Mehr erfahren“.
Sehen Sie sich den Venice-Schnellstart an, um Ihren eigenen Venice-Cluster zu erstellen und einige Funktionen auszuprobieren, z. B. das Erstellen eines Datenspeichers, Batch-Push, inkrementelles Push und Single Get. Wir empfehlen, bei unserer neuesten stabilen Version zu bleiben.
Fühlen Sie sich frei, mit der Community in Kontakt zu treten, indem Sie Folgendes nutzen:
Folgen Sie uns, um mehr über den Fortschritt des Venedig-Projekts und der Community zu erfahren: