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.
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:
|
|
TaskType |
Tipo da tarefa de entrega. Valor padrão: BaseIncTask. Valores válidos:
|
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)
}