커넥터 구성

커넥터 구성은 마법사 단계의 첫 번째 필수 단계입니다. 이는 실제 소스 시스템과 도메인에 관계없이 모든 커넥터 유형 간에 공통된 오브젝트의 구성을 커넥터에 부여합니다. PUBLIC.CONFIGURE_CONNECTOR(config VARIANT) 프로시저는 UI 또는 워크시트에서 이를 수행하기 위한 진입점입니다. 사용자 지정 논리로 덮어쓰는 경우, 이 프로시저는 Java의 ConfigureConnectorHandler.configureConnector 정적 메서드를 핸들러로 가리키기 때문에 바꿔야 한다는 점에 유의하십시오.

이 프로시저를 호출하려면 사용자에게 ADMIN 애플리케이션 역할이 할당되어 있어야 합니다.

커넥터 구성 단계는 내부적으로 여러 단계로 구성됩니다. 단계 중 일부는 완전히 사용자 지정 가능하며, 기본적으로는 아무 작업도 수행하지 않습니다. 각 단계는 다음과 같습니다.

  1. 상태 유효성 검사

  2. 필드 유효성 검사

  3. 입력 유효성 검사

  4. 구성 업데이트

  5. 내부 콜백

  6. 상태 업데이트

요구 사항

커넥터 구성을 위해서는 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 * * * *"
}
Copy

Data_owner_role

커넥터를 제거할 때 데이터를 보존하기 위한 동기화 데이터베이스의 소유권을 부여하는 데 사용할 수 있는 역할입니다.

Agent_username

Snowflake에 연결할 때 푸시 기반 커넥터 에이전트에서 사용하는 사용자 이름입니다.

Agent_role

Snowflake에 연결할 때 푸시 기반 커넥터의 에이전트가 사용하는 역할입니다.

입력 유효성 검사

입력은 유효한 Variant 여야 하며, SDK는 이름이 PUBLIC.CONFIGURE_CONNECTOR_VALIDATE(config VARIANT) 인 내부 저장 프로시저를 제공합니다. 기본적으로, 이 프로시저는 'response_code': 'OK' 만 반환하지만, 이 저장 프로시저를 덮어쓰면 변경할 수 있습니다. 또는 ConfigureConnectorHandlerBuilder 를 사용하여 사용자 지정하고 ConfigureConnectorValidator 인터페이스의 사용자 지정 구현을 제공할 수 있습니다.

구성 업데이트

유효성 검사가 성공적으로 통과되면 구성이 내부 APP_CONFIG 테이블에 저장됩니다. 이를 담당하는 서비스는 공급자가 제공한 Variantconnector_configuration 키 아래에 저장합니다.

내부 콜백

내부 콜백은 사용자 지정이 가능한 단계 중 하나입니다. 이는 기본적으로 PUBLIC.CONFIGURE_CONNECTOR_INTERNAL(config VARIANT) 를 호출하며, 'response_code': 'OK' 를 반환합니다. SQL 스크립트를 통해 덮어쓰거나 ConfigureConnectorHandlerBuilder 를 사용하여 ConfigureConnectorCallback 인터페이스의 사용자 지정 구현을 제공함으로써 덮어쓸 수 있습니다.

상태 업데이트

위의 모든 단계가 성공적으로 완료되면 커넥터의 내부 상태가 다음과 같이 업데이트됩니다.

{
    "status": "CONFIGURING",
    "configurationStatus": "CONFIGURED"
}
Copy

상태 전환 다이어그램은 커넥터 흐름 섹션을 참조하십시오.

응답

성공 응답

프로시저가 성공적으로 완료되면 다음 형식으로 응답이 반환됩니다.

{
  "response_code": "OK",
}
Copy

오류 응답

오류가 발생한 경우 응답은 아래 형식을 따릅니다.

{
  "response_code": "<ERROR_CODE>",
  "message": "<error message>"
}
Copy

가능한 오류 코드는 다음과 같습니다.

  • INVALID_CONNECTOR_STATUS - 이미 구성된 커넥터에서 프로시저가 호출되었습니다.

  • CONNECTOR_CONFIGURATION_PARSING_ERROR - 주어진 구성이 유효한 JSON이 아닙니다.

  • CONNECTOR_STATUS_NOT_FOUND - 커넥터 상태 레코드가 데이터베이스에 없습니다.

  • CONNECTOR_STATUS_PARSING_ERROR - connector_status 키 아래의 테이블 APP_STATE 에 저장된 값의 형식이 잘못되어 애플리케이션에서 구문 분석할 수 없습니다.