클래식 SDK 와 고성능SDK 비교¶
다음은 기존 SDK 에서 고성능 SDK 로 변경된 내용을 요약한 것입니다.
OpenClient
: 새 버전의 경우DB
,SCHEMA
,PIPE
fmf 지정해야 합니다. 이전에는NAME
만 지정하면 됐습니다.OpenChannel
:새 버전의 채널 이름만 지정하면 됩니다. 이전에는
DB
,SCHEMA
,TABLE
,ERROR_OPTION
을 지정해야 했습니다.새 버전에서는 채널이 열릴 때
channelStatus
뿐만 아니라 채널 엔터티가 모두 포함된OpenChannelResult
가 반환됩니다. 레거시 버전과 달리 Snowflake에 RPC 호출을 통해 마지막으로 커밋된 토큰을 다시 가져올 필요가 없습니다.
InsertRows
의 이름이AppendRows
로 변경됩니다.CloseChannel
: 이전에는 Snowpipe Streaming이 비동기 호출을 수행하여 토큰이 완전히 커밋될 때까지 기다렸다가 사용자가 결과를 가져올 수 있도록 미래의 오브젝트를 반환했습니다. 현재 새 버전에서는 이 기능이 지원되지 않습니다.GetLatestCommittedOffsetTokens
: 이는 이 클라이언트가 개설한 채널의 최신 오프셋 토큰을 가져오는 배치 API 이며, 클래식 SDK 에서 부분적인 실패를 허용하지 않습니다. 새로운 SDK 에서는 클라이언트가 열지 않은 최신 오프셋 토큰을 가져올 수 있으며, 이 API 는 부분적인 실패도 허용합니다.isValid
은 새 버전에서 제거되었습니다.
다음 테이블은 클래식 SDK 및 고성능 SDK 의 API 차이점을 보여줍니다.
SnowflakeStreamingIngestClientFactory 및 SnowflakeStreamingIngestClientFactory.Builder
클래식 |
고성능 |
참고 |
---|---|---|
|
|
클래식 버전의 |
SnowflakeStreamingIngestClient
클래식
고성능
참고
String getName()
String getClientName()
API 이름 바꾸기만 가능하며, 동일한 정보가 반환됩니다.
N/A
String getDBName()
신규 API.
N/A
String getPipeName()
신규 API.
N/A
String getSchemaName()
신규 API.
SnowflakeStreamingIngestChannel
openChannel(OpenChannelRequest 요청)
OpenChannelResult
openChannel(String channelName, String offsetToken)
다른 요청 인자와 반환 값.
Map<String,String> getLatestCommittedOffsetTokens
(List<SnowflakeStreamingIngestChannel> channels)
Map<String, String> getLatestCommittedOffsetTokens
(List<String> channelNames)
다른 요청 인수. 이제 다른 클라이언트가 열었으나 클라이언트의 소유가 아닐 가능성이 있는 채널 상태를 가져올 수 있습니다.
N/A
ChannelStatusBatch getChannelStatuses(List<String> channelNames)
신규 API.
Void dropChannel(DropChannelRequest request)
Void dropChannel(String channelName)
다른 요청 인자.
Void setRefreshToken(String refreshToken)
N/A
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)
N/A
제거되었습니다.
String getTableName()
N/A
제거되었습니다.
String getFullyQualifiedTableName()
N/A
제거되었습니다.
N/A
String getPipeName()
신규 API.
N/A
String getFullyQualifiedPipeName()
신규 API.
String getName()
String getChannelName()
API 이름 바꾸기.
String getFullyQualifiedName()
String getFullyQualifiedChannelName()
API 이름 바꾸기.
Map<String, ColumnProperties> getTableSchema()
N/A
제거되었습니다.
N/A
ChannelStatus getChannelStatus()
신규 API.
CompletableFuture<Void> close()
Void close()
반환 유형은 변경되었지만 동작은 동일합니다.
CompletableFuture<Void> close(boolean drop)
Void drop()
API 이름이 변경되었지만, 동작은 동일합니다.
Boolean isValid()
N/A
제거되었습니다.