Salesforce와 외부 분석 플랫폼 간 대부분의 엔터프라이즈 통합 파이프라인은 사용자 정의 코드에 의존합니다. 문제가 발생할 때까지 동작합니다. 스키마 드리프트, API 소진, 영구 삭제 누락은 지속적인 엔지니어링 개입이 필요합니다. 기업이 시민 개발자가 참여하는 민첩한 아키텍처를 도입함에 따라 이 모델은 병목이 됩니다. 분석 팀이 Salesforce 필드를 다운스트림 스키마에 추가하려면 엔지니어링 스프린트를 기다려야 하고, 실패한 야간 로드는 월요일 아침 보고를 지연시키며, 간단한 구성 변경도 코드 검토와 배포가 필요합니다.

Salesforce 네이티브 분석 및 비즈니스 인텔리전스 플랫폼인 CRM Analytics는 회사가 Salesforce 에코시스템을 벗어나지 않고 데이터를 탐색하고 대화형 대시보드를 구축하고 AI 기반 인사이트를 파악할 수 있도록 지원하여 이 문제를 해결합니다. 이 기능의 핵심은 플랫폼에 기본적으로 내장된 선언적, 로우코드 데이터 동기화 기능입니다. CRM Analytics SyncOut 및 CRM Analytics SyncIn.

CRM Analytics SyncOut은 변경 데이터 수집(CDC)을 사용하여 증분 로드 및 내장된 영구 삭제 추적을 사용하여 영구적으로 삭제된 레코드를 플래그로 지정하여 Salesforce 레코드를 구성된 일정에 따라 외부 데이터 저장소로 이동합니다. CRM Analytics SyncIn은 외부 데이터를 Salesforce로 다시 가져와 열을 개체 필드에 매핑하고 대량 API 2.0을 사용하여 레코드를 업서트합니다. 둘 모두 Salesforce 설정을 통해 완전히 구성됩니다. 파이프라인, 스테이징 스크립트, 사용자 정의 모니터링이 없습니다. 관리자는 단일 Setup 세션에서 동기화 작업을 구성합니다. 플랫폼은 실행, 재시도, 오류 로깅, 스키마 매핑을 자동으로 처리합니다.

이 가이드에서는 패턴, 사용 시기, Snowflake를 예시로 한 구현 방법, 그리고 적합성 판단을 위한 아키텍처적 고려사항을 설명합니다.

라이선스 참고: CRM Analytics SyncIn 및 SyncOut은 CRM Analytics 라이센스 추가 기능이 없으면 기본 Salesforce Edition에서 사용할 수 없습니다. 다음 기능에 의존하는 동기화 아키텍처를 설계하기 전에 라이센스 권리를 확인하십시오.

데이터 통합은 엔터프라이즈 아키텍처에서 마찰이 큰 영역 중 하나입니다. Salesforce에서 분석 플랫폼으로의 사용자 정의 ETL 파이프라인에는 일반적으로 인증을 위한 연결된 앱, SOQL 추출을 위한 예약된 작업, 필드 유형 조정을 위한 변환 계층, 대량 로드를 위한 스테이징 영역, 실패를 포착하기 위한 모니터링 계층이 필요합니다. 사용자 정의 코드의 각 구성 요소는 오류 지점을 나타냅니다.

이 마찰의 비용은 시간이 지날수록 누적됩니다. Salesforce의 스키마 드리프트(이름이 변경된 필드, 새 선택 목록 값, 변경된 API 이름)는 파이프라인을 자동으로 중단합니다. 피크 사용 시 API가 소진되면 추출이 중단됩니다. 영구 삭제된 레코드는 대상 테이블에 나타나지 않아, 다운스트림 분석에서 이를 유효한 데이터로 간주할 수 있습니다. 엔지니어링 팀은 일상적인 데이터 작업에서 병목 현상이 됩니다.

