Ejemplo de caso de uso de Timestream para UNLOAD LiveAnalytics - Amazon Timestream

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Ejemplo de caso de uso de Timestream para UNLOAD LiveAnalytics

Suponga que está monitoreando las métricas de sesión de los usuarios, las fuentes de tráfico y las compras de productos de su sitio web de comercio electrónico. Utiliza Timestream LiveAnalytics para obtener información en tiempo real sobre el comportamiento de los usuarios y las ventas de productos y realizar análisis de marketing sobre los canales de tráfico (búsquedas orgánicas, redes sociales, tráfico directo, campañas de pago, etc.) que atraen a los clientes al sitio web.

Exportación de los datos sin particiones

Desea exportar los dos últimos días de sus datos en CSV formato.

UNLOAD(SELECT user_id, ip_address, event, session_id, measure_name, time, query, quantity, product_id, channel FROM sample_clickstream.sample_shopping WHERE time BETWEEN ago(2d) AND now()) TO 's3://<bucket_name>/withoutpartition' WITH ( format='CSV', compression='GZIP')

Particionar los datos por canal

Desea exportar los datos de los dos últimos días en CSV formato, pero le gustaría tener los datos de cada canal de tráfico en una carpeta independiente. Para ello, debe particionar los datos mediante la channel columna que se muestra a continuación.

UNLOAD(SELECT user_id, ip_address, event, session_id, measure_name, time, query, quantity, product_id, channel FROM sample_clickstream.sample_shopping WHERE time BETWEEN ago(2d) AND now()) TO 's3://<bucket_name>/partitionbychannel/' WITH ( partitioned_by = ARRAY ['channel'], format='CSV', compression='GZIP')

Particionar los datos por evento

Desea exportar los datos de los dos últimos días en CSV formato, pero le gustaría tener los datos de cada evento en una carpeta independiente. Para ello, debe particionar los datos mediante la event columna, tal y como se muestra a continuación.

UNLOAD(SELECT user_id, ip_address, channel, session_id, measure_name, time, query, quantity, product_id, event FROM sample_clickstream.sample_shopping WHERE time BETWEEN ago(2d) AND now()) TO 's3://<bucket_name>/partitionbyevent/' WITH ( partitioned_by = ARRAY ['event'], format='CSV', compression='GZIP')

Particionar los datos por canal y evento

Desea exportar los datos de los dos últimos días en CSV formato, pero le gustaría que los datos de cada canal y, dentro del canal, almacenaran cada evento en una carpeta independiente. Para ello, debe particionar los datos utilizando ambas event columnas, tal channel y como se muestra a continuación.

UNLOAD(SELECT user_id, ip_address, session_id, measure_name, time, query, quantity, product_id, channel,event FROM sample_clickstream.sample_shopping WHERE time BETWEEN ago(2d) AND now()) TO 's3://<bucket_name>/partitionbychannelevent/' WITH ( partitioned_by = ARRAY ['channel','event'], format='CSV', compression='GZIP')

Archivos de manifiestos y metadatos

Archivo de manifiesto

El archivo de manifiesto proporciona información sobre la lista de archivos que se exportan con la UNLOAD ejecución. El archivo de manifiesto está disponible en el bucket de S3 proporcionado con un nombre de archivo:S3://bucket_name/<queryid>_<UUID>_manifest.json. El archivo de manifiesto contendrá la URL de los archivos de la carpeta de resultados, el número de registros y el tamaño de los archivos respectivos, y los metadatos de la consulta (que son el total de bytes y filas exportados a S3 para la consulta).

{ "result_files": [ { "url":"s3://my_timestream_unloads/ec2_metrics/AEDAGANLHLBH4OLISD3CVOZZRWPX5GV2XCXRBKCVD554N6GWPWWXBP7LSG74V2Q_1448466917_szCL4YgVYzGXj2lS.gz", "file_metadata": { "content_length_in_bytes": 32295, "row_count": 10 } }, { "url":"s3://my_timestream_unloads/ec2_metrics/AEDAGANLHLBH4OLISD3CVOZZRWPX5GV2XCXRBKCVD554N6GWPWWXBP7LSG74V2Q_1448466917_szCL4YgVYzGXj2lS.gz", "file_metadata": { "content_length_in_bytes": 62295, "row_count": 20 } }, ], "query_metadata": { "content_length_in_bytes": 94590, "total_row_count": 30, "result_format": "CSV", "result_version": "Amazon Timestream version 1.0.0" }, "author": { "name": "Amazon Timestream", "manifest_file_version": "1.0" } }

Metadatos

El archivo de metadatos proporciona información adicional sobre el conjunto de datos, como el nombre de la columna, el tipo de columna y el esquema. <queryid>El archivo de metadatos está disponible en el bucket de S3 proporcionado con un nombre de archivo: S3: //bucket_name/ _< >_metadata.json UUID

A continuación se muestra un ejemplo de un archivo de metadatos.

{ "ColumnInfo": [ { "Name": "hostname", "Type": { "ScalarType": "VARCHAR" } }, { "Name": "region", "Type": { "ScalarType": "VARCHAR" } }, { "Name": "measure_name", "Type": { "ScalarType": "VARCHAR" } }, { "Name": "cpu_utilization", "Type": { "TimeSeriesMeasureValueColumnInfo": { "Type": { "ScalarType": "DOUBLE" } } } } ], "Author": { "Name": "Amazon Timestream", "MetadataFileVersion": "1.0" } }

La información de las columnas que se comparte en el archivo de metadatos tiene la misma estructura que la que ColumnInfo se envía en la API respuesta a las SELECT consultas.

Uso de rastreadores de Glue para crear el catálogo de datos de Glue

  1. Inicie sesión en su cuenta con las credenciales de administrador para la siguiente validación.

  2. Cree una base de datos de Crawler for Glue siguiendo las instrucciones que se proporcionan aquí. Tenga en cuenta que la carpeta S3 que se debe proporcionar en la fuente de datos debe ser la carpeta de UNLOAD resultados, por ejemplo. s3://my_timestream_unloads/results

  3. Ejecute el rastreador siguiendo las instrucciones que se indican aquí.

  4. Vea la tabla de Glue.

    • Ve a AWS GlueTables.

    • Verás una nueva tabla creada con el prefijo de tabla proporcionado al crear el rastreador.

    • Puede ver la información del esquema y la partición haciendo clic en la vista de detalles de la tabla.

Los siguientes son otros AWS servicios y proyectos de código abierto que utilizan el catálogo de datos de AWS Glue.