经典 SDK 和高性能 SDK 的比较¶
以下是经典 SDK 升级至高性能 SDK 后的变更摘要:
OpenClient
:您需要为新版本指定DB
、SCHEMA
和PIPE
。以前,您只需要指定NAME
。OpenChannel
:您只需要为新版本指定通道名称即可。以前,您需要指定
DB
、SCHEMA
、TABLE
和ERROR_OPTION
。在新版本中,
OpenChannelResult
将返回给您,其中包含通道实体以及通道打开时的channelStatus
。与旧版本相比,您无需通过额外 RPC 调用将上次提交的令牌提取到 Snowflake。
InsertRows
已重命名为AppendRows
。CloseChannel
:之前 Snowpipe Streaming 会进行异步调用,等待令牌完全提交,然后返回一个未来的对象供用户提取结果。新版本目前不支持此功能。GetLatestCommittedOffsetTokens
:这是批处理 API,用于获取当前客户端所开通道的最新偏移令牌,且不允许经典 SDK 中的部分失败。在新版本 SDK 中,允许获取客户端未打开的最新偏移令牌,此 API 也允许部分失败。isValid
在新版本中已移除。
下表显示了经典 SDK 和高性能 SDK 之间的 API 区别:
SnowflakeStreamingIngestClientFactory 和 SnowflakeStreamingIngestClientFactory.Builder
经典 |
高性能 |
备注 |
---|---|---|
|
|
请注意,经典版本中的 |
SnowflakeStreamingIngestClient
经典
高性能
备注
String getName()
String getClientName()
仅限 API 名称更改;返回相同的信息。
不适用
String getDBName()
新 API。
不适用
String getPipeName()
新 API。
不适用
String getSchemaName()
新 API。
SnowflakeStreamingIngestChannel
openChannel(OpenChannelRequest request)
OpenChannelResult
openChannel(String channelName, String offsetToken)
不同的请求实参和返回值。
Map<String,String> getLatestCommittedOffsetTokens
(List<SnowflakeStreamingIngestChannel> channels)
Map<String, String> getLatestCommittedOffsetTokens
(List<String> channelNames)
不同的请求实参。现在,它允许提取由其他客户端打开且可能不属于该客户端的通道状态。
不适用
ChannelStatusBatch getChannelStatuses(List<String> channelNames)
新 API。
Void dropChannel(DropChannelRequest request)
Void dropChannel(String channelName)
不同的请求实参。
Void setRefreshToken(String refreshToken)
不适用
仅对于 OAuth 为必需项。
SnowflakeStreamingIngestChannel
经典
高性能
备注
InsertValidationResponse insertRow(Map<String, Object> row, String offsetToken)
AppendResult appendRow(Map<String, Object> row, String offsetToken)
API 名称已更改。响应类型已更改,因为客户端上不再进行验证。
InsertValidationResponse insertRow(Iterable<Map<String, Object>> row, String startOffsetToken, String endOffsetToken)
AppendResult appendRows(Iterable<Map<String, Object>> row, String startOffsetToken, String endOffsetToken)
响应类型已更改,因为客户端上不再进行验证。
InsertValidationResponse insertRow(Iterable<Map<String, Object>> row, String offsetToken)
不适用
已移除。
String getTableName()
不适用
已移除。
String getFullyQualifiedTableName()
不适用
已移除。
不适用
String getPipeName()
新 API。
不适用
String getFullyQualifiedPipeName()
新 API。
String getName()
String getChannelName()
API 名称已更改。
String getFullyQualifiedName()
String getFullyQualifiedChannelName()
API 名称已更改。
Map<String, ColumnProperties> getTableSchema()
不适用
已移除。
不适用
ChannelStatus getChannelStatus()
新 API。
CompletableFuture<Void> close()
Void close()
返回类型已更改,但行为相同。
CompletableFuture<Void> close(boolean drop)
Void drop()
API 名称已更改,但行为相同。
Boolean isValid()
不适用
已移除。