TableTunnel接口定义如下,详情请参见Java-sdk-doc。
public class TableTunnel {
public DownloadSession createDownloadSession(String projectName, String tableName);
public DownloadSession createDownloadSession(String projectName, String tableName, PartitionSpec partitionSpec);
public UploadSession createUploadSession(String projectName, String tableName,boolean overwrite);
public UploadSession createUploadSession(String projectName, String tableName, PartitionSpec partitionSpec,boolean overwrite);
public DownloadSession getDownloadSession(String projectName, String tableName, PartitionSpec partitionSpec, String id);
public DownloadSession getDownloadSession(String projectName, String tableName, String id);
public UploadSession getUploadSession(String projectName, String tableName, PartitionSpec partitionSpec, String id);
public UploadSession getUploadSession(String projectName, String tableName, String id);
}
接口说明如下: 生命周期:从TableTunnel实例被创建开始,一直到程序结束。 TableTunnel提供创建UploadSession对象和DownloadSession对象的方法。数据的上传和下载分别由TableTunnel.UploadSession和TableTunnel.DownloadSession这两个Session实现。 对一张表或分区上传下载的过程,称为一个Session。Session由一或多个访问Tunnel RESTful API的HTTP Request组成。 在UploadSession中,每个RecordWriter对应一个HTTP Request,由一个Block ID标识,对应服务端一个文件(Block ID即对应的文件名)。 同一Session中,使用同一Block ID多次打开RecordWriter的行为会导致数据覆盖,最后一个调用close()的RecordWriter上传的数据会被保留。该特性可用于Block的上传失败重传。 TableTunnel的UploadSession中: 如果没有指定boolean overwrite参数,则默认是INSERT INTO语义。 如果指定了boolean overwrite参数,且传入的参数值为True,则默认是INSERT OVERWRITE语义。 如果指定了boolean overwrite参数,且传入的参数值为False,则默认是INSERT INTO语义。 两种语义的说明如下: INSERT INTO,即对同一张表或分区的多个、多次上传Session互不影响,每个Session上传的数据会位于不同的目录中。 INSERT OVERWRITE,即当次上传会覆盖对应表或分区里的所有数据。如果使用该模式请不要对同一表或分区执行并发操作。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。