Untuk mengirimkan data dari tabel data Tablestore ke Bucket OSS (Object Storage Service), Anda dapat memanggil operasi CreateDeliveryTask guna membuat tugas pengiriman.
Pastikan bahwa versi Tablestore SDK untuk Go yang terpasang mendukung fitur pengiriman data.
Prasyarat
OSS telah diaktifkan. Sebuah bucket dibuat di wilayah tempat instance Tablestore diterapkan. Untuk informasi lebih lanjut, lihat Aktifkan OSS.
Peran terkait layanan Tablestore (AliyunServiceRoleForOTSDataDelivery) dibuat di konsol Tablestore. Nama ARN peran tersebut dicatat. Untuk informasi lebih lanjut, lihat Buat Tugas Pengiriman Data.
Anda dapat melakukan operasi berikut di konsol RAM untuk mendapatkan ARN dari peran terkait layanan Tablestore (AliyunServiceRoleForOTSDataDelivery):
Di halaman Roles, cari AliyunServiceRoleForOTSDataDelivery. Lalu, klik nama peran RAM. Di halaman detail peran, Anda dapat melihat dan menyalin informasi ARN tentang peran tersebut.
Sebuah instance TableStoreClient diinisialisasi. Untuk informasi lebih lanjut, lihat Inisialisasi Klien Tablestore.
Tabel data dibuat, dan data ditulis ke tabel data tersebut.
Parameter
Parameter | Deskripsi |
TableName | Nama tabel data. |
TaskName | Nama tugas pengiriman. Nama harus memiliki panjang 3 hingga 16 karakter dan hanya boleh berisi huruf kecil, angka, dan tanda hubung (-). Nama harus dimulai dan diakhiri dengan huruf kecil atau angka. |
TaskConfig | Konfigurasi tugas pengiriman, yang mencakup konten berikut:
|
TaskType | Jenis tugas pengiriman. Nilai default: BaseIncTask. Nilai valid:
|
Contoh
Kode sampel berikut memberikan contoh cara membuat tugas pengiriman untuk tabel data:
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)
}