Snowpipe Streaming API REST 엔드포인트

다음 요청 헤더는 Snowpipe Streaming REST API 의 모든 엔드포인트에 적용됩니다.

헤더

설명

Authorization

인증 토큰

X-Snowflake-Authorization-Token-Type (선택 사항)

JWT/OAuth

호스트 이름 가져오기

Get Hostname 은 Snowpipe Streaming REST API 와 상호 작용하는 데 사용되는 호스트 이름을 반환합니다. 각 계정에는 고유한 호스트 이름이 있습니다.

GET /v2/streaming/hostname

응답:

필드

타입

설명

status_code

int

고객이 내부 오류를 공개 설명서와 매핑하는 데 사용할 수 있는 상태 코드입니다.

메시지

문자열

응답 코드가 200(성공)이 아닌 경우 오류를 설명하는 설명형 오류 메시지입니다. 그렇지 않으면 응답 코드 200에 대해 비어 있습니다.

호스트 이름

문자열

계정의 행 집합 호스트 이름입니다.

교환 행 세트 범위 토큰

Exchange Rowset Scoped Token 은 Snowpipe Streaming API 관련 서비스에만 액세스할 수 있는 보안 토큰을 반환합니다. 이는 고객을 위한 보안 보호 기능을 제공합니다.

POST /oauth/token

요청:

속성

필수

구성 요소

설명

content_type

헤더

“application/x-www-form-urlencoded”

grant_type

페이로드

urn:ietf:params:oauth:grant-type:jwt-bearer

범위

페이로드

계정의 행 집합 호스트 이름

응답:

필드

타입

설명

status_code

int

고객이 내부 오류를 공개 설명서와 매핑하는 데 사용할 수 있는 상태 코드입니다.

메시지

문자열

응답 코드가 200(성공)이 아닌 경우 오류를 설명하는 설명형 오류 메시지입니다. 그렇지 않으면 응답 코드 200에 대해 비어 있습니다.

토큰

문자열

행 집합 범위 토큰입니다.

Open Channel

Open Channel 작업은 파이프 또는 테이블에 대해 새 채널을 만들거나 엽니다. 채널이 이미 존재하는 경우, Snowflake는 채널의 클라이언트 시퀀서를 범프하고 마지막으로 커밋된 오프셋 토큰을 반환합니다.

PUT /v2/streaming/databases/{databaseName}/schemas/{schemaName}/pipes/{pipeName}/channels/{channelName}

요청:

속성

필수

구성 요소

설명

databaseName

URI

데이터베이스 이름, 대/소문자 구분 안 함

schemaName

URI

스키마 이름, 대/소문자 구분 안 함

pipeName

URI

파이프 이름, 대/소문자 구분 안 함

channelName

URI

생성하거나 다시 여는 채널의 이름(대/소문자 구분 안 함)

offset_token

아니요

페이로드

채널을 열 때 오프셋 토큰을 설정하는 데 사용되는 문자열입니다.

requestId

아니요

쿼리 매개 변수

시스템을 통해 요청을 추적하는 데 사용되는 UUID

응답:

필드

타입

설명

channel_status_code

String

채널의 상태를 나타냅니다.

last_committed_offset_token

String

최근 커밋된 오프셋 토큰

데이터베이스_이름

String

채널이 속한 데이터베이스의 이름입니다.

스키마_이름

String

채널이 속한 스키마의 이름입니다.

파이프_이름

String

채널이 속한 파이프의 이름입니다.

channel_name

String

채널의 이름입니다.

rows_inserted

int

이 채널에 삽입된 모든 행의 개수입니다.

rows_parsed

int

구문 분석되었지만 반드시 이 채널에 삽입되지는 않은 모든 행의 개수입니다.

rows_errors

int

이 채널에 삽입할 때 오류가 발생하여 거부된 모든 행의 개수입니다.

last_error_offset_upper_bound

String

삽입된 행 세트의 마지막 오류에 해당하는 최신 오프셋 토큰의 상한값입니다. 마지막 오류가 있는 행으로 설정된 행의 실제 오프셋 토큰은 이 토큰이거나 채널 수집 순서에서 엄밀히 말하면 그 바로 앞의 토큰입니다.

last_error_message

String

해당 채널의 최신 오류 코드에 해당하는 사람이 읽을 수 있는 메시지로, 민감한 고객 데이터가 삭제되어 있습니다.

last_error_timestamp

timestamp_utc

마지막 오류가 발생한 타임스탬프입니다.

Snowflake_avg_processing_latency_ms

int

이 채널의 평균 e2e 처리 시간입니다.

행 추가

Append Rows 작업은 지정된 채널에 행 배치를 삽입합니다.

POST /v2/streaming/data/databases/{databaseName}/schemas/{schemaName}/pipes/{pipeName}/channels/{channelName}/rows

요청:

속성

필수

구성 요소

설명

databaseName

URI

데이터베이스 이름, 대/소문자 구분 안 함

schemaName

URI

