연결 구성 업데이트¶
연결 구성 업데이트는 커넥터를 일시 중지 한 후 바로 호출할 수 있는 단계입니다. 이 단계에서는 사용자가 소스 시스템과의 연결을 설정하는 데 필요한 속성을 업데이트하여 Snowflake에 데이터를 수집할 수 있습니다. 사용자 지정 논리로 덮어쓰는 경우, 사용자 지정 Java 핸들러를 지정하려면 이 프로시저를 교체해야 합니다.
이 프로시저를 호출하려면 사용자에게 ADMIN
애플리케이션 역할이 할당되어 있어야 합니다.
연결 구성 단계는 내부적으로 여러 단계로 구성됩니다. 단계 중 일부는 완전히 사용자 지정 가능하며, 기본적으로는 아무 작업도 수행하지 않습니다. 각 단계는 다음과 같습니다.
상태 유효성 검사
입력 유효성 검사
초안 콜백
초안 연결 유효성 검사
구성 업데이트
내부 콜백
연결 유효성 검사
상태 업데이트
요구 사항¶
연결 구성을 위해서는 Native App 설치 중에 최소한 다음 SQL 파일을 실행해야 합니다.
core.sql
configuration/app_config.sql
configuration/connection_configuration.sql
configuration/update_connection_configuration.sql
이 기능의 경우 SDK 사용자에 따라 추가 요구 사항이 있습니다.
PUBLIC.TEST_DRAFT_CONNECTION()
및PUBLIC.TEST_CONNECTION()
프로시저의 사용자 지정 구현
상태 유효성 검사¶
연결 구성 업데이트를 수행하려면 커넥터의 내부 상태가 PAUSED
여야 합니다.
이 유효성 검사는 UpdateConnectionConfigurationHandlerBuilder
를 사용하거나 저장 프로시저를 덮어쓰는 방식으로 덮어쓸 수 없습니다. 하지만 이런 종류의 유효성 검사가 필요하지 않은 사용자 지정 핸들러를 구현하는 것도 가능합니다.
입력 유효성 검사¶
입력은 속성 맵이 포함된 variant
여야 하지만, 이로는 충분하지 않은 경우가 있습니다. 이러한 이유로 SDK는 내부 저장 프로시저 PUBLIC.UPDATE_CONNECTION_CONFIG_VALIDATE(config VARIANT)
를 제공합니다. 기본적으로 이 프로시저는 'response_code': 'OK'
만 반환하며, 이를 덮어쓰면 유효성 검사 중에 제공된 구성이 업데이트될 수 있습니다. 이 기능을 사용하면 입력 잘라내기, 대/소문자로의 변환 등과 같은 사용자 지정 논리를 사용할 수 있습니다. 어떤 식으로든 변환된 구성을 반환하려면 응답 Variant
에 추가 Variant
속성을 포함해야 하며, 이 속성에는 업데이트된 구성이 "config"
로 포함되어야 합니다. 이 프로시저는 SQL을 통해 덮어쓰거나 UpdateConnectionConfigurationHandlerBuilder
를 사용하고 ConnectionConfigurationInputValidator
인터페이스의 사용자 지정 구현을 제공하여 사용자 지정할 수 있습니다.
변환을 사용한 사용자 지정 구현의 유효한 응답은 다음과 같습니다.
{
"response_code" : "OK",
"config": {
"key1": "value1",
"key2": "value2"
}
}
구성 업데이트¶
유효성 검사가 성공적으로 통과되면 구성이 내부 APP_CONFIG
테이블에 저장됩니다. 이를 처리하는 서비스는 제공된 Variant
를 connection_configuration
키 아래에 저장합니다. 이 구성은 내부 초안 콜백 및 초안 연결 유효성 검사를 통해 성공적으로 검증되어야 업데이트할 수 있으며, 제공된 속성 세트는 전적으로 사용자에게 달려 있습니다.
내부 초안 콜백¶
내부 콜백은 사용자 지정이 가능한 단계 중 하나입니다. 이는 기본적으로 PUBLIC.DRAFT_CONNECTION_CONFIGURATION_INTERNAL(connection_configuration VARIANT)
을 호출하며, 'response_code': 'OK'
를 반환합니다. 예를 들어, 외부 액세스 통합을 허용하여 다른 프로시저를 변경하는 데 사용할 수 있습니다. SQL 스크립트를 통해 덮어쓰거나 ConnectionConfigurationHandlerBuilder
를 사용하여 ConnectionConfigurationCallback
인터페이스의 사용자 지정 구현을 제공할 수 있습니다.
초안 연결 유효성 검사¶
이 단계는 PUBLIC.TEST_DRAFT_CONNECTION(connection_configuration VARIANT)
프로시저를 트리거합니다. 이 프로시저는 연결 구성으로 입력 변수의 데이터를 사용하여 소스 시스템에서 데이터를 쿼리하려고 시도합니다. 이 프로시저는 기본적으로 구현되지 않으며 SDK 사용자가 제공해야 합니다. 또한 이 단계를 사용자 지정하기 위해 ConnectionValidator
인터페이스 구현을 UpdateConnectionConfigurationHandlerBuilder
에 제공할 수 있습니다. 이 경우에는 저장 프로시저를 구현할 필요가 없습니다. 이 절차에서는 최소한의 연결 확인만 수행하여 Snowflake의 외부 액세스 기능이 올바르게 구성되었는지, Connector에 해당 기능을 사용하는 데 필요한 모든 권한이 있는지 확인하는 것이 좋습니다.
내부 콜백¶
내부 콜백은 사용자 지정이 가능한 단계 중 하나입니다. 이는 기본적으로 PUBLIC.SET_CONNECTION_CONFIGURATION_INTERNAL(connection_configuration VARIANT)
을 호출하며, 'response_code': 'OK'
를 반환합니다. 예를 들어, 외부 액세스 통합을 허용하여 다른 프로시저를 변경하는 데 사용할 수 있습니다. SQL 스크립트를 통해 덮어쓰거나 ConnectionConfigurationHandlerBuilder
를 사용하여 ConnectionConfigurationCallback
인터페이스의 사용자 지정 구현을 제공할 수 있습니다.
연결 유효성 검사¶
이 단계는 PUBLIC.TEST_CONNECTION
프로시저를 트리거합니다. 이 프로시저는 PUBLIC.TEST_DRAFT_CONNECTION(connection_configuration VARIANT)
에 대한 트위닝 동작이 있지만, 입력 매개 변수가 없으며 데이터베이스에 저장된 구성을 사용하여 공식 연결을 테스트하는 데 사용해야 합니다.
구성 보기¶
내부 테이블에서 현재 연결 구성을 반환하는 ADMIN
및 VIEWER
사용자가 사용할 수 있는 PUBLIC.GET_CONNECTION_CONFIGURATION()
프로시저가 있습니다.
응답¶
성공 응답¶
프로시저가 성공적으로 완료되면 TEST_CONNECTION
프로시저가 응답을 반환합니다. 다음 형식을 사용하는 것이 좋습니다.
{
"response_code": "OK"
}
오류 응답¶
오류가 발생한 경우 응답은 아래 형식을 따릅니다.
{
"response_code": "<ERROR_CODE>",
"message": "<error message>"
}
가능한 오류 코드는 다음과 같습니다.
INVALID_CONNECTOR_STATUS
- 커넥터 상태가 잘못되었습니다. 필요한 상태:[PAUSED]
INTERNAL_ERROR
- 내부적으로 문제가 발생했습니다. 메시지에는 설명이 포함되어야 합니다.PROCEDURE_NOT_FOUND
- 호출된 프로시저가 없습니다. 이 경우 주로TEST_CONNECTION
및TEST_DRAFT_CONNECTION
프로시저에 대한 것입니다.UNKNOWN_SQL_ERROR
- 내부 프로시저 호출 시 예상치 못한 일이 발생할 때 발생하는 오류입니다.INVALID_RESPONSE
- 이 오류는 내부 프로시저에서 수신한 응답에response_code
가 포함되어 있지 않거나 오류 응답에message
가 포함되어 있지 않고response_code
가 포함된 경우 발생합니다.UNKNOWN_ERROR
- 예상치 못한 문제가 발생했다는 의미입니다. 발생한 예외의 메시지가 전달됩니다.TEST_DRAFT_CONNECTION()
프로시저에서 수신한 사용자 지정 오류 코드 - 커넥터 개발자가 정의함DRAFT_CONNECTION_CONFIGURATION_INTERNAL()
프로시저에서 수신한 사용자 지정 오류 코드 - 커넥터 개발자가 정의함TEST_CONNECTION()
프로시저에서 수신한 사용자 지정 오류 코드 - 커넥터 개발자가 정의함SET_CONNECTION_CONFIGURATION_INTERNAL()
프로시저에서 수신한 사용자 지정 오류 코드 - 커넥터 개발자가 정의함