Todos os produtos
Search
Central de documentação

Tablestore:Criar uma tarefa de entrega

Última atualização: Jul 03, 2026

Para entregar dados de uma tabela de dados do Tablestore para um bucket do OSS, chame a operação CreateDeliveryTask para criar uma tarefa de entrega.

Importante

Certifique-se de que a versão instalada do Tablestore SDK for Go seja compatível com o recurso de entrega de dados.

Pré-requisitos

  • O OSS está ativado e há um bucket criado na região onde a instância do Tablestore está implantada. Para mais informações, consulte Ativar o serviço OSS.

  • A função vinculada ao serviço do Tablestore (AliyunServiceRoleForOTSDataDelivery) foi criada no console do Tablestore e o Alibaba Cloud Resource Name (ARN) da função foi registrado. Para mais informações, consulte Criar uma tarefa de entrega.

    Execute as operações abaixo no console do RAM para obter o ARN da função vinculada ao serviço do Tablestore (AliyunServiceRoleForOTSDataDelivery):

    Na página Roles, pesquise por AliyunServiceRoleForOTSDataDelivery e clique em no nome da função do RAM. Na página de detalhes da função, visualize e copie as informações do ARN.

  • Uma instância TableStoreClient foi inicializada. Para mais informações, consulte Inicializar um cliente do Tablestore.

  • Uma tabela de dados já existe e contém dados gravados.

Parâmetros

Parâmetro

Descrição

TableName

Nome da tabela de dados.

TaskName

Nome da tarefa de entrega.

O nome deve ter entre 3 e 16 caracteres e pode conter apenas letras minúsculas, dígitos e hifens (-). Além disso, precisa começar e terminar com uma letra minúscula ou dígito.

TaskConfig

Configurações da tarefa de entrega, que incluem:

  • OssPrefix: prefixo do diretório no bucket. Os dados são entregues do Tablestore para este diretório. O caminho do diretório de destino aceita as seguintes variáveis de tempo: $yyyy, $MM, $dd, $HH e $mm.

    • Quando o caminho utiliza variáveis de tempo para entrega, os diretórios do OSS são gerados dinamicamente com base no horário de gravação dos dados. Dessa forma, os dados são particionados seguindo as convenções de nomenclatura usadas pelo Hive. Os objetos no OSS ficam organizados, particionados e distribuídos por tempo.

    • Caso o caminho não utilize variáveis de tempo, todos os arquivos serão entregues em um diretório do OSS cujo nome contenha o prefixo especificado.

  • OssBucket: nome do bucket do OSS.

  • OssEndpoint: endpoint da região onde o bucket do OSS está implantado.

  • OssRoleName: ARN da função vinculada ao serviço do Tablestore.

  • Format: formato dos dados entregues. Eles são armazenados no formato Parquet. Por padrão, o recurso de entrega de dados usa PLAIN para codificar todos os tipos de dados.

  • EventTimeColumn: coluna de tempo do evento. Este parâmetro define que o particionamento dos dados ocorra com base no tempo de uma coluna específica. Se você não especifique esse parâmetro, o particionamento usará o horário de gravação dos dados no Tablestore.

  • Schema: define as colunas a serem entregues. Especifique os campos de source, os campos de destino e os tipos dos campos de destino para entregar as colunas.

    É possível definir os nomes dos campos de source e de destino, bem como a ordem em que os campos de source devem ser entregues no schema. Após a entrega no OSS, a distribuição dos dados seguirá a ordem dos campos definida no schema.

    Importante

    Os tipos de dados precisam ser consistentes entre os campos de source e de destino. Caso contrário, os campos serão descartados como dados incorretos. Para mais informações sobre mapeamento de tipos de campo, consulte Mapeamento de tipos de dados.

TaskType

Tipo da tarefa de entrega. Valor padrão: BaseIncTask. Valores válidos:

  • IncTask: tipo de entrega de dados incrementais. Apenas dados incrementais são sincronizados.

  • BaseTask: tipo de entrega completa de dados. Todos os dados da tabela são verificados e sincronizados.

  • BaseIncTask: tipo de entrega diferencial de dados. Após a sincronização completa dos dados, o Tablestore sincroniza os dados incrementais.

    Durante a sincronização de dados incrementais pelo Tablestore, é possível visualizar o horário da última entrega e o status atual da tarefa.

Exemplos

O código de exemplo abaixo demonstra como criar uma tarefa de entrega para uma tabela de dados:

func CreateTaskSample(client *tablestore.TableStoreClient) {
    createTask := &tablestore.CreateDeliveryTaskRequest{
        TableName: "<TABLE_NAME>",
        TaskName: "<TASK_NAME>",
        TaskType: tablestore.BaseIncTask,
        TaskConfig: &tablestore.OSSTaskConfig{
            OssPrefix:   "sample/year=$yyyy/month=$MM",
            OssBucket:      "datadeliverytest",
            OssEndpoint:    "oss-cn-hangzhou.aliyuncs.com",
            OssRoleName:    "acs:ram::17************45:role/aliyunserviceroleforotsdatadelivery",
            Schema: []*tablestore.TaskSchema{
                {
                    ColumnName: "PK1",
                    OssColumnName: "PK1",
                    Type: tablestore.ParquetInt64,
                },
                {
                    ColumnName: "PK2",
                    OssColumnName: "PK2",
                    Type: tablestore.ParquetUtf8,
                },
                {
                    ColumnName: "Col1",
                    OssColumnName: "Col1",
                    Type: tablestore.ParquetDouble,
                },
            },
        },
    }
    createResp, err := client.CreateDeliveryTask(createTask)
    if err != nil {
        log.Fatal("create delivery task failed ", err)
    }
    fmt.Println("create delivery task success ", createResp.RequestId)
}