Openflow Connector for Veeva Vault 소개

Openflow Connector for Veeva Vault 소개

이 페이지에서는 Veeva Vault용 Openflow Connector가 무엇을 하고, 어떻게 데이터를 복제하며, 어떤 수집 모드·인증·삭제·스키마 진화 방식을 지원하는지 설명해요. 구성하기 전에 동작 방식을 이해하는 데 도움이 됩니다.

출처: Snowflake 문서

본문

Note

이 커넥터는 Snowflake Connector Terms에 의해 규율됩니다.

Veeva Vault용 Openflow Connector는 Direct Data API를 사용해 Veeva Vault 인스턴스의 데이터를 Snowflake로 복제합니다. 커넥터는 Direct Data 파일을 다운로드해 그 안의 CSV 데이터를 추출하고, Snowpipe Streaming을 사용해 그 데이터를 Snowflake 테이블에 로드합니다. 전체 스냅샷, 증분 업데이트, 선택적인 감사 로그 수집을 지원합니다.

사용 사례

커넥터는 다음 사용 사례를 지원합니다:

  • 전체 데이터 복제: 모든 Veeva Vault 데이터를 보고·분석·규정 준수를 위해 Snowflake로 일회성 전체 스냅샷 수행

  • 증분 동기화: 초기 스냅샷 이후 커넥터는 구성 가능한 일정(기본 15분마다)으로 증분 Direct Data 파일을 폴링해 Veeva Vault의 변경 사항으로 Snowflake 테이블을 최신 상태로 유지

  • 감사 로그 수집: 데이터 아카이브와 함께 Veeva Vault 감사 로그 아카이브를 선택적으로 수집해 Snowflake에 완전한 감사 추적 구축

  • 마이그레이션·분석: 교차 시스템 분석·데이터 과학·규제 보고를 위해 Veeva Vault 데이터를 Snowflake에 중앙 집중화

복제 수명 주기

테이블의 복제 주기는 전체 데이터 스냅샷으로 시작해 증분 동기화로 전환됩니다.

  1. 스냅샷 단계: 커넥터가 Veeva Vault에서 최신 전체 Direct Data 파일을 다운로드합니다. 이 아카이브는 Vault 데이터 객체마다 CSV 하나씩 포함된 tar.gz 파일입니다. 커넥터는 아카이브를 풀고, 각 객체에 대해 Snowflake에 대상 테이블을 만들고(아직 없을 경우), Snowpipe Streaming을 통해 스테이징 테이블에 데이터를 로드한 뒤, 스테이징 데이터를 최종 대상 테이블에 병합합니다.

  2. 증분 단계: 스냅샷이 완료되면 커넥터는 Veeva Vault에서 증분 Direct Data 파일을 폴링합니다. 각 증분 파일에는 이전 증분 파일 이후 변경된 레코드만 포함됩니다. 커넥터는 동일한 스테이징·병합 파이프라인으로 업데이트를 적용하고, 구성된 삭제 전략에 따라 삭제는 별도로 처리합니다. Snowflake의 데이터 최신성은 Veeva Vault가 Direct Data 파일을 게시하는 빈도와 커넥터의 구성된 동기화 빈도에 따라 달라집니다.

  3. 감사 로그 단계(선택): 감사 로그 수집이 활성화되면 커넥터는 log_directdata 파일도 다운로드해 동일한 파이프라인을 따라 Snowflake에 로드합니다.

커넥터는 Direct Data 파일을 보고된 시간 창(time window)별로 그룹화하고, 각 배치가 원자적으로 처리된 뒤 다음으로 넘어가도록 한 번에 한 창씩 처리합니다.

커넥터는 마지막으로 처리한 타임스탬프를 기록하는 영속 상태로 진행 상황을 추적합니다. 커넥터를 중지했다 다시 시작하면 이어서 진행합니다.

수집 모드

커넥터는 Direct Data 파일을 소비하는 방식을 제어하는 세 가지 수집 모드를 지원합니다:

SNAPSHOT_AND_INCREMENTAL (기본): : 커넥터가 먼저 최신 전체 Direct Data 파일(스냅샷)을 처리합니다. 스냅샷이 완료되면 증분 아카이브 폴링으로 전환합니다. 대부분의 배포에서 권장되는 모드입니다.

SNAPSHOT: : 커넥터가 최신 전체 Direct Data 파일을 지속적으로 폴링합니다. 새 전체 파일이 준비될 때마다 처리합니다. Snowflake의 모든 데이터를 새 전체 내보내기로 주기적으로 교체하려는 경우 이 모드를 사용하세요.

