Venice es una plataforma de almacenamiento de datos derivados que proporciona las siguientes características:
Lo anterior hace que Venice sea particularmente adecuada como componente con estado que respalda una tienda de funciones, como Feathr. Las aplicaciones de IA envían el resultado de sus trabajos de capacitación de ML a Venice y luego consultan los datos para usarlos durante las cargas de trabajo de inferencia en línea.
Venecia es un sistema que abarca los mundos offline, nearline y online, como se ilustra a continuación.
La ruta de escritura de Venecia se puede dividir en tres granularidades: intercambio completo del conjunto de datos, inserción de muchas filas en un conjunto de datos existente y actualizaciones de algunas columnas de algunas filas. Las tres granularidades cuentan con el respaldo de Hadoop y Samza. Además, cualquier servicio también puede producir de forma asincrónica inserciones y actualizaciones de una sola fila, utilizando la biblioteca Online Producer. La siguiente tabla resume las operaciones de escritura admitidas por cada plataforma:
Hadoop | Samza | Cualquier servicio | |
---|---|---|---|
Intercambio completo de conjunto de datos | ✅ | ✅ | |
Inserción de algunas filas en un conjunto de datos existente | ✅ | ✅ | ✅ |
Actualizaciones de algunas columnas de algunas filas. | ✅ | ✅ | ✅ |
Además, las tres granularidades de las operaciones de escritura se pueden combinar en un único conjunto de datos. Un conjunto de datos que obtiene intercambios completos de conjuntos de datos además de la inserción o actualización de filas se denomina híbrido .
Como parte de la configuración de una tienda para que sea híbrida , un concepto importante es el tiempo de rebobinado , que define hasta qué punto se deben rebobinar y aplicar las escrituras recientes en tiempo real además de la nueva generación del conjunto de datos que se intercambia.
Aprovechando este mecanismo, es posible superponer la salida de un trabajo de procesamiento continuo sobre la de un trabajo por lotes. Si se utilizan actualizaciones parciales, es posible actualizar algunas de las columnas en tiempo real y otras por lotes, y estos dos conjuntos de columnas pueden superponerse o estar separados, según se desee.
Write Compute incluye dos tipos de operaciones, que se pueden realizar en el valor asociado con una clave determinada:
NB: actualmente, la computación de escritura solo se admite junto con la replicación activa-pasiva. Se está desarrollando soporte para la replicación activo-activo.
Venice admite las siguientes API de lectura:
Hay dos modos principales para acceder a los datos de Venecia:
La siguiente tabla resume las características de los clientes:
Saltos de red | Latencia típica (p99) | Huella estatal | |
---|---|---|---|
Cliente ligero | 2 | < 10 milisegundos | Apátrida |
Cliente rápido | 1 | < 2 milisegundos | Mínimo (solo metadatos de enrutamiento) |
Cliente Da Vinci (RAM + SSD) | 0 | < 1 milisegundo | RAM limitada, conjunto de datos completo en SSD |
Cliente Da Vinci (todo en RAM) | 0 | < 10 microsegundos | Conjunto de datos completo en RAM |
Todos estos clientes comparten las mismas API de lectura descritas anteriormente. Esto permite a los usuarios realizar cambios en su relación costo/rendimiento sin necesidad de reescribir sus aplicaciones.
El blog y la conferencia de Open Sourcing Venice son buenos puntos de partida para obtener una descripción general de los casos de uso y la escala que Venecia puede admitir. Para obtener más publicaciones, charlas y podcasts de Venecia, consulte nuestra página Más información.
Consulte el inicio rápido de Venice para crear su propio clúster de Venice y experimentar con algunas características como la creación de un almacén de datos, envío por lotes, envío incremental y obtención única. Recomendamos seguir con nuestra última versión estable.
Siéntase libre de interactuar con la comunidad utilizando nuestro:
Síguenos para saber más sobre el progreso del proyecto y la comunidad de Venecia: