如果要表格存儲數據表中的數據投遞到OSS Bucket中存儲,您可以使用CreateDeliveryTask接口創建一個投遞任務。
表格存儲Java SDK從5.10.3版本開始支持數據湖投遞功能,請確保已安裝正確的表格存儲Java SDK。關于表格存儲Java 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為可選配置,指定按某一列數據的時間進行分區。如果不設置此參數,則按數據寫入表格存儲的時間進行分區。
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");
}