开发者社区> 问答> 正文

TableTunnel接口怎么定义

TableTunnel接口怎么定义

展开
收起
Puppet 2020-03-19 22:39:03 2922 0
1 条回答
写回答
取消 提交回答
  • 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,即当次上传会覆盖对应表或分区里的所有数据。如果使用该模式请不要对同一表或分区执行并发操作。

    2020-03-19 22:39:35
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
继承与功能组合 立即下载
低代码开发师(初级)实战教程 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载