다음을 통해 공유


Azure Data Factory 또는 Azure Synapse Analytics를 사용하여 Salesforce Service Cloud에서 데이터 복사

적용 대상: Azure Data Factory Azure Synapse Analytics

기업용 올인원 분석 솔루션인 Microsoft Fabric의 Data Factory를 사용해 보세요. Microsoft Fabric은 데이터 이동부터 데이터 과학, 실시간 분석, 비즈니스 인텔리전스 및 보고에 이르기까지 모든 것을 다룹니다. 무료로 새 평가판을 시작하는 방법을 알아봅니다!

이 문서에서는 Azure Data Factory 및 Azure Synapse 파이프라인의 복사 작업을 사용하여 Salesforce Service Cloud에서 데이터를 복사하는 방법을 간략하게 설명합니다. 이 문서는 복사 작업에 대한 일반적인 개요를 제공하는 복사 작업 개요 문서를 기반으로 합니다.

Important

새로운 Salesforce Service Cloud 커넥터는 개선된 네이티브 Salesforce Service Cloud 지원을 제공합니다. 솔루션에서 레거시 Salesforce Service Cloud 커넥터를 사용하는 경우 2024년 10월 11일 이전에 Salesforce Service Cloud 커넥터를 업그레이드하세요. 레거시 버전과 최신 버전의 차이점에 대한 자세한 내용은 이 섹션을 참조하세요.

지원되는 기능

이 Salesforce Service Cloud 커넥터는 다음 기능에 대해 지원됩니다.

지원되는 기능 IR
복사 작업(원본/싱크) 3,4
조회 작업 3,4

① Azure 통합 런타임 ② 자체 호스팅 통합 런타임

원본 및 싱크로 지원되는 데이터 저장소의 목록은 지원되는 데이터 저장소 표를 참조하세요.

특히 이 Salesforce Service Cloud 커넥터는 다음을 지원합니다.

  • Salesforce 개발자, Professional, Enterprise 또는 Unlimited Edition.
  • 사용자 지정 도메인 간 데이터 복사(사용자 지정 도메인은 프로덕션 환경과 샌드박스 환경 모두에서 구성 가능)

연결된 서비스의 apiVersion속성을 통해 데이터를 읽고 쓰는 데 사용되는 API 버전을 명시적으로 설정할 수 있습니다. Salesforce Service Cloud에 데이터를 복사할 때 커넥터는 BULK API 2.0을 사용합니다.

필수 조건

  • Salesforce에서 API 권한을 사용하도록 설정해야 합니다.

  • 공식 문서 또는 이 문서의 권장 사항에 있는 단계별 지침을 참조하여 Salesforce 포털에서 연결된 앱을 구성해야 합니다.

    Important

    • 실행 사용자에게는 API 전용 권한이 있어야 합니다.
    • 액세스 토큰 만료 시간은 새로 고침 토큰 대신 세션 정책을 통해 변경될 수 있습니다.

Salesforce Bulk API 2.0 제한

Salesforce Bulk API 2.0을 사용하여 데이터를 쿼리하고 수집합니다. Bulk API 2.0에서는 일괄 처리가 자동으로 만들어집니다. 24시간 동안 최대 15,000개의 일괄 처리를 제출할 수 있습니다. 일괄 처리가 한도를 초과하면 실패가 표시됩니다.

Bulk API 2.0에서는 수집 작업만 일괄 처리를 사용합니다. 쿼리 작업은 그렇지 않습니다. 자세한 내용은 Bulk API 2.0 개발자 가이드에서 요청 처리 방법을 참조하세요.

자세한 내용은 Salesforce 개발자 제한 사항의 "일반 제한 사항" 섹션을 참조하세요.

시작하기

파이프라인에 복사 작업을 수행하려면 다음 도구 또는 SDK 중 하나를 사용하면 됩니다.

UI를 사용하여 Salesforce 서비스 클라우드로 연결된 서비스 만들기