INCREMENTAL: : 커넥터가 증분 Direct Data 파일만 폴링합니다. 전체 스냅샷은 수행하지 않습니다. 스냅샷이 이미 다른 방법으로 로드되었거나 최근 변경 사항만 필요한 경우 이 모드를 사용하세요. 증분 폴링이 시작되는 기준 시점을 제어하려면 시작 시간을 선택적으로 지정할 수 있습니다.

인증

커넥터는 세션 기반 인증으로 Veeva Vault에 인증합니다. 서비스 계정 사용자 이름과 비밀번호를 제공하면, 커넥터가 Vault API 인증 엔드포인트에서 세션 식별자를 얻습니다. 이 세션은 요청 간에 재사용되며 만료되면 자동으로 갱신됩니다.

Snowflake 인증을 위해 커넥터는 두 가지 전략을 지원합니다:

SNOWFLAKE_MANAGED (기본): : Openflow 런타임의 execute-as 역할과 연결된 Snowflake 관리 토큰을 사용합니다. Openflow - Snowflake Deployments와 Openflow - BYOC Deployments 모두에서 권장되는 전략입니다.

KEY_PAIR: : 사용자가 제공하는 RSA 키 페어로 인증합니다. 이 전략은 Openflow - BYOC Deployments에서만 사용할 수 있으며, 커넥터가 Openflow 런타임을 호스팅하는 계정과 다른 Snowflake 계정에 써야 하는 교차 계정 시나리오에 적합합니다.

삭제 처리 방법

커넥터가 Veeva Vault에서 삭제 추출을 받으면 구성된 삭제 전략에 따라 Snowflake에서 삭제를 적용합니다:

Hard Delete (기본): : DELETE 문을 사용해 대상 테이블에서 행을 영구적으로 제거합니다.

Soft Delete: : 행을 제거하지 않습니다. 대신 커넥터가 __SNOWFLAKE_DELETED 열을 TRUE로 설정하고 __SNOWFLAKE_DELETED_AT 열을 현재 타임스탬프로 설정합니다. 대상 테이블에 이 열들이 없으면 커넥터가 자동으로 추가합니다.

스키마 진화

커넥터는 파일 간에 Veeva Vault 데이터 구조가 변경될 때 스키마 진화를 지원합니다. 커넥터가 들어오는 파일에서 새 열을 감지하면 해당 열을 Snowflake의 대상 테이블과 스테이징 테이블에 자동으로 추가합니다.

들어오는 파일에 열이 더 이상 없으면 커넥터는 구성된 열 제거 전략을 적용합니다:

Drop Column (기본): : Snowflake 테이블에서 열을 제거합니다.

Rename Column: : 구성 가능한 접미사(기본: __deleted)를 붙여 열 이름을 변경합니다. 이렇게 하면 테이블의 히스토리 데이터가 보존됩니다.

Ignore Column: : Snowflake 테이블에서 열을 그대로 두고 채우기를 중단합니다.

자동 재시도 처리

커넥터는 지수 백오프(exponential backoff) 전략으로 실패한 API 호출을 자동 재시도합니다. 재시도 가능한 조건에는 HTTP 상태 코드 500, 502, 503, 504와 일시적 네트워크 오류가 포함됩니다.

세션이 만료되거나 유효하지 않게 되면 커넥터는 자동으로 재인증하고 요청을 재시도합니다.

제한 사항

커넥터를 사용할 때 다음 제한 사항을 고려하세요:

  • 커넥터를 사용하기 전에 Vault 인스턴스에서 Direct Data가 활성화되어 있어야 합니다. 이 기능을 활성화하려면 Veeva Vault 관리자에게 문의하세요.

  • 커넥터는 세션 기반 사용자 이름·비밀번호 자격 증명으로 인증합니다. OAuth 같은 다른 인증 방법은 아직 지원되지 않습니다.

  • 커넥터는 Direct Data 파일의 구조화된 데이터만 복제합니다. 문서·첨부 콘텐츠(Veeva Vault에 저장된 파일 등)는 복제되지 않습니다.

  • 커넥터는 현재 legacy_workflow 유형의 객체만 초기 로드하며, 이후 변경 사항은 복제하지 않습니다.

다음 단계

커넥터 설정 방법은 Openflow Connector for Veeva Vault 설정을 참고하세요.

더 알아보기 (Learn more)