Exemplo de caso de uso UNLOAD do Timestream for LiveAnalytics - Amazon Timestream

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Exemplo de caso de uso UNLOAD do Timestream for LiveAnalytics

Suponha que você esteja monitorando as métricas da sessão do usuário, as fontes de tráfego e as compras de produtos do seu site de comércio eletrônico. Você está usando o Timestream LiveAnalytics para obter informações em tempo real sobre o comportamento do usuário, vendas de produtos e realizar análises de marketing em canais de tráfego (pesquisa orgânica, mídia social, tráfego direto, campanhas pagas e outros) que direcionam os clientes ao site.

Exportando os dados sem partições

Você deseja exportar os últimos dois dias de seus dados em 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')

Particionamento de dados por canal

Você deseja exportar os últimos dois dias de dados em CSV formato, mas gostaria de ter os dados de cada canal de tráfego em uma pasta separada. Para fazer isso, você precisa particionar os dados usando a channel coluna, conforme mostrado a seguir.

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')

Particionamento de dados por evento

Você deseja exportar os últimos dois dias de dados em CSV formato, mas gostaria de ter os dados de cada evento em uma pasta separada. Para fazer isso, você precisa particionar os dados usando a event coluna, conforme mostrado a seguir.

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')

Particionamento de dados por canal e evento

Você deseja exportar os últimos dois dias de dados em CSV formato, mas gostaria que os dados de cada canal e dentro do canal armazenassem cada evento em uma pasta separada. Para fazer isso, você precisa particionar os dados usando a event coluna channel e, conforme mostrado a seguir.

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')

Arquivos de manifesto e metadados

Arquivo manifesto

O arquivo de manifesto fornece informações sobre a lista de arquivos que são exportados com a UNLOAD execução. O arquivo de manifesto está disponível no bucket S3 fornecido com um nome de arquivo:S3://bucket_name/<queryid>_<UUID>_manifest.json. O arquivo de manifesto conterá o URL dos arquivos na pasta de resultados, o número de registros e o tamanho dos respectivos arquivos e os metadados da consulta (que são o total de bytes e o total de linhas exportadas para o S3 para a 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" } }

Metadados

O arquivo de metadados fornece informações adicionais sobre o conjunto de dados, como nome da coluna, tipo de coluna e esquema. <queryid>O arquivo de metadados está disponível no bucket S3 fornecido com um nome de arquivo: S3: //bucket_name/ _< >_metadata.json UUID

Veja a seguir um exemplo de um arquivo de metadados.

{ "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" } }

As informações da coluna compartilhadas no arquivo de metadados têm a mesma estrutura ColumnInfo enviada na API Resposta da consulta para SELECT consultas.

Usando rastreadores Glue para criar o Glue Data Catalog

  1. Faça login em sua conta com credenciais de administrador para a seguinte validação.

  2. Crie um Crawler for Glue Database usando as diretrizes fornecidas aqui. Observe que a pasta S3 a ser fornecida na fonte de dados deve ser a pasta de UNLOAD resultados, como. s3://my_timestream_unloads/results

  3. Execute o rastreador seguindo as diretrizes aqui.

  4. Veja a tabela Glue.

    • Vá para AWS GlueTables.

    • Você verá uma nova tabela criada com o prefixo de tabela fornecido ao criar o rastreador.

    • Você pode ver as informações do esquema e da partição clicando na exibição de detalhes da tabela.

A seguir estão outros AWS serviços e projetos de código aberto que usam o AWS Glue Data Catalog.