Openflow Connector for Salesforce Bulk API 정보

참고

이 커넥터에는 `Snowflake Connector 약관<https://www.snowflake.com/legal/snowflake-connector-terms/>`_이 적용됩니다.

이 항목에서는 Openflow Connector for Salesforce Bulk API 의 기본 개념, 해당 워크플로 및 제한 사항에 대해 설명합니다.

Salesforce Data Cloud와의 제로 카피 통합

Snowflake는 Salesforce와의 제로 카피 양방향 공유 및 통합을 지원합니다. 이 통합은 Salesforce Data Cloud를 사용하고 거의 실시간의 양방향 통합이 필요한 경우에 권장됩니다.

Salesforce Data Cloud와의 제로 카피 통합에 대한 자세한 내용은 다음 블로그 게시물을 참조하세요.

Openflow Connector for Salesforce Bulk API 정보

Openflow Connector for Salesforce Bulk API 는 복제 기반 데이터 통합을 제공합니다. 이 커넥터는 Salesforce Data Cloud를 사용하지 않고 완전 관리형 Snowflake Openflow 커넥터를 선호하는 사용자를 위해 설계되었습니다. 커넥터는 공용 Salesforce REST APIs를 사용하여 사용자가 정의한 빈도로 Salesforce에서 Snowflake로 데이터를 복제합니다. 커넥터는 변경 데이터 캡처(CDC)를 사용하고 Snowflake의 데이터를 Salesforce와 동기화된 상태로 유지합니다.

특정 사용 사례에 따라 한 가지 또는 두 가지 유형의 데이터 통합을 모두 사용할 수 있습니다. 이 항목에서는 Openflow Connector for Salesforce Bulk API 를 설정하고 사용하여 Salesforce에서 Snowflake로 데이터를 복제하는 방법에 대해 설명합니다.

사용 사례

Openflow Connector for Salesforce Bulk API 를 사용하여 사용자가 지정한 빈도로 Salesforce에서 Snowflake로 표준 또는 사용자 지정 오브젝트를 복제하고 Snowflake에서 최신 상태로 유지합니다.

워크플로

다음 워크플로에서는 Openflow Connector for Salesforce Bulk API 를 설정하고 사용하는 단계에 대해 설명합니다.

  1. Salesforce 관리자는 Salesforce에서 외부 클라이언트 앱을 생성 및 구성하고 특정 사용자에 대해 승인합니다.

  2. Openflow 관리자는 다음 작업을 수행합니다.

    1. 커넥터를 위한 서비스 사용자 및 웨어하우스와 복제할 대상 데이터베이스 및 스키마를 생성합니다.

    2. 커넥터를 설치합니다.

    3. 흐름 템플릿의 필수 매개 변수를 지정합니다.

  3. 데이터 엔지니어는 이 흐름을 실행하여 Salesforce에서 Snowflake로 오브젝트를 복제합니다.

제한 사항

커넥터를 사용할 때 다음 제한 사항을 고려합니다.

  • 사용자 지정 Salesforce 도메인은 지원되지 않습니다.

  • 오브젝트 관계를 탐색하고 관련 오브젝트를 가져오는 기능은 지원되지 않습니다.

  • 커넥터는 Snowflake에서 영구 삭제를 지원하지 않습니다. 대상 테이블에서 쿼리를 실행하여 isDeleted 열이 ``true``인 모든 행을 삭제하거나 대상 테이블의 전체 새로 고침을 수행하여 “영구 삭제”를 반영합니다.

  • location, address, base64 유형의 필드는 지원되지 않으며 무시됩니다.

  • Snowflake에서는 여러 Salesforce 인스턴스의 데이터를 단일 데이터베이스로 통합할 수 없습니다. 단일 Salesforce 인스턴스 또는 조직의 데이터가 Snowflake의 단일 데이터베이스로 수집됩니다. 복제된 Salesforce 오브젝트마다 개별 테이블이 이 데이터베이스에 생성됩니다.

  • Salesforce 레코드에 첨부된 파일은 무시됩니다.

  • 수식 필드는 증분 방식으로 수집할 수 없습니다.

인증

커넥터는 외부 클라이언트 앱을 통해 JWT 인증 메서드를 사용하여 Salesforce에 연결하고 데이터를 검색합니다. Salesforce에서 클라이언트 앱을 구성하는 방법에 대한 설명서는 Openflow Connector for Salesforce Bulk API: Salesforce 설정 섹션을 참조하세요.

복제 수명 주기

커넥터는 초기 복제와 증분 복제의 두 단계로 데이터를 복제합니다.

초기 복제

커넥터는 Salesforce Bulk API 2.0을 호출하여 커넥터 구성에 지정된 표준 및 사용자 지정 오브젝트를 검색합니다. 커넥터는 Bulk API 2.0 API 제한을 준수합니다.

  • 커넥터는 사용자 지정 또는 표준 오브젝트마다 하나의 테이블을 생성하며 여기에는 필드마다 하나의 열이 포함됩니다.

  • 커넥터는 초기 로드 시 Snowpipe Streaming을 사용하여 Salesforce 오브젝트의 필드 값을 기반으로 테이블에 행을 삽입합니다.

증분 복제

