Vergleich zwischen dem klassischen SDK und dem leistungsstarken SDK¶
Hier finden Sie eine Zusammenfassung dessen, was sich vom klassischen SDK zum leistungsstarken SDK geändert hat:
OpenClient
: Sie müssen dieDB
,SCHEMA
undPIPE
für die neue Version angeben. Zuvor mussten Sie nurNAME
angeben.OpenChannel
:Sie müssen nur den Kanalnamen für die neue Version angeben. Zuvor mussten Sie die Felder
DB
,SCHEMA
,TABLE
undERROR_OPTION
angeben.In der neuen Version erhalten Sie ein
OpenChannelResult
zurück, das sowohl die Kanalentität als auch denchannelStatus
enthält, wenn der Kanal geöffnet wird. Im Vergleich zur alten Version müssen Sie das letzte übertragene Token nicht durch einen weiteren RPC-Aufruf in Snowflake abrufen.
InsertRows
wird inAppendRows
umbenannt.CloseChannel
: Zuvor hat Snowpipe Streaming einen asynchronen Aufruf durchgeführt, um darauf zu warten, dass der Token vollständig übergeben wird und ein Future-Objekt zurückgibt, damit der Benutzer das Ergebnis abrufen kann. Dies wird in der neuen Version derzeit nicht unterstützt.GetLatestCommittedOffsetTokens
: Dies ist ein API-Batch, um die letzten Offset-Token der von diesem Client geöffneten Kanäle zu erhalten, und erlaubt keine Teilausfälle im klassischen SDK. Im neuen SDK ist es erlaubt, die letzten Offset-Token zu holen, die nicht vom Client geöffnet wurden, und diese API erlaubt auch Teilausfälle.isValid
wird in der neuen Version entfernt.
Die folgenden Tabellen zeigen die API-Unterschiede zwischen dem klassischen SDK und dem leistungsstarken SDK:
SnowflakeStreamingIngestClientFactory und SnowflakeStreamingIngestClientFactory.Builder
Klassisch |
Leistungsstark |
Anmerkungen |
---|---|---|
|
|
Beachten Sie, dass |
SnowflakeStreamingIngestClient
Klassisch
Leistungsstark
Anmerkungen
String getName()
String getClientName()
Nur Änderung des API-Namens; es werden die gleichen Informationen zurückgegeben.
N/A
String getDBName()
Neue API.
N/A
String getPipeName()
Neue API.
N/A
String getSchemaName()
Neue API.
SnowflakeStreamingIngestChannel
openChannel(OpenChannelRequest-Anfrage)
OpenChannelResult
openChannel(String channelName, String offsetToken)
Unterschiedliche Anfrage-Argumente und Rückgabewerte.
Map<String,String> getLatestCommittedOffsetTokens
(List<SnowflakeStreamingIngestChannel> channels)
Map<Zeichenfolge, Zeichenfolge> getLatestCommittedOffsetTokens
(List<Zeichenfolge> channelNames)
Verschiedene Anfrage-Argumente. Sie können nun den Status von Kanälen abrufen, die von anderen Clients geöffnet wurden und möglicherweise nicht zu Ihrem Client gehören.
N/A
ChannelStatusBatch getChannelStatuses(List<Zeichenfolge> channelNames)
Neue API.
Void dropChannel(DropChannelRequest request)
Void dropChannel(String channelName)
Anderes Argument für die Anfrage.
Void setRefreshToken(String refreshToken)
N/A
Nur erforderlich für OAuth.
SnowflakeStreamingIngestChannel
Klassisch
Leistungsstark
Anmerkungen
InsertValidationResponse insertRow(Map<Zeichenfolge, Objekt> row, String offsetToken)
AppendResult appendRow(Map<Zeichenfolge, Objekt> row, String offsetToken)
API-Name geändert. Der Antworttyp hat sich geändert, da es keine Validierung auf dem Client mehr gibt.
InsertValidationResponse insertRow(Iterable<Zuordnung<Zeichenfolge, Objekt>> row, String startOffsetToken, String endOffsetToken)
AppendResult appendRows(Iterable<Zuordnung<Zeichenfolge, Objekt>> row, String startOffsetToken, String endOffsetToken)
Der Antworttyp hat sich geändert, da es keine Validierung auf dem Client mehr gibt.
InsertValidationResponse insertRow(Iterable<Zuordnung<Zeichenfolge, Objekt>> row, String offsetToken)
N/A
Entfernt
String getTableName()
N/A
Entfernt
String getFullyQualifiedTableName()
N/A
Entfernt
N/A
String getPipeName()
Neue API.
N/A
String getFullyQualifiedPipeName()
Neue API.
String getName()
String getChannelName()
API-Namensänderung.
String getFullyQualifiedName()
String getFullyQualifiedChannelName()
API-Namensänderung.
Map<Zeichenfolge, ColumnProperties> getTableSchema()
N/A
Entfernt
N/A
ChannelStatus getChannelStatus()
Neue API.
CompletableFuture<Void> close()
Void close()
Der Rückgabetyp wurde geändert, aber die Verhaltensweise ist dieselbe.
CompletableFuture<Void> close(boolean drop)
Void drop()
API-Name wurde geändert, aber die Verhaltensweise ist dieselbe.
Boolean isValid()
N/A
Entfernt