经典 SDK 和高性能 SDK 的比较

以下是经典 SDK 升级至高性能 SDK 后的变更摘要:

  • OpenClient:您需要为新版本指定 DBSCHEMAPIPE。以前,您只需要指定 NAME

  • OpenChannel

    • 您只需要为新版本指定通道名称即可。以前,您需要指定 DBSCHEMATABLEERROR_OPTION

    • 在新版本中,OpenChannelResult 将返回给您,其中包含通道实体以及通道打开时的 channelStatus。与旧版本相比,您无需通过额外 RPC 调用将上次提交的令牌提取到 Snowflake。

  • InsertRows 已重命名为 AppendRows

  • CloseChannel:之前 Snowpipe Streaming 会进行异步调用,等待令牌完全提交,然后返回一个未来的对象供用户提取结果。新版本目前不支持此功能。

  • GetLatestCommittedOffsetTokens:这是批处理 API,用于获取当前客户端所开通道的最新偏移令牌,且不允许经典 SDK 中的部分失败。在新版本 SDK 中,允许获取客户端未打开的最新偏移令牌,此 API 也允许部分失败。

  • isValid 在新版本中已移除。

下表显示了经典 SDK 和高性能 SDK 之间的 API 区别:

SnowflakeStreamingIngestClientFactorySnowflakeStreamingIngestClientFactory.Builder

经典

高性能

备注

builder(String name)

builder(String clientName, String dbName, String schemaName, String pipeName)

请注意,经典版本中的 name = 高性能版本中的 clientName

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()

不适用

已移除。

语言: 中文