Recomendaciones en tiempo actual con Kafka, S3, Rockset y Retool


Las aplicaciones 360 del cliente en tiempo actual son esenciales para permitir que los departamentos dentro de una empresa tengan datos confiables y consistentes sobre cómo un cliente se ha comprometido con el producto y los servicios. Idealmente, cuando alguien de un departamento se ha comprometido con un cliente, desea información actualizada para que el cliente no se frustre y repita la misma información varias veces a diferentes personas. Además, como empresa, puedes empezar a anticiparte a las necesidades de los clientes. Es parte de construir una experiencia estelar para el cliente, donde los clientes quieren seguir regresando y usted comienza a construir campeones de clientes. La experiencia del cliente es parte del proceso de construcción de clientes leales. Para comenzar este viaje, debe capturar cómo los clientes han interactuado con la plataforma: en qué han hecho clic, qué han agregado a su carrito, qué han eliminado, and so on.

Al crear una aplicación de cliente 360 ​​en tiempo actual, definitivamente necesitará datos de eventos de una fuente de datos de transmisión, como Kafka. También necesitará una base de datos transaccional para almacenar las transacciones y la información private de los clientes. Finalmente, es posible que también desee combinar algunos datos históricos de las interacciones anteriores de los clientes. A partir de aquí, querrá analizar los datos históricos, transaccionales y de eventos para comprender sus tendencias, crear recomendaciones personalizadas y comenzar a anticipar sus necesidades a un nivel mucho más granular.

Construiremos una versión básica de esto usando Kafka, S3, Rockset y Retool. La concept aquí es mostrarle cómo integrar datos en tiempo actual con datos que son estáticos/históricos para crear una aplicación 360 integral para clientes en tiempo actual que se actualice en segundos:


rockset-kafka-1

  1. Enviaremos datos de flujo de clics y CSV a Kafka y AWS S3 respectivamente.
  2. Nos integraremos con Kafka y S3 a través de los conectores de datos de Rockset. Esto permite a Rockset ingerir e indexar automáticamente datos semiestructurados anidados en JSON sin aplanarlos.
  3. En el editor de consultas de Rockset, escribiremos consultas SQL complejas que UNEN, agregan y buscan datos de Kafka y S3 para crear recomendaciones en tiempo actual y perfiles 360 de clientes. A partir de ahí, crearemos API de datos que se usarán en Retool (paso 4).
  4. Finalmente, crearemos una aplicación 360 para el cliente en tiempo actual con las herramientas internas en Retool que ejecutará Question Lambdas de Rockset. Veremos el perfil 360 del cliente que incluirá sus recomendaciones de productos.

Requisitos clave para crear una aplicación de cliente 360 ​​en tiempo actual con recomendaciones

Fuente de datos de transmisión para capturar las actividades del cliente: Necesitaremos una fuente de transmisión de datos para capturar en qué artículos de comestibles hacen clic los clientes, agregarlos a su carrito y mucho más. Estamos trabajando con Kafka porque tiene un abanico alto y es fácil trabajar con muchos ecosistemas.

Base de datos en tiempo actual que maneja flujos de datos en ráfagas: Necesita una base de datos que separe el procesamiento de ingesta, el procesamiento de consultas y el almacenamiento. Al separar estos servicios, puede escalar las escrituras independientemente de las lecturas. Por lo basic, si combina computación y almacenamiento, las altas tasas de escritura pueden ralentizar las lecturas y disminuir el rendimiento de las consultas. Rockset es una de las pocas bases de datos que separan el procesamiento y el almacenamiento de ingesta y consulta.

Base de datos en tiempo actual que maneja eventos fuera de orden: Necesita una base de datos mutable para actualizar, insertar o eliminar registros. Una vez más, Rockset es una de las pocas bases de datos de análisis en tiempo actual que evita costosas operaciones de fusión.

Herramientas internas para el análisis operativo: Elegí Retool porque es fácil de integrar y usar las API como recurso para mostrar los resultados de la consulta. Retool también tiene una actualización automática, donde puede actualizar continuamente las herramientas internas cada segundo.

Construyamos nuestra aplicación usando Kafka, S3, Rockset y Retool

Entonces, sobre los datos

Datos de eventos que se enviarán a Kafka
En nuestro ejemplo, estamos creando una recomendación de qué artículos de abarrotes puede considerar comprar nuestro usuario. Creamos 2 datos de eventos separados en Mockaroo que enviaremos a Kafka:

  • actividad_usuario_v1

    • Aquí es donde los usuarios agregan, eliminan o ven artículos de comestibles en su carrito.
  • usuario_compras_v1

    • Son compras realizadas por el cliente. Cada compra tiene el monto, una lista de artículos que compraron y el tipo de tarjeta que usaron.

Puede leer más sobre cómo creamos el conjunto de datos en el taller.

Conjunto de datos S3

Tenemos 2 cubos públicos:

Enviar datos de eventos a Kafka

La forma más fácil de configurarlo es crear un Clúster de nubes confluentes con 2 temas de Kafka:

  • actividad del usuario
  • compras_usuario

Como alternativa, puede encontrar instrucciones sobre cómo configurar el clúster en el Taller de Confluent-Rockset.

Querrás enviar datos a la transmisión de Kafka modificando esto guion en el repositorio de Confluent. En mi taller, usé datos falsos y envió eso a Kafka. ¡Puedes seguir el enlace del taller para comenzar con Mockaroo y Kafka!

Disponibilidad de depósitos públicos de S3

Los 2 cubos públicos ya están disponibles. Cuando lleguemos a la parte de Rockset, puede conectar el URI de S3 para completar la colección. No se necesita ninguna acción de su parte.

Primeros pasos con Rockset

Puedes seguir el instrucciones en la creación de una cuenta.

Cree una integración de Confluent Cloud en Rockset

Para que Rockset pueda leer los datos de Kafka, debe otorgarle permisos de lectura. Puedes seguir el instrucciones en la creación de una integración al clúster de Confluent Cloud. Todo lo que tendrá que hacer es conectar la URL de arranque y las claves API:


rockset-kafka-2

Cree colecciones de Rockset con datos transformados de Kafka y S3

Para la fuente de datos de Kafka, ingresará el nombre de integración que creamos anteriormente, el nombre del tema, el desplazamiento y el formato. Cuando hagas esto, verás la vista previa.


rockset-kafka-3

Hacia la parte inferior de la colección, hay una sección donde puede transformar los datos a medida que se ingresan en Rockset:


rockset-kafka-4

Desde aquí, puede escribir sentencias SQL para transformar los datos:


rockset-kafka-5

En este ejemplo, quiero señalar que estamos reasignando eventohora de eventotiempo. Rockset asocia una marca de tiempo con cada documento en un campo llamado eventotiempo. Si una event_time no se proporciona cuando inserta un documento, Rockset lo proporciona como la hora en que se ingirieron los datos porque las consultas en este campo son significativamente más rápidas que consultas similares en campos indexados regularmente.

Cuando haya terminado de escribir la consulta de transformación de SQL, puede aplicar la transformación y crear la colección.

También vamos a transformar el tema user_purchases de Kafka, de una manera related a la que acabo de explicar aquí. Puede seguir para obtener más detalles sobre cómo transformó y creó la colección de estos temas de Kafka.

S3

Para comenzar con el depósito público de S3, puede navegar a la pestaña de colecciones y crear una colección:


rockset-kafka-6

Puede elegir la opción S3 y elegir el depósito público de S3:


rockset-kafka-7

Desde aquí, puedes completa los detallesincluido el URI de ruta de S3 y vea la vista previa de la fuente:


rockset-kafka-8

Related a antes, podemos crear transformaciones de SQL en los datos de S3:


rockset-kafka-9

Puedes seguir cómo nosotros escribió las transformaciones de SQL.

Cree una consulta de recomendación en tiempo actual en Rockset

Una vez que haya creado todas las colecciones, ¡estaremos listos para escribir nuestra consulta de recomendación! En la consulta, queremos generar una recomendación de artículos en función de las actividades desde su última compra. Estamos construyendo la recomendación reuniendo otros artículos que los usuarios han comprado junto con el artículo que le interesó al usuario desde su última compra.

Puede seguir exactamente cómo construimos esta consulta. Voy a resumir los pasos a continuación.

Paso 1: encuentra la última fecha de compra del usuario

Tendremos que ordenar sus actividades de compra en orden descendente y obtener la fecha más reciente. Notará que en la línea 8 estamos usando un parámetro: ID de usuario. Cuando hacemos una solicitud, podemos escribir el ID de usuario que queremos en el cuerpo de la solicitud.

Contenido incrustado: https://gist.github.com/nfarah86/fefab18bd376ac25fd13cc80c7184b4e#file-getclienteúltima_compra-sql

Paso 2: Obtenga las últimas actividades del cliente desde su última compra

Aquí estamos escribiendo un CTE, expresión de tabla común, donde podemos encontrar las actividades desde su última compra. Notarás en la línea 24 que solo estamos interesados ​​en la actividad _eventtiempo que es mayor que la compra hora del evento.

Contenido incrustado: https://gist.github.com/nfarah86/6fc62276e5d68a3b1b7ffe819a0f27d4#file-customer_activity-sql

