Análisis de eventos de visualización de LinkedIn

Jul 12, 2024

Análisis de eventos de visualización de LinkedIn

Introducción

  • La presentación aborda cómo LinkedIn utiliza los eventos de visualización de perfiles.
  • Cada vez que alguien ve el perfil de otro, se genera un evento.

Procesamiento del Evento

  • Evento Simple: Quien vio a quién y cuándo.
  • Almacenamiento: Dos tablas: una para eventos y otra para perfiles de usuario con detalles adicionales (industria, habilidades, etc).

Casos de Uso

  • Analítica: Permite saber cuántas personas miran perfiles, desglosado por país, dispositivo, etc.
  • Bases de Datos: Se pueden estructurar de diferentes maneras:
    • Opción 1: Join on the fly. Buena para datos pequeños, pero latencia alta para datos grandes.
    • Opción 2: Pre-join y pre-aggregación. Latencia baja, pero almacenamiento caro y poca flexibilidad.
    • Opción 3: Aproximación híbrida: Join en tiempo real con streaming y agregación periódica.

Sistemas y Herramientas

  • Sistemas de Analítica: Spark, Presto, BigQuery, Pinot, ElasticSearch, Kylin.
  • Almacenamiento de Datos: Row storage vs. columnar storage.
  • Escalabilidad: Segmentación y distribución de datos para manejar grandes volúmenes.

Ejecución de Consultas

  • Proceso: Filtrado, proyección y agregación.
  • Distribución: Consultas se dividen y recolectan resultados de nodos diferentes.
  • Segmentación: Datos se dividen en segmentos para mejorar eficiencia.

Ingestión de Datos

  • Dos Modos: Realtime (Kafka) y batch.

Comparación y Optimizaciones

  • Comparación Pinot vs. Druid: Pinot tiene mejor eficiencia y menor latencia bajo alta carga.
  • Optimizaciones: Ordenar datos, eliminar índices invertidos, particionar datos, y agrupación de réplicas.

Aplicaciones Empresariales

  • LinkedIn: Analítica para usuarios y empleados.
  • Casos de Uso Externos: Empresas como Uber, Microsoft y Slack usan Pinot para sus aplicaciones.

Monitoreo y Detección de Anomalías

  • Astati: Herramienta desarrollada para monitorear y detectar anomalías en datos multidimensionales.
  • Startree Index: Permite intercambiar entre espacio y tiempo para consultas eficientes.
  • Benchmark: Startree permite equilibrio entre tamaño de almacenamiento y latencia.

Conclusión

  • Flexibilidad y Escalabilidad: Pinot permite manejar diferentes tipos de cargas de trabajo sin necesidad de migrar entre sistemas.