다음 단계를 사용하여 Azure Portal UI에서 Salesforce 서비스 클라우드로 연결된 서비스를 만듭니다.

  1. Azure Data Factory 또는 Synapse 작업 영역에서 관리 탭으로 이동하여 연결된 서비스를 선택하고 새로 만들기를 클릭합니다.

  2. Salesforce를 검색하고 Salesforce 서비스 클라우드 커넥터를 선택합니다.

    Salesforce Service Cloud 커넥터의 스크린샷.

  3. 서비스 세부 정보를 구성하고, 연결을 테스트하고, 새로운 연결된 서비스를 만듭니다.

    Salesforce Service Cloud에 대한 연결된 서비스 구성의 스크린샷.

커넥터 구성 세부 정보

다음 섹션에서는 Salesforce Service Cloud 커넥터와 관련된 엔터티를 정의하는 데 사용되는 속성에 대한 세부 정보를 제공합니다.

연결된 서비스 속성

Salesforce Service Cloud 연결된 서비스에는 다음 속성이 지원됩니다.

속성 설명 필수
type type 속성은 SalesforceServiceCloudV2로 설정되어야 합니다.
environmentUrl Salesforce Service Cloud 인스턴스의 URL을 지정합니다.
예를 들어, 사용자 지정 도메인에서 데이터를 복사하려면 "https://<domainName>.my.salesforce.com"을 지정합니다. 이 문서를 참조하여 사용자 지정 도메인을 구성하거나 보는 방법을 알아봅니다.
authenticationType Salesforce Service Cloud에 연결하는 데 사용되는 인증 형식입니다.
허용되는 값은 OAuth2ClientCredentials입니다.
clientId Salesforce OAuth 2.0 연결된 앱의 클라이언트 ID를 지정합니다. 자세한 내용은 이 문서를 참조하세요.
clientSecret Salesforce OAuth 2.0 연결된 앱의 클라이언트 암호를 지정합니다. 자세한 내용은 이 문서를 참조하세요.
apiVersion 사용할 Salesforce Bulk API 2.0 버전을 지정합니다. 52.0. Bulk API 2.0은 API 버전 >= 47.0만 지원합니다. Bulk API 2.0 버전에 대해 알아보려면 문서를 참조하세요. 더 낮은 API 버전을 사용하면 오류가 발생합니다.
connectVia 데이터 저장소에 연결하는 데 사용할 통합 런타임입니다. 지정하지 않으면 기본 Azure Integration Runtime을 사용합니다. 아니요

예: 자격 증명 저장

