A transformação de dados do Simple Log Service extrai dados de bancos de dados ApsaraDB RDS for MySQL e enriquece logs com base em regras de transformação.
Informações básicas
Os dados costumam estar distribuídos em diferentes fontes. Por exemplo, dados de operações e comportamento do usuário podem residir no Simple Log Service, enquanto perfis e informações de cadastro ficam em uma instância do ApsaraDB RDS for MySQL. Use a transformação de dados do Simple Log Service para buscar informações da instância do ApsaraDB RDS for MySQL e armazenar os dados enriquecidos em um Logstore.
Use a função res_rds_mysql para obter dados de um banco de dados ApsaraDB RDS for MySQL e, em seguida, aplique a função e_table_map para enriquecer os dados.
A instância do ApsaraDB RDS for MySQL deve estar na mesma região do projeto do Simple Log Service. Caso contrário, não será possível obter dados do banco de dados.
Acesse o banco de dados ApsaraDB RDS for MySQL pelo endpoint interno da instância. Para mais detalhes, consulte Usar o Simple Log Service para conectar-se a uma instância do RDS for MySQL para enriquecimento de dados.
Usar a função e_table_map para enriquecer dados
O exemplo a seguir usa as funções e_table_map e res_rds_mysql para enriquecer dados.
-
Dados brutos
-
Registros de amostra em uma tabela de um banco de dados ApsaraDB RDS for MySQL
province
city
population
cid
eid
Shanghai
Shanghai
2000
1
00001
Tianjin
Tianjin
800
1
00002
Beijing
Beijing
4000
1
00003
Henan
Zhengzhou
3000
2
00004
Jiangsu
Nanjing
1500
2
00005
-
Logs de amostra de um Logstore no Simple Log Service:
time:"1566379109" data:"test-one" cid:"1" eid:"00001" time:"1566379111" data:"test_second" cid:"1" eid:"12345" time:"1566379111" data:"test_three" cid:"2" eid:"12345" time:"1566379113" data:"test_four" cid:"2" eid:"12345"
-
-
Regra de transformação
O sistema compara o campo cid do Logstore com o campo cid da tabela do ApsaraDB RDS for MySQL. A correspondência ocorre apenas quando os valores de cid são idênticos. Após uma correspondência bem-sucedida, os campos province, city e population são recuperados da tabela do banco de dados e unidos aos dados do Logstore.
NotaSe houver correspondência com várias linhas na tabela, a função e_table_map retornará apenas o primeiro registro encontrado. Neste exemplo, o campo cid da tabela possui múltiplos registros com o valor 1.
e_table_map(res_rds_mysql(address="rds-host", username="mysql-username",password="xxx",database="xxx",table="xx",refresh_interval=60),"cid",["province","city","population"])Para mais informações sobre como configure um banco de dados ApsaraDB RDS for MySQL na função res_rds_mysql, consulte res_rds_mysql.
-
Resultados da transformação
time:"1566379109" data:"test-one" cid:"1" eid:"00001" province:"Shanghai" city:"Shanghai" population:"2000" time:"1566379111" data:"test_second" cid:"1" eid:"12345" province:"Shanghai" city:"Shanghai" population:"2000" time:"1566379111" data:"test_three" cid:"2" eid:"12345" province:"Henan" city:"Zhengzhou" population:"3000" time:"1566379113" data:"test_four" cid:"2" eid:"12345" province:"Henan" city:"Zhengzhou" population:"3000"