Como o Rockset TurboCharges Personalização em tempo actual em tudo



Como o Rockset TurboCharges Personalização em tempo actual em tudo

Otha é uma startup de comércio eletrônico apoiada por empreendimentos, construída para a idade de streaming. Construímos um mercado de vídeo ao vivo para colecionadores, entusiastas da moda e superfãs que permitem que os vendedores venham ao vivo e vendam o que quiserem através da nossa plataforma de leilão de vídeo. Pense que o eBay conhece Twitch.

Os cobiçados colecionáveis ​​foram os primeiros itens em nossa transmissão ao vivo quando lançamos em 2020. Hoje, por meio de vídeos de compras ao vivo, os vendedores oferecem produtos em mais de 100 categorias, de cartões de Pokemon e beisebol a tênis, moedas antigas e muito mais.

Essential para o sucesso de Whatnot é conectar comunidades de compradores e vendedores por meio de nossa plataforma. Ele reúne sinalizações em tempo actual do nosso público: os vídeos que estão assistindo, os comentários e interações sociais que estão saindo e os produtos que estão comprando. Analisamos esses dados para classificar os vídeos mais populares e relevantes, que apresentamos aos usuários na tela inicial do aplicativo ou web site móvel da Whatnot.

No entanto, para manter e aumentar nosso crescimento, precisávamos levar nosso feed doméstico para o próximo nível: classificar nossas sugestões de programa a cada usuário com base no conteúdo mais interessante e relevante em tempo actual.

Isso exigiria um aumento na quantidade e variedade de dados que precisaríamos ingerir e analisar, tudo isso em tempo actual. Para apoiar isso, procuramos uma plataforma em que os profissionais de ciência de dados e aprendizado de máquina pudessem iterar rapidamente e implantar para a produção mais rapidamente, mantendo cargas de trabalho de baixa latência e alta concorrência.

Alto custo de execução de elasticsearch

Na superfície, nosso pipeline de dados herdado parecia estar com um bom desempenho e construído nos componentes mais modernos. Isso incluiu Pesquisa de elasticidade hospedada na AWS Para fazer a recuperação e a classificação do conteúdo usando recursos em lote carregados na ingestão. Esse processo retorna uma única consulta em dezenas de milissegundos, com taxas de simultaneidade subindo em 50-100 consultas por segundo.

No entanto, temos planos de aumentar o uso de 5 a 10x no próximo ano. Isso seria através de uma combinação de expansão para categorias de produtos muito divinas e aumentar a inteligência do nosso mecanismo de recomendação.

O ponto de dor maior foi o Alta sobrecarga operacional do Elasticsearch Para nossa pequena equipe. Isso estava drenando a produtividade e limitando severamente nossa capacidade de melhorar a inteligência de nosso mecanismo de recomendação para acompanhar nosso crescimento.

Digamos que queríamos adicionar um novo sinal de usuário ao nosso pipeline de análise. Usando nossa infraestrutura de porção anterior, os dados teriam que ser enviados por meio de instâncias hospedadas em confluência de Apache Kafka e ksqldb e depois desnormalizado e/ou enrolado. Em seguida, um índice de pesquisa de elasticidade específico teria que ser ajustado manualmente ou construído para esses dados. Só então poderíamos consultar os dados. Todo o processo levou semanas.

Apenas manter nossas consultas existentes também foi um grande esforço. Nossos dados mudam com frequência, por isso estávamos constantemente aprimorando novos dados nas tabelas existentes. Isso exigiu uma atualização demorada para o índice de pesquisa de elasticidade relevante todas as vezes. E depois de cada Elasticsearch Index Foi criado ou atualizado, tivemos que testar manualmente e atualizar todos os outros componentes em nosso pipeline de dados para garantir que não criássemos gargalos, introduziu erros de dados and so on.

Resolução de eficiência, desempenho e escalabilidade

Nossa nova plataforma de análise em tempo actual seria essencial para nossa estratégia de crescimento, por isso avaliamos cuidadosamente muitas opções.

Projetamos um pipeline de dados usando o fluxo de ar para extrair dados do Snowflake e empurrá-lo para um de nossos bancos de dados OLTP que serve o feed do Elasticsearch, opcionalmente com um cache na frente. Foi possível agendar esse trabalho para executar em intervalos de 5, 10, 20 minutos, mas com a latência adicional não conseguimos atender aos nossos SLAs, enquanto a complexidade técnica reduziu a velocidade desejada do desenvolvedor.

Então nós avaliamos muitos alternativas em tempo actual ao Elasticsearchincluindo rockset, materializar, Druid Apache e apache pinot. Cada uma dessas plataformas SQL-primeiro atendia aos nossos requisitos, mas estávamos procurando um parceiro que também pudesse assumir a sobrecarga operacional.

No closing, implantamos o Rockset sobre essas outras opções porque tinha a melhor mistura de recursos para sustentar nosso crescimento: uma plataforma de aprimoramento de desenvolvedores, totalmente gerenciada, com velocidades de ingestão e consulta em tempo actual, alta concorrência e escalabilidade automática.


