Cargue un archivo CSV local en Simple Log Service mediante el SDK de Python. Después, ejecute consultas federadas para unir los datos de registro de un logstore con los datos del CSV y enriquecer el análisis.
Requisitos previos
Los datos de registro ya se recopilaron en un logstore. Para obtener más información, consulte Data collection overview.
Los índices del logstore ya están configurados. Para obtener más información, consulte Create indexes.
Prepare un archivo CSV local con los metadatos externos que desea unir a sus datos de registro.
-
Instale el SDK de Python de Simple Log Service. Para obtener más información, consulte Install the Simple Log Service Python SDK.
Simple Log Service requiere aliyun-log-python-sdk 0.7.3 o posterior. Para actualizar el SDK, ejecute el comando pip install aliyun-log-python-sdk -U.
Límites
Cada logstore se puede asociar únicamente con un archivo CSV a la vez.
El archivo CSV original no debe superar los 50 MB. El SDK comprime el archivo antes de cargarlo en Simple Log Service. El archivo comprimido debe ser menor a 9.9 MB.
Datos de ejemplo
En este ejemplo, un logstore registra eventos de inicio de sesión de usuarios y un archivo CSV almacena perfiles de usuario, como género y edad. Una vez que asocie el logstore con el archivo CSV, podrá analizar la actividad de los usuarios según sus atributos demográficos.
-
Logstore
userid:100001 action:login __time__:1637737306 Archivo CSV

Procedimiento
-
Use el SDK de Python para crear un ExternalStore.
Para obtener más información sobre el SDK de Python, consulte Python SDK overview.
from aliyun.log import * # Specify the Simple Log Service endpoint for your region. endpoint='cn-shanghai.log.aliyuncs.com' # Specify the AccessKey pair for authentication. accessKeyId='test-project' accessKey='TAI****YDw' # Specify the project name and ExternalStore name. project='lr****VM' ext_logstore='user_meta' # Specify the path to the local CSV file. csv_file='./user.csv' client = LogClient(endpoint, accessKeyId, accessKey) # Create the ExternalStore by defining the table schema. res = client.create_external_store(project, ExternalStoreCsvConfig(ext_logstore, csv_file, [ {"name" : "userid", "type" : "bigint"}, {"name" : "nick", "type" : "varchar"}, {"name" : "gender", "type" : "varchar"}, {"name" : "province", "type" : "varchar"}, {"name" : "age", "type" : "bigint"} ])) res.log_print()Parámetro
Descripción
endpoint
El endpoint de Simple Log Service en la región donde reside su proyecto. Para obtener más información, consulte Endpoint.
accessKeyId
El AccessKey ID de su cuenta de Alibaba Cloud. Para obtener más información, consulte AccessKey pair.
AvisoSe recomienda usar el par de AccessKey de un usuario de RAM para minimizar el riesgo de filtración de credenciales.
accessKey
El AccessKey Secret de su cuenta de Alibaba Cloud. Para obtener más información, consulte AccessKey pair.
project
El nombre del proyecto que contiene el logstore de destino.
ext_logstore
El nombre del ExternalStore, que también funciona como nombre de la tabla virtual para las consultas SQL. El nombre debe cumplir los siguientes requisitos:
-
Solo puede contener letras minúsculas, dígitos, guiones (-) y guiones bajos (_).
-
Debe comenzar y terminar con una letra minúscula o un dígito.
-
Debe tener entre 3 y 63 caracteres de longitud.
csv_file
La ruta del archivo CSV local que desea cargar.
Esquema de la tabla
El esquema de la tabla virtual, que define los nombres de las columnas y los tipos de datos. Modifique las definiciones de las columnas según su archivo CSV.
[ {"name" : "userid", "type" : "bigint"}, {"name" : "nick", "type" : "varchar"}, {"name" : "gender", "type" : "varchar"}, {"name" : "province", "type" : "varchar"}, {"name" : "age", "type" : "bigint"} ] -
Inicie sesión en la consola de Simple Log Service.
-
En la sección Projects, haga clic en el proyecto deseado.

-
En la pestaña , haga clic en el logstore deseado.

-
Compruebe que el ExternalStore se haya creado correctamente.
Ejecute la siguiente instrucción de consulta. Reemplace
user_metapor el nombre de su ExternalStore.* | SELECT * FROM user_metaSi la consulta devuelve el contenido del archivo CSV, significa que el ExternalStore se creó correctamente.

-
Ejecute una consulta federada para unir el logstore con el archivo CSV.
En el siguiente ejemplo se une el campo userid del logstore con el campo userid del archivo CSV. En este caso,
website_loges el nombre del logstore yuser_metaes el nombre del ExternalStore. Reemplace estos valores por sus nombres reales.* | SELECT * FROM website_log JOIN user_meta ON website_log.userid = user_meta.userid