Simple Log Service (SLS) permite enviar datos de registro desde un logstore a un bucket de Object Storage Service (OSS) para su almacenamiento a largo plazo y análisis sin conexión. Este tema describe cómo crear un trabajo de envío de datos a OSS (nueva versión).
Requisitos previos
Se creó un proyecto y un logstore.
Se recopilan datos de registro.
Se creó un bucket de OSS en la región donde reside el proyecto de SLS. Para obtener más información, consulte []]().
La nueva versión del envío de datos a OSS solo está disponible en regiones específicas. Compruebe que su proyecto resida en una región compatible.
Regiones compatibles
SLS envía datos a OSS dentro de la misma región. El bucket de OSS debe residir en la misma región que el proyecto de SLS.
La nueva versión del envío de datos a OSS solo es compatible con las siguientes regiones: China (Hangzhou), China (Shanghai), China (Qingdao), China (Beijing), China (Zhangjiakou), China (Hohhot), China (Ulanqab), China (Chengdu), China (Shenzhen), China (Heyuan), China (Guangzhou), China (Hong Kong), Singapore, Malaysia (Kuala Lumpur), Indonesia (Jakarta), Philippines (Manila), Thailand (Bangkok), Japan (Tokyo), US (Silicon Valley), US (Virginia), Saudi Arabia (Riyadh) y Saudi virtual network operator.
Crear un trabajo de envío de datos
Inicie sesión en la consola de Simple Log Service.
-
En la pestaña Log Storage > Logstores, haga clic en > a la izquierda del logstore de destino y luego seleccione Data Processing > Export > Object Storage Service.
Pase el puntero sobre Object Storage Service y haga clic en +.
-
En el panel Data Shipping to OSS, configure los siguientes parámetros y haga clic en OK.
Establezca Shipping Version en New Version. La siguiente tabla describe los parámetros clave.
Después de crear un trabajo de envío de datos a OSS, cada shard determina su frecuencia de envío según Batch Size y Batch Interval. El envío se activa cuando se cumple cualquiera de las dos condiciones.
Parámetro
Descripción
Job Name
Nombre único del trabajo de envío.
Display Name
Nombre para mostrar del trabajo de envío.
Job Description
Descripción del trabajo de envío a OSS.
OSS Bucket
Nombre del bucket de OSS. > Importante: - El bucket ya debe existir, debe tener deshabilitada la opción Write Once Read Many (WORM) y debe residir en la misma región que el proyecto de SLS.
OSS Write RAM Role
Otorga al trabajo de envío de datos a OSS los permisos para escribir datos en el bucket de OSS. Si el logstore y el bucket de OSS pertenecen a la misma cuenta de Alibaba Cloud, seleccione Default Role. Si pertenecen a cuentas diferentes, seleccione Custom Role. - Default Role: Autoriza al trabajo de envío de datos a OSS a escribir datos en el bucket de OSS mediante el rol de sistema
AliyunLogDefaultRolede Alibaba Cloud. Introduzca el Alibaba Cloud Resource Name (ARN) deAliyunLogDefaultRole. Para obtener información sobre cómo conseguir el ARN, consulte []](). - Custom Role: Autoriza al trabajo de envío de datos a OSS a escribir datos en el bucket de OSS mediante un rol personalizado. Otorgue al rol personalizado los permisos para escribir datos en el bucket de OSS y luego introduzca el ARN del rol personalizado en OSS Write RAM Role. Obtenga el ARN según los siguientes escenarios: - Si el logstore y el bucket de OSS pertenecen a la misma cuenta de Alibaba Cloud, consulte []](). - Si el logstore y el bucket de OSS pertenecen a cuentas diferentes de Alibaba Cloud, consulte []]().LogStore Read RAM Role
Otorga al trabajo de envío de datos a OSS los permisos para leer datos del logstore. Si el logstore y el bucket de OSS pertenecen a la misma cuenta de Alibaba Cloud, seleccione Default Role. Si pertenecen a cuentas diferentes, seleccione Custom Role. - Default Role: Autoriza al trabajo de envío de datos a OSS a leer datos del logstore mediante el rol de sistema
AliyunLogDefaultRolede Alibaba Cloud. Introduzca el ARN deAliyunLogDefaultRole. Para obtener información sobre cómo conseguir el ARN, consulte []](). - Custom Role: Autoriza al trabajo de envío de datos a OSS a leer datos del logstore mediante un rol personalizado. Otorgue al rol personalizado los permisos para leer datos del logstore y luego introduzca el ARN del rol personalizado en LogStore Read RAM Role.Storage Format
Una vez enviados los datos a OSS, estos pueden almacenarse en distintos formatos de archivo.
Compress
Método de compresión utilizado para almacenar datos en OSS. - No Compress (none): no comprime los datos. - Compress (snappy): comprime los datos mediante el algoritmo snappy para reducir el espacio de almacenamiento del bucket de OSS. - Compress (zstd): comprime los datos mediante el algoritmo zstd para reducir el espacio de almacenamiento del bucket de OSS. - Compress (gzip): comprime los datos mediante el algoritmo gzip para reducir el espacio de almacenamiento del bucket de OSS.
Ship Tags
El campo de etiqueta es un campo reservado de SLS.
Batch Size
Cantidad de datos de registro sin comprimir que deben acumularse en un shard antes de iniciar el envío. Valores válidos: de 5 a 256. Unidad: MB. Este valor controla el tamaño aproximado de cada objeto de OSS. Batch Size mide los datos acumulados después de que SLS comienza a leer, no los datos ya escritos en SLS. Los datos se leen y envían solo después de que también se cumpla la condición de Batch Interval.
Batch Interval
Tiempo máximo que espera un shard antes de activar una operación de envío. El envío comienza cuando ha transcurrido el tiempo especificado desde que llegó la primera entrada de registro al lote actual. Valor predeterminado: 300. Valores válidos: de 300 a 900. Unidad: segundos.
Shipping Latency
Retraso antes de enviar los datos. Por ejemplo, si establece este parámetro en 3600, los datos se envían una hora después. Los datos generados a las 10:00:00 del 5 de junio de 2023 no se escriben en el bucket de OSS especificado antes de las 11:00:00 del mismo día.
Start Time Range
Intervalo de tiempo del trabajo de envío de datos a OSS. El intervalo se basa en el momento en que se reciben los registros. Valores válidos: - All: envía datos desde el momento en que el logstore recibió el primer registro hasta que el trabajo se detiene manualmente. - From Specific Time: envía datos desde la hora de inicio especificada hasta que el trabajo se detiene manualmente. - Specific Time Range: envía datos desde la hora de inicio especificada hasta la hora de finalización especificada. El trabajo se detiene automáticamente a la hora de finalización indicada. El intervalo se basa en el campo
__tag__:__receive_time__.Time Zone
Zona horaria utilizada para formatear los valores de tiempo. Si configura tanto Time Zone como Partition Format, los subdirectorios del bucket de OSS se generan según su configuración.
Una vez creado el trabajo, revise su estado y compruebe que aparezcan datos en el bucket de OSS de destino para confirmar que el envío funciona correctamente.
Consultar datos en OSS
Después de enviar los datos a OSS, puede acceder a ellos desde la consola de OSS o mediante la API de OSS, un SDK u otros métodos.
Formatos de partición
Cada operación de envío se asigna a una URL de objeto de OSS con el formato oss://OSS-BUCKET/OSS-PREFIX/PARTITION-FORMAT_RANDOM-ID. La siguiente tabla describe los formatos de partición, tomando como referencia un trabajo de envío creado a las 19:50:43 del 20 de enero de 2022.
OSS-BUCKET es el nombre del bucket de OSS. OSS-PREFIX es el prefijo del directorio. PARTITION-FORMAT es el formato de partición, que se calcula a partir de la hora de envío mediante la API strptime. RANDOM-ID es el identificador único de una operación de envío.
|
Bucket de OSS |
Prefijo de OSS |
Formato de partición |
Sufijo del objeto |
URL del objeto de OSS |
|
test-bucket |
test-table |
%Y/%m/%d/%H/%M |
.suffix |
oss://test-bucket/test-table/2022/01/20/19/50_1484913043351525351_2850008.suffix |
|
test-bucket |
|
year=%Y/mon=%m/day=%d/log_%H%M |
.suffix |
oss://test-bucket/log_ship_oss_example/year=2022/mon=01/day=20/log_1950_1484913043351525351_2850008.suffix |
|
test-bucket |
|
ds=%Y%m%d/%H |
.suffix |
oss://test-bucket/log_ship_oss_example/ds=20220120/19_1484913043351525351_2850008.suffix |
|
test-bucket |
|
%Y%m%d/ |
.suffix |
oss://test-bucket/log_ship_oss_example/20220120/_1484913043351525351_2850008.suffix > Nota: Este formato puede provocar errores de análisis en plataformas como Hive. Se recomienda no utilizarlo. |
|
test-bucket |
|
%Y%m%d%H |
.suffix |
oss://test-bucket/log_ship_oss_example/2022012019_1484913043351525351_2850008.suffix |
Los datos se envían a OSS en lotes. Cada operación de envío escribe un objeto que contiene un lote de datos. La ruta del objeto se determina por el valor más antiguo de receive_time (la hora en que los datos llegan a SLS) dentro del lote. Tenga en cuenta los siguientes escenarios:
Al enviar datos en tiempo real, por ejemplo, cada cinco minutos, una operación de envío realizada a las 00:00:00 del 22 de enero de 2022 transfiere los datos escritos en un shard de SLS después de las 23:55 del 21 de enero de 2022. Para analizar todos los datos del 22 de enero de 2022, revise todos los objetos en el subdirectorio 2022/01/22 del bucket de OSS y verifique si los últimos objetos del subdirectorio 2022/01/21 contienen datos correspondientes al 22 de enero de 2022.
-
Al enviar datos históricos, si el volumen de datos en el logstore es pequeño, una sola extracción puede devolver datos de varios días. Como resultado, los objetos en el subdirectorio 2022/01/22 podrían contener todos los datos del 23 de enero de 2022, y no existir ningún objeto en el subdirectorio 2022/01/23.
Cuando utilice una plataforma de big data como Hive o
MaxCompute, o bien Alibaba Cloud Data Lake Analytics (DLA), para analizar datos en OSS, puede configurar PARTITION-FORMAT en el nombre del objeto con el formato clave=valor si desea usar información de particiones. Ejemplo: oss://test-bucket/log_ship_oss_example/year=2022/mon=01/day=20/log_195043_1484913043351525351_2850008.parquet. En este ejemplo, se configuran tres columnas de partición: year, mon y day.