Todos los productos
Search
Centro de documentos

Tablestore:Entrega de datos a OSS mediante la consola

Última actualización: Sep 03, 2026

Cree una tarea de entrega en la consola de Tablestore para enviar datos desde una tabla de Tablestore hacia un bucket de OSS.

Requisitos previos

Active el servicio de OSS y cree un bucket en la misma región donde se encuentra su instancia de Tablestore. Para obtener más información, consulte Activate OSS.

Nota

La entrega de datos admite el envío a cualquier bucket de OSS que esté en la misma región que la instancia de Tablestore. Si necesita entregar datos a otros almacenes de datos, como MaxCompute, submit a ticket para solicitar esta función.

Notas de uso

  • El envío al data lake está disponible en las siguientes regiones: China (Hangzhou), China (Shanghai), China (Beijing), China (Zhangjiakou) y China (Shenzhen).

  • La entrega de datos ignora las operaciones de eliminación. Los datos que elimine en Tablestore no se borrarán del bucket de OSS de destino.

  • La inicialización de una nueva tarea de entrega puede tardar hasta un minuto.

  • Con una tasa de escritura estable, la latencia de sincronización suele ser inferior a 3 minutos. La latencia P99 es menor a 10 minutos.

    Nota

    La latencia P99 corresponde al percentil 99 de la latencia; esto significa que el 99 % de las solicitudes son más rápidas que este valor.

Creación de una tarea de entrega

  1. Vaya a la página Instance Management.

    1. Inicie sesión en Tablestore console.

    2. En la barra de navegación superior, seleccione un resource group y una región. Haga clic en el nombre de la instancia o haga clic en Manage Instance en la columna Actions.

  2. En la página Instance Management, haga clic en Deliver Data to OSS.

  3. (Opcional) Cree el rol vinculado al servicio AliyunServiceRoleForOTSDataDelivery.

    La primera vez que configure la entrega de datos, debe crear el rol vinculado al servicio de Tablestore llamado AliyunServiceRoleForOTSDataDelivery. Este rol otorga a Tablestore el permiso para escribir datos en un bucket de OSS. Para obtener más información, consulte Tablestore service-linked role.

    Nota

    Para más información sobre los roles vinculados al servicio, consulte Service-linked roles.

    1. En la página Deliver Data to OSS, haga clic en [Role for Delivery Service].

    2. En el cuadro de diálogo Role Details, revise la información y haga clic en OK.

  4. Cree una tarea de entrega.

    1. En la página Deliver Data to OSS, haga clic en Create Task.

    2. En el cuadro de diálogo Create Task, configure los parámetros.

      Parámetro

      Descripción

      Task Name

      Nombre de la tarea de entrega.

      El nombre debe tener entre 3 y 16 caracteres, y solo puede contener letras minúsculas (a-z), dígitos y guiones (-). Debe comenzar y terminar con una letra minúscula o un dígito.

      Destination Region

      Región donde se encuentran la instancia de Tablestore y el bucket de OSS.

      Source Table

      Nombre de la tabla de origen en Tablestore.

      Destination Bucket

      Nombre del bucket de OSS.

      Importante

      El bucket de OSS debe existir previamente y encontrarse en la misma región que la instancia de Tablestore.

      Destination Prefix

      Prefijo de directorio en el bucket de OSS para los datos entregados desde Tablestore. El prefijo de destino admite cinco variables de tiempo: $yyyy, $MM, $dd, $HH y $mm. Para obtener más información, consulte time partitioning.

      • Incluir variables de tiempo en el prefijo de destino genera dinámicamente directorios de OSS según la hora de escritura de los datos. Esto permite particionar los datos por tiempo con un estilo similar al de las particiones de Hive.

      • Si no incluye variables de tiempo en el prefijo de destino, todos los archivos se entregarán en el prefijo de directorio estático especificado.

      Synchronization Mode

      Tipo de tarea de entrega. Valores válidos:

      • Incremental: Sincroniza únicamente los datos incrementales.

      • Full: Realiza una sincronización única de toda la tabla.

      • Differential: Una vez completada la sincronización completa, la tarea continúa sincronizando los datos incrementales.

      Para la sincronización incremental, puede consultar la última hora de entrega y el estado actual de la misma.

      Destination Object Format

      Los datos entregados se almacenan en formato columnar Parquet. De forma predeterminada, la entrega de datos utiliza la codificación PLAIN, compatible con cualquier tipo de dato.

      Schema Generation Type

      Puede seleccionar qué campos de origen escribir en el archivo de destino, definir su orden y asignarles nuevos nombres. El orden de las columnas en la configuración del esquema determina la disposición final de los datos en OSS.

      Configure el esquema de entrega según el tipo de generación de esquema seleccionado.

      • Si establece Schema Generation Type en Manual, deberá configurar manualmente el campo de origen, el nombre del campo de destino y el tipo de campo de destino para cada campo de entrega.

      • Si establece Schema Generation Type en Auto Generate, el sistema identifica y empareja automáticamente los campos para la entrega.

      Importante

      El tipo de dato de un campo entregado debe coincidir con el tipo de dato del campo de origen correspondiente. De lo contrario, el campo se descartará como dato erróneo. Para más información sobre las asignaciones de tipos de datos, consulte Data type mapping.

      Al configurar el esquema de entrega, puede realizar las siguientes operaciones:

      • Haga clic en Add Field para agregar un nuevo campo de entrega.

      • En la columna Actions, haga clic en el icono de flecha arriba down11 o flecha abajo up para ajustar el orden de los campos de entrega.

      • En la columna Actions, haga clic en el icono de eliminación delete para quitar un campo de entrega.

      Schema Configurations

  5. Haga clic en OK.

    En el cuadro de diálogo View Statement to Create Table, puede ver la sentencia de creación de tabla generada automáticamente para una tabla externa de EMR. Puede copiar esta sentencia para crear rápidamente una tabla externa en EMR y acceder a los datos en OSS.

    Una vez creada la tarea de entrega, puede realizar las siguientes operaciones:

    • Consulte los detalles de la entrega, como el nombre de la tarea, el nombre de la tabla, el bucket de destino, el prefijo de destino, la última hora de sincronización y el estado.

    • Consulte o copie la sentencia de creación de tabla.

      En la columna Actions, haga clic en View Statement to Create Table para ver o copiar la sentencia utilizada para crear una tabla externa en un motor de cómputo como EMR. Para obtener más información, consulte Use EMR.

    • Consulte los mensajes de error de entrega.

      Si el bucket de OSS o los permisos de entrega están configurados incorrectamente, la entrega de datos fallará. En ese caso, podrá consultar los mensajes de error relevantes en la página de estado de la tarea. Para más información sobre cómo gestionar errores, consulte Error handling.

    • Elimine la tarea de entrega.

      En la columna Actions, haga clic en Delete para eliminar la tarea de entrega. Si intenta eliminar una tarea que se encuentra en fase de inicialización, el sistema devolverá un error. En tal caso, inténtelo nuevamente más tarde.

