創(chuàng)建投遞任務(wù)
如果要表格存儲(chǔ)數(shù)據(jù)表中的數(shù)據(jù)投遞到OSS Bucket中存儲(chǔ),您可以使用CreateDeliveryTask接口創(chuàng)建一個(gè)投遞任務(wù)。
請(qǐng)確認(rèn)已安裝支持?jǐn)?shù)據(jù)湖投遞功能的表格存儲(chǔ)Go SDK。
前提條件
已開(kāi)通OSS服務(wù)且在表格存儲(chǔ)實(shí)例所在地域創(chuàng)建Bucket。具體操作,請(qǐng)參見(jiàn)開(kāi)通OSS服務(wù)。
已通過(guò)控制臺(tái)創(chuàng)建表格存儲(chǔ)服務(wù)關(guān)聯(lián)角色并記錄角色的ARN。具體操作,請(qǐng)參見(jiàn)創(chuàng)建投遞任務(wù)。
服務(wù)關(guān)聯(lián)角色的ARN請(qǐng)通過(guò)RAM控制臺(tái)獲取,具體操作如下:
在RAM 角色管理界面,搜索AliyunServiceRoleForOTSDataDelivery后,單擊角色名稱(chēng),在角色詳情界面,可以查看和復(fù)制角色的ARN信息。
已初始化TableStoreClient。具體操作,請(qǐng)參見(jiàn)初始化。
已創(chuàng)建數(shù)據(jù)表并寫(xiě)入數(shù)據(jù)。
參數(shù)
參數(shù) | 說(shuō)明 |
TableName | 數(shù)據(jù)表名稱(chēng)。 |
TaskName | 投遞任務(wù)名稱(chēng)。 名稱(chēng)只能包含英文小寫(xiě)字母(a~z)、數(shù)字和短橫線(-),開(kāi)頭和結(jié)尾必須為英文小寫(xiě)字母或數(shù)字,且長(zhǎng)度為3~16字符。 |
TaskConfig | 投遞任務(wù)配置,包括如下選項(xiàng):
|
TaskType | 投遞任務(wù)的類(lèi)型,包括如下選項(xiàng):
|
示例
以下示例用于為數(shù)據(jù)表創(chuàng)建投遞任務(wù)。
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)
}