UpsertSession
概述
UpsertSession
接口用于管理和操作数据插入或更新的会话。通过该接口,用户可以获取会话的相关信息、提交或中止会话、创建新的记录对象等。
初始化
通常由TableTunnel#buildUpsertSession方法创建 Builder, Builder接口的build方法来构建 UpsertSession。
方法
获取Session ID
String getId();
返回当前会话的ID,可以基于这个ID进行重建会话操作。
获取当前 Quota
public String getQuotaName();
返回当前使用的Quota名称,注意不是QuotaNickName。
获取Session状态
String getStatus() throws TunnelException;
返回当前会话的状态码,可能的状态包括:
- normal 正常
- committing 提交中
- committed 已提交
- expired 过期
- critical 错误
- aborted 已中止
获取表结构
TableSchema getSchema();
返回当前会话写入的表的表结构。
提交UpsertSession
void commit(boolean async) throws TunnelException;
提交当前会话。可以选择是否异步提交。 当选择异步提交时,提交操作像服务端发送提交请求后立即返回,不会等待数据提交完成,这也意味着数据不会立即可见。
中止UpsertSession
void abort() throws TunnelException;
中止当前会话。
清理客户端本地资源
void close();
清理客户端本地资源。
创建一个Record对象
Record newRecord();
创建并返回一个新的 Record
对象。
这个Record
是UpsertRecord
的实例,这个实例包含执行upsert操作必要的一些信息。
因此当使用Upsert操作时,永远记得使用这个方法,来获取Record
的实例。
构建UpsertStream
UpsertStream.Builder buildUpsertStream();
返回一个用于构建 UpsertStream
的 Builder
对象。
UpsertStream
是用于执行数据插入或更新操作的核心接口,详见 UpsertStream 接口文档。
Builder 接口
UpsertSession.Builder
接口用于构建 UpsertSession
对象。
通常由TableTunnel#buildUpsertSession 方法创建。
获取和设置Upsert ID
String getUpsertId();
UpsertSession.Builder setUpsertId(String upsertId);
获取和设置 Upsert ID
。
获取和设置Schema名称
String getSchemaName();
UpsertSession.Builder setSchemaName(String schemaName);
获取和设置 Schema
名称。
获取和设置PartitionSpec
String getPartitionSpec();
UpsertSession.Builder setPartitionSpec(PartitionSpec spec);
UpsertSession.Builder setPartitionSpec(String spec);
获取和设置 PartitionSpec
。
获取和设置SlotNum
long getSlotNum();
UpsertSession.Builder setSlotNum(long slotNum);
获取和设置 SlotNum
。
获取和设置CommitTimeout
long getCommitTimeout();
UpsertSession.Builder setCommitTimeout(long commitTimeoutMs);
获取和设置提交超时时间(毫秒)。
设置Netty进行网络IO的线程数
UpsertSession.Builder setNetworkThreadNum(int threadNum);
设置Netty进行网络IO的线程池(EventLoop)的线程数,默认为1。
设置最大并发数
UpsertSession.Builder setConcurrentNum(int concurrentNum);
设置最大并发数(允许同时存在的Channel数量 ),默认为20,设为小于0为无限制。
设置连接超时时间
UpsertSession.Builder setConnectTimeout(long timeout);
设置建立连接的超时时间(毫秒),默认为180 * 1000。
设置请求响应超时时间
UpsertSession.Builder setReadTimeout(long timeout);
设置请求响应的超时时间(毫秒),默认为300 * 1000。