Tablestore データテーブルのデータをオブジェクトストレージサービス (OSS) バケットに配信するには、CreateDeliveryTask オペレーションを呼び出して配信タスクを作成します。
インストールされている Tablestore SDK for Go のバージョンがデータ配信機能をサポートしていることを確認してください。
前提条件
OSS がアクティブ化されている。Tablestore インスタンスがデプロイされているリージョンにバケットが作成されている。詳細については、OSS のアクティブ化 を参照してください。
Tablestore サービスリンクロール (AliyunServiceRoleForOTSDataDelivery) が Tablestore コンソールで作成されている。ロールの Alibaba Cloud Resource Name (ARN) が記録されている。詳細については、データ配信タスクの作成 を参照してください。
RAM コンソールで以下の操作を実行して、Tablestore サービスリンクロール (AliyunServiceRoleForOTSDataDelivery) の ARN を取得できます。
ロール ページで、AliyunServiceRoleForOTSDataDelivery を検索します。次に、RAM ロールの名前をクリックします。ロールの詳細ページで、ロールに関する ARN 情報を表示およびコピーできます。
TableStoreClient インスタンスが初期化されている。詳細については、OTSClient インスタンスの初期化 を参照してください。
データテーブルが作成され、データがデータテーブルに書き込まれている。
パラメーター
パラメーター | 説明 |
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) // 配信タスクの作成に成功しました
}