Os aplicativos 360 do cliente em tempo actual são essenciais para permitir que os departamentos de uma empresa tenham dados confiáveis e consistentes sobre como o cliente se envolveu com os produtos e serviços. Idealmente, quando alguém de um departamento interage com um cliente, você deseja informações atualizadas para que o cliente não fique frustrado e repita as mesmas informações várias vezes para pessoas diferentes. Além disso, como empresa, você pode começar a antecipar as necessidades dos clientes. Faz parte da construção de uma experiência excelente para o cliente, onde os clientes desejam continuar voltando e você começa a construir clientes campeões. A experiência do cliente faz parte da jornada de construção de clientes fiéis. Para iniciar esta jornada, você precisa capturar como os clientes interagiram com a plataforma: o que clicaram, o que adicionaram ao carrinho, o que removeram e assim por diante.
Ao criar um aplicativo 360 do cliente em tempo actual, você definitivamente precisará de dados de eventos de uma fonte de dados de streaming, como Kafka. Você também precisará de um banco de dados transacional para armazenar as transações e informações pessoais dos clientes. Por fim, você também pode querer combinar alguns dados históricos de interações anteriores dos clientes. A partir daqui, você desejará analisar os dados de eventos, transacionais e históricos para entender suas tendências, criar recomendações personalizadas e começar a antecipar suas necessidades em um nível muito mais granular.
Estaremos construindo uma versão básica disso usando Kafka, S3, Rockset e Retool. A ideia aqui é mostrar como integrar dados em tempo actual com dados estáticos/históricos para construir um aplicativo 360 do cliente abrangente em tempo actual que é atualizado em segundos:
- Enviaremos dados clickstream e CSV para Kafka e AWS S3, respectivamente.
- Faremos integração com Kafka e S3 por meio dos conectores de dados do Rockset. Isso permite que o Rockset ingira e indexe automaticamente dados semiestruturados inseridos em JSON sem nivelá-los.
- No Rockset Question Editor, escreveremos consultas SQL complexas que JUNTAM, agregam e pesquisam dados do Kafka e S3 para criar recomendações em tempo actual e perfis 360 do cliente. A partir daí, criaremos APIs de dados que serão usadas no Retool (etapa 4).
- Por fim, construiremos um aplicativo 360 do cliente em tempo actual com as ferramentas internas do Retool que executarão o Question Lambdas do Rockset. Veremos o perfil 360 do cliente que incluirá suas recomendações de produtos.
Requisitos principais para construir um aplicativo 360 do cliente em tempo actual com recomendações
Fonte de dados de streaming para capturar as atividades do cliente: Precisaremos de uma fonte de dados de streaming para capturar quais itens de supermercado os clientes estão clicando, adicionando ao carrinho e muito mais. Estamos trabalhando com Kafka porque ele tem um alto fanout e é fácil trabalhar com muitos ecossistemas.
Banco de dados em tempo actual que lida com fluxos de dados em rajadas: Você precisa de um banco de dados que separe a computação de ingestão, a computação de consulta e o armazenamento. Ao separar esses serviços, você pode dimensionar as gravações independentemente das leituras. Normalmente, se você combinar computação e armazenamento, altas taxas de gravação poderão retardar as leituras e diminuir o desempenho da consulta. Rockset é um dos poucos bancos de dados que separa computação de ingestão e consulta e armazenamento.
Banco de dados em tempo actual que lida com eventos fora de ordem: Você precisa de um banco de dados mutável para atualizar, inserir ou excluir registros. Novamente, Rockset é um dos poucos bancos de dados analíticos em tempo actual que evita operações caras de mesclagem.
Ferramentas internas para análise operacional: Escolhi Retool porque é fácil de integrar e usar APIs como recurso para exibir os resultados da consulta. O Retool também possui uma atualização automática, onde você pode atualizar continuamente as ferramentas internas a cada segundo.
Vamos construir nosso aplicativo usando Kafka, S3, Rockset e Retool
Então, sobre os dados
Dados do evento a serem enviados ao Kafka
Em nosso exemplo, estamos criando uma recomendação de quais itens de mercearia nosso usuário pode considerar comprar. Criamos 2 dados de eventos separados no Mockaroo que enviaremos ao Kafka:
user_activity_v1
- É aqui que os usuários adicionam, removem ou visualizam itens de mercearia em seus carrinhos.
user_purchases_v1
- São compras feitas pelo cliente. Cada compra tem o valor, uma lista dos itens que comprou e o tipo de cartão que utilizou.
Você pode ler mais sobre como criamos o conjunto de dados no oficina.
Conjunto de dados S3
Temos 2 buckets públicos:
Enviar dados de eventos para Kafka
A maneira mais fácil de configurar é criar um Cluster de nuvem confluente com 2 tópicos Kafka:
- atividade_do_usuário
- compras_do_usuário
Alternativamente, você pode encontrar instruções sobre como configurar o cluster no Oficina Confluent-Rockset.
Você desejará enviar dados para o fluxo Kafka modificando isto roteiro no repositório Confluent. Na minha oficina, usei Dados Mockaroo e enviou isso para Kafka. Você pode seguir o hyperlink do workshop para começar com Mockaroo e Kafka!
Disponibilidade do bucket público S3
Os 2 buckets públicos já estão disponíveis. Quando chegarmos à parte do Rockset, você poderá inserir o URI do S3 para preencher a coleção. Nenhuma ação é necessária de sua parte.
Introdução ao Rockset
Você pode seguir o instruções na criação de uma conta.
Crie uma integração Confluent Cloud no Rockset
Para que o Rockset leia os dados do Kafka, você deve conceder permissões de leitura. Você pode seguir o instruções na criação de uma integração com o cluster Confluent Cloud. Tudo o que você precisa fazer é conectar o bootstrap-url e as chaves de API:
Crie coleções Rockset com dados Kafka e S3 transformados
Para a fonte de dados Kafka, você colocará o nome da integração que criamos anteriormente, o nome do tópico, o deslocamento e o formato. Ao fazer isso, você verá a visualização.
Na parte inferior da coleção, há uma seção onde você pode transformar os dados à medida que são ingeridos no Rockset:
A partir daqui, você pode escrever instruções SQL para transformar os dados:
Neste exemplo, quero salientar que estamos remapeando eventoshora de eventotempo. Rockset associa um carimbo de knowledge/hora a cada documento em um campo chamado eventotempo. Se um event_time não é fornecido quando você insere um documento, o Rockset o fornece como o horário em que os dados foram ingeridos porque as consultas neste campo são significativamente mais rápidas do que consultas semelhantes em campos indexados regularmente.
Quando terminar de escrever a consulta de transformação SQL, você poderá aplicar a transformação e criar a coleção.
Também transformaremos o tópico user_purchases do Kafka, de maneira semelhante que acabei de explicar aqui. Você pode acompanhar para obter mais detalhes sobre como nós transformou e criou a coleção desses tópicos Kafka.
S3
Para começar a usar o bucket S3 público, você pode navegar até a guia coleções e criar uma coleção:
Você pode escolher a opção S3 e escolher o bucket S3 público:
A partir daqui, você pode preencha os detalhesincluindo o URI do caminho S3 e veja a visualização da fonte:
Semelhante a antes, podemos criar transformações SQL nos dados S3:
Você pode acompanhar como nós escreveu as transformações SQL.
Crie uma consulta de recomendação em tempo actual no Rockset
Depois de criar todas as coleções, estaremos prontos para escrever nossa consulta de recomendação! Na consulta, queremos construir uma recomendação de itens com base nas atividades desde a última compra. Estamos construindo a recomendação reunindo outros itens que os usuários compraram junto com o merchandise no qual o usuário estava interessado desde a última compra.
Você pode seguir exatamente como construímos essa consulta. Vou resumir as etapas abaixo.
Etapa 1: Encontre an information da última compra do usuário
Precisaremos ordenar suas atividades de compra em ordem decrescente e obter an information mais recente. Você notará na linha 8 que estamos usando um parâmetro:userid. Quando fazemos uma solicitação, podemos escrever o ID do usuário que desejamos no corpo da solicitação.
Etapa 2: obtenha as atividades mais recentes do cliente desde a última compra
Aqui estamos escrevendo uma CTE, expressão de tabela comum, onde podemos encontrar as atividades desde a última compra. Você notará na linha 24 que estamos interessados apenas na atividade _eventtempo que é maior que a compra hora_do_evento.
Etapa 3: encontre compras anteriores que contenham os itens do cliente
Queremos encontrar todas as compras que outras pessoas compraram, que contenham os itens do cliente. A partir daqui podemos ver quais itens nosso cliente provavelmente comprará. A principal coisa que quero destacar está na linha 44: usamos ARRAY_CONTAINS() para encontrar o merchandise de interesse e ver quais outras compras possuem esse merchandise.
Etapa 4: Agregue todas as compras desaninhando uma matriz
Queremos ver os itens que foram comprados junto com o merchandise de interesse do cliente. Na etapa 3, obtivemos uma matriz de todas as compras, mas ainda não podemos agregar os IDs dos produtos. Precisamos nivelar o array e então agregar os IDs dos produtos para ver em qual produto o cliente estará interessado. Na linha 52 nós UNNEST() o array e na linha 49 nós COUNT
Conteúdo incorporado: https://gist.github.com/nfarah86/304ac6fa14557700adcf4cc906ddd88c#file-gregate_purchases-sql
Passo 5: Filtre os resultados para que não contenham o produto de interesse
set-sql
Etapa 6: Identifique o ID do produto com o nome do produto
nome-sql
Etapa 7: criar uma consulta Lambda
rockset-kafka-10
Usaremos esse endpoint no Retool.
Isso conclui a consulta de recomendação! Escrevemos algumas outras consultas que você pode explorar na página do workshop, como obter o preço médio de compra e o gasto complete do usuário!
Conclua a construção do aplicativo no Retool com dados do Rockset
Retool é ótimo para construir ferramentas internas. Aqui, os agentes de atendimento ao cliente ou outros membros da equipe podem acessar facilmente os dados e ajudar os clientes. Os dados que serão exibidos no Retool virão das consultas Rockset que escrevemos. Sempre que o Retool envia uma solicitação ao Rockset, o Rockset retorna os resultados e o Retool exibe os dados. Você pode obter informações completas sobre como iremosconstruir no Retool
.
rockset-kafka-11
Você vai querer dar um nome ao recurso, aqui eu o chamei de rockset-base-API.
Você verá no URL base, coloquei o endpoint Question Lambda na parte lambda – não coloquei o endpoint inteiro. Exemplo: SobCabeçalhos
coloquei os valores Authorization e Content material-Kind.
- Agora, você precisará criar a consulta de recurso. Você vai querer escolher o rockset-base-API como o recurso e na segunda metade do recurso, você colocará tudo o mais que vem depois da parte lambdas. Exemplo:
rockset-kafka-12
Na seção de parâmetros, você desejará atualizar dinamicamente o ID do usuário.
rockset-kafka-13 Você pode seguir
como construímos o aplicativo do cliente em tempo actual no Retool. Isso resume como construímos um aplicativo 360 do cliente em tempo actual com Kafka, S3, Rockset e Retool. Se você tiver alguma dúvida ou comentário, entre em contato com oComunidade Rockset
.