웨어하우스 업데이트¶
웨어하우스 업데이트는 커넥터 일시 중지 단계 바로 뒤에 호출할 수 있는 단계입니다. 이 단계를 통해 사용자는 Connector Configuration
중에 설정된 웨어하우스를 업데이트할 수 있으며, 이는 SDK 제어 작업을 실행하는 데 사용됩니다. 사용자 지정 논리로 덮어쓰는 경우, 사용자 지정 Java 핸들러를 지정하려면 이 프로시저를 교체해야 합니다.
이 프로시저를 호출하려면 사용자에게 ADMIN
애플리케이션 역할이 할당되어 있어야 합니다.
웨어하우스 업데이트 단계는 내부적으로 여러 단계로 구성됩니다. 단계 중 일부는 완전히 사용자 지정 가능하며, 기본적으로는 아무 작업도 수행하지 않습니다. 각 단계는 다음과 같습니다.
상태 유효성 검사
입력 유효성 검사
내부 콜백
SDK 콜백
구성 업데이트
요구 사항¶
웨어하우스 구성을 위해서는 Native App 설치 중에 최소한 다음 SQL 파일을 실행해야 합니다.
core.sql
configuration/app_config.sql
configuration/connector_configuration.sql
configuration/update_warehouse.sql
상태 유효성 검사¶
웨어하우스 업데이트를 수행하려면 커넥터의 내부 상태가 PAUSED
여야 합니다.
이 유효성 검사는 UpdateWarehouseHandlerBuilder
를 사용하거나 저장 프로시저를 덮어쓰는 방식으로 덮어쓸 수 없습니다. 하지만 이런 종류의 유효성 검사가 필요하지 않은 사용자 지정 핸들러를 구현하는 것도 가능합니다.
입력 유효성 검사¶
입력은 새 웨어하우스가 포함된 String
이어야 합니다. 제공되는 이 웨어하우스는 UpdateWarehouseInputValidator
구현을 사용하여 검증됩니다. 기본적으로 다음 유효성 검사가 수행되며, 필수 기준이 충족되지 않으면 예외가 발생합니다.
제공되는 웨어하우스가 유효한 Snowflake 식별자인지 확인합니다.
새로운 웨어하우스가 이미 구성된 웨어하우스와 다른지 확인합니다.
애플리케이션 인스턴스가 새 웨어하우스에 액세스할 수 있는지 확인합니다(
SHOW WAREHOUSES
쿼리 사용).
이 입력 유효성 검사 단계는 UpdateWarehouseHandlerBuilder
를 사용하고 새로운 사용자 지정 핸들러 인스턴스를 빌드해야 사용자 지정할 수 있습니다.
내부 콜백¶
내부 콜백도 사용자 지정이 가능한 단계입니다. 기본적으로 PUBLIC.UPDATE_WAREHOUSE_INTERNAL
프로시저를 호출하며, 내부 콜백의 기본 구현은 'response_code': 'OK'
를 반환합니다. 이 단계는 애플리케이션 개발자가 만든 작업을 변경하는 등 웨어하우스 업데이트 프로세스에 대한 사용자 지정 논리를 제공하는 데 사용할 수 있습니다. 콜백은 SQL 스크립트를 통해 덮어쓰거나 UpdateWarehouseHandlerBuilder
를 사용하여 UpdateWarehouseCallback
인터페이스의 사용자 지정 구현을 제공함으로써 덮어쓸 수 있습니다.
SDK 콜백¶
SDK 콜백은 내부 콜백 단계와 유사합니다. 그 목적은 Task Reactor에 의해 생성된 작업과 같이 SDK 제어 구성 요소를 업데이트하는 것입니다.
이 유효성 검사는 UpdateWarehouseHandlerBuilder
를 사용하거나 저장 프로시저를 덮어쓰는 방식으로 덮어쓸 수 없습니다. 이러한 종류의 유효성 검사가 없는 사용자 지정 핸들러를 구현할 수도 있지만, 이는 권장되지 않습니다.
구성 업데이트¶
유효성 검사 및 콜백이 성공적으로 통과되면 새 웨어하우스가 내부 APP_CONFIG
테이블에 저장됩니다. 이를 처리하는 서비스는 제공된 웨어하우스를 connector_configuration
키에 저장하여 이전에 구성한 값을 대체합니다.
구성 보기¶
ADMIN
및 VIEWER
애플리케이션 역할이 사용할 수 있는 PUBLIC.CONNECTOR_CONFIGURATION
뷰가 있으며, 이 뷰는 내부 APP_CONFIG
테이블에서 현재 구성을 반환합니다.
응답¶
성공 응답¶
프로시저가 성공적으로 완료되면 OK
응답 코드가 포함된 응답을 반환합니다.
{
"response_code": "OK"
}
오류 응답¶
오류가 발생한 경우 응답 형식은 다음과 같습니다.
{
"response_code": "<ERROR_CODE>",
"message": "<error message>"
}
가능한 오류 코드는 다음과 같습니다.
INVALID_CONNECTOR_STATUS
- 커넥터 상태가 잘못되었습니다. 필요한 상태:[PAUSED]
INTERNAL_ERROR
- 내부적으로 문제가 발생했습니다. 메시지에는 설명이 포함되어야 합니다.PROCEDURE_NOT_FOUND
- 호출된 프로시저가 없습니다.UNKNOWN_SQL_ERROR
- 내부 프로시저 호출 시 예상치 못한 일이 발생할 때 발생하는 오류입니다.INVALID_RESPONSE
- 이 오류는 내부 프로시저에서 수신한 응답에response_code
가 포함되어 있지 않거나 오류 응답에message
가 포함되어 있지 않고response_code
가 포함된 경우 발생합니다.UNKNOWN_ERROR
- 예기치 않은 문제가 발생했음을 의미합니다(throw된 예외 메시지가 전달됨).EMPTY_IDENTIFIER
- 제공된 식별자가 NULL 값 또는 빈 문자열입니다.INVALID_IDENTIFIER
- 제공된 웨어하우스 식별자가 유효하지 않습니다.WAREHOUSE_ALREADY_USED
- 제공된 웨어하우스가 애플리케이션에서 이미 사용 중입니다.INACCESSIBLE_WAREHOUSE
- 제공된 웨어하우스는 애플리케이션 인스턴스에서 액세스를 사용할 수 없습니다.UPDATE_WAREHOUSE_INTERNAL
프로시저에서 수신한 사용자 지정 오류 코드 - 커넥터 개발자가 정의함