Consulta de datos en OSS

Una vez inicializada la tarea de entrega y enviados los datos, puede consultarlos en OSS mediante la consola de OSS, una API o SDK, o un motor de cómputo como EMR. Para obtener más información, consulte File overview.

El formato de dirección de un objeto de OSS es el siguiente:

oss://BucketName/TaskPrefix/TaskName_ConcurrentID_TaskPrefix__SequenceID

Este formato consta de los siguientes componentes: BucketName es el nombre del bucket. TaskPrefix es el prefijo de directorio, que también se incluye en el nombre del archivo. TaskName es el nombre de la tarea de entrega. ConcurrentID es un identificador interno de concurrencia que comienza en 0. El sistema de entrega aumenta automáticamente la concurrencia conforme crece el rendimiento. SequenceID es el número de secuencia del archivo, que se incrementa a partir de 1.

Particionamiento por tiempo

La entrega de datos puede extraer la hora en que los datos se escribieron en Tablestore. Puede utilizar las siguientes variables para convertir la hora de escritura de los datos en un prefijo de directorio para el bucket de OSS: $yyyy (año de cuatro dígitos), $MM (mes de dos dígitos), $dd (día de dos dígitos), $HH (hora de dos dígitos) y $mm (minuto de dos dígitos).

Nota

Para un rendimiento óptimo, se recomienda que los archivos en OSS tengan un tamaño mínimo de 4 MB. Cuando un motor de cómputo carga datos desde OSS, un mayor número de particiones provoca tiempos de ejecución de transacciones más largos. Por lo tanto, la granularidad del particionamiento temporal no debe ser demasiado fina. En la mayoría de los escenarios de escritura en tiempo real, el particionamiento por día u hora es suficiente, y rara vez se requiere un particionamiento a nivel de minuto.

Por ejemplo, considere datos escritos en Tablestore a las 16:03 del 31 de agosto de 2020. La siguiente tabla muestra las rutas de objetos resultantes en OSS para diferentes configuraciones de prefijo de destino.

Bucket de OSS

TaskName

Prefijo de destino

Ruta del objeto en OSS

myBucket

testTask

myPrefix

oss://myBucket/myPrefix/testTask_0_myPrefix__1

myBucket

testTaskTimeParitioned

myPrefix/$yyyy/$MM/$dd/$HH/$mm

oss://myBucket/myPrefix/2020/08/31/16/03/testTaskTimeParitioned_0_myPrefix_2020_08_31_16_03__1

myBucket

testTaskTimeParitionedHiveNamingStyle

myPrefix/year=$yyyy/month=$MM/day=$dd

oss://myBucket/myPrefix/year=2020/month=08/day=31/testTaskTimeParitionedHiveNamingStyle_0_myPrefix_year=2020_month=08_day=31__1

myBucket

testTaskDs

ds=$yyyy$MM$dd

oss://myBucket/ds=20200831/testTaskDs_0_ds=20200831__0

Asignación de tipos de datos

Tipo lógico de Parquet

Tipo de dato de Tablestore

Boolean

Boolean

Int64

Int64

Double

Double

UTF8

String

Gestión de errores

Mensaje de error

Causa

Solución

UnAuthorized

Tablestore no cuenta con los permisos necesarios.

Compruebe que el rol vinculado al servicio AliyunServiceRoleForOTSDataDelivery exista en RAM.

Si el rol no existe, créelo desde la página Deliver Data to OSS. Al iniciar la creación de una tarea de entrega, la consola le solicitará crear el rol requerido.

InvalidOssBucket

El bucket de OSS especificado no existe.

  • Compruebe que el bucket de OSS esté en la misma región que la instancia de Tablestore.

  • Verifique que el bucket de OSS exista.

Después de crear el bucket de OSS, el sistema reintentará automáticamente la escritura de datos y actualizará el progreso de la entrega.

Para obtener más información sobre por qué no se entregan datos a OSS tras crear una tarea de entrega, consulte Data not delivered to OSS after task creation.