Tablestore のデータテーブルから OSS バケットにデータを配信するには、CreateDeliveryTask API を使用して配信タスクを作成します。
インストール済みの Tablestore SDK for Go のバージョンが、データ配信機能をサポートしていることを確認してください。
前提条件
-
OSS が有効化されます。 Tablestore インスタンスがデプロイされているリージョンにバケットが作成されます。 詳細については、「OSS を有効化する」をご参照ください。
-
Table Store のサービスリンクロール (AliyunServiceRoleForOTSDataDelivery) は Table Store コンソールで作成され、ロールの Alibaba Cloud リソースネーム (ARN) が記録されます。詳細については、「配信タスクの作成」をご参照ください。
Tablestore のサービスリンクロール (AliyunServiceRoleForOTSDataDelivery) の ARN を取得するには、RAM コンソールで次の操作を実行します:
[ロール] ページで、AliyunServiceRoleForOTSDataDelivery を検索します。次に、RAM ロール名をクリックします。ロール詳細ページで、ロールの ARN 情報を表示およびコピーできます。
-
TableStoreClient インスタンスが初期化されます。 詳細については、「Tablestore クライアントを初期化する」をご参照ください。
-
データテーブルが作成されており、データがデータテーブルに書き込まれていること。
パラメーター
|
パラメーター |
説明 |
|
TableName |
データテーブルの名前。 |
|
TaskName |
配信タスクの名前。 名前は 3~16 文字で指定し、小文字、数字、ハイフン (-) のみ使用できます。名前の先頭と末尾は小文字または数字にする必要があります。 |
|
TaskConfig |
配信タスクの設定。次の内容が含まれます:
|
|
TaskType |
配信タスクのタスクタイプ。デフォルト値:BaseIncTask。有効な値:
|
例
次のサンプルコードは、データテーブルの配信タスクを作成する例です:
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)
}