Use funções de recurso e mapeamento para obter um arquivo CSV do Object Storage Service (OSS) e unir seus campos com logs no Log Service. Assim, você enriquece dados de log incompletos com informações de referência.
Contexto
O OSS é ideal para armazenar dados de referência que mudam com pouca frequência, como mapeamentos de conta para apelido, tabelas de IP para região ou descrições de códigos de erro. Se os dados de log no Log Service estiverem incompletos, enriqueça-os obtendo dados de referência de um objeto CSV no OSS.
O recurso de transformação de dados usa três funções em conjunto:
res_oss_file — recupera o conteúdo bruto de um objeto do OSS
tab_parse_csv — analisa esse conteúdo em uma tabela estruturada
e_table_map — compara um campo do log com a tabela e anexa os campos correspondentes ao log
Pré-requisitos
Antes de começar, certifique-se de ter:
-
Criado um AccessKey para acessar seu bucket do OSS. Para mais informações, consulte Create an AccessKey.
Crie dois AccessKeys: um com permissões somente leitura para recuperar objetos do OSS e outro com permissões somente gravação para enviar objetos ao OSS. Para mais informações sobre autorização, consulte RAM policy overview.
-
Enviado o objeto CSV com seus dados de referência para um bucket do OSS. Para mais informações, consulte Upload objects.
Use um AccessKey com permissões somente gravação para o envio.
Enriquecer dados de log com um arquivo CSV do OSS
O exemplo a seguir mostra como comparar um campo account em um Logstore com um objeto CSV do OSS e anexar o campo nickname correspondente a cada entrada de log.
-
Log bruto em um Logstore
account : Sf24asc4ladDS -
Dados em um objeto CSV em um bucket do OSS
Id
Account
Nickname
1
Sf24asc4ladDS
Doflamingo
2
Sf24asc4ladSA
Kaido
3
Sf24asc4ladCD
Roger
-
Regra de transformação
A regra compara o campo account/@parmname no Logstore com a coluna account/@parmname no objeto CSV. A correspondência ocorre apenas quando os valores de account/@parmname são idênticos. Ao encontrar uma correspondência, o sistema anexa o campo nickname/@parmname e seu valor ao log.
e_table_map(tab_parse_csv(res_oss_file(endpoint='http://oss-cn-hangzhou.aliyuncs.com', ak_id=res_local("AK_ID"), ak_key=res_local("AK_KEY"), bucket='test', file='account.csv',change_detect_interval=30)), "account","nickname")Na função
e_table_map, o primeiro argumento de string ("account") especifica o campo usado para corresponder às linhas na tabela CSV. O segundo argumento ("nickname") define o campo recuperado da linha correspondente e adicionado ao log.A tabela a seguir descreve os principais parâmetros de
res_oss_file. Para ver todos os parâmetros, consulte Resource functions.Parâmetro
Descrição
endpoint
Endpoint para acesso ao OSS. Para mais informações, consulte res_oss_file.
ak_id
ID do AccessKey com permissões somente leitura para o OSS. Defina como res_local("AK_ID")/@parmname para recuperar o valor das Advanced Parameter Settings/@parmname em vez de incorporar credenciais na regra. Para configurar as Advanced Parameter Settings/@parmname, consulte Create a data transformation job. Na seção Advanced options, adicione dois pares chave-valor:
AK_IDdefinido como seu AccessKey ID eAK_KEYdefinido como seu AccessKey secret.ak_key
AccessKey secret com permissões somente leitura para o OSS. Defina o valor como res_local("AK_KEY")/@parmname para recuperá-lo das Advanced Parameter Settings/@parmname.
bucket
Bucket do OSS onde o objeto CSV está armazenado.
file
Caminho do objeto de destino no OSS, por exemplo test/data.txt/@filepath. O caminho não pode começar com uma barra (/).
change_detect_interval
Frequência, em segundos, com que o Log Service verifica se o objeto do OSS foi alterado. O valor padrão é
0, que desativa verificações periódicas. Nesse caso, o sistema busca o objeto apenas uma vez, no início do trabalho de transformação de dados. Defina um valor diferente de zero para ativar verificações periódicas; o Log Service buscará o objeto novamente sempre que detectar uma alteração. -
Resultado
account : Sf24asc4ladDS nickname: Doflamingo