如果要表格存储数据表中的数据投递到OSS Bucket中存储,您可以使用CreateDeliveryTask接口创建一个投递任务。
请确认已安装支持数据湖投递功能的表格存储Go SDK。
前提条件
已开通OSS服务且在表格存储实例所在地域创建Bucket。具体操作,请参见开通OSS服务。
已通过控制台创建表格存储服务关联角色并记录角色的ARN。具体操作,请参见创建投递任务。
服务关联角色的ARN请通过RAM控制台获取,具体操作如下:
在RAM 角色管理界面,搜索AliyunServiceRoleForOTSDataDelivery后,单击角色名称,在角色详情界面,可以查看和复制角色的ARN信息。
已初始化TableStoreClient。具体操作,请参见初始化。
已创建数据表并写入数据。
参数
参数 | 说明 |
TableName | 数据表名称。 |
TaskName | 投递任务名称。 名称只能包含英文小写字母(a~z)、数字和短横线(-),开头和结尾必须为英文小写字母或数字,且长度为3~16字符。 |
TaskConfig | 投递任务配置,包括如下选项:
|
TaskType | 投递任务的类型,包括如下选项:
|
示例
以下示例用于为数据表创建投递任务。
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)
}