CRM Analytics SyncIn 및 SyncOut은 운영 모델을 변경합니다. 구성이 코드를 대체합니다. 플랫폼은 실행, 오류 처리, 스키마 매핑, 관찰 가능성을 담당합니다. 관리자는 개발 티켓을 올리지 않고 동기화 작업을 정의, 수정, 모니터링할 수 있습니다.

이 새로운 운영 모델의 결과로 통합 설계에서 운영 동기화까지의 시간이 단축되고 엔지니어링 오버헤드가 줄어들며, 플랫폼 제약 내에서 확장되는 통합 모델을 제공하여 별도의 사용자 정의 코드 유지 관리가 필요하지 않습니다.

SyncIn 및 SyncOut 은 CRM Analytics 데이터 동기화의 두 가지 방향 모드입니다. SyncOut은 Salesforce 레코드를 외부 플랫폼으로 이동합니다. SyncIn은 외부 레코드를 Salesforce로 가져옵니다. 둘 모두 사용자 정의 코드가 필요하지 않은 선언적 구성 모델에서 작동합니다.

선언적 구성은 모든 동기화 동작이 Salesforce 설정에서 포인트 앤 클릭 UI를 통해 정의됨을 의미합니다. 소스 개체, 대상 테이블, 필드 매핑, 동기화 일정, 동기화 모드, 필터는 모두 구성 메타데이터를 통해 설정됩니다. 플랫폼은 해당 메타데이터에서 실행 계획을 파생하고 종단간 관리합니다.

전체 동기화와 증분 동기화는 각 실행 시 어떤 데이터가 이동할지 제어합니다. 전체 동기화는 모든 실행에서 필터 기준과 일치하는 모든 레코드를 쿼리합니다. 증분 동기화는 CDC를 사용하여 마지막 실행 이후에 변경된 레코드만 쿼리합니다. 증분 동기화는 API 소비 및 동기화 기간을 크게 줄이므로 대용량 객체에 권장되는 모드입니다.

**변경 데이터 수집(CDC)**은 개체의 필드 수준 변경 사항을 이벤트 스트림으로 기록하는 Salesforce 플랫폼 기능입니다. SyncOut은 CDC를 사용하여 전체 테이블 스캔을 수행하지 않고 만들기, 업데이트, 삭제를 감지합니다. 동기화 구성에서 참조하려면 먼저 Salesforce 설정에서 개체별로 CDC를 활성화해야 합니다.

하드 삭제 추적은 Salesforce-to-external ETL에서 가장 지속적인 문제 중 하나를 해결합니다. Salesforce에서 레코드가 영구 삭제되면 표준 SOQL 쿼리에서 사라집니다. 명시적 추적 없이는 외부 플랫폼이 해당 레코드가 제거되었다는 사실을 파악할 수 없습니다. SyncOut의 하드 삭제 추적 기능을 활성화하면 대상 테이블의 삭제된 레코드에 DEL_FLAG = 'Y' 플래그를 표시하여 다운스트림 시스템에 오래된 데이터를 필터링할 수 있는 신뢰할 수 있는 신호를 제공합니다.

동기화 주기는 15분에서 주 단위로 구성할 수 있습니다. 이는 데이터 신선도, API 소비, Snowflake 웨어하우스 컴퓨트 비용 간의 절충점입니다. 운영 대시보드의 15분 동기화는 거의 실시간에 가깝고, 일일 동기화는 배치 보고 작업 부하에 적합합니다.

거버너 제한이 동기화 작업 설계를 제약합니다: Unlimited Edition의 경우 Salesforce API 요청 제한(24시간마다 15,000회 호출), 10,000개의 레코드가 포함된 Bulk API 2.0 배치 크기, 트랜잭션당 SOQL 쿼리 행 제한 50,000개 모두 동기화 작업의 크기와 일정을 결정하는 데 참고해야 합니다. 플랫폼은 청크 및 페이지 매김을 자동으로 처리하지만, 설계자는 조직에서 실행 중인 모든 동기화 작업에서 제한된 여유 자원을 고려해야 합니다.

