Todos os produtos
Search
Central de documentação

Tablestore:Criar uma tarefa de entrega

Última atualização: Aug 02, 2026

O Tablestore SDK for Java permite criar uma tarefa de entrega para transferir dados completos, incrementais ou ambos de uma tabela de dados para um bucket do OSS na mesma região.

Pré-requisitos

Antes de começar, verifique se os seguintes pré-requisitos foram atendidos:

  • Instale o Tablestore SDK for Java e inicialize um client. A entrega de dados requer a versão 5.10.3 ou posterior. Recomendamos o uso da versão mais recente.

  • Ative o Object Storage Service (OSS) e crie um bucket do OSS na mesma região da instância do Tablestore. Para mais informações, consulte Get started with OSS.

  • Crie a função vinculada ao service AliyunServiceRoleForOTSDataDelivery e obtenha o ARN da função. Para mais informações, consulte Create a delivery task.

Descrição

Chame createDeliveryTask para criar uma tarefa de entrega. Uma tarefa pode entregar apenas dados completos ou incrementais, ou ainda entregar os dados completos primeiro e depois transferir continuamente os dados incrementais.

public CreateDeliveryTaskResponse createDeliveryTask(CreateDeliveryTaskRequest request)
        throws TableStoreException, ClientException

Após criar uma tarefa de entrega, inicialize-a. Chame describeDeliveryTask para query delivery task information.

O exemplo a seguir cria uma tarefa que entrega dados completos e incrementais, além de criar partições diárias no OSS com base no horário de gravação dos dados no Tablestore. Neste exemplo, client é um client já inicializado. Substitua os placeholders pelos valores reais e certifique-se de que as colunas pk, event_time e active sejam dos tipos String, String e 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

Solicitação de entrega

request é do tipo CreateDeliveryTaskRequest e contém os seguintes parâmetros.

Nome

Tipo

Descrição

tableName (obrigatório)

String

Nome da tabela de dados.

taskName (obrigatório)

String

Nome da tarefa de entrega. O nome pode conter apenas letras minúsculas, dígitos, hífens (-) e underscores (_). Deve começar e terminar com uma letra minúscula ou dígito, tendo entre 3 e 16 caracteres.

taskConfig (obrigatório)

OSSTaskConfig

Configuração de entrega para o OSS.

taskType (obrigatório)

DeliveryTaskType

Tipo da tarefa de entrega. Valores válidos: BASE, que entrega dados completos uma única vez; INC, que entrega apenas dados incrementais; e BASE_INC, que entrega dados completos e depois transfere continuamente dados incrementais.

Configuração de entrega do OSS

request.taskConfig é do tipo OSSTaskConfig e contém os seguintes parâmetros.

Nome

Tipo

Descrição

ossPrefix (obrigatório)

String

Prefixo do diretório no bucket do OSS. É possível usar as variáveis de tempo $yyyy, $MM, $dd, $HH e $mm. Se o prefixo contiver variáveis de tempo, as partições do OSS serão criadas com base no horário de gravação. Caso eventTimeColumn seja especificado, o sistema usará o horário do evento. Sem variáveis de tempo no prefixo, todos os arquivos serão gravados no prefixo fixo.

ossBucket (obrigatório)

String

Nome do bucket do OSS. O bucket deve estar na mesma região da instância do Tablestore.

ossEndpoint (obrigatório)

String

Endpoint da região onde o bucket do OSS está localizado.

ossStsRole (obrigatório)

String

ARN da função vinculada ao service AliyunServiceRoleForOTSDataDelivery.

parquetSchema (obrigatório)

List<ParquetSchema>

Campos a serem entregues. Selecione os campos e personalize seus nomes e ordem no OSS. A ordem dos elementos define a ordem dos campos nos arquivos Parquet. Chame addParquetSchema para adicionar campos individualmente.

eventTimeColumn (opcional)

EventColumn

Coluna de horário do evento. Se este parâmetro for especificado, as variáveis de tempo em ossPrefix usarão o horário desta coluna. Caso contrário, o sistema usará o horário de gravação dos dados no Tablestore.

format (opcional)

OSSFileFormat

Formato de arquivo do OSS. O valor padrão e único suportado é Parquet.

timeFormatter (opcional)

TimeFormatter

Parâmetro reservado para formato de partição. O SDK atual não inclui este parâmetro nas solicitações. Não o configure.

Colunas entregues

Cada elemento em request.taskConfig.parquetSchema[] é do tipo ParquetSchema e contém os seguintes parâmetros.

Nome

Tipo

Descrição

columnName (obrigatório)

String

Nome do campo de source na tabela de dados do Tablestore.

ossColumnName (obrigatório)

String

Nome do campo após a entrega no OSS.

type (obrigatório)

DataType

Tipo de destino do campo no arquivo Parquet. O tipo deve corresponder ao tipo de dados do campo de source. Caso contrário, o valor do campo será descartado como dado inconsistente. Para mais informações, consulte Data type mappings.

encode (opcional)

OSSFileEncoding

Codificação Parquet. Valor padrão: PLAIN, compatível com todos os tipos de campo atualmente suportados.

typeExtend (opcional)

String

Parâmetro reservado para tipo estendido do Parquet. Este parâmetro não é suportado. Não o configure.

Coluna de horário do evento

request.taskConfig.eventTimeColumn é do tipo EventColumn e contém os seguintes parâmetros.

Nome

Tipo

Descrição

columnName (obrigatório)

String

Nome do campo de source usado como horário do evento.

timeFormat (obrigatório)

EventTimeFormat

Formato do horário do evento. Valores válidos: RFC822, RFC850, RFC1123, RFC3339 e Unix. O valor do campo de source deve estar em conformidade com o formato selecionado.

Exemplos

Particionar dados por horário do evento

Para criar partições no OSS com base na coluna event_time, configure a coluna de horário do evento em taskConfig antes de criar a solicitação. No exemplo abaixo, os valores na coluna devem estar em conformidade com o RFC 3339.

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