Ao criar índices, você pode definir o tipo de dado de um campo como text, long, double ou JSON. Este tópico descreve os tipos de dados dos campos e fornece exemplos de configuração.
Visão geral dos tipos de dados
Recomendamos que você use o console para criar índices. O Simple Log Service (SLS) gera automaticamente um índice de campo com base na primeira entrada dos dados de pré-visualização durante a coleta. Você também pode criar índices de campo personalizados.
Tipos text, long e double:
Se você deseja consultar e analisar campos do tipo string, deve definir o tipo de dado dos campos como text ao criar índices e ativar a opção Habilitar Análise para os campos.
Consulte o valor de um campo usando um intervalo numérico somente se você definir o tipo de dado do campo como long ou double. Se você definir o tipo de dado de um campo como long ou double, não será possível consultar o campo usando um asterisco (*) ou um ponto de interrogação (?). Os caracteres curinga são usados para realizar uma correspondência aproximada.
Se o valor de um campo for um número inteiro, defina o tipo de dado do campo como long.
Se o valor de um campo for um número de ponto flutuante, defina o tipo de dado do campo como double. Caso contrário, não será possível consultar o campo.
Se você definir o tipo de dado de um campo como long ou double, mas o valor do campo for uma string, não será possível consultar o campo.
nullSe o valor de um campo for um valor numérico inválido, consulte o campo usando a instrução de pesquisa not key > -1000000. A instrução retorna os logs nos quais o valor do campo é um valor numérico inválido. Substitua -1000000 por um valor numérico válido que seja menor ou igual ao menor valor numérico válido do campo em seus logs.
Tipo JSON: se o valor de um campo for do tipo JSON, defina o tipo de dado do campo como JSON ao criar índices.
Defina o tipo de dado de um campo em objetos JSON como long, double ou text com base no valor do campo e ative a opção Habilitar Análise para o campo. Após ativar Habilitar Análise, o SLS permite que você consulte e analise o campo.
Se você selecionar Indexar Automaticamente Todos os Campos de Texto no Campo JSON, os índices serão criados automaticamente para todos os campos do tipo text em objetos JSON. Após a criação dos índices, o tráfego de índice será gerado.
Para dados parcialmente válidos no formato JSON, o SLS pode analisar apenas a parte válida dos dados.
O exemplo a seguir mostra um log JSON incompleto. O SLS pode analisar os campos content.remote_addr, content.request.request_length e content.request.request_method.
content: { remote_addr:"192.0.2.0" request: { request_length:"73" request_method:"GEnullVocê pode criar índices para nós folha em objetos JSON. Não é possível criar índices para nós filhos que contêm nós folha.
Não é possível criar índices para campos cujos valores são arrays JSON ou campos em um array JSON.
Se o valor de um campo for do tipo booleano, você pode definir o tipo de dado do campo como text ao criar índices.
Uma instrução de consulta está no formato
Instrução de pesquisa|Instrução analítica. Em uma instrução analítica, você deve colocar o nome de um campo entre aspas duplas ("") e uma string entre aspas simples ('').
Referências
Para mais informações sobre os cenários e as perguntas frequentes relacionados à consulta e análise de logs JSON, consulte Perguntas frequentes sobre consulta e análise de logs JSON. As perguntas frequentes incluem informações sobre como criar índices, consultar e analisar campos JSON indexados, usar funções JSON e analisar arrays JSON.
Para mais informações sobre as configurações e os procedimentos relacionados à consulta e análise de logs JSON, consulte Consultar e analisar logs JSON.
Se o volume de dados dos logs JSON que você deseja consultar e analisar for pequeno, não é necessário criar índices para nós folha JSON. Use funções JSON para consultar e analisar os logs. Em casos de uso específicos, você pode usar apenas funções JSON para consulta e análise. Para mais informações sobre o uso de funções JSON, consulte Quando usar funções JSON. Para mais informações sobre as descrições e os exemplos de funções JSON, consulte Funções JSON.
Procedimento
Crie índices no console do SLS. Para mais informações, consulte Criar um índice.
Selecione os tipos de dados para os campos ao criar índices.
Tipos text, long e double
Exemplo de log

Configurações de índice

Exemplos de instruções de consulta
Para consultar os logs cuja duração da solicitação é superior a 60 segundos, execute a seguinte instrução:
request_time > 60Para consultar os logs cuja duração da solicitação é maior ou igual a 60 segundos, mas inferior a 200 segundos, execute uma das seguintes instruções:
request_time in [60 200)erequest_time >= 60 and request_time < 200.Para consultar os logs cujo código de status da solicitação é 200, execute a seguinte instrução:
status = 200.Para consultar os logs que não registram solicitações GET, execute a seguinte instrução:
not request_method : GET.Para consultar os logs que contêm palavras específicas que começam com cn, execute a seguinte instrução:
cn*.Para coletar estatísticas de distribuição de clientes, execute a seguinte instrução:
* | SELECT ip_to_province(client_ip) as province, count(*) AS pv GROUP BY province ORDER BY pv.
Tipo JSON
Exemplo de log
A figura a seguir fornece um exemplo de log JSON. O log contém os campos class, latency, status e info, além dos campos reservados do SLS. O valor do campo info é um objeto JSON que contém múltiplas camadas.

Configurações de índice

A lista a seguir fornece mais detalhes:
Os valores dos campos IP e data são arrays JSON. Portanto, não é possível criar índices para o campo IP ou data, e não é possível consultar ou analisar dados usando esses campos.
Os campos region e CreateTime estão em um array JSON. Portanto, não é possível criar índices para o campo region ou CreateTime, e não é possível consultar ou analisar dados usando esses campos.
Exemplos de instruções de consulta
Para consultar os logs nos quais o valor do campo usedTime é superior a 60 segundos, execute a seguinte instrução:
info.usedTime > 60.Para consultar os logs nos quais o valor do campo success é true, execute a seguinte instrução:
info.success : true.Para consultar os logs nos quais o valor do campo usedTime é superior a 60 segundos e o valor do campo projectName não é project01, execute a seguinte instrução:
info.usedTime > 60 not info.param.projectName : project01.Para calcular a duração média necessária para obter as informações do projeto, execute a seguinte instrução:
methodName = getProjectInfo | SELECT avg("info.usedTime") AS avg_time.