Todos los productos
Search
Centro de documentos

Tablestore:Cree una tarea de entrega

Última actualización: Sep 03, 2026

El Tablestore SDK for Java permite crear una tarea de entrega para transferir datos completos, datos incrementales o ambos desde una tabla de datos hacia un bucket de OSS en la misma región.

Requisitos previos

Antes de empezar, asegúrese de cumplir con los siguientes requisitos previos:

  • Instale el Tablestore SDK for Java e inicialice un cliente. La entrega de datos requiere la versión 5.10.3 o posterior. Se recomienda usar la versión más reciente.

  • Active Object Storage Service (OSS) y cree un bucket de OSS en la misma región que la instancia de Tablestore. Para obtener más información, consulte Get started with OSS.

  • Cree el rol vinculado al servicio AliyunServiceRoleForOTSDataDelivery y obtenga el ARN del rol. Para obtener más información, consulte Create a delivery task.

Descripción

Llame a createDeliveryTask para crear una tarea de entrega. Una tarea puede entregar únicamente datos completos o incrementales, o bien entregar primero los datos completos y luego continuar con la entrega de datos incrementales.

public CreateDeliveryTaskResponse createDeliveryTask(CreateDeliveryTaskRequest request)
        throws TableStoreException, ClientException

Después de crear una tarea de entrega, es necesario inicializarla. Llame a describeDeliveryTask para query delivery task information.

El siguiente ejemplo crea una tarea que entrega datos completos e incrementales, y genera particiones diarias en OSS según la hora en que se escriben los datos en Tablestore. En este ejemplo, client es un cliente ya inicializado. Reemplace los marcadores de posición con los valores reales y asegúrese de que las columnas pk, event_time y active sean de tipo String, String y Boolean, respectivamente.

String tableName = "<TABLE_NAME>";
String taskName = "<TASK_NAME>";

OSSTaskConfig taskConfig = new OSSTaskConfig();
taskConfig.setOssPrefix("delivery/year=$yyyy/month=$MM/day=$dd");
taskConfig.setOssBucket("<OSS_BUCKET>");
taskConfig.setOssEndpoint("<OSS_ENDPOINT>");
taskConfig.setOssStsRole("<ROLE_ARN>");
taskConfig.addParquetSchema(new ParquetSchema("pk", "pk", DataType.UTF8));
taskConfig.addParquetSchema(
        new ParquetSchema("event_time", "event_time", DataType.UTF8));
taskConfig.addParquetSchema(new ParquetSchema("active", "active", DataType.BOOL));

CreateDeliveryTaskRequest request =
        new CreateDeliveryTaskRequest(tableName, taskName, taskConfig);
request.setTaskType(DeliveryTaskType.BASE_INC);

client.createDeliveryTask(request);

Parámetros

Solicitud de entrega

request es de tipo CreateDeliveryTaskRequest y contiene los siguientes parámetros.

Nombre

Tipo

Descripción

tableName (obligatorio)

String

Nombre de la tabla de datos.

taskName (obligatorio)

String

Nombre de la tarea de entrega. El nombre 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, y tener entre 3 y 16 caracteres de longitud.

taskConfig (obligatorio)

OSSTaskConfig

Configuración de entrega a OSS.

taskType (obligatorio)

DeliveryTaskType

Tipo de tarea de entrega. Valores válidos: BASE, que entrega los datos completos una sola vez; INC, que entrega únicamente datos incrementales; y BASE_INC, que entrega los datos completos y luego continúa entregando datos incrementales.

Configuración de entrega a OSS

request.taskConfig es de tipo OSSTaskConfig y contiene los siguientes parámetros.

Nombre

Tipo

Descripción

ossPrefix (obligatorio)

String

Prefijo del directorio en el bucket de OSS. Puede usar las variables de tiempo $yyyy, $MM, $dd, $HH y $mm. Si el prefijo incluye variables de tiempo, las particiones de OSS se crean según la hora de escritura. Si se especifica eventTimeColumn, se usa la hora del evento en su lugar. Si el prefijo no contiene variables de tiempo, todos los archivos se escriben en el prefijo fijo.

ossBucket (obligatorio)

String

Nombre del bucket de OSS. El bucket debe encontrarse en la misma región que la instancia de Tablestore.

ossEndpoint (obligatorio)

String

Endpoint de la región donde se ubica el bucket de OSS.

ossStsRole (obligatorio)

String

ARN del rol vinculado al servicio AliyunServiceRoleForOTSDataDelivery.

parquetSchema (obligatorio)

List<ParquetSchema>

Campos por entregar. Puede seleccionar campos y personalizar sus nombres y orden en OSS. El orden de los elementos determina el orden de los campos en los archivos Parquet. Llame a addParquetSchema para agregar campos uno por uno.

eventTimeColumn (opcional)

EventColumn

Columna de hora del evento. Si se especifica este parámetro, las variables de tiempo en ossPrefix usan la hora de esta columna. De lo contrario, se usa la hora en que los datos se escriben en Tablestore.

format (opcional)

OSSFileFormat

Formato de archivo de OSS. El valor predeterminado y único compatible es Parquet.

timeFormatter (opcional)

TimeFormatter

Parámetro reservado para el formato de partición. El SDK actual no incluye este parámetro en las solicitudes. No lo configure.

Columnas entregadas

Cada elemento en request.taskConfig.parquetSchema[] es de tipo ParquetSchema y contiene los siguientes parámetros.

Nombre

Tipo

Descripción

columnName (obligatorio)

String

Nombre del campo de origen en la tabla de datos de Tablestore.

ossColumnName (obligatorio)

String

Nombre del campo después de entregarse a OSS.

type (obligatorio)

DataType

Tipo de destino del campo en el archivo Parquet. El tipo debe coincidir con el tipo de datos del campo de origen. De lo contrario, el valor del campo se descarta como datos erróneos. Para obtener más información, consulte Data type mappings.

encode (opcional)

OSSFileEncoding

Codificación de Parquet. Valor predeterminado: PLAIN, compatible con todos los tipos de campo admitidos actualmente.

typeExtend (opcional)

String

Parámetro reservado para el tipo extendido de Parquet. Este parámetro no es compatible. No lo configure.

Columna de hora del evento

request.taskConfig.eventTimeColumn es de tipo EventColumn y contiene los siguientes parámetros.

Nombre

Tipo

Descripción

columnName (obligatorio)

String

Nombre del campo de origen que se usa como hora del evento.

timeFormat (obligatorio)

EventTimeFormat

Formato de la hora del evento. Valores válidos: RFC822, RFC850, RFC1123, RFC3339 y Unix. El valor del campo de origen debe cumplir con el formato seleccionado.

Ejemplos

Particionar datos por hora del evento

Para crear particiones en OSS basadas en la columna event_time, configure la columna de hora del evento en taskConfig antes de crear la solicitud. En el siguiente ejemplo, los valores de la columna deben cumplir con RFC 3339.

EventColumn eventColumn =
        new EventColumn("event_time", EventTimeFormat.RFC3339);
taskConfig.setEventTimeColumn(eventColumn);