Paso 3: busque compras anteriores que contengan los artículos del cliente

Querremos encontrar todas las compras que otras personas han comprado, que contienen los artículos del cliente. Desde aquí podemos ver qué artículos probablemente comprará nuestro cliente. La clave que quiero señalar está en la línea 44: usamos ARRAY_CONTIENES() para encontrar el artículo de interés y ver qué otras compras tienen este artículo.

Contenido incrustado: https://gist.github.com/nfarah86/27341fa3811cfc4bfec1fec930c8b743#file-previouscomprascontieneartículoof_interest-sql

Paso 4: sume todas las compras desvinculando una matriz

Querremos ver los artículos que se han comprado junto con el artículo de interés del cliente. En el paso 3, obtuvimos una matriz de todas las compras, pero aún no podemos agregar los ID de producto. Necesitamos aplanar la matriz y luego agregar los ID de productos para ver qué producto le interesará al cliente. En la línea 52, DESNUNCIAMOS() la matriz y en la línea 49, CONTAMOS

en cuántas veces se repite la identificación del producto. Los ID de productos principales con más recuento, excluyendo el producto de interés, son los artículos que podemos recomendar al cliente.

Contenido incrustado: https://gist.github.com/nfarah86/304ac6fa14557700adcf4cc906ddd88c#file-aggregate_purchases-sql

Paso 5: Filtrar resultados para que no contenga el producto de interés

En la línea 63-69 filtramos el producto de interés del cliente usando NOT IN().Contenido incrustado: https://gist.github.com/nfarah86/7d01a6758e2deeff9efc58037df17ae5#file-filterafueraderesultado

establecer-sql

Paso 6: Identifique la identificación del producto con el nombre del producto

Las identificaciones de productos solo pueden llegar hasta cierto punto: necesitamos saber los nombres de los productos para que el cliente pueda buscar en el sitio de comercio electrónico y potencialmente agregarlo a su carrito. En la línea 77, utilizamos el cubo público de S3 que contiene la información del producto con los datos de Kafka que contienen la información de compra a través de las ID del producto.Contenido incrustado: https://gist.github.com/nfarah86/7618edcea825c7e9fe2a3a684c10a2ec#file-getproducto

nombre-sql

Paso 7: crear una consulta Lambda


En el Editor de consultas, puede convertir la consulta de recomendación en un punto final de API.  Rockset genera automáticamente el punto API y se verá así:

rockset-kafka-10

Vamos a usar este punto remaining en Retool.

¡Eso concluye la consulta de recomendación! Escribimos algunas otras consultas que puede explorar en la página del taller, como obtener el precio de compra promedio y el gasto whole del usuario.

Termine de compilar la aplicación en Retool con datos de Rockset

Retool es ideally suited para construir herramientas internas. Aquí, los agentes de atención al cliente u otros miembros del equipo pueden acceder fácilmente a los datos y ayudar a los clientes. Los datos que se mostrarán en Retool provendrán de las consultas de Rockset que escribimos. Cada vez que Retool envía una solicitud a Rockset, Rockset devuelve los resultados y Retool muestra los datos. Puede obtener la primicia completa sobre cómo lo haremosconstruir en Retool

.


Una vez que cree su cuenta, querrá configurar el punto final del recurso.  Deberá elegir la opción API y configurar el recurso:

rockset-kafka-11

Querrá darle un nombre al recurso, aquí lo nombré rockset-base-API.

Verá debajo de la URL base, puse el punto remaining de Question Lambda hasta la parte lambda; no puse el punto remaining completo. Ejemplo: BajoEncabezados

pongo los valores Authorization y Content material-Sort.

  • Ahora, deberá crear la consulta de recursos. Querrá elegir rockset-base-API como recurso y en la segunda mitad del recurso, pondrá todo lo demás que viene después de la porción de lambdas. Ejemplo:


RecomendaciónConsultaActualizado/etiquetas/más reciente

rockset-kafka-12

En la sección de parámetros, querrá actualizar dinámicamente el ID de usuario.


Después de crear el recurso, querrá agregar un componente de IU de tabla y actualizarlo para reflejar la recomendación del usuario:

rockset-kafka-13 Puede seguir

cómo creamos la aplicación para clientes en tiempo actual en Retool. Esto resume cómo creamos una aplicación 360 para clientes en tiempo actual con Kafka, S3, Rockset y Retool. Si tiene alguna pregunta o comentario, definitivamente comuníquese con elComunidad Rockset

.

Related Articles

Comments

LEAVE A REPLY

Please enter your comment!
Please enter your name here

Same Category

spot_img

Stay in touch!

Follow our Instagram