如果要表格存储数据表中的数据投递到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");
}