스키마 이름, 대/소문자 구분 안 함

pipeName

URI

파이프, 대/소문자 구분 안 함

channelName

URI

채널 이름, 대/소문자 구분 안 함

연속 토큰

상태 저장 클라이언트의 경우 예, 상태 비저장 클라이언트의 경우 필수가 아닙니다

쿼리 매개 변수

Snowflake의 연속 토큰, 클라이언트와 행 시퀀스를 모두 캡슐화합니다

offsetToken

아니요

쿼리 매개 변수

배치별 오프셋 토큰을 설정하는 데 사용되는 문자열입니다.

rows

페이로드

NDJSON 형식으로 수집될 실제 데이터 페이로드입니다.

requestId

아니요

쿼리 매개 변수

시스템을 통해 요청을 추적하는 데 사용되는 UUID.

응답:

필드

타입

설명

status_code

int

고객이 내부 오류를 공개 설명서와 매핑하는 데 사용할 수 있는 상태 코드입니다.

next_continuation_token

문자열

클라이언트와 행 시퀀스를 모두 캡슐화하는 Snowflake의 다음 연속 토큰입니다. 다음 배치를 삽입하는 데 사용해야 합니다.

메시지

문자열

응답 코드가 200(성공)이 아닌 경우 오류를 설명하는 설명형 오류 메시지입니다. 그렇지 않으면 응답 코드 200에 대해 비어 있습니다.

채널 제거

Drop Channel 작업은 메타데이터와 함께 서버 측에 채널을 드롭합니다.

DELETE /v2/streaming/databases/{databaseName}/schemas/{schemaName}/pipes/{pipeName}/channels/{channelName}

요청:

속성

필수

구성 요소

설명

databaseName

URI

데이터베이스 이름, 대/소문자 구분 안 함

schemaName

URI

스키마 이름, 대/소문자 구분 안 함

pipeOrTableName

URI

파이프 또는 테이블 이름, 대/소문자 구분 안 함

channelName

URI

채널 이름, 대/소문자 구분 안 함

연속 토큰

아니요

페이로드

클라이언트와 행 시퀀스를 모두 캡슐화하는 Snowflake의 연속 토큰입니다. 제공되지 않은 경우 최신 클라이언트 시퀀서로 채널을 삭제합니다.

requestId

아니요

쿼리 매개 변수

시스템을 통해 요청을 추적하는 데 사용되는 UUID

응답:

필드

타입

설명

status_code

int

고객이 내부 오류를 공개 설명서와 매핑하는 데 사용할 수 있는 상태 코드입니다.

메시지

문자열

응답 코드가 200(성공)이 아닌 경우 오류를 설명하는 설명형 오류 메시지입니다. 그렇지 않으면 응답 코드 200에 대해 비어 있습니다.

채널 상태 일괄 가져오기

Bulk Get Channel Status 작업은 특정 클라이언트 시퀀서에 대한 채널의 상태를 반환합니다.

POST /v2/streaming/databases/{databaseName}/schemas/{schemaName}/pipes/{pipeName}:bulk-channel-status

요청:

속성

필수

구성 요소

설명

databaseName

URI

데이터베이스 이름, 대/소문자 구분 안 함

schemaName

URI

스키마 이름, 대/소문자 구분 안 함

pipeName

URI

파이프 이름, 대/소문자 구분 안 함

channelName

페이로드

고객이 상태를 확인하려는 채널 이름의 대/소문자 구분이 있는 문자열 배열입니다.

응답:

필드

타입

설명

channel_status_code

String

채널의 상태를 나타냅니다.

last_committed_offset_token

String

최근 커밋된 오프셋 토큰

데이터베이스_이름

String

채널이 속한 데이터베이스의 이름입니다.

스키마_이름

String

채널이 속한 스키마의 이름입니다.

파이프_이름

String

채널이 속한 파이프의 이름입니다.

channel_name

String

채널의 이름입니다.

rows_inserted

int

이 채널에 삽입된 모든 행의 개수입니다.

rows_parsed

int

구문 분석되었지만 반드시 이 채널에 삽입되지는 않은 모든 행의 개수입니다.

rows_errors

int

이 채널에 삽입할 때 오류가 발생하여 거부된 모든 행의 개수입니다.

last_error_offset_upper_bound

String

삽입된 행 세트의 마지막 오류에 해당하는 최신 오프셋 토큰의 상한값입니다. 마지막 오류가 있는 행으로 설정된 행의 실제 오프셋 토큰은 이 토큰이거나 채널 수집 순서에서 엄밀히 말하면 그 바로 앞의 토큰입니다.

last_error_message

String

해당 채널의 최신 오류 코드에 해당하는 사람이 읽을 수 있는 메시지로, 민감한 고객 데이터가 삭제되어 있습니다.

last_error_timestamp

timestamp_utc

마지막 오류가 발생한 타임스탬프입니다.

Snowflake_avg_processing_latency_ms

int

이 채널의 평균 e2e 처리 시간입니다.