Untuk mengirimkan data dari tabel data Tablestore ke Bucket OSS Object Storage Service (OSS), Anda dapat memanggil operasi CreateDeliveryTask untuk membuat tugas pengiriman.
Tablestore SDK for Java V5.10.3 dan versi lebih baru mendukung fitur pengiriman data. Pastikan Anda menggunakan versi Tablestore SDK for Java yang mendukung fitur ini. Untuk informasi lebih lanjut tentang Tablestore SDK for Java, lihat Riwayat Versi Tablestore SDK for Java.
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) telah dibuat di konsol Tablestore. Nama Sumber Daya Alibaba Cloud (ARN) dari peran tersebut telah 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 OTSClient telah diinisialisasi. Untuk informasi lebih lanjut, lihat Inisialisasi Klien Tablestore.
Tabel data telah dibuat, dan data telah ditulis ke tabel data.
Parameter
Parameter | Deskripsi |
|---|---|
tableName | Nama tabel. |
taskName | Nama tugas pengiriman. Nama harus memiliki panjang 3 hingga 16 karakter dan hanya boleh berisi huruf kecil, angka, dan tanda hubung (-). Harus dimulai dan diakhiri dengan huruf kecil atau angka. |
taskConfig | Konfigurasi tugas pengiriman. Nilai valid:
|
taskType | Mode pengiriman data. Nilai default: BASE_INC. Nilai valid:
|
Contoh
Kode sampel berikut memberikan contoh cara membuat tugas pengiriman untuk tabel data:
private static void createDeliveryTask(SyncClient client) {
String tableName = "<TABLE_NANE>";
String taskName = "<TASK_NAME>";
OSSTaskConfig taskConfig = new OSSTaskConfig();
taskConfig.setOssPrefix("sampledeliverytask/year=$yyyy/month=$MM");
taskConfig.setOssBucket("datadeliverytest");
taskConfig.setOssEndpoint("oss-cn-hangzhou.aliyuncs.com");
taskConfig.setOssStsRole("acs:ram::17************45:role/aliyunserviceroleforotsdatadelivery"); // eventColumn bersifat opsional. eventColumn menentukan bahwa data dipartisi berdasarkan waktu kolom. Jika Anda tidak menentukan parameter ini, data dipartisi berdasarkan waktu ketika data ditulis ke Tablestore.
EventColumn eventColumn = new EventColumn("PK1", EventTimeFormat.RFC1123);
taskConfig.setEventTimeColumn(eventColumn);
taskConfig.addParquetSchema(new ParquetSchema("PK1", "PK1", DataType.UTF8));
taskConfig.addParquetSchema(new ParquetSchema("PK2", "PK2", DataType.BOOL));
taskConfig.addParquetSchema(new ParquetSchema("Col1", "Col1", DataType.UTF8));
CreateDeliveryTaskRequest request = new CreateDeliveryTaskRequest();
request.setTableName(tableName);
request.setTaskName(taskName);
request.setTaskConfig(taskConfig);
request.setTaskType(DeliveryTaskType.BASE_INC);
CreateDeliveryTaskResponse response = client.createDeliveryTask(request);
System.out.println("resquestID: "+ response.getRequestId());
System.out.println("traceID: " + response.getTraceId());
System.out.println("create delivery task success");
}