Todos os produtos
Search
Central de documentação

Simple Log Service:Extrair dados de um Logstore para enriquecer logs em outro Logstore

Última atualização: Jul 03, 2026

Este tópico descreve como usar funções de recurso para extrair dados de outro Logstore e enriquecer os logs de um Logstore.

Contexto

Um hotel armazena as informações pessoais dos hóspedes no Logstore user_logstore e os dados de check-in no Logstore check-in_logstore. O hotel precisa obter alguns campos do Logstore check-in_logstore e concatená-los aos campos do Logstore user_logstore. Para isso, use a função res_log_logstore_pull para extrair dados do Logstore check-in_logstore e a função e_table_map para mapear esses dados. Para obter mais informações sobre a função res_log_logstore_pull, consulte res_log_logstore_pull. Para obter mais informações sobre a função e_table_map, consulte e_table_map.

Transformação de dados

  • Dados brutos

    • Logstore user_logstore, usado para armazenar informações pessoais

      topic:xxx
      city:xxx
      cid:12345
      name:maki
      
      topic:xxx
      city:xxx
      cid:12346
      name:vicky
      
      topic:xxx
      city:xxx
      cid:12347
      name:mary
    • Logstore check-in_logstore, usado para armazenar informações de check-in

      time:1567038284
      status:check in
      cid:12345
      name:maki
      room_number:1111
      
      time:1567038284
      status:check in
      cid:12346
      name:vicky
      room_number:2222
      
      time:1567038500
      status:check in
      cid:12347
      name:mary
      room_number:3333
      
      time:1567038500
      status:leave
      cid:12345
      name:maki
      room_number:1111
  • Regra de transformação

    Nota

    A função res_log_logstore_pull permite definir um intervalo de tempo ou uma hora inicial para o enriquecimento de dados.

    • Se você definir um intervalo de tempo na regra de transformação, por exemplo, from_time=1567038284 and to_time=1567038500, o Simple Log Service extrairá apenas os dados recebidos nesse período para enriquecimento.

    • Se você definir uma hora inicial na regra de transformação, por exemplo, from_time="begin", o Simple Log Service extrairá todos os dados recebidos a partir do momento especificado para enriquecimento.

    Para obter mais informações sobre os campos da função res_log_logstore_pull, consulte res_log_logstore_pull.

    • Função e_table_map

      Essa função mapeia duas entradas de log com base no campo cid. O mapeamento é bem-sucedido quando os valores do campo cid são idênticos em ambas as entradas. O campo room_number e seu valor são retornados e concatenados à entrada de log no Logstore check-in_logstore.

      e_table_map(res_log_logstore_pull(endpoint, ak_id, ak_secret, project, logstore, 
              fields=["cid","room_number"],
              from_time="begin",
              ), "cid","room_number")
  • Resultado

    • Função e_table_map

      topic:xxx
      city:xxx
      cid:12345
      name:maki
      room_nuber:1111
      
      topic:xxx
      city:xxx
      cid:12346
      name:vicky
      room_number:2222
      
      topic:xxx
      city:xxx
      cid:12347
      name:mary
      room_number:3333

Configure regras de lista de permissões e lista de bloqueios para filtrar dados

  • Configurar uma regra de lista de permissões

    • Regra de transformação

      Use o campo fetch_include_data para configurar uma regra de lista de permissões. Neste exemplo, a expressão fetch_include_data="room_number:1111" está incluída na função res_log_logstore_pull. Essa expressão indica que apenas as entradas de log cujo valor do campo room_number seja 1111 serão extraídas.

      res_log_logstore_pull(endpoint, ak_id, ak_secret, project, logstore, ["cid","name","room_number","status"],from_time=1567038284,to_time=1567038500,fetch_include_data="room_number:1111")
    • Dados recuperados

      status: check in
      cid:12345
      name:maki
      room_number:1111
      
      status:leave
      cid:12345
      name:maki
      room_number:1111
  • Configurar uma regra de lista de bloqueios

    • Regra de transformação

      Use o campo fetch_exclude_data para configurar uma regra de lista de bloqueios. Neste exemplo, a expressão fetch_exclude_data="room_number:1111" está incluída na função res_log_logstore_pull. Essa expressão indica que as entradas de log com valor 1111 no campo room_number serão descartadas.

      res_log_logstore_pull(endpoint, ak_id, ak_secret, project, logstore, ["cid","name","room_number","status"],from_time=1567038284,to_time=1567038500,fetch_exclude_data="room_number:1111")
    • Dados recuperados

      status:check in
      cid:12346
      name:vicky
      room_number:2222
      
      status:check in
      cid:12347
      name:mary
      room_number:3333
  • Configurar regras de lista de bloqueios e lista de permissões

    • Regra de transformação

      Se você configurar uma regra de lista de bloqueios e uma regra de lista de permissões, a regra de lista de bloqueios será aplicada primeiro, seguida pela regra de lista de permissões. Neste exemplo, a expressão fetch_exclude_data="time:1567038285",fetch_include_data="status:check in" está incluída na função res_log_logstore_pull. Essa expressão indica que as entradas de log com valor 1567038285 no campo time são descartadas primeiro; em seguida, as entradas com valor check in no campo status são extraídas.

      res_log_logstore_pull(endpoint, ak_id, ak_secret, project, logstore, ["cid","name","room_number","status"],from_time=1567038284,to_time=1567038500,fetch_exclude_data="time:1567038285",fetch_include_data="status:check in")
    • Dados recuperados

      status:check in
      cid:12345
      name:maki
      room_number:1111
      
      status:check in
      cid:12346
      name:vicky
      room_number:2222
      
      status:check in
      cid:12347
      name:mary
      room_number:3333

Ative a manutenção de chave primária para extrair dados de Logstores de destino

Para descartar dados antes da transformação, ative o recurso de manutenção de chave primária. Por exemplo, suponha que você precise extrair dados de check-in de clientes que fizeram entrada, mas ainda não saíram, do Logstore check-in_logstore. Se uma entrada de log extraída contiver o campo status:leave, isso indica que o cliente fez o checkout. Defina o parâmetro primary_keys na função res_log_logstore_pull para impedir que essa entrada seja transformada.

Nota
  • Você pode definir um único campo como valor do parâmetro primary_keys. Esse campo deve existir no campo fields.

  • Antes de ativar a manutenção de chave primária, verifique se o Logstore de origem tem apenas um shard.

  • Se você ativar a manutenção de chave primária, não poderá definir o campo delete_data como None.

  • Regra de transformação

    res_log_logstore_pull(endpoint, ak_id, ak_secret, project, logstore, ["cid","name","room_number","status","time"],from_time=1567038284,to_time=None,primary_keys="cid",delete_data="status:leave")
  • Dados recuperados

    O campo status:leave na entrada de log anterior indica que o cliente cujo name é maki fez o checkout. Portanto, essa entrada de log não é transformada.

    time:1567038284
    status:check in
    cid:12346
    name:vicky
    room_number:2222
    
    time:1567038500
    status:check in
    cid:12347
    name:mary
    room_number:3333