Snowflake는 Salesforce CRM Analytics와 데이터 동기화를 위한 기본 대상 및 소스입니다. 이는 배치 및 증분 데이터 이동이 종단간 작동하는 방법에 대한 구체적인 예입니다.

이 섹션에서는 Snowflake를 외부 분석 플랫폼으로 사용하여 CRM Analytics SyncOut 및 SyncIn을 구현하는 방법에 대한 개요를 제공합니다. 각 방법, 공유 인증 모델, 보안 프레임워크, 핵심 플랫폼 고려 사항, 관찰 가능성 관행을 다룹니다.

이 동기화 구성에서 Salesforce는 CRM Analytics SyncOut을 사용하여 Snowflake에 레코드를 푸시합니다. 플랫폼은 SOQL을 통해 데이터를 추출하고 유형 변환을 자동으로 처리한 후 구성된 일정(15분~매주)에 따라 Snowflake 테이블에 로드합니다. 특정 로딩 의미론은 현재 Salesforce 및 Snowflake 문서를 참조하십시오.

동기화 아키텍처

이 동기화 구성에서 Salesforce는 CRM Analytics SyncIn을 사용하여 데이터를 Salesforce로 다시 가져옵니다. 플랫폼은 문서 API를 통해 Snowflake를 쿼리하고 대량 API 2.0을 사용하여 결과를 Salesforce에 업서트합니다. 대규모 결과 집합은 API 제한을 준수하기 위해 자동으로 페이지 처리됩니다. 동기화는 15분에서 매주까지 구성된 일정에 따라 실행됩니다.

SyncIn 아키텍처

Salesforce 동기화는 여러 인증 메서드를 지원하여 Snowflake와 안전하게 연결합니다. 엔터프라이즈 통합을 위한 두 가지 기본 접근 방식은 키 쌍(개인 키) 및 위임된 OAuth 2.0입니다.

메서드 1: 키 쌍(개인 키) 인증: 키 쌍 인증은 CRM Analytics SyncIn 및 SyncOut과 같은 자동화된 시스템 간 데이터 이동에 권장되는 접근 방식입니다. 인증은 암호 또는 새로 고침 가능한 토큰이 아닌 JSON 웹 토큰(JWT)에 의존하므로 토큰 새로 고침이 필요하지 않은 무인 예약 작업에 적합합니다.

  • Salesforce 인증서: 비공개 키를 생성하고 Salesforce 인증서 및 키 관리에 안전하게 저장합니다.
  • 외부/명명된 자격 증명: JWT 교환을 사용하도록 구성됩니다. Salesforce는 저장된 개인 키를 사용하여 아웃바운드 연결 요청에 서명합니다.
  • Snowflake 사용자 공개 키: 일치하는 공개 키는 전용 Snowflake 서비스 계정에 직접 할당됩니다(예: ALTER USER CRM_ANALYTICS_SYNC_USER SET RSA_PUBLIC_KEY = ’…’). Snowflake는 이 키를 사용하여 들어오는 JWT 서명을 확인합니다. 이 메서드에는 보안 통합이 필요하지 않습니다.

메서드 2: 위임된 OAuth 2.0 인증: 또는 Salesforce에서 OAuth 핸드셰이크를 사용하여 인증할 수 있습니다. 주요 구성 요소는 다음과 같습니다.

  • 인증 공급자: Snowflake 보안 통합에서 검색된 클라이언트 자격 증명을 사용하여 Snowflake와의 OAuth 핸드셰이크를 관리합니다.
  • 외부 자격 증명: Salesforce 내에 OAuth 토큰을 안전하게 보관하고 자동으로 동기화 콜아웃에 삽입합니다.
  • 명명된 자격 증명: Snowflake 끝점 URL(예: https://<account>.snowflakecomputing.com)을 정의하고 외부 자격 증명을 참조합니다.
  • Snowflake 보안 통합: Snowflake에서 Salesforce를 신뢰할 수 있는 OAuth 클라이언트로 등록합니다(OAUTH_CLIENT = CUSTOM). 허용된 리디렉션 URI를 정의하고 새로 고침 토큰을 활성화합니다.

구성 종속성: 선택한 방법과 상관없이 이러한 구성 요소는 끝점에 동기화 구성을 연결하는 종속성 체인을 형성합니다. 관련 Salesforce 프로필에 명명된 자격 증명에 대한 액세스 권한을 부여해야 합니다. 이 액세스 권한이 없으면 다른 모든 구성과 상관없이 인증 오류로 인해 동기화 작업이 실패합니다.

백그라운드 동기화는 단일 통합 ID에 의존합니다.

  • 전용 서비스 계정: 동기화에 필요한 데이터베이스, 스키마, 테이블로만 범위가 지정된 최소 권한 역할이 있는 전용 Snowflake 서비스 계정을 만듭니다.
  • 세분화된 권한: SyncOut의 경우 이 역할에는 대상 테이블에 INSERT, UPDATE, SELECT 권한이 필요합니다. ACCOUNTADMIN, SECURITYADMIN 또는 SYSADMIN과 같은 높은 권한 역할을 사용하지 마십시오.
  • 거버너 한도 및 청크: 동기화 추출 시 대규모 결과 집합이 자동으로 청크되어 Salesforce SOQL 거버너 제한을 준수합니다. SyncIn은 자동 페이지 매김을 통해 Snowflake 문 API에서 대규모 결과 집합을 가져와 데이터 용량을 효율적으로 관리합니다.
  • 변경 데이터 캡처 (CDC): SyncOut 증분은 Salesforce CDC 이벤트 스트림을 사용하여 생성, 업데이트 또는 삭제된 레코드를 식별합니다. 영구 삭제 추적이 활성화된 경우 삭제된 Salesforce 레코드는 삭제되지 않지만 Snowflake에서 DEL_FLAG = 'Y'로 플래그가 지정됩니다.
  • 업서트 제약: SyncIn은 대량 API 2.0을 사용하여 데이터를 Salesforce로 다시 로드합니다. 이를 수행하려면 대상 Salesforce 개체에 지정된 외부 ID 필드를 구성하여 업서트 키로 작동해야 합니다.
  • 설계 지침: 항상 원시 테이블이 아닌 선별된 Snowflake 보기에서 동기화하십시오. 보기는 행 사전 필터링, 열 선택, 비즈니스 논리 적용을 허용하여 적용된 사전 필터링에 비례하여 데이터 용량, 동기화 기간 및 Snowflake 웨어하우스 계산 비용을 줄입니다.

모든 동기화 실행은 데이터 이동을 확인하는 포괄적인 감사 추적을 생성합니다. 동기화 작업 모니터링 대시보드는 SyncIn 및 SyncOut 모두에 대한 실시간 상태, 처리된 레코드 수, 실행 기간, 자세한 오류 로그를 제공합니다. Snowflake 측에서는 Salesforce가 제출한 모든 쿼리가 Snowflake 쿼리 내역에 기록되어 실행 대기 시간, 스캔된 행, 창고 계산 사용량을 완벽하게 파악할 수 있습니다. 또한 설계자는 전용 Snowflake 감사 테이블을 정의하여 플랫폼에서 자동으로 생성되지 않는 동기화 실행 메타데이터(타임스탬프, 레코드 수, 오류)를 수집합니다. 종단간 검증을 위해, SyncOut 실행 시 Snowflake(WHERE DEL_FLAG = 'N')의 활성 레코드를 확인하고, SyncIn 실행 시 Salesforce 대상 개체 수를 원래 Snowflake 소스 보기와 직접 비교합니다.

다음과 같은 경우 CRM Analytics SyncIn 및 SyncOut을 사용합니다.

  • 양방향 동기화는 요구 사항입니다. 데이터는 SyncIn을 통해 Salesforce로 및 SyncOut을 통해 외부 플랫폼으로 모두 플로됩니다.
  • 영구 삭제 추적은 매우 중요합니다. SyncOut의 내장형 플래그 지정은 사용자 정의 조정 논리 없이 복잡한 ETL 문제를 해결합니다.
  • CDC 기반 증분 동기화가 실현 가능: 대용량 Salesforce 개체의 경우 CDC는 전체 스캔과 비교하여 API 소비 및 동기화 기간을 현저하게 줄입니다.
  • 예약된 배치 동기화는 지연 요구 사항을 충족합니다. 최소 동기화 주기는 15분이며, 운영 대시보드 및 실시간에 가까운 분석 보고에 적합합니다.
  • 낮은 운영 오버헤드가 우선입니다: 내장형 대시보드는 사용자 정의 로깅 또는 경고 인프라 없이 전체 동기화 가시성을 제공하며 선언적 설정 UI를 사용하면 관리자가 개발 티켓을 올리지 않고 동기화 작업을 정의, 수정, 모니터링할 수 있습니다.

다음 경우에는 이 패턴을 사용하지 마십시오.

  • 복잡한 변환이 필요한 경우: 동기화 전후에 Snowflake 보기나 전용 변환 레이어에서 다중 테이블 조인, JSON 파싱 또는 고급 비즈니스 논리를 처리해야 하는 경우:
  • 15분 미만의 지연이 필요한 경우: 실시간 사용 사례의 경우 플랫폼 이벤트 또는 스트리밍 API를 사용합니다.
  • 매우 대용량 스트리밍 워크로드가 필요한 경우: 시간당 수백만 건의 트랜잭션이 발생하는 개체는 전용 스트리밍 파이프라인(Kafka, 플랫폼 이벤트)을 통해 더 적절히 처리됩니다.
  • 사용자 정의 오류 처리 논리가 필요합니다. 플랫폼은 표준 재시도 및 오류 로깅을 제공합니다. 복잡한 재시도 패턴 또는 사용자 정의 경고는 Apex 또는 외부 오케스트레이션을 필요로 합니다.
  • 다중 조직 또는 클라우드 간 동기화: CRM Analytics SyncIn 및 SyncOut은 단일 Salesforce 조직 내에서 작동합니다. 다중 조직 시나리오에는 MuleSoft 또는 사용자 정의 통합 계층이 필요합니다.

팀이 복잡한 ETL 파이프라인을 실행하여 Snowflake 분석 데이터를 CRM Analytics 데이터 집합에 업로드했습니다. 파이프라인은 느리고 취약하며 지속적인 엔지니어링 서비스 점검이 필요했습니다.

CRM Analytics SyncIn은 선별된 Snowflake 집계 보기를 Salesforce 사용자 정의 개체에 직접 동기화하도록 구성되었습니다. 팀은 CRM Analytics 데이터 집합 대신 해당 개체에서 읽을 수 있도록 CRM Analytics 대시보드를 재구성했습니다. 결과: 두 개의 ETL 파이프라인이 제거되고 동기화 기간이 4시간에서 30분으로 단축되고 관리자가 엔지니어링 티켓을 올리지 않고 동기화 구성을 수정할 수 있습니다.

Snowflake 운영 데이터 저장소에서 영구 삭제된 Salesforce 레코드를 추적해야 하는 데이터 팀 기존 접근 방식은 작업을 분할하고, 실행하는 데 몇 시간이 걸리며, 스키마 변경에 따라 취약한 복잡한 ID 조정 논리를 필요로 했습니다.

팀은 CDC 및 영구 삭제 추적이 활성화된 상태로 CRM Analytics SyncOut을 구성했습니다. 이제 삭제된 레코드가 Snowflake 소비 테이블에서 DEL_FLAG = ‘Y’로 자동으로 플래그가 지정됩니다. 다운스트림 분석 쿼리는 WHERE DEL_FLAG = ‘N’를 적용하여 활성 레코드만 표시합니다. 조정 논리가 완전히 제거되었으며 동기화 기간이 8시간에서 15분 증분 실행으로 떨어졌습니다.

인수 과정에서 인수 회사는 고정된 타임라인 내에서 교차 조직 보고 및 규제 준수를 위해 대용량 Salesforce 개체 6개를 Snowflake에 동기화했습니다.

팀은 CDC 기반 증분 동기화를 사용하여 6개의 개체 모두에 대해 CRM Analytics SyncOut을 구성했습니다. 감사 메타데이터 테이블은 통합 기간 전반에 걸쳐 스키마 변경 사항 및 레코드 개수를 추적했습니다. 사용자 정의 코드를 작성하지 않았습니다. 데이터 새로 고침이 일일에서 15분 간격으로 향상되었으며 감사 메타데이터 테이블은 규정 준수 보고에 필요한 추적성을 제공했습니다.

동기화 작업은 조직의 API 예산을 공유합니다. 대규모 개체에 대해 많은 고빈도 동기화 작업을 실행하는 조직은 24시간당 API 호출 15,000건을 소진할 위험이 있습니다. 모든 동기화 작업을 파악하고, 실행당 API 소비량을 추정하며, 일정을 분산시켜 부하를 분산합니다. 변경률이 낮거나 보통인 개체의 경우 CDC 기반 증분 모드는 전체 동기화와 비교하여 실행당 API 소비량을 크게 줄일 수 있습니다.

SyncIn 및 SyncOut은 Snowflake 웨어하우스에 대한 쿼리 및 데이터 로드를 실행하여 컴퓨팅 크레딧을 사용합니다. 간단한 SELECT 쿼리의 경우 일반적으로 X-Small 또는 Small 웨어하우스가 충분합니다. 대량 SyncOut 로드의 경우 Medium 또는 Large 웨어하우스가 필요할 수 있습니다. 웨어하우스에서 자동 일시 중단(5분 동안 비활성 상태) 및 자동 재개를 구성합니다. 프로덕션 동기화 작업에 전용 웨어하우스를 사용하여 비용을 격리하고 사용자 쿼리와의 충돌을 방지합니다.

Salesforce 필드의 이름이 변경, 제거되거나 API 이름이 변경되면, 해당 SyncOut 필드 매핑은 별도의 경고 없이 실패하거나 오류를 기록합니다. Salesforce 메타데이터 변경의 일부로 활성 동기화 구성을 검토하는 것이 포함된 변경 관리 프로세스를 설정합니다. Snowflake 감사 테이블은 드리프트 이벤트가 발생한 시점을 식별하는 데 도움이 되는 변경 내역을 제공합니다.

SyncOut에서 하드 삭제 추적을 사용하려면 Salesforce 개체에서 CDC를 활성화해야 합니다. CDC가 활성화되어 있지 않은 경우 “Track Hard Deletes” 옵션은 영향을 미치지 않습니다. 특히 초기 설정 동안 또는 조직 마이그레이션 후 동기화 구성 체크리스트의 일부로 CDC 활성화를 확인합니다.

가장 일반적인 실패 클래스는 자격 증명 만료 또는 권한 손실입니다. 명명된 자격 증명은 유효한 상태로 유지해야 하며 Snowflake 서비스 계정은 창고 사용 허용 및 테이블 권한을 유지해야 합니다. OAuth 기반 설정의 경우 토큰 새로 고침에 실패하면 동기화 작업이 자동으로 중단될 수 있습니다. 동기화 작업 모니터 대시보드에서 인증 오류 패턴을 모니터링하고 작업 실패를 위해 Chatter 또는 이메일 알림을 구성합니다.

SyncIn은 Salesforce 외부 ID 필드를 업서트 키로 사용합니다. 소스 Snowflake 보기에 키 필드에 중복 값이 포함되어 있는 경우 영향받는 레코드에 대해 업서트가 실패합니다. 동기화 구성에 도달하기 전에 Snowflake 보기 레이어의 키 필드에 고유성을 적용합니다.

동기화 작업이 실패하면 플랫폼이 동기화 작업 모니터에 레코드당 세부 오류 메시지를 기록합니다. 일반적인 실패 시나리오 및 해결 방법:

  • 인증 실패: 명명된 자격 증명 상태 및 Snowflake 계정 만료 여부를 확인합니다. 토큰 새로 고침에 실패한 경우 OAuth를 다시 인증합니다.
  • 필드 매핑 오류: Snowflake 열과 Salesforce 필드 간 유형 호환성을 확인합니다. 실행 사용자의 필드 수준 보안을 검토합니다.
  • 거버너 제한 초과: 동기화 주기를 줄이거나 증분 CDC 모드로 전환하여 API 사용을 분산합니다.
  • Snowflake 웨어하우스 일시 중지: 다음 예약 동기화 전에 웨어하우스에서 자동 재개를 구성하거나 수동 재개를 트리거합니다.
  • 하드 삭제 추적이 작동하지 않음: CDC가 개체에 활성화되어 있고 동기화 구성에서 “하드 삭제 추적” 플래그가 설정되어 있는지 확인합니다.

CRM Analytics 데이터 동기화는 Salesforce 올바르게 설계된 프레임워크의 여러 기둥에 부합합니다.

  • 신뢰성(오류 허용): 플랫폼은 자동으로 실행, 재시도 논리, 부분 실패 처리를 관리합니다. 실패한 레코드는 동기화 작업 모니터에 개별적으로 기록됩니다. 실패 후 레코드 수 재조정을 구현하여 일관성을 확인하고, 실패 알림으로 보완하며, 동기화 작업 모니터에서 반복되는 오류 패턴을 모니터링합니다. CDC 기반 증분 동기화는 데이터 범위를 제한하여 실패한 실행의 영향을 최소화합니다.
  • Trust: 자격 증명 모델(명명된 자격 증명, 외부 자격 증명, 인증 공급자)은 암호화된 저장소, 자동 토큰 새로 고침, 중앙 집중식 관리를 적용합니다. Snowflake 측의 최소 권한 액세스는 손상된 자격 증명의 영향을 제한합니다. 동기화 시 필드 수준 보안이 적용되며, 사용자는 액세스 권한이 없는 필드를 동기화할 수 없습니다.
  • 자원 및 비용 최적화: 증분 CDC 모드는 성능 최적화를 위한 기본 레버입니다. 전체 동기화와 비교하여 API 소비, 동기화 기간 및 Snowflake 컴퓨팅 비용을 줄입니다. Snowflake 보기 사전 필터링은 전송되는 데이터 용량을 더 줄입니다. 웨어하우스의 자동 일시 중단 기능은 유휴 컴퓨팅 비용 발생을 방지합니다.
  • 작업 우수성: 선언적 구성 모델은 동기화 작업이 코드가 아닌 메타데이터로 정의됨을 의미합니다. 이를 통해 엔지니어링 관여 없이 감사, 재현, 관리할 수 있습니다. 내장된 모니터링 대시보드는 사용자 정의 로깅 인프라 없이 전체 관찰 가능성을 제공합니다.
  • 신뢰성(확장성): 플랫폼은 청크, 페이지 매김, 대량 API 배치를 자동으로 처리합니다. 레코드 용량이 매우 높은 개체의 경우 증분 CDC 모드 및 비피크 시간대 예약은 거버너 제한 제약 내에서 처리량을 유지하기 위한 기본 아키텍처 레버입니다.

이 체크리스트는 동기화 구성을 설정하고 확인하는 최소 단계를 다룹니다.

구성 전 체크리스트:

  • 동기화 증분 모드에 사용할 수 있는 모든 Salesforce 개체에서 데이터 수집 변경을 활성화합니다(설정 → 데이터 수집 변경).
  • 최소 권한 역할을 가진 전용 Snowflake 서비스 계정을 생성하세요. 필요한 테이블 및 웨어하우스 권한만 부여하세요.
  • OAuth 인증을 사용하는 경우 Snowflake 보안 통합을 만듭니다.
  • SyncIn에서 업서트 키로 사용할 각 Salesforce 개체의 외부 ID 필드를 식별하고 소스 데이터의 고유성을 확인합니다.

연결성:

  • Salesforce에서 인증 공급자 만들기(설정 → 인증 공급자).
  • 외부 자격 증명을 만들고 인증 공급자에 연결합니다(설정 → 명명된 자격 증명 → 외부 자격 증명).
  • 명명된 자격 증명을 만들고 외부 자격 증명에 연결합니다(설정 → 명명된 자격 증명).
  • 관련 Salesforce 프로필에 명명된 자격 증명 액세스 권한을 부여합니다.

SyncOut 구성:

  • Snowflake 연결 만들기(설정 → Analytics Studio → 데이터 관리자 → 연결 → Snowflake 연결)
  • SyncOut 구성을 생성하세요: 소스 오브젝트, 대상 테이블, 동기화 모드, 필드 매핑, CDC, 하드 삭제 추적, 일정.
  • 일일 동기화부터 시작하세요. 빈도를 늘리기 전에 데이터 품질과 성능을 검증하세요.

SyncIn 구성:

  • 외부 데이터 소스 만들기(설정 → Analytics Studio → 데이터 관리자 → 연결 → Snowflake 연결)
  • SyncIn 구성을 생성하세요: 소스 뷰, 대상 오브젝트, 외부 ID 필드, 필드 매핑, 일정.
  • 원시 테이블이 아닌 Snowflake 뷰에서 동기화하세요.

확인:

  • 첫 번째 실행 후 동기화 작업 모니터링을 검토합니다(설정 → Analytics Studio → 데이터 관리자 → 동기화 작업 모니터).
  • 동기화 메타데이터가 작성되었는지 확인하려면 Snowflake 감사 테이블을 쿼리합니다.
  • DEL_FLAG 열이 나타나고 채워져 있는지 확인하여 영구 삭제 플래그 지정을 확인합니다.
  • 소스와 대상 간의 레코드 수를 비교합니다.
  • Chatter 또는 이메일을 통해 실패 알림을 구성하세요.

예약된 배치 동기화가 대기 시간 요구 사항을 충족하고 양방향 데이터 플로가 필요하며 통합 작업에 대한 엔지니어링 종속성을 줄이는 것이 우선 순위인 경우 이 패턴을 사용합니다.

이 가이드의 Snowflake 예제는 연결 설정, 구성, 실행 흐름, 검증 등 전체 라이프사이클을 보여줍니다. 지원되는 외부 데이터 플랫폼에도 같은 원칙이 적용됩니다.

15분 미만의 대기 시간, 복잡한 변환 또는 다중 조직 시나리오가 범위에 있을 경우 플랫폼 이벤트, 스트리밍 API 또는 MuleSoft를 보완 또는 대체 접근 방식으로 평가합니다.

Yugandhar Bora는 Salesforce의 소프트웨어 엔지니어링 아키텍처로, 데이터 및 인텔리전스 애플리케이션 플랫폼 내 데이터 아키텍처를 전문으로 합니다. 그는 데이터 거버넌스 및 통합 데이터 모델에 초점을 맞춘 EARB(엔터프라이즈 아키텍처 검토 위원회) 이니셔티브를 이끌고 자동화된 플랫폼 프로비저닝 솔루션에 기여합니다.