Comparação entre o SDK clássico e o SDK de alto desempenho¶
Aqui está um resumo do que mudou do SDK clássico para o SDK de alto desempenho:
OpenClient
: você precisa especificarDB
,SCHEMA
ePIPE
para a nova versão. Anteriormente, você só precisava especificarNAME
.OpenChannel
:Você só precisa especificar o nome do canal para a nova versão. Anteriormente, você precisava especificar
DB
,SCHEMA
,TABLE
eERROR_OPTION
.Na nova versão, um
OpenChannelResult
é retornado a você contendo a entidade do canal e ochannelStatus
quando o canal é aberto. Você não precisará buscar o último token confirmado por meio de outra chamada RPC para o Snowflake, em comparação com a versão antiga.
InsertRows
é renomeado paraAppendRows
.CloseChannel
: anteriormente, o Snowpipe Streaming fazia uma chamada assíncrona para aguardar a confirmação completa do token e retornava um objeto future para que o usuário recuperasse o resultado. No momento, isso não é compatível com a nova versão.GetLatestCommittedOffsetTokens
: esta é uma API em lote para obter os tokens de deslocamento mais recentes dos canais abertos por este cliente e não permite falhas parciais no SDK clássico. No novo SDK, é permitido buscar os tokens de deslocamento mais recentes que não foram abertos pelo cliente e essa API também permite falhas parciais.isValid
foi removido na nova versão.
As tabelas a seguir mostram as diferenças da API entre o SDK clássico e o SDK de alto desempenho:
SnowflakeStreamingIngestClientFactory e SnowflakeStreamingIngestClientFactory.Builder
Clássico |
Alto desempenho |
Notas |
---|---|---|
|
|
Observe que |
SnowflakeStreamingIngestClient
Clássico
Alto desempenho
Notas
String getName()
String getClientName()
Mudança de nome de API apenas; as mesmas informações são retornadas.
N/A
String getDBName()
Nova API.
N/A
String getPipeName()
Nova API.
N/A
String getSchemaName()
Nova API.
SnowflakeStreamingIngestChannel
openChannel (solicitação OpenChannelRequest)
OpenChannelResult
openChannel (cadeia de caracteres channelName, cadeia de caracteres offsetToken)
Diferentes argumentos de solicitação e valores de retorno.
Map<String,String> getLatestCommittedOffsetTokens
(List<SnowflakeStreamingIngestChannel> channels)
Map<String, String> getLatestCommittedOffsetTokens
(List<String> channelNames)
Argumentos de solicitação diferentes. Agora é possível buscar o status dos canais abertos por outros clientes e que potencialmente não pertencem ao cliente.
N/A
ChannelStatusBatch getChannelStatuses(List<Cadeia de caracteres> channelNames)
Nova API.
Void dropChannel(DropChannelRequest request)
Void dropChannel(String channelName)
Argumento de solicitação diferente.
Void setRefreshToken(String refreshToken)
N/A
Necessário apenas para OAuth.
SnowflakeStreamingIngestChannel
Clássico
Alto desempenho
Notas
InsertValidationResponse insertRow(Map<String, Object> row, String offsetToken)
AppendResult appendRow(Map<String, Object> row, String offsetToken)
Nome da API alterado. O tipo de resposta foi alterado porque não há mais validação no cliente.
InsertValidationResponse insertRow(Iterable<Map<String, Object>> row, String startOffsetToken, String endOffsetToken)
AppendResult appendRows(Iterable<Map<String, Object>> row, String startOffsetToken, String endOffsetToken)
O tipo de resposta foi alterado porque não há mais validação no cliente.
InsertValidationResponse insertRow(Iterable<Map<String, Object>> row, String offsetToken)
N/A
Removido.
String getTableName()
N/A
Removido.
String getFullyQualifiedTableName()
N/A
Removido.
N/A
String getPipeName()
Nova API.
N/A
String getFullyQualifiedPipeName()
Nova API.
String getName()
String getChannelName()
Alteração do nome da API.
String getFullyQualifiedName()
String getFullyQualifiedChannelName()
Alteração do nome da API.
Map<Cadeia de caracteres, ColumnProperties> getTableSchema()
N/A
Removido.
N/A
ChannelStatus getChannelStatus()
Nova API.
CompletableFuture<Void> close()
Void close()
O tipo de retorno é alterado, mas o comportamento é o mesmo.
CompletableFuture<Void> close(boolean drop)
Void drop()
O nome da API é alterado, mas o comportamento é o mesmo.
Boolean isValid()
N/A
Removido.