{
    "name": "SalesforceServiceCloudLinkedService",
    "properties": {
        "type": "SalesforceServiceCloudV2",
        "typeProperties": {
            "environmentUrl": "<environment URL>",
            "authenticationType": "OAuth2ClientCredentials",
            "clientId": "<client ID>",
            "clientSecret": {
                "type": "SecureString",
                "value": "<client secret>"
            },
            "apiVersion": "<API Version>"
        },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

예: Key Vault에 자격 증명 저장

{
    "name": "SalesforceServiceCloudLinkedService",
    "properties": {
        "type": "SalesforceServiceCloudV2",
        "typeProperties": {
            "environmentUrl": "<environment URL>",
            "authenticationType": "OAuth2ClientCredentials",
            "clientId": "<client ID>",
            "clientSecret": {
                "type": "AzureKeyVaultSecret",
                "secretName": "<secret name of client secret in AKV>",
                "store":{
                    "referenceName": "<Azure Key Vault linked service>",
                    "type": "LinkedServiceReference"
                }
            },
            "apiVersion": "<API Version>"
        },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

데이터 세트 속성

데이터 세트 정의에 사용할 수 있는 섹션 및 속성의 전체 목록은 데이터 세트 문서를 참조하세요. 이 섹션에서는 Salesforce Service Cloud 데이터 세트에서 지원하는 속성의 목록을 제공합니다.

Salesforce Service Cloud에서 데이터를 복사하려면 데이터 세트의 type 속성을 SalesforceServiceCloudV2Object로 설정합니다. 다음과 같은 속성이 지원됩니다.

속성 설명 필수
type type 속성은 SalesforceServiceCloudV2Object로 설정되어야 합니다.
objectApiName 데이터를 검색할 Salesforce Service Cloud 개체 이름입니다. 해당 자체 호스팅 통합 런타임 버전은 5.44.8984.1 이상입니다. 원본의 경우 아니요(원본에서 "쿼리"가 지정된 경우), 싱크의 경우 예
reportId 데이터를 검색할 Salesforce Service Cloud 보고서의 ID입니다. 싱크에서는 지원되지 않습니다. 보고서를 사용할 때는 제한 사항이 있습니다. 해당 자체 호스팅 통합 런타임 버전은 5.44.8984.1 이상입니다. 원본의 경우 아니요(원본에서 " 쿼리"가 지정된 경우), 싱크를 지원하지 않음

Important

모든 사용자 지정 개체에 대해 API 이름에 "__c" 부분이 필요합니다.

Salesforce 연결 API 이름

예제:

{
    "name": "SalesforceServiceCloudDataset",
    "properties": {
        "type": "SalesforceServiceCloudV2Object",
        "typeProperties": {
            "objectApiName": "MyTable__c"
        },
        "schema": [],
        "linkedServiceName": {
            "referenceName": "<Salesforce Service Cloud linked service name>",
            "type": "LinkedServiceReference"
        }
    }
}

복사 작업 속성

작업 정의에 사용할 수 있는 섹션 및 속성의 전체 목록은 파이프라인 문서를 참조하세요. 이 섹션에서는 Salesforce Service Cloud 원본 및 싱크에서 지원하는 속성의 목록을 제공합니다.

소스 형식으로서의 Salesforce Service Cloud

Salesforce Service Cloud에서 데이터를 복사하려면 복사 작업의 원본 형식을 SalesforceServiceCloudV2Source로 설정합니다. 복사 작업 원본 섹션에서 지원되는 속성은 다음과 같습니다.

속성 설명 필수
type 복사 작업 원본의 type 속성은 SalesforceServiceCloudV2Source로 설정되어야 합니다.
query 사용자 지정 쿼리를 사용하여 데이터를 읽습니다. 제한 사항이 있는 SOQL(Salesforce Object Query Language) 쿼리만 사용할 수 있습니다. SOQL 제한 사항은 이 문서를 참조하세요. 쿼리를 지정하지 않으면 데이터 세트의 “objectApiName/reportId”에 지정된 Salesforce 개체의 모든 데이터가 검색됩니다. 아니요(데이터 세트에 "objectApiName/reportId"가 지정된 경우)
includeDeletedObjects 기존 레코드를 쿼리할지, 아니면 삭제된 항목을 포함하여 모든 레코드를 쿼리할지 여부를 나타냅니다. 지정하지 않으면 기본 동작은 false입니다.
허용되는 값: false(기본값), true.
아니요

Important

모든 사용자 지정 개체에 대해 API 이름에 "__c" 부분이 필요합니다.

Salesforce 연결 API 이름 목록

예제:

"activities":[
    {
        "name": "CopyFromSalesforceServiceCloud",
        "type": "Copy",
        "inputs": [
            {
                "referenceName": "<Salesforce Service Cloud input dataset name>",
                "type": "DatasetReference"
            }
        ],
        "outputs": [
            {
                "referenceName": "<output dataset name>",
                "type": "DatasetReference"
            }
        ],
        "typeProperties": {
            "source": {
                "type": "SalesforceServiceCloudV2Source",
                "query": "SELECT Col_Currency__c, Col_Date__c, Col_Email__c FROM AllDataType__c",
                "includeDeletedObjects": false
            },
            "sink": {
                "type": "<sink type>"
            }
        }
    }
]

싱크 형식으로서의 Salesforce Service Cloud

Salesforce Service Cloud에 데이터를 복사하려면 복사 작업의 싱크 형식을 SalesforceServiceCloudV2Sink로 설정합니다. 복사 작업 싱크 섹션에서 지원되는 속성은 다음과 같습니다.

속성 설명 필수
type 복사 작업 싱크의 type 속성은 SalesforceServiceCloudV2Sink로 설정되어야 합니다.
writeBehavior 작업의 쓰기 동작입니다.
허용되는 값은 InsertUpsert입니다.
아니요(기본값: 삽입)
externalIdFieldName Upsert 작업의 외부 ID 필드 이름입니다. 지정된 필드는 Salesforce Service Cloud 개체에서 "외부 ID 필드"로 정의되어야 합니다. 해당하는 입력 데이터에서 NULL 값을 가질 수 없습니다. "Upsert"에서 예
writeBatchSize 각 일괄 처리에서 Salesforce Service Cloud에 작성된 데이터의 행 수입니다. 이 값을 10,000에서 200,000으로 설정하는 것이 좋습니다. 각 일괄 처리에 행이 너무 적으면 복사 성능이 저하됩니다. 각 일괄 처리에 행이 너무 많으면 API 시간 제한이 발생할 수 있습니다. 아니요(기본값: 100,000)
ignoreNullValues 쓰기 작업 중에 입력 데이터에서 NULL 값을 무시할지 여부를 나타냅니다.
허용되는 값은 truefalse입니다.
- True: Upsert나 업데이트 작업을 수행할 때 대상 개체의 데이터를 변경하지 않고 유지합니다. 삽입 작업을 수행할 때 정의된 기본 값을 삽입합니다.
- False: Upsert나 업데이트 작업을 수행할 때 대상 개체의 데이터를 NULL로 업데이트합니다. 삽입 작업을 수행할 때 NULL 값을 삽입합니다.
아니요(기본값: false)
 maxConcurrentConnections 작업 실행 중 데이터 저장소에 설정된 동시 연결의 상한입니다. 동시 연결을 제한하려는 경우에만 값을 지정합니다.   아님

예: 복사 작업의 Salesforce Service Cloud 싱크

"activities":[
    {
        "name": "CopyToSalesforceServiceCloud",
        "type": "Copy",
        "inputs": [
            {
                "referenceName": "<input dataset name>",
                "type": "DatasetReference"
            }
        ],
        "outputs": [
            {
                "referenceName": "<Salesforce Service Cloud output dataset name>",
                "type": "DatasetReference"
            }
        ],
        "typeProperties": {
            "source": {
                "type": "<source type>"
            },
            "sink": {
                "type": "SalesforceServiceCloudV2Sink",
                "writeBehavior": "Upsert",
                "externalIdFieldName": "CustomerId__c",
                "writeBatchSize": 10000,
                "ignoreNullValues": true
            }
        }
    }
]

Salesforce Service Cloud에 대한 데이터 형식 매핑

Salesforce Service Cloud에서 데이터를 복사할 때 Salesforce Service Cloud 데이터 형식에서 내부적으로 서비스 내의 중간 데이터 형식으로 다음 매핑이 사용됩니다. 복사 활동에서 원본 스키마와 데이터 형식을 싱크에 매핑하는 방법에 대한 자세한 내용은 스키마 및 데이터 형식 매핑을 참조하세요.

Salesforce Service Cloud 데이터 형식 서비스 중간 데이터 형식
자동 번호 문자열
Checkbox 부울
통화 소수
날짜 DateTime
날짜/시간 DateTime
Email 문자열
ID 문자열
관계 조회 문자열
다중 선택 선택 목록 문자열
숫자 소수
퍼센트 소수
전화 문자열
선택 목록 문자열
Text 문자열
텍스트 영역 문자열
텍스트 영역(Long) 문자열
텍스트 영역(Rich) 문자열
텍스트(암호화됨) 문자열
URL 문자열

참고 항목

Salesforce Service Cloud 숫자 형식은 Azure Data Factory 및 Azure Synapse 파이프라인의 10진 형식에 서비스 중간 데이터 형식으로 매핑됩니다. 10진 형식은 정의된 정밀도와 스케일을 따릅니다. 소수점 이하 자릿수가 정의된 스케일을 초과하는 데이터의 경우 해당 값은 미리 보기 데이터 및 복사에서 반올림됩니다. Azure Data Factory 및 Azure Synapse 파이프라인에서 이러한 정밀도 손실을 방지하려면 Salesforce Service Cloud의 사용자 지정 필드 정의 편집 페이지에서 소수점 이하 자릿수를 상당히 큰 값으로 늘리는 것이 좋습니다.

조회 작업 속성

속성에 대한 자세한 내용을 보려면 조회 작업을 확인하세요.

Salesforce Service Cloud 연결 서비스 업그레이드

연결된 서비스 및 관련 쿼리를 업그레이드하는 데 도움이 되는 단계는 다음과 같습니다.

  1. 필수 조건을 참조하여 Salesforce 포털에서 연결된 앱을 구성합니다.

  2. 새로운 Salesforce Service Cloud 연결 서비스를 만들고 연결된 서비스 속성을 참조하여 구성합니다.

  3. 복사 작업 원본에서 SQL 쿼리를 사용하거나 레거시 연결된 서비스를 참조하는 조회 작업을 사용하는 경우 이를 SOQL 쿼리로 변환해야 합니다. 원본 형식으로서의 Salesforce Service CloudSOQL(Salesforce Object Query Language)의 SOQL 쿼리에 대해 자세히 알아봅니다.

  4. readBehavior는 복사 작업 원본 또는 조회 작업에서 includeDeletedObjects로 바뀝니다. 자세한 구성은 원본 형식으로서의 Salesforce Service Cloud를 참조하세요.

Salesforce Service Cloud와 Salesforce Service Cloud(레거시)의 차이점

Salesforce Service Cloud 커넥터는 새로운 기능을 제공하며 Salesforce Service Cloud(레거시) 커넥터의 대부분 기능과 호환됩니다. 아래 표에는 Salesforce Service Cloud와 Salesforce Service Cloud(레거시) 간의 기능 차이점이 나와 있습니다.

Salesforce 서비스 클라우드 Salesforce 서비스 클라우드(레거시)
Salesforce Bulk API 2.0 내에서 SOQL을 지원합니다.
SOQL 쿼리의 경우:
• GROUP BY, LIMIT, ORDER BY, OFFSET 또는 TYPEOF 절은 지원되지 않습니다.
• COUNT()와 같은 집계 Functions는 지원되지 않으며 Salesforce 보고서를 사용하여 구현할 수 있습니다.
• GROUP BY 절의 날짜 함수는 지원되지 않지만 WHERE 절에서는 지원됩니다.
• 복합 주소 필드 또는 복합 지리적 위치 필드는 지원되지 않습니다. 대안으로 복합 필드의 개별 구성 요소를 쿼리합니다.
• 부모-자식 관계 쿼리는 지원되지 않지만 자식-부모 관계 쿼리는 지원됩니다.
SQL 및 SOQL 구문을 모두 지원합니다.
쿼리를 지정할 때 이진 필드가 포함된 개체는 지원되지 않습니다. 쿼리를 지정할 때 이진 필드가 포함된 개체가 지원됩니다.
쿼리를 지정할 때 대량 API 내 개체를 지원합니다. 쿼리를 지정할 때 대량 API에서 지원되지 않는 개체를 지원합니다.
보고서 ID를 선택하여 보고서를 지원합니다. {call "<report name>"}과 같은 보고서 쿼리 구문을 지원합니다.

복사 작업에서 원본 및 싱크로 지원되는 데이터 저장소 목록은 지원되는 데이터 저장소를 참조하세요.