如果要Table Store資料表中的資料投遞到OSS Bucket中儲存,您可以使用CreateDeliveryTask介面建立一個投遞任務。
Table StoreJava SDK從5.10.3版本開始支援資料湖投遞功能,請確保已安裝正確的Table StoreJava SDK。關於Table StoreJava SDK版本的更多資訊,請參見Java SDK歷史迭代版本。
前提條件
參數
參數 | 說明 |
---|---|
tableName | 資料表名稱。 |
taskName | 投遞任務名稱。 名稱只能包含英文小寫字母(a~z)、數字和虛線(-),開頭和結尾必須為英文小寫字母或數字,且長度為3~16字元。 |
taskConfig | 投遞任務配置,包括如下選項:
|
taskType | 投遞任務的類型,包括如下選項:
|
樣本
以下樣本用於為資料表建立投遞任務。
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為可選配置,指定按某一列資料的時間進行分區。如果不設定此參數,則按資料寫入Table Store的時間進行分區。
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");
}