리소스 업데이트

리소스 업데이트는 특정 리소스에 대한 수집 구성을 재정의하는 데 사용됩니다. PUBLIC.UPDATE_RESOURCE 프로시저는 UI 또는 워크시트에서 리소스를 업데이트하기 위한 진입점입니다.

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

리소스 업데이트 프로세스는 여러 단계로 구성됩니다. 그 중 일부 프로세스는 사용자 지정이 가능하지만 적절한 기본값이 포함되어 있습니다. 단계는 다음과 같습니다.

  1. 초기 유효성 검사

  2. 사용자 지정 유효성 검사

  3. 리소스가 업데이트되기 전의 사용자 지정 논리

  4. 수집 구성의 업데이트

  5. 제거된 수집 구성에 대한 수집 프로세스 완료

  6. 새로운 수집 구성을 위한 수집 프로세스 스케줄링

  7. 리소스가 업데이트되고 수집 프로세스가 관리된 후의 사용자 지정 논리

초기 유효성 검사

초기 유효성 검사는 리소스 업데이트 프로세스의 맨 처음에 수행됩니다. 다음을 확인합니다.

  • 주어진 입력 데이터가 유효한 리소스 수집 구성 오브젝트를 나타내는지 여부

  • 주어진 idresourceId 를 갖는 리소스의 존재 여부

사용자 지정 유효성 검사

사용자 지정 유효성 검사는 초기 유효성 검사 직후에 실행됩니다. 이는 커넥터별 논리에 따라 사용자 지정되도록 설계된 프로세스의 일부입니다.

이는 기본적으로 PUBLIC.UPDATE_RESOURCE_VALIDATE(resource_ingestion_definition_id VARCHAR, ingestion_configurations VARIANT) 을 호출하며, 'response_code': 'OK' 를 반환합니다. SQL 스크립트를 통해 덮어쓰거나 UpdateResourceHandlerBuilder 를 사용하여 UpdateResourceValidator 인터페이스의 사용자 지정 구현을 제공함으로써 덮어쓸 수 있습니다.

사용자 지정 유효성 검사가 오류를 반환하면 다음 단계가 실행되지 않고 UPDATE_RESOURCE 프로시저에서 제공된 오류 응답이 반환됩니다.

리소스가 업데이트되기 전의 사용자 지정 논리

리소스가 업데이트되고 다시 예약되기 전에 사용자 지정 논리를 정의하고 실행할 수 있습니다.

이는 기본적으로 PUBLIC.PRE_UPDATE_RESOURCE(resource_ingestion_definition_id VARCHAR, ingestion_configurations VARIANT) 을 호출하며, 'response_code': 'OK' 를 반환합니다. SQL 스크립트를 통해 덮어쓰거나 UpdateResourceHandlerBuilder 를 사용하여 PreUpdateResourceCallback 인터페이스의 사용자 지정 구현을 제공함으로써 덮어쓸 수 있습니다.

사용자 지정 논리가 오류를 반환하면 다음 단계가 실행되지 않고 UPDATE_RESOURCE 프로시저에서 제공된 오류 응답이 반환됩니다.

리소스 수집 구성 업데이트

이 단계에서는 주어진 resource_ingestion_definition_id 가 있는 리소스에 대한 새 수집 구성이 STATE.RESOURCE_INGESTION_DEFINITION 테이블에 저장됩니다.

제거된 수집 구성에 대한 수집 프로세스 완료

이 단계에서 리소스가 활성화되면(enabled 매개 변수가 true), 업데이트된 수집 구성 집합에 포함되지 않은 수집 구성을 가진 모든 활성 수집 프로세스(상태가 SCHEDULED 또는 IN_PROGRESS)가 완료되며, 이는 해당 상태가 FINISHED 로 전환됨을 의미합니다.

새로운 수집 구성을 위한 수집 프로세스 스케줄링

이 단계에서는 리소스가 활성화되면(enabled 매개 변수가 true) 특정 리소스에 대한 이전 수집 구성 상태에는 존재하지 않았던 업데이트된 수집 구성에 대한 새 수집 프로세스가 생성됩니다.

리소스가 업데이트된 후의 사용자 지정 논리

리소스 수집 구성이 업데이트된 후 사용자 지정 논리를 구현하고 실행할 수 있습니다.

이는 기본적으로 PUBLIC.POST_UPDATE_RESOURCE(resource_ingestion_definition_id VARCHAR, ingestion_configurations VARIANT) 을 호출하며, 'response_code': 'OK' 를 반환합니다. SQL 스크립트를 통해 덮어쓰거나 UpdateResourceHandlerBuilder 를 사용하여 PostUpdateResourceCallback 인터페이스의 사용자 지정 구현을 제공함으로써 덮어쓸 수 있습니다.

사용자 지정 논리가 오류를 반환하는 경우, 지정된 오류 응답은 UPDATE_RESOURCE 프로시저에서 반환되지만 리소스 수집 정의 및 수집 프로세스의 업데이트는 롤백되지 않으므로 필요한 경우 사용자 지정 구현에서 처리해야 합니다.

응답

성공 응답

성공하면 프로시저는 다음과 유사한 결과를 반환합니다.

{
  "response_code": "OK",
  "message": "Resource successfully updated."
}
Copy

오류 응답

오류가 발생하면 다음과 유사한 응답이 반환됩니다.

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

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

  • INVALID_INPUT - 제공된 프로시저의 인자가 잘못되어 리소스 수집 구성을 업데이트할 수 없거나 지정된 리소스가 존재하지 않습니다.

  • UPDATE_RESOURCE_ERROR - 새로운 수집 구성으로 리소스 수집 정의를 업데이트하거나 수집 프로세스를 관리할 때 예기치 않은 동작이 발생했습니다. 모든 변경 사항이 롤백됩니다.