Utilisez les fonctions de ressource et de mappage pour extraire un fichier CSV depuis Object Storage Service (OSS) et joindre ses champs aux journaux dans Log Service, afin d'enrichir des données de journal incomplètes avec des informations de référence.
Contexte
OSS est particulièrement adapté au stockage des données de référence qui changent rarement, par exemple les correspondances entre comptes et pseudonymes, les tables d'association IP-région ou les descriptions de codes d'erreur. Lorsque vos données de journal dans Log Service sont incomplètes, vous pouvez les enrichir en extrayant des données de référence depuis un objet CSV stocké sur OSS.
La fonctionnalité de transformation des données utilise conjointement trois fonctions :
res_oss_file — récupère le contenu brut d'un objet OSS
tab_parse_csv — analyse ce contenu pour le convertir en une table structurée
e_table_map — fait correspondre un champ du journal avec la table et ajoute les champs correspondants au journal
Prérequis
Avant de commencer, assurez-vous d'avoir effectué les opérations suivantes :
-
Créez un AccessKey pour accéder à votre bucket OSS. Pour plus d'informations, consultez la rubrique Create an AccessKey.
Créez deux AccessKeys : l'un avec des autorisations en lecture seule pour récupérer des objets depuis OSS, et l'autre avec des autorisations en écriture seule pour télécharger des objets vers OSS. Pour plus d'informations sur l'autorisation, consultez la rubrique RAM policy overview.
-
Téléchargez l'objet CSV contenant vos données de référence dans un bucket OSS. Pour plus d'informations, consultez la rubrique Upload objects.
Utilisez un AccessKey disposant d'autorisations en écriture seule pour le téléchargement.
Enrichir les données de journal avec un fichier CSV OSS
L'exemple suivant montre comment faire correspondre un champ account dans un Logstore avec un objet CSV OSS et ajouter le champ nickname correspondant à chaque entrée de journal.
-
Journal brut dans un Logstore
account : Sf24asc4ladDS -
Données dans un objet CSV d'un bucket OSS
Id
Account
Nickname
1
Sf24asc4ladDS
Doflamingo
2
Sf24asc4ladSA
Kaido
3
Sf24asc4ladCD
Roger
-
Règle de transformation
La règle fait correspondre le champ account/@parmname du Logstore avec la colonne account/@parmname de l'objet CSV. La correspondance n'est réussie que si les valeurs account/@parmname sont identiques. Lorsqu'une correspondance est trouvée, le champ nickname/@parmname et sa valeur sont ajoutés au journal.
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")Dans
e_table_map, le premier argument de chaîne ("account") spécifie le champ utilisé pour faire correspondre les lignes de la table CSV, et le second ("nickname") spécifie le champ récupéré depuis la ligne correspondante et ajouté au journal.Le tableau suivant décrit les principaux paramètres de
res_oss_file. Pour tous les paramètres, consultez la rubrique Resource functions.Parameter
Description
endpoint
L'endpoint pour accéder à OSS. Pour plus d'informations, consultez la rubrique res_oss_file.
ak_id
L'ID AccessKey disposant d'autorisations en lecture seule pour OSS. Définissez cette valeur sur res_local("AK_ID")/@parmname pour récupérer la valeur depuis Advanced Parameter Settings/@parmname au lieu d'intégrer les identifiants dans la règle. Pour configurer Advanced Parameter Settings/@parmname, consultez la rubrique Create a data transformation job. Dans la section Advanced options, ajoutez deux paires clé-valeur :
AK_IDdéfini sur votre ID AccessKey etAK_KEYdéfini sur votre secret AccessKey.ak_key
Le secret AccessKey disposant d'autorisations en lecture seule pour OSS. Définissez la valeur sur res_local("AK_KEY")/@parmname pour la récupérer depuis Advanced Parameter Settings/@parmname.
bucket
Le bucket OSS où l'objet CSV est stocké.
file
Le chemin de l'objet OSS cible, par exemple test/data.txt/@filepath. Le chemin ne peut pas commencer par une barre oblique (/).
change_detect_interval
La fréquence, en secondes, à laquelle Log Service vérifie si l'objet OSS a changé. La valeur par défaut est
0, ce qui désactive les vérifications périodiques : l'objet est récupéré une seule fois au démarrage de la tâche de transformation des données. Définissez une valeur non nulle pour activer les vérifications périodiques ; Log Service récupère à nouveau l'objet dès qu'un changement est détecté. -
Résultat
account : Sf24asc4ladDS nickname: Doflamingo