수집 관리

커넥터가 구성된 후 데이터 수집을 시작할 수 있습니다. 그러나 일반적으로 소스 시스템에서 데이터를 수집하기 전에 추가 정보가 필요합니다. 대부분의 시스템은 테이블, 리포지토리, 파일, 보고서 등 어느 정도 세부적인 데이터를 유지합니다. Snowflake Native SDK for Connectors 은 원래 시스템의 이름과 상관없이 resource 라는 용어를 사용합니다. 리소스를 식별하고 수집 설정을 사용자 지정하기 위해 resource_ingestion_definitions 을 사용합니다. 또한, 실제 수집 과정은 여러 개의 ingestion_runs 로 구성된 ingestion_processes 로 구성됩니다. 이 추상화를 통해 프로세스를 더 쉽게 추적, 예약 및 차별화할 수 있습니다.

요구 사항

이 섹션을 사용하려면 Native App을 설치할 때 최소한으로 다음 SQL 파일을 실행해야 합니다

  • ingestion/ingestion_management.sql

  • ingestion/ingestion_definitions_view.sql

  • ingestion/ingestion_process.sql

  • ingestion/ingestion_run.sql

  • ingestion/resource_ingestion_definition.sql

리소스 수집 정의

리소스 수집 정의는 소스 시스템의 원본 데이터에 대한 정의를 포함하는 일반적인 엔터티입니다. 가능한 한 범용적으로 유지하기 위해 시스템별 옵션은 기본 STATE.RESOURCE_INGESTION_DEFINITION 테이블에서 variants 로 유지됩니다. 그러나 리포지토리 ResourceIngestionDefinitionRepository 의 Java 정의는 타이핑을 더 잘 제어할 수 있는 일반적인 인터페이스입니다.

대부분의 리소스 수집 정의는 구현 중에 사용자 지정이 가능하므로, 일반 필드의 사용 방법을 결정하고 수집 중에 이를 활용하는 것은 개발자의 몫입니다.

리소스 수집 정의에서 가장 중요한 사용자 지정 속성은 다음과 같습니다.

  • parent_id

이 선택적 매개 변수를 사용하면 리소스 정의를 서로 연결하여 구성의 일부를 상속하는 등의 작업을 할 수 있습니다.

  • resource_id

variant 는 원본 시스템에서 리소스를 식별할 수 있어야 하며, 고유해야 합니다.

  • ingestion_configurations

이 속성은 수집의 실제 구성으로, 각 정의에는 여러 가지 구성이 있을 수 있습니다. 예를 들어, 어떤 이유로 동일한 리소스를 두 개의 다른 일정에 수집하거나 여러 개의 싱크 테이블에 저장해야 하는 경우 등이 이에 해당합니다. 이 속성에는 필수 필드가 몇 개 있지만, 사용자 지정 구성과 데이터 대상을 정의할 때 여전히 어느 정도 유연성이 허용됩니다.

  • resource_metadata

이 속성에는 위에서 언급한 필드에 포함되지 않지만 필요한 추가 정보가 포함되어야 합니다.

수집 프로세스

수집 프로세스는 정의된 리소스를 수집하는 활성화된 프로세스를 나타내는 엔터티입니다. 이 프로세스는 리소스가 추가되거나 활성화되면 생성되며 삭제되거나 비활성화되면 완료되어야 합니다. 어떤 면에서 이 프로세스는 운영 체제의 백그라운드 프로세스와 비슷합니다. 활성화되어 있지만, 특정 순간에 반드시 어떤 작업을 수행하는 것은 아닙니다. 수집이 실제로 실행 중일 때는 IN_PROGRESS 상태로 전환할 수 있고, 그렇지 않으면 SCHEDULED 상태를 유지할 수 있습니다. 작업을 디스패치할 때 scheduler 는 모든 SCHEDULED 프로세스를 검색하고 수집을 실행합니다.

수집 프로세스는 다양한 유형의 수집을 정의하는 데에도 사용될 수 있습니다. 예를 들어, 매일 커넥터가 일부 데이터를 로드하지만 어떤 이유로 오래된 데이터가 손상되어 다시 로드해야 하는 경우가 있습니다. 이 경우 RELOAD 와 같은 새로운 프로세스 type 를 도입할 수 있습니다. 그런 다음 scheduler 는 다양한 유형의 프로세스에 대해 서로 다른 연산을 수행하는 사용자 지정 논리를 가질 수 있습니다.

수집 실행

수집 실행은 과거와 진행 중인 수집에 대한 정보를 저장하는 또 다른 엔터티입니다. 그러나 이 데이터는 ingestion_process 자체보다 더 세분화되어 있습니다. 첫째, 수집 실행은 로그 데이터로 간주되어야 합니다. 둘째, ingestion_run 은 장기 실행 프로세스 중 단 한 번의 호출을 설명하는 항목입니다. 따라서 리소스가 하루에 한 번 수집된다면 매일 새로운 수집 실행 항목이 있어야 합니다. 모든 항목은 단일 프로세스에 연결됩니다.

수집 관리 작업

새로운 리소스 만들기

리소스 생성 프로세스는 소스 시스템에서 데이터 수집을 정의하고 일정을 예약하는 데 사용됩니다. 지정된 리소스를 처음에 활성화해야 하는 경우 리소스 수집 정의 레코드와 해당 수집 프로세스를 생성합니다.

자세한 내용은 리소스 만들기 섹션을 참조하십시오.

리소스 보기

구성된 리소스 정의는 PUBLIC.INGESTION_DEFINITIONS 뷰에서 확인할 수 있습니다. 하지만 이 뷰는 각 리소스에 대한 기본 정보만 반환합니다. 특히 사용자 지정 구성 중 일부는 커넥터의 논리에 의해 내부적으로 생성될 수 있기 때문에 최종 사용자에게는 일부 사용자 지정 구성이 표시되지 않습니다.

리소스 비활성화하기

리소스 비활성화 단계는 지정된 리소스에 대한 데이터 수집을 중지하는 데 사용됩니다. 활성 수집 프로세스를 완료하고 리소스 수집 정의를 비활성화로 표시합니다.

자세한 내용은 리소스 비활성화 섹션을 참조하십시오.

리소스 활성화하기

리소스 활성화는 주어진 리소스에 대한 데이터 수집을 시작하는 데 사용됩니다. 새로운 수집 프로세스를 생성하고 리소스 수집 정의를 활성화된 것으로 표시합니다.

자세한 내용은 리소스 활성화 섹션을 참조하십시오.

리소스 업데이트

리소스 업데이트는 주어진 리소스에 대한 수집 구성을 변경하는 데 사용됩니다. 리소스 수집 정의를 수정하고 수집 프로세스를 완료하거나 새로운 수집 프로세스를 생성합니다.

자세한 내용은 리소스 업데이트 섹션을 참조하십시오.