如果要表格存储数据表中的数据投递到OSS Bucket中存储,您可以使用CreateDeliveryTask接口创建一个投递任务。
表格存储Java SDK从5.10.3版本开始支持数据湖投递功能,请确保已安装正确的表格存储Java SDK。关于表格存储Java SDK版本的更多信息,请参见Java SDK历史迭代版本。
前提条件
已开通OSS服务且在表格存储实例所在地域创建Bucket。具体操作,请参见开通OSS服务。
已通过控制台创建表格存储服务关联角色并记录角色的ARN。具体操作,请参见创建投递任务。
服务关联角色的ARN请通过RAM控制台获取,具体操作如下:
在RAM访问控制台的角色界面,搜索AliyunServiceRoleForOTSDataDelivery后,单击角色名称,在角色详情界面,可以查看和复制角色的ARN信息。
已初始化OTSClient。具体操作,请参见初始化Tablestore Client。
已创建数据表并写入数据。
参数
参数 | 说明 |
---|
参数 | 说明 |
---|---|
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");
}
- 本页导读 (1)
- 前提条件
- 参数
- 示例