증분 업데이트는 커넥터 매개 변수에서 구성할 수 있는 Snowflake 웨어하우스를 사용합니다. 대기 시간 및 데이터 최신성 요구 사항에 따라 업데이트 새로 고침 빈도를 1분에서 24시간까지 구성할 수 있으며, 이에 따라 Snowflake의 테이블 새로 고침 빈도가 결정됩니다.

커넥터는 사용자가 지정하는 새로 고침 빈도를 바탕으로 Salesforce Bulk API를 호출하여 이전에 수집된 오브젝트의 변경 사항을 감지합니다. 커넥터는 Salesforce 오브젝트의 특정 타임스탬프 필드를 확인하여 변경된 레코드를 식별합니다.

대부분의 오브젝트의 경우 커넥터는 SystemModstamp 필드를 사용합니다. ``SystemModstamp``를 사용할 수 없는 경우 커넥터는 기본 설정 순서대로 다음의 필드를 사용하려고 시도합니다.

  1. LastModifiedDate

  2. CreatedDate

  3. LoginTime

참고

기록 테이블(기록 추적이 활성화된 오브젝트)의 경우 커넥터는 항상 CreatedDate 필드를 사용하여 변경 사항을 감지합니다.

그런 다음 Snowpipe Streaming을 사용하여 증분 데이터를 스테이징 테이블로 푸시하고 병합 쿼리를 실행하여 데이터를 최종 대상 테이블에 로드합니다.

스키마 진화

커넥터는 Salesforce에서 소스 오브젝트가 변경될 때 스키마 진화를 지원합니다.

소스 오브젝트에 새 필드가 추가되는 경우:

커넥터는 Snowflake의 대상 테이블에 새 열을 추가합니다.

소스 오브젝트에서 기존 필드의 이름이 바뀌는 경우:

커넥터는 이름 바꾸기를 필드 삭제 및 필드 추가 모두로 처리합니다. 필드를 추가하면 대상 테이블에 새 열이 추가됩니다. 필드 삭제는 다음에 설명된 대로 처리됩니다.

소스 오브젝트에서 기존 필드가 삭제된 경우:

커넥터는 다음의 3가지 전략을 지원합니다.

  • 삭제: Snowflake의 대상 테이블에서 해당 열을 삭제합니다. 이것이 기본 동작입니다.

  • 무시: 소스에서 삭제된 필드를 무시하고 향후에는 건너뜁니다.

  • 이름 바꾸기: 대상 테이블에서 삭제된 필드의 이름을 바꿉니다.

예를 들어, 삭제 전략이 ``Ignore``로 설정되고 Salesforce 오브젝트에 대해 필드 이름이 바뀌면 Snowflake의 기존 열은 변경되지 않고 새 필드 이름의 새 열이 추가됩니다.

오브젝트 삭제 방법

Salesforce에서 오브젝트가 삭제되면 커넥터는 Snowflake에서 오브젝트를 “영구 삭제”하지 않습니다. 커넥터는 Salesforce에서 삭제된 오브젝트에 대해 “일시 삭제”를 수행하고 해당 Snowflake 테이블에서 isDeleted 열을 ``true``로 설정하여 소스 오브젝트가 삭제되었음을 나타냅니다.

커넥터는 “영구 삭제”를 지원하지 않습니다. 대상 테이블에서 쿼리를 실행하여 isDeleted 열이 ``true``인 모든 행을 삭제하거나 대상 테이블의 전체 새로 고침을 수행하여 “영구 삭제”를 반영합니다.

커넥터가 실행 중이지 않을 때 Salesforce에서 오브젝트가 삭제되고 Salesforce의 휴지통에서 제거되는 경우(예: 커넥터가 일시 중지되거나 중지된 경우) 커넥터는 삭제 작업을 놓칠 수 있습니다. 이러한 경우 복구하려면 대상 테이블의 전체 새로 고침을 수행해야 합니다.

자동 재시도 처리

커넥터는 지수 백오프 전략을 사용하여 실패한 작업 또는 API 오류를 자동으로 재시도합니다. 커넥터는 첫 번째 재시도 전에 1초를 기다린 다음, 이후의 각 재시도(2초, 4초 등)의 대기 시간을 두 배로 늘립니다. 실패가 지속되는 경우 커넥터는 예약된 다음 실행까지 재시도를 중지합니다. 이러한 활동은 :doc:`이벤트 테이블 </user-guide/data-integration/openflow/monitor>`에서 모니터링할 수 있습니다.

여러 커넥터 인스턴스를 사용하여 다양한 동기화 일정 처리

예를 들어 일부는 30분마다, 다른 일부는 24시간마다 서로 다른 오브젝트를 동기화해야 하는 경우 Snowflake는 동일한 런타임 내에 두 개의 개별 커넥터 인스턴스를 배포하는 것을 권장합니다. 그런 다음 각 인스턴스에 대해 동기화 매개 변수를 독립적으로 구성할 수 있습니다.

참고

동일한 런타임에 여러 커넥터 인스턴스를 배포해도 추가 비용은 발생하지 않습니다.

마찬가지로, 커넥터가 실행될 때마다 일부 오브젝트를 완전히 가져와야 하는 경우(예: 수식의 제한 사항을 해결하기 위해), Snowflake는 동일한 런타임 내에 두 개의 개별 커넥터 인스턴스를 배포하고 인스턴스마다 매개 변수를 구성하는 것을 권장합니다.

다음 단계

커넥터 설정 방법에 대한 자세한 내용은 다음 항목을 참조하세요.