Creando sesiones de flujo de clics en tiempo real y ejecutando análisis con Amazon Kinesis Data Analytics, AWS Glue y Amazon Athena
Todos los pasos de esta solución de un extremo a otro se incluyen en una plantilla de AWS CloudFormation . Encienda la plantilla, agregue el código en su servidor web y listo, obtendrá la sesionización en tiempo real.
Esta plantilla de AWS CloudFormation está diseñada para implementarse solo en la región us-east-1.
- Para comenzar, inicie sesión en la Consola de administración de AWS y luego abra la plantilla de ventana escalonada.
 
- En la consola de AWS CloudFormation, elija Siguiente y complete los parámetros de AWS CloudFormation:
- Nombre de pila : El nombre de la pila ( el blog-sesionización o sesiones-blog )
 - StreamName : sesionesblog
 - Recuento de fragmentos de transmisión : 1 o 2 (1 MB / s) por fragmento.
 - Nombre del depósito : cambie a un nombre único, por ejemplo, session-n-bucket-hhug123121
 - Intervalo de búfer : sugerencia de almacenamiento en búfer de 60 a 900 segundos para Kinesis Data Firehose antes de que los datos se envíen a Amazon S3 desde Kinesis Data Firehose.
 - Tamaño del búfer : 1–128 MB por archivo, si el intervalo no se alcanza primero.
 - Prefijo de destino : agregado (carpeta interna del depósito para guardar datos agregados).
 - Base de sesiones en segundos o minutos : elija cuál desea (los minutos comenzarán con 1 minuto, los segundos comenzarán con 30 segundos).
 
 
- Compruebe si el lanzamiento se ha completado y, si no lo ha hecho, compruebe si hay errores.
 
Nota: el error más común es cuando apunta a un bucket de Amazon S3 que ya existe.
- Después de la implementación, navegue hasta la solución en la consola de Amazon Kinesis
 
- Vaya a la página de aplicaciones de Kinesis Analytics y elija AnalyticsApp-blog-sessionizationXXXXX , de la siguiente manera.
 
- Elija Ejecutar aplicación para iniciar la aplicación.
 
- Espere unos segundos hasta que la aplicación esté disponible y luego elija Detalles de la aplicación.
 
- En la página de detalles de la aplicación, elija Ir a resultados de SQL
 
- Examine el código SQL y 
SOURCE_SQL_STREAM, y cambie el INTERVALO si lo desea. 
- Elija la   pestaña Análisis en tiempo real para verificar los resultados de 
DESTINATION_SQL_STREAM 
- Verifique la pestaña Destino para ver la función AWS Lambda como el destino de su agregación.
 
- Compruebe el panel de control CloudWatch en tiempo real.
 
- Abra el panel Sessionization - < el nombre de su pila de formación en la nube >
 
Nota: Verifique el número de "eventos" durante las sesiones y el comportamiento de la "duración de la sesión" de un período de tiempo. Luego, puede tomar decisiones, como si necesita revertir un nuevo diseño de sitio o nuevas funciones de su aplicación.
- 
Abra la consola de AWS Glue y ejecute el rastreador que la plantilla de AWS CloudFormation que creó para usted.
 - 
Elija el trabajo del rastreador y luego elija Ejecutar rastreador.
 
- 
Una vez finalizado el trabajo, abra la consola de Amazon Athena y explore los datos.
 - 
En la consola de Athena, elija la base de datos de sesionización en la lista. Debería ver dos tablas creadas en función de los datos de Amazon S3: datos sin procesar y agregados.
 
- Elija la elipsis vertical (tres puntos) en el lado derecho para explorar cada una de las tablas, como se muestra en las siguientes capturas de pantalla:
 
- Cree una vista en la consola de Athena para consultar solo los datos de hoy de su tabla agregada, de la siguiente manera:
 
CREATE OR REPLACE VIEW clicks_today AS
SELECT 
*
FROM "aggregated" 
WHERE
cast(partition_0 as integer)=year(current_date) and
cast(partition_1 as integer)=month(current_date) and
cast(partition_2 as integer)=day(current_date) ;
- La consulta exitosa aparece en la consola de la siguiente manera:
 
- Cree una vista para consultar solo los datos del mes actual de su tabla agregada, como en el siguiente ejemplo:
 
CREATE OR REPLACE VIEW clicks_month AS
SELECT 
*
FROM "aggregated" 
WHERE
cast(partition_0 as integer)=year(current_date) and
cast(partition_1 as integer)=month(current_date) ;
- La consulta exitosa aparece de la siguiente manera:
 
- Consultar datos con las sesiones agrupadas por la duración de la sesión ordenadas por sesiones, de la siguiente manera:
 
SELECT duration_sec, count(1) sessions 
FROM "clicks_today"
where duration_sec>0
group by duration_sec
order by sessions desc;
- Los resultados de la consulta aparecen de la siguiente manera:
 
- Abra la consola de Amazon QuickSight
 
Nota: Si nunca ha utilizado Amazon QuickSight, primero realice esta configuración.
- 
Configure los ajustes de la cuenta de Amazon QuickSight para acceder a Athena y su bucket de S3.
 - 
Primero, seleccione la casilla de verificación Amazon Athena. Seleccione la casilla de verificación Amazon S3 para editar el acceso de Amazon QuickSight a sus buckets S3.
 
- Elija los depósitos que desea que estén disponibles y, luego, seleccione Seleccionar depósitos.
 
- Elija Administrar datos
 - Luego elija NUEVO CONJUNTO DE DATOS
 
- En la lista de fuentes de datos, elija Athena.
 
- Ingrese daily_session como su nombre de fuente de datos.
 
- Elija la vista que creó para las sesiones diarias y elija Seleccionar
 
- Luego, puede optar por utilizar SPICE (caché) o el acceso directo a consultas.
 
- Elija beginnavigation y duration_sec como métricas.
 
- Elija + Agregar para agregar una nueva visualización.
 
- En tipos visuales , elija el tipo de gráfico de mapa de árbol.
 
- Para Agrupar por , elija device_id ; para Tamaño , elija duration_sec (Suma) ; y para Color , elija eventos (Suma).
 
En esta práctica, aprendió cómo realizar la sesionización de eventos de flujo de clics y analizarlos en una arquitectura sin servidor. El uso de una ventana escalonada de Kinesis Data Analytics hace que el código SQL sea breve y fácil de escribir y comprender. La integración entre los servicios permite un flujo de datos completo con una codificación mínima.
También aprendió formas de explorar y visualizar estos datos con Amazon Athena, AWS Glue y Amazon QuickSight.

































