Veneza é uma plataforma derivada de armazenamento de dados, que oferece as seguintes características:
O que foi dito acima torna Venice particularmente adequado como componente de estado que apoia uma Feature Store, como a Featherr. Os aplicativos de IA alimentam o resultado de seus trabalhos de treinamento de ML em Veneza e, em seguida, consultam os dados para uso durante cargas de trabalho de inferência online.
Veneza é um sistema que abrange os mundos offline, nearline e online, conforme ilustrado abaixo.
O caminho de gravação de Veneza pode ser dividido em três granularidades: troca completa do conjunto de dados, inserção de muitas linhas em um conjunto de dados existente e atualizações de algumas colunas de algumas linhas. Todas as três granularidades são suportadas por Hadoop e Samza. Além disso, qualquer serviço também pode produzir inserções e atualizações de linha única de forma assíncrona, usando a biblioteca do Online Producer. A tabela abaixo resume as operações de gravação suportadas por cada plataforma:
Hadoop | Samza | Qualquer serviço | |
---|---|---|---|
Troca completa do conjunto de dados | ✅ | ✅ | |
Inserção de algumas linhas em um conjunto de dados existente | ✅ | ✅ | ✅ |
Atualizações para algumas colunas de algumas linhas | ✅ | ✅ | ✅ |
Além disso, as três granularidades das operações de gravação podem ser combinadas em um único conjunto de dados. Um conjunto de dados que obtém trocas completas de conjuntos de dados, além da inserção ou atualização de linhas, é chamado de híbrido .
Como parte da configuração de um armazenamento para ser híbrido , um conceito importante é o tempo de retrocesso , que define até que ponto as gravações recentes em tempo real devem ser rebobinadas e aplicadas sobre a nova geração do conjunto de dados que está sendo trocado.
Aproveitando esse mecanismo, é possível sobrepor a saída de uma tarefa de processamento de fluxo à de uma tarefa em lote. Se estiver usando atualizações parciais, é possível atualizar algumas colunas em tempo real e outras em lote, e esses dois conjuntos de colunas podem se sobrepor ou ser separados, conforme desejado.
Write Compute inclui dois tipos de operações, que podem ser executadas no valor associado a uma determinada chave:
Observação: atualmente, a computação de gravação só é suportada em conjunto com a replicação ativa-passiva. O suporte para replicação ativa-ativa está em desenvolvimento.
Venice oferece suporte às seguintes APIs de leitura:
Existem dois modos principais de acesso aos dados de Veneza:
A tabela abaixo resume as características dos clientes:
Saltos de rede | Latência típica (p99) | Pegada Estadual | |
---|---|---|---|
Cliente magro | 2 | <10 milissegundos | Apátrida |
Cliente rápido | 1 | <2 milissegundos | Mínimo (somente metadados de roteamento) |
Cliente Da Vinci (RAM + SSD) | 0 | <1 milissegundo | RAM limitada, conjunto de dados completo em SSD |
Cliente Da Vinci (tudo em RAM) | 0 | < 10 microssegundos | Conjunto de dados completo em RAM |
Todos esses clientes compartilham as mesmas APIs de leitura descritas acima. Isso permite que os usuários façam alterações na relação custo/desempenho sem precisar reescrever seus aplicativos.
O blog Open Sourcing Venice e a palestra da conferência são bons pontos de partida para obter uma visão geral de quais casos de uso e escala o Venice pode suportar. Para mais postagens, palestras e podcasts sobre Veneza, consulte nossa página Saiba mais.
Consulte o início rápido de Veneza para criar seu próprio cluster de Veneza e experimentar alguns recursos, como criação de um armazenamento de dados, envio em lote, envio incremental e obtenção única. Recomendamos manter nossa versão estável mais recente.
Sinta-se à vontade para interagir com a comunidade usando nosso:
Siga-nos para saber mais sobre o progresso do projeto e da comunidade de Veneza: