Como o Savvvy resolveu análises em tempo actual no NOSQL usando o rockset


Rockset foi incrivelmente fácil de começar. Estávamos literalmente em funcionamento dentro de algumas horas. – Jeremy Evans, co-fundador e CTO, experiente


No Savvytemos muita responsabilidade quando se trata de dados.

Nossos clientes são marcas de consumo on -line, como Good.orgAssim, Flex e Hábito simples. Eles dependem de nosso serviço nativo em nuvem para criar facilmente experiências interativas sem código, como testes de vídeo, calculadoras e listas para seus websites sem a necessidade de desenvolvedores. As empresas podem acompanhar a eficácia desses fluxos de educação com seus usuários através do nosso painel de análise.

Quando você está alimentando fluxos de conversão com a qual dezenas de milhares de visitantes interagem com todos os dias, as análises são cruciais. Nossos clientes precisam ser capazes de analisar todas as etapas do funil de conversão e seus testes de A/B para descobrir onde eles podem melhorar – e todo o ponto de uso é que as empresas não precisam pedir a seus próprios desenvolvedores para criar recursos como análises, porque ela vem incluída em nossa plataforma.

No entanto, a entrega de informações ricas e oportunas foi um desafio para nós desde o início, pois nossa plataforma unique period ótima na ingestão de dados, mas não tão boa em analisar e relatar.

Para continuar crescendo, especialmente sem interrupção de serviço, precisávamos de uma solução mais poderosa e plug-and-play.

Squaring o círculo (não) SQL

Construímos o Savvy usando a plataforma de desenvolvimento e hospedagem de aplicativos Firebase do Google. A abordagem altamente escalável e sem esquema da Firebase nos ajudou a avançar rapidamente no desenvolvimento. O desempenho também é extremamente rápido – nossos fluxos incorporados são carregados nos websites dos clientes em 300 milissegundos, em média. Eles adoram esse desempenho em tempo actual.

Também não tivemos problemas em monitorar e registrar a atividade de visitantes individuais nos websites de nossos clientes. Todas as interações são transmitidas na forma de eventos semiestruturados no banco de dados NOSQL Cloud da Firebase, onde os dados, que incluem um grande número de objetos e matrizes aninhados, são ingeridos. Mostrar aos nossos clientes uma lista de visitantes recentes, juntamente com todas as suas interações, não foi fácil, também period possível fazer em tempo actual.

O problema ocorreu assim que nossos clientes desejavam a capacidade de começar a filtrar essa lista de alguma forma ou visualizar estatísticas agregadas, como número de visitantes ao longo do tempo ou uma quebra do website do referenciador.

Nossa solução de band-aid unique period apenas para aplicar os filtros básicos que o Firebase suporta e executar qualquer filtragem ou agrupamento restante no front-end. Obviamente, isso emblem começou a vir com problemas de desempenho: à medida que escalávamos para dezenas de milhares de usuários, a crescente possibilidade de tempo limite de consulta significava que essa estratégia começou a ameaçar nossa capacidade de exibir análises.

Na tentativa de fazer nossas consultas rapidamente novamente, nosso próximo plano period fazer pré-computações nos fluxos e métricas de eventos ingeridos, indexando-os enquanto estavam sendo armazenados. No entanto, tivemos que criar manualmente um índice para cada novo tipo de gráfico que adicionamos e, como os esquemas para eventos continuavam mudando, nossas pré-computações continuavam mudando também. Isso também significava que de repente estávamos gerenciando toda uma carga de dutos de processamento de dados, que vieram com todas as dores de cabeça que você esperaria-se um processamento de dados programado fosse perdido, por exemplo, o usuário veria dados desatualizados ou mesmo um gráfico com um pedaço de dados ausentes no meio.

Separando o trigo do palha

Observamos atentamente várias alternativas, incluindo:

  1. PostGres. Embora o venerável banco de dados de código aberto suporta as complexas análises baseadas em SQL de que precisávamos, teríamos que fazer reescritas significativas, incluindo achatar todos os objetos JSON que estávamos jogando na Base Hearth. Tínhamos feito uso substancial da flexibilidade da Firebase aqui, então perdê -lo em uma mudança para o Postgres teria sido caro.
  2. Questdboutro banco de dados SQL de código aberto orientado para dados de séries temporais. Embora os exemplos de consulta que o QuestDB nos mostrou foram rápidos e altamente concorrentes, e eles tinham uma equipe impressionante construindo um produto impressionante, eles eram muito iniciais na época e a natureza de código aberto de sua solução significaria mais manutenção e supervisão dos EUA do que a largura de banda.

Acabamos implantando um análise em tempo actual plataforma, Rocksetem cima de MongoDB. Ouvimos falar de Rockset através de um put up de fórum interno de uma startup de combinadores Y e percebemos que ele foi construído para resolver exatamente o tipo de problema que estávamos tendo. Em specific, fomos atraídos por esses quatro aspectos:

  1. A ingestão de dados esquema
  2. A capacidade de executar qualquer tipo de consulta SQL complexa e obter resultados em tempo actual
  3. O serviço totalmente gerenciado que nos salva de manutenção e esforço significativos de manutenção e engenharia
  4. Portal de desenvolvedores em nuvem do Rockset que facilita a construção e o gerenciamento de lambdas e APIs de consulta

Rockset foi incrivelmente fácil de começar. Estávamos literalmente em funcionamento dentro de algumas horas. Por outro lado, levaria dias ou semanas para aprendermos e implantarmos o PostGres ou o QuestDB.

Como não precisamos mais configurar esquemas com antecedência, podemos ingerir fluxos de eventos em tempo actual sem interrupção no rockset. Também não precisamos mais gastar um dia literal reescrevendo funções únicas sempre que os esquemas mudam, causando estragos em nossas consultas e gráficos. O RockSet ingere automaticamente e prepara os dados para qualquer tipo de consulta que já possamos ter em execução ou que possa precisar jogar nele. Parece mágico!

Análise em tempo actual, implantada instantaneamente

Usamos o RockSet para pesquisar e analisar mais de 30 milhões de documentos. Esses dados são sincronizados regularmente com o MongoDB e o FireBase para fornecer vistas ao vivo em duas áreas principais do nosso painel de clientes:

  1. A vista ao vivo. A partir daqui, nossos usuários podem aplicar filtros diferentes para perfurar qualquer uma das centenas de milhares de clientes e visualizar suas interações no website e onde estão na jornada do comprador.
  2. A visão de relatórioque exibe gráficos com dados agregados sobre visitantes como o número de visitantes por dia ou visitantes por fonte.


Como o Savvvy resolveu análises em tempo actual no NOSQL usando o rockset

O desempenho em tempo actual foi um grande benefício, é claro. Mas também foi a facilidade e a velocidade com que fomos capazes de cair no conjunto de rocha como substituto, bem como a minúscula sobrecarga operacional em andamento. Para nossa pequena equipe, o tempo todo estamos economizando em índices de construção manualmente, gerenciando nossos modelos de dados e reescrever consultas lentas e com defeito, é extremamente valioso.

O resultado é que conseguimos mover -se em velocidade e melhorar os recursos do entrance -end da Savvy, sem comprometer a qualidade dos dados e análises para nossos clientes.


Rockset é a liderança análise em tempo actual Plataforma criada para a nuvem, fornecendo análises rápidas em dados em tempo actual com eficiência surpreendente. Saiba mais em rockset.com.



Deixe um comentário

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