La transformation des données dans Simple Log Service permet d'extraire des données depuis des bases de données ApsaraDB RDS for MySQL et d'enrichir les journaux selon des règles de transformation définies.
Contexte
Les données sont souvent dispersées entre plusieurs sources. Par exemple, les données relatives aux opérations et au comportement des utilisateurs peuvent être stockées dans Simple Log Service, tandis que les profils utilisateurs et les informations d'inscription résident dans une instance ApsaraDB RDS for MySQL. Utilisez la transformation des données de Simple Log Service pour récupérer les données depuis l'instance ApsaraDB RDS for MySQL et stocker les données enrichies dans un Logstore.
Utilisez la fonction res_rds_mysql pour obtenir des données depuis une base de données ApsaraDB RDS for MySQL, puis la fonction e_table_map pour enrichir ces données.
L'instance ApsaraDB RDS for MySQL doit se trouver dans la même région que votre projet Simple Log Service. Dans le cas contraire, vous ne pourrez pas extraire les données depuis la base de données.
Accédez à une base de données ApsaraDB RDS for MySQL via le point de terminaison interne de son instance. Pour plus d'informations, consultez la rubrique Use Simple Log Service to connect to an RDS for MySQL instance for data enrichment.
Utiliser la fonction e_table_map pour enrichir les données
L'exemple suivant illustre l'enrichissement des données à l'aide des fonctions e_table_map et res_rds_mysql.
-
Données brutes
-
Exemples d'enregistrements dans une table d'une base de données 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
-
Exemples de journaux issus d'un Logstore dans 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"
-
-
Règle de transformation
Le champ cid du Logstore est mis en correspondance avec le champ cid de la table ApsaraDB RDS for MySQL. La correspondance n'est validée que si les valeurs cid sont identiques. Une fois la correspondance établie, les champs province, city et population sont récupérés depuis la table de la base de données et joints aux données du Logstore.
RemarqueSi plusieurs lignes correspondent dans la table, la fonction e_table_map renvoie uniquement le premier enregistrement correspondant. Dans cet exemple, le champ cid de la table contient plusieurs occurrences de la valeur 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"])Pour plus d'informations sur la configuration d'une base de données ApsaraDB RDS for MySQL dans la fonction res_rds_mysql, consultez la rubrique res_rds_mysql.
-
Résultats de la transformation
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"