Se você armazena dados tanto em um logstore do Simple Log Service quanto em um banco de dados ApsaraDB RDS for MySQL, utilize o recurso de transformação de dados do Simple Log Service para acessar o banco de dados por meio de seu endpoint interno e enriquecer os dados.
Como funciona
A figura a seguir ilustra como a transformação de dados no Simple Log Service acessa um banco de dados ApsaraDB RDS for MySQL para enriquecimento de dados.
Visão geral da solução
Esta solução consiste em três etapas:
Obter as configurações de parâmetros avançados para o job de transformação de dados: Primeiro, faça login no console do ApsaraDB RDS para obter as informações da instância do ApsaraDB RDS for MySQL. Em seguida, use o OpenAPI Explorer para chamar uma operação de API e obter as configurações de parâmetros avançados.
Iniciar um job de transformação de dados no logstore de source: Configure uma regra de transformação de dados para enriquecer os dados.
Salvar os resultados da transformação no logstore de destino: Armazene os dados enriquecidos em um logstore de destino.
Pré-requisitos
O logstore de source contém dados de log brutos.
A instância do ApsaraDB RDS for MySQL e o projeto do Simple Log Service estão na mesma região.
Etapa 1: Obter configurações de parâmetros avançados
-
Faça login no console do ApsaraDB RDS.
-
Configure uma lista de permissões. Para mais informações, consulte Configurar uma lista de permissões.
Na barra de navegação à esquerda, clique em , insira um nome para o grupo e defina a lista de permissões de endereços IP como
100.104.0.0/16.
No painel de navegação à esquerda, clique em Instances. Localize a instância desejada e clique em seu ID.
-
Obtenha o ID da instância e a porta interna.
No painel de navegação à esquerda, clique em Basic Information. Na página Basic Information, localize e copie o Instance ID.
No painel de navegação à esquerda, clique em Database Connection. Na página Database Connection, localize e copie a Internal Port:.
-
Obtenha o
VpcIde oVpcCloudInstanceIdda instância desejada.Abra a página do OpenAPI Explorer. Na página , localize a caixa de texto DBInstanceId Instance ID e insira o ID da instância desejada copiado. Para mais informações sobre a operação de API, consulte Consultar detalhes da instância.
-
Clique em Operations e, na página Invocation Result, copie
VpcIdeVpcCloudInstanceId."VSwitchId": "xxx", "TipsLevel": 0, "PayType": "Postpaid", "LockMode": "Unlock", "DeletionProtection": false, "DBInstanceStorageType": "general_essd", "InsId": 1, "VpcId": "xxx", "ConnectionMode": "Standard", "VpcCloudInstanceId": "xxx", "RegionId": "cn-hangzhou", "ConnectionString": "xxx", "ExpireTime": ""
Etapa 2: Iniciar um job de transformação de dados
-
Faça login no console do Simple Log Service.
-
Acesse a página de transformação de dados.
Na seção Projects, clique no projeto desejado.
Na aba , clique no logstore desejado.
Na página de consulta e análise, clique em Data Transformation.
Na página de transformação de dados, clique em Switch to Data Transformation (Old Version).
-
Adicione as configurações de parâmetros avançados.
No canto superior direito da página, selecione Advanced e clique em Preview Data.
-
No painel Add Preview Settings, clique em Advanced Options e adicione os seguintes parâmetros.
ImportanteEm todos os parâmetros de configuração da tabela,
your_namepode ser personalizado, mas deve manter a consistência. Além disso, deve corresponder aoyour_namenas regras de processamento.Parâmetro
Valor
Descrição
config.vpc.vpc_id.your_name
vpc-uf6mskb0b****n9yj
ID da VPC da instância desejada.
Para instruções, consulte Obter o VpcId da instância desejada.
config.vpc.instance_id.your_name
rm-uf6e61k****ahd7-2024091513
ID da instância desejada.
Para instruções, consulte Obter o VpcCloudInstanceId da instância desejada.
Para um banco de dados MySQL autogerenciado na mesma região da Alibaba Cloud, use o parâmetro
config.vpc.instance_ip.your_namepara especificar o endereço IP do banco de dados dentro da VPC.config.vpc.instance_port.your_name
3306
Porta interna da instância desejada.
Para instruções, consulte Obter a porta interna da instância desejada.
Após confirmar as configurações, clique em OK.
-
Edite a regra de transformação.
-
No editor, adicione as seguintes instruções.
O código a seguir fornece um exemplo de sintaxe. Para mais informações sobre funções de enriquecimento de dados e funções de recursos, consulte Enriquecer dados usando dados de um banco de dados ApsaraDB RDS for MySQL e Funções de recursos.
/* e_table_map() Data enrichment function. res_rds_mysql() Pull function. Pulls table content or SQL execution results from an ApsaraDB RDS for MySQL database. str_format() String formatting function. The `your_name` in `res_local()` must match the `your_name` in the advanced parameter settings. field Matching field. The field used as the basis for matching log data in the logstore with data in the ApsaraDB RDS for MySQL table. A match is successful only when the value of this field is identical in both sources. output_fields Output fields. If a match is successful, the values of these fields are returned to generate a new log entry. */ e_table_map( res_rds_mysql( str_format("{}:{}", res_local("config.vpc.instance_id.your_name"), res_local("config.vpc.instance_port.your_name")), "database_username", "database_password", "database_name", table="table_name" ), "field", "output_fields" )A instrução de transformação é a seguinte:
A regra a seguir corresponde ao campo
process_time_in_msem um logstore do Simple Log Service com o campoprocess_time_in_msem uma tabela de banco de dados RDS MySQL. A correspondência só é bem-sucedida se os valores do campoprocess_time_in_msforem idênticos. Após uma correspondência bem-sucedida, a regra recupera os camposmodelepurchase_pricee seus valores da tabela do banco de dados RDS MySQL e os combina com os dados no logstore para gerar novos dados.e_table_map( res_rds_mysql( str_format("{}:{}", res_local("config.vpc.instance_id.test"), res_local("config.vpc.instance_port.test")), "xxx", "xxx","xxx xxx", "database", table="bicycles", primary_keys="process_time_in_ms"), "process_time_in_ms", ["model","purchase_price"] )
-
-
Visualize os Transformation Results.
Na tabela principal, os logs são roteados para o destino de saída
__default__, mantendo os campos chave-valor originais comoremote_addrerequest_method. Isso indica que a regra de transformação não encontrou correspondência para esses logs, e eles foram enviados ao destino padrão em seu estado original.Um registro de log com correspondência bem-sucedida inclui campos-chave como
model(XTC 800),purchase_price(3000.00) eprocess_time_in_ms(788). A entrada de log completa é a seguinte:__source__ :127.0.0.1 __tag__:__receive_time__ :1725962982 __tag__:_container_ip_ :183.227.33.184 __tag__:_container_name_ :container3 __tag__:_image_name_ :image3 __tag__:_path_ :/home/local __topic__ :tomcat_access_log body_bytes_sent :6344 model :XTC 800 process_time_in_ms :788 purchase_price :3000.00 referer :www.phn.mock.com remote_addr :202.92.0.182 remote_user :v-0 request_method :GET request_protocol :HTTP/2.0 request_uri :/request/path-3/file-1 status :200 time :10/Sep/2024:09:09:35 user_agent :Mozilla/5.0 (Windows NT 6.1) AppleWebKit/534.24 (KHTML, like Gecko) Chrome/11.0.696.3 Safari/534.24No canto superior direito, clique em Preview Data para processar os dados.
-
No canto inferior direito, clique em Save as Transformation Job (Old Version).
Na caixa de diálogo Create Data Transformation Job, primeiro insira um Job Name (com prefixo
etl-), um Display Name e uma Job Description. Selecione Default Role para o Authorization Method. Em seguida, na seção Storage Target, configure o Target Name, Target Region, Target Project e Target Logstore, e selecione Default Role para autorização. Por fim, na seção Processing Scope (Data Reception Time), selecione um intervalo de tempo, como All, From a Specific Time ou Specific Time Range. -
No painel de navegação à esquerda, em Logstores, clique no logstore de destino onde os resultados da transformação são salvos. No canto superior direito da página, selecione um intervalo de tempo para os dados.
Após selecionar um intervalo de tempo, verifique a aba Raw Logs para confirmar que os resultados da transformação foram salvos.
Os logs processados agora contêm os novos campos model (XTC 800) e purchase_price (3000.00). Isso confirma que os resultados da transformação foram gravados no logstore de destino.
-
Banco de dados AnalyticDB for MySQL
Ao configurar as Advanced Parameter Settings, defina o valor de config.vpc.instance_id.your_name como o ID da sua instância do AnalyticDB for MySQL seguido por -controller. Para as demais configurações, consulte este documento.
Defina também
config.vpc.vpc_id.your_namecomo o ID da VPC correspondente econfig.vpc.instance_port.your_namecomo3306. Para o PolarDB for MySQL, use a mesma configuração do ApsaraDB RDS for MySQL.
Etapa 3: Salvar os resultados da transformação
Apêndice: Acessar AnalyticDB e PolarDB for MySQL
Além do ApsaraDB RDS for MySQL, o Simple Log Service também suporta o acesso a bancos de dados AnalyticDB for MySQL e PolarDB for MySQL por meio de seus endpoints internos. As configurações necessárias estão descritas abaixo: