커넥터 구성¶
커넥터 구성은 마법사 단계의 첫 번째 필수 단계입니다. 이는 실제 소스 시스템과 도메인에 관계없이 모든 커넥터 유형 간에 공통된 오브젝트의 구성을 커넥터에 부여합니다. PUBLIC.CONFIGURE_CONNECTOR(config VARIANT)
프로시저는 UI 또는 워크시트에서 이를 수행하기 위한 진입점입니다. 사용자 지정 논리로 덮어쓰는 경우, 이 프로시저는 Java의 ConfigureConnectorHandler.configureConnector
정적 메서드를 핸들러로 가리키기 때문에 바꿔야 한다는 점에 유의하십시오.
이 프로시저를 호출하려면 사용자에게 ADMIN
애플리케이션 역할이 할당되어 있어야 합니다.
커넥터 구성 단계는 내부적으로 여러 단계로 구성됩니다. 단계 중 일부는 완전히 사용자 지정 가능하며, 기본적으로는 아무 작업도 수행하지 않습니다. 각 단계는 다음과 같습니다.
상태 유효성 검사
필드 유효성 검사
입력 유효성 검사
구성 업데이트
내부 콜백
상태 업데이트
요구 사항¶
커넥터 구성을 위해서는 Native App을 설치할 때 다음 SQL 파일 이상을 실행해야 합니다.
core.sql
configuration/app_config.sql
configuration/connector_configuration.sql
상태 유효성 검사¶
커넥터 구성을 수행하려면 커넥터의 내부 상태가 CONFIGURING
이어야 합니다. 이 유효성 검사는 ConfigureConnectorHandlerBuilder
를 사용하거나 저장 프로시저를 덮어쓰는 방식으로 덮어쓸 수 없습니다. 하지만 이런 종류의 유효성 검사가 필요하지 않은 사용자 지정 핸들러를 구현하는 것도 가능합니다.
필드 유효성 검사¶
커넥터 구성에는 특정 필드 세트가 포함되어야 합니다. 모두 선택 사항이지만, 다른 필드를 입력하면 예외가 발생합니다. 허용되는 키는 다음과 같습니다.
warehouse
destination_database
destination_schema
operational_warehouse
global_schedule
data_owner_role
agent_username
agent_role
웨어하우스¶
커넥터는 웨어하우스를 사용하여 스케줄러를 실행하고, 작업을 실행하고, 쿼리를 실행합니다.
Destination_database¶
대상 데이터베이스는 커넥터가 수집한 데이터를 저장하는 데 사용됩니다. 이 데이터베이스는 커넥터 외부에 있어야 합니다. 기존 데이터베이스일 수도 있지만, 커넥터에는 해당 데이터베이스에 대한 쓰기 권한이 있어야 합니다. 새로 생성된 데이터베이스일 수도 있지만, 자동으로 생성되지 않으며 커넥터 구성 또는 구성 종료자 중 내부 콜백의 일부로 구현해야 합니다.
Destination_schema¶
대상 스키마는 위의 destination_database에서 사용된 스키마가 됩니다.
Operational_warehouse¶
일부 경우, 커넥터는 웨어하우스가 필요한 실제 수집 프로세스와 커넥터 내부 운영과 관련된 프로세스를 분리해야 하는 경우가 있습니다. 이 보조 웨어하우스를 지정하여 로드를 분할합니다.
Global_schedule¶
이 속성은 스케줄러 작업에 대한 실행 일정을 정의합니다. 현재 스케줄러는 자체 scheduleType=GLOBAL
이 있는 리소스만 처리합니다. 이 속성의 값은 아래와 유사해야 합니다.
"global_schedule": {
"scheduleType": "CRON",
"scheduleDefinition": "*/10 * * * *"
}
Data_owner_role¶
커넥터를 제거할 때 데이터를 보존하기 위한 동기화 데이터베이스의 소유권을 부여하는 데 사용할 수 있는 역할입니다.
Agent_username¶
Snowflake에 연결할 때 푸시 기반 커넥터 에이전트에서 사용하는 사용자 이름입니다.
Agent_role¶
Snowflake에 연결할 때 푸시 기반 커넥터의 에이전트가 사용하는 역할입니다.
입력 유효성 검사¶
입력은 유효한 Variant
여야 하며, SDK는 이름이 PUBLIC.CONFIGURE_CONNECTOR_VALIDATE(config VARIANT)
인 내부 저장 프로시저를 제공합니다. 기본적으로, 이 프로시저는 'response_code': 'OK'
만 반환하지만, 이 저장 프로시저를 덮어쓰면 변경할 수 있습니다. 또는 ConfigureConnectorHandlerBuilder
를 사용하여 사용자 지정하고 ConfigureConnectorValidator
인터페이스의 사용자 지정 구현을 제공할 수 있습니다.
구성 업데이트¶
유효성 검사가 성공적으로 통과되면 구성이 내부 APP_CONFIG
테이블에 저장됩니다. 이를 담당하는 서비스는 공급자가 제공한 Variant
를 connector_configuration
키 아래에 저장합니다.
내부 콜백¶
내부 콜백은 사용자 지정이 가능한 단계 중 하나입니다. 이는 기본적으로 PUBLIC.CONFIGURE_CONNECTOR_INTERNAL(config VARIANT)
를 호출하며, 'response_code': 'OK'
를 반환합니다. SQL 스크립트를 통해 덮어쓰거나 ConfigureConnectorHandlerBuilder
를 사용하여 ConfigureConnectorCallback
인터페이스의 사용자 지정 구현을 제공함으로써 덮어쓸 수 있습니다.
상태 업데이트¶
위의 모든 단계가 성공적으로 완료되면 커넥터의 내부 상태가 다음과 같이 업데이트됩니다.
{
"status": "CONFIGURING",
"configurationStatus": "CONFIGURED"
}
상태 전환 다이어그램은 커넥터 흐름 섹션을 참조하십시오.
응답¶
성공 응답¶
프로시저가 성공적으로 완료되면 다음 형식으로 응답이 반환됩니다.
{ "response_code": "OK", }
오류 응답¶
오류가 발생한 경우 응답은 아래 형식을 따릅니다.
{ "response_code": "<ERROR_CODE>", "message": "<error message>" }
가능한 오류 코드는 다음과 같습니다.
INVALID_CONNECTOR_STATUS
- 이미 구성된 커넥터에서 프로시저가 호출되었습니다.CONNECTOR_CONFIGURATION_PARSING_ERROR
- 주어진 구성이 유효한 JSON이 아닙니다.CONNECTOR_STATUS_NOT_FOUND
- 커넥터 상태 레코드가 데이터베이스에 없습니다.CONNECTOR_STATUS_PARSING_ERROR
-connector_status
키 아래의 테이블APP_STATE
에 저장된 값의 형식이 잘못되어 애플리케이션에서 구문 분석할 수 없습니다.