O mais rápido-rockset

Vejamos a nossa maior prioridade, a produtividade do desenvolvedor, que o Rockset Turboharges de várias maneiras. Com o rockset Índice convergenteO recurso ™, todos os campos, incluindo os aninhados, são indexados, o que garante que as consultas sejam otimizadas automaticamente, funcionando rapidamente, independentemente do tipo de consulta ou da estrutura dos dados. Não precisamos mais nos preocupar com o tempo e o trabalho de construção e manutenção de índices, como precisamos com o Elasticsearch. O RockSet também faz do SQL um cidadão de primeira classe, que é ótimo para nossos cientistas de dados e engenheiros de aprendizado de máquina. Oferece um menu completo de comandos SQL, incluindo quatro tipos de junções, pesquisas e agregações. Tais análises complexas eram Mais difícil de executar usando o Elasticsearch.

Com o RockSet, temos um fluxo de trabalho de desenvolvimento muito mais rápido. Quando precisamos adicionar um novo sinal de usuário ou fonte de dados ao nosso mecanismo de classificação, podemos ingressar neste novo conjunto de dados sem precisar desnormalizá -lo primeiro. Se o recurso estiver funcionando como pretendido e o desempenho for bom, podemos finalizá -lo e colocá -lo em produção em dias. Se a latência for alta, podemos considerar desnormalizar os dados ou fazer algumas pré -avaliações em KSQL primeiro. De qualquer maneira, isso reduz nosso tempo de navio de semanas a dias.

A plataforma SaaS totalmente gerenciada do Rockset é madura e um primeiro motor no espaço. Pegue como o RockSet Decoupple Storage from Compute. Isso fornece escalabilidade instantânea e automática para lidar com o nosso tráfego crescente e espesso (como quando um produto ou streamer common fica on -line). Os dados de aprimoramento também são uma brisa devido à arquitetura mutável do Rockset e Escreva APIque também simplifica, atualiza e exclui simples.

Quanto ao desempenho, o RockSet também entregou verdadeiro Ingestão em tempo actual e consultas, com latência de ponta a ponta dos sub-50 milissegundos. Isso não correspondeu apenas ao Elasticsearch, mas o fez com um esforço e custo operacionais muito mais baixos, enquanto lidava com um quantity e variedade de dados muito mais altos e permitindo análises mais complexas – tudo no SQL.

Não é apenas o produto do rockset que tem sido ótimo. A equipe de engenharia do Rockset tem sido um parceiro fantástico. Sempre que tivemos um problema, enviamos mensagens a eles no Slack e recebemos uma resposta rapidamente. Não é o relacionamento típico do fornecedor – eles têm sido realmente uma extensão de nossa equipe.

Uma infinidade de outros usos em tempo actual

Estamos tão felizes com o Rockset que planejamos expandir seu uso em muitas áreas. Dois slam dunks seriam confiança e segurança da comunidade, como monitorar comentários e conversar para linguagem ofensiva, onde o RockSet já está ajudando clientes.

Também queremos usar o RockSet como um banco de dados Mini-ALAP para fornecer relatórios e painéis em tempo actual aos nossos vendedores. O RockSet serviria como uma alternativa em tempo actual ao floco de neve, e seria ainda mais conveniente e fácil de usar. Por exemplo, o aumento de novos dados através da API do RockSet é instantaneamente reindexado e pronto para consultas.

Também estamos investigando seriamente para tornar o RockSet em nossa loja de recursos em tempo actual para o aprendizado de máquina. O RockSet seria perfeito para fazer parte de um pipeline de aprendizado de máquina, alimentando recursos em tempo actual, como a contagem de bate -papos nos últimos 20 minutos em um fluxo. Os dados transmitiriam de Kafka para um conjunto de pedras Consulta Lambda Compartilhando a mesma lógica que nossas transformações DBT em lote em cima do floco de neve. Idealmente, um dia, abstraíamos as transformações a serem usadas em oleodutos DBT de RockSet e Snowflake para composibilidade e repetibilidade. Os cientistas de dados conhecem o SQL, que o RockSet suporta fortemente.

Rockset está em nosso ponto splendid agora. Obviamente, em um mundo perfeito que girava em torno de tudo, o RockSet adicionaria recursos especialmente para nós, como processamento de fluxos, aproximar a pesquisa mais próxima dos vizinhos, a escala automática, para citar alguns. Ainda temos alguns casos de uso em que as junções em tempo actual não são suficientes, forçando-nos a fazer alguns pré-calculações. Se pudéssemos obter tudo isso em uma única plataforma, em vez de ter que implantar uma pilha heterogênea, gostaríamos disso.

Saiba mais sobre como Nós construímos sinais em tempo actual em nosso feed doméstico de usuário. E visite o O mais rápido da página de carreira Para ver as aberturas em nossa equipe de engenharia.

Conteúdo incorporado: https://youtu.be/jxdei-ma_j8?si=iAdp2Xep3nomddlm



Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *