Comparaison entre le SDK classique et le SDK haute performance¶
Voici un résumé de ce qui a changé entre le SDK classique et le SDK haute performance :
OpenClient
: vous devez spécifier lesDB
,SCHEMA
etPIPE
pour la nouvelle version. Auparavant, il suffisait de spécifier leNAME
.OpenChannel
:Il vous suffit de spécifier le nom du canal pour la nouvelle version. Auparavant, vous deviez spécifier les
DB
,SCHEMA
,TABLE
etERROR_OPTION
.Dans la nouvelle version, un
OpenChannelResult
contenant à la fois l’entité du canal et lechannelStatus
lors de l’ouverture du canal vous est renvoyé. Vous n’aurez pas besoin de récupérer le dernier jeton engagé par le biais d’un autre appel à RPC dans Snowflake, contrairement à l’ancienne version.
InsertRows
est renomméAppendRows
.CloseChannel
: auparavant, Snowpipe Streaming passait un appel asynchrone pour attendre que le jeton soit entièrement engagé et renvoyer un objet futur pour que l’utilisateur puisse récupérer le résultat. Cette fonction n’est actuellement pas prise en charge dans la nouvelle version.GetLatestCommittedOffsetTokens
: il s’agit de l’API du lot pour obtenir les derniers jetons de décalage des canaux ouverts par ce client et n’autorise pas les échecs partiels dans le SDK classique. Dans le nouveau SDK, il est permis de récupérer les derniers jetons de décalage qui n’ont pas été ouverts par le client et cette API autorise également les échecs partiels.isValid
est supprimé dans la nouvelle version.
Les tableaux suivants montrent les différences d’API entre le SDK classique et le SDK haute performance :
SnowflakeStreamingIngestClientFactory et SnowflakeStreamingIngestClientFactory.Builder
Classique |
Haute performance |
Remarques |
---|---|---|
|
|
Notez que |
SnowflakeStreamingIngestClient
Classique
Haute performance
Remarques
String getName()
String getClientName()
Changement du nom de l’API uniquement ; les mêmes informations sont renvoyées.
N/A
String getDBName()
Nouvelle API.
N/A
String getPipeName()
Nouvelle API.
N/A
String getSchemaName()
Nouvelle API.
SnowflakeStreamingIngestChannel
openChannel(OpenChannelRequest request)
OpenChannelResult
openChannel(String channelName, String offsetToken)
Différents arguments de requête et valeurs de retour.
Map<String,String> getLatestCommittedOffsetTokens
(List<SnowflakeStreamingIngestChannel> channels)
Map<String, String> getLatestCommittedOffsetTokens
(List<String> channelNames)
Différents arguments de requête. Il permet désormais de récupérer le statut des canaux qui ont été ouverts par d’autres clients et qui n’appartiennent potentiellement pas au client.
N/A
ChannelStatusBatch getChannelStatuses(List<String> channelNames)
Nouvelle API.
Void dropChannel(DropChannelRequest request)
Void dropChannel(String channelName)
L’argument de la requête est différent.
Void setRefreshToken(String refreshToken)
N/A
Uniquement requis pour OAuth.
SnowflakeStreamingIngestChannel
Classique
Haute performance
Remarques
InsertValidationResponse insertRow(Map<String, Object> row, String offsetToken)
AppendResult appendRow(Map<String, Object> row, String offsetToken)
Nom de l’API modifié. Le type de réponse a changé parce qu’il n’y a plus de validation sur le client.
InsertValidationResponse insertRow(Iterable<Map<String, Object>> row, String startOffsetToken, String endOffsetToken)
AppendResult appendRows(Iterable<Map<String, Object>> row, String startOffsetToken, String endOffsetToken)
Le type de réponse a changé parce qu’il n’y a plus de validation sur le client.
InsertValidationResponse insertRow(Iterable<Map<String, Object>> row, String offsetToken)
N/A
Supprimé.
String getTableName()
N/A
Supprimé.
String getFullyQualifiedTableName()
N/A
Supprimé.
N/A
String getPipeName()
Nouvelle API.
N/A
String getFullyQualifiedPipeName()
Nouvelle API.
String getName()
String getChannelName()
Changement de nom d’API.
String getFullyQualifiedName()
String getFullyQualifiedChannelName()
Changement de nom d’API.
Map<String, ColumnProperties> getTableSchema()
N/A
Supprimé.
N/A
ChannelStatus getChannelStatus()
Nouvelle API.
CompletableFuture<Void> close()
Void close()
Le type de retour est modifié, mais le comportement est le même.
CompletableFuture<Void> close(boolean drop)
Void drop()
Changement du nom de l’API, mais le comportement est le même.
Boolean isValid()
N/A
Supprimé.