Копирование данных из и в Salesforce Service Cloud версии 2 с помощью Azure Data Factory или Azure Synapse Analytics

ПРИМЕНИМО К: Azure Data Factory Azure Synapse Analytics

Tip

Data Factory в Microsoft Fabric — это следующее поколение Azure Data Factory с более простой архитектурой, встроенным ИИ и новыми функциями. Если вы не знакомы с интеграцией данных, начните с Fabric Data Factory. Существующие рабочие нагрузки ADF могут обновляться до Fabric для доступа к новым возможностям в области обработки и анализа данных, аналитики в режиме реального времени и отчетов.

В этой статье описывается использование действия копирования в конвейерах Azure Data Factory и Azure Synapse для копирования данных из облака Salesforce Service Cloud. Это продолжение статьи с обзором действия копирования, в которой представлены общие сведения о действии копирования.

Important

Соединитель Salesforce Service Cloud V1 находится на этапе удаления. Рекомендуется обновить соединитель Salesforce Service Cloud с версии 1 до версии 2.

Поддерживаемые возможности

Этот соединитель Salesforce Service Cloud поддерживается для следующих возможностей:

Поддерживаемые возможности IR
Копирование данных (источник/приемник) (1) (2)
Операция поиска (1) (2)

(1) Azure среды выполнения интеграции (2) локальная среда выполнения интеграции

Список хранилищ данных, которые поддерживаются в качестве источников или приемников, см. в таблице Поддерживаемые хранилища данных.

В частности, этот соединитель Salesforce Service Cloud поддерживает следующее:

  • Выпуски Salesforce Developer, Professional, Enterprise и Unlimited.
  • Копирование данных из пользовательского домена и в него (пользовательский домен можно настроить как в рабочих, так и в тестовых средах).

Вы можете явно задать версию API, используемую для чтения и записи данных с помощью apiVersion свойства в связанной службе. При копировании данных в Salesforce Service Cloud соединитель использует BULK API 2.0.

Prerequisites

  • В Salesforce требуется включить разрешение API.

  • Вам потребуется настроить подключенные приложения на портале Salesforce, ссылаясь на этот официальный документ или наше пошаговое руководство в рекомендации в этой статье.

    Important

    • Пользователь выполнения должен иметь разрешение только на API.
    • Срок действия токена доступа можно изменить с помощью политик сеансов вместо токена обновления.

Ограничения Salesforce Bulk API 2.0

Мы используем API Salesforce Bulk API 2.0 для запроса и приема данных. В пакетном API 2.0 пакеты создаются автоматически. Вы можете отправлять до 15 000 пакетов на 24-часовой период. Если пакеты превышают предел, вы увидите сбои.

В Bulk API 2.0 только задания на ввод обрабатывают пакеты. Задания запросов не выполняются. Для получения дополнительной информации см. руководство разработчика по массовому API 2.0.

Дополнительные сведения см. в разделе "Общие ограничения" в ограничениях разработчика Salesforce.

Get started

Для выполнения действия копирования с конвейером можно использовать один из следующих средств или пакетов SDK:

Создание связанной службы для Salesforce Service Cloud с помощью пользовательского интерфейса

Выполните следующие действия, чтобы создать связанную службу в Salesforce Service Cloud в пользовательском интерфейсе портала Azure.

  1. Перейдите на вкладку "Управление" в рабочей области Azure Data Factory или Synapse и выберите "Связанные службы", а затем нажмите кнопку "Создать".

  2. Найдите Salesforce и выберите соединитель Salesforce Service Cloud.

    Снимок экрана: соединитель Salesforce Service Cloud.

  3. Настройте сведения о службе, проверьте подключение и создайте связанную службу.

    Снимок экрана конфигурации связанной службы Salesforce Service Cloud.

Сведения о конфигурации соединителя

В следующих разделах содержатся сведения о свойствах, которые используются для определения сущностей, относящихся к соединителю Salesforce Service Cloud.

Свойства связанной службы

Следующие свойства поддерживаются для связанной службы Salesforce Service Cloud.

Property Description Required
type Свойство type должно иметь значение SalesforceServiceCloudV2. Yes
environmentUrl Укажите URL-адрес облачного экземпляра службы Salesforce Service Cloud.
Например, укажите "https://<domainName>.my.salesforce.com" , чтобы скопировать данные из личного домена. Узнайте, как настроить или просмотреть личный домен, ссылающийся на эту статью.
Yes
authenticationType Тип проверки подлинности, используемый для подключения к облаку Службы Salesforce.
Допустимое значение — OAuth2ClientCredentials.
Yes
clientId Укажите идентификатор клиента подключенного приложения Salesforce OAuth 2.0. Дополнительные сведения см. в этой статье Yes
clientSecret Укажите секрет клиента подключенного приложения Salesforce OAuth 2.0. Дополнительные сведения см. в этой статье Yes
apiVersion Укажите используемую версию API Salesforce Bulk API 2.0, например. 52.0 Пакетный API 2.0 поддерживает только версию >API = 47.0. Чтобы узнать о пакетной версии API 2.0, см. статью. Если вы используете более низкую версию API, это приведет к сбою. Yes
connectVia Среда выполнения интеграции, используемая для подключения к хранилищу данных. Если он не указан, используется Azure Integration Runtime по умолчанию. No

Пример хранения учетных данных

{
    "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"
        }
    }
}

Example: хранение учетных данных в 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, задайте для свойства типа набора данных значение SalesforceServiceCloudV2Object. Поддерживаются следующие свойства.

Property Description Required
type Свойство type должно иметь значение SalesforceServiceCloudV2Object. Yes
objectApiName Имя объекта в Salesforce Service Cloud для извлечения данных. Применимой версией локальной среды выполнения интеграции является 5.44.8984.1 или более поздней. Нет для источника (если в источнике указан запрос), Да для приемника
reportId Идентификатор отчета Salesforce Service Cloud, из которого извлекаются данные. Он не поддерживается в контейнере. Обратите внимание, что при использовании отчетов существуют ограничения . Применимой версией локальной среды выполнения интеграции является 5.44.8984.1 или более поздней. Нет для источника (если задан запрос в источнике), не поддерживает приемник

Important

Для любых настраиваемых объектов имя API должно содержать приставку "__c".

Имя API подключения к Salesforce

Example:

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

Свойства Copy activity

Полный список разделов и свойств, используемых для определения действий, обратитесь к статье Конвейеры. Этот раздел содержит список свойств, поддерживаемых источником и приемником Salesforce Service Cloud.

Salesforce Service Cloud как тип источника

Чтобы скопировать данные из Salesforce Service Cloud, задайте тип источника в действии копирования в SalesforceServiceCloudV2Source. В разделе source действия копирования поддерживаются следующие свойства:

Property Description Required
type Свойство type источника действия копирования должно иметь значение SalesforceServiceCloudV2Source. Yes
query Используйте пользовательский запрос для чтения данных. Вы можете использовать только запрос языка запросов объектов Salesforce (SOQL ). Если запрос не указан, будут извлечены все данные объекта Salesforce, указанного в objectApiName/reportId в наборе данных. Нет (если параметр objectApiName/reportId в наборе данных указан)
includeDeletedObjects Указывает, следует ли запрашивать существующие записи или все записи, включая удаленные. Если оно не указано, поведение по умолчанию равно false.
Допустимые значения: false (по умолчанию), true.
No
СохранитьМасштабИзСхемы Указывает, следует ли включить округление десятичного масштабирования или нет в соответствии с определением десятичного масштабирования в схеме. Округление происходит только в том случае, если свойству присвоено значение true. Если оно не указано, поведение по умолчанию равно false. Например, если столбец определен как десятичный (18,3) в схеме, значение 123.123789 округляется до 123,124, если этот параметр включен.
Допустимые значения: false (по умолчанию), true.
No
partitionOption Предоставьте возможность автоматически обнаруживать и применять оптимальный алгоритм секционирования для оптимизации пропускной способности чтения при необходимости. Рекомендуется указать AutoDetect для долговременного копирования, которое может воспользоваться многоядерным чтением. Значение по умолчанию — AutoDetect. No

Important

Для любых настраиваемых объектов имя API должно содержать приставку "__c".

Список имен API подключения к Salesforce

Example:

"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,
                "preserveScaleFromSchema": false,
                "partitionOption": "AutoDetect"
            },
            "sink": {
                "type": "<sink type>"
            }
        }
    }
]

Salesforce Service Cloud как тип приемника

Чтобы скопировать данные в Salesforce Service Cloud, установите конечный тип в процессе копирования на SalesforceServiceCloudV2Sink. В секции sink операции копирования поддерживаются следующие свойства.

Property Description Required
type Свойству type приемника копировочного действия необходимо присвоить значение SalesforceServiceCloudV2Sink. Yes
writeBehavior Поведение операции при записи.
Допустимые значения: Insert и Upsert.
Нет (по умолчанию используется Insert)
externalIdFieldName Имя поля внешнего идентификатора для операции "upsert". Указанное поле должно быть определено как "поле внешнего идентификатора" в облачном объекте службы Salesforce. Оно не может иметь значения NULL в соответствующих входных данных. "Да" для операции Upsert (Вставка-обновление)
writeBatchSize Количество строк данных, записываемых в Salesforce Service Cloud одним пакетом. Рекомендуем задать это значение от 10 000 до 200 000. Слишком мало строк в каждом пакете снижает производительность копирования. Слишком много строк в каждом пакете может привести к истечении времени ожидания API. Нет (по умолчанию — 100 000)
ignoreNullValues Указывает, следует ли игнорировать значения NULL из входных данных во время операции записи.
Допустимые значения: true и false.
- True: при выполнении операции "upsert" или обновления оставьте данные в целевом объекте без изменений. При выполнении операции вставки (insert) вставьте определенное значение по умолчанию.
- False: при выполнении операции upsert или обновления (update) обновите данные в целевом объекте до значения NULL. При выполнении операции вставки (insert) вставьте значение NULL.
Нет (по умолчанию используется значение false)
 maxConcurrentConnections Верхний предел одновременных подключений, установленных в хранилище данных при запуске задачи. Указывайте значение только при необходимости ограничить количество одновременных подключений.  No

Пример: приемник 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

При копировании данных из Salesforce Service Cloud используются следующие сопоставления типов данных Salesforce Service Cloud с промежуточными типами данных внутри службы. Дополнительные сведения о том, как действие копирования сопоставляет исходную схему и типы данных для приемника, см. в статье Сопоставление схем и типов данных.

Тип данных Salesforce Service Cloud Промежуточный тип данных службы
Автоматический номер String
Checkbox Boolean
Currency Decimal
Date DateTime
Date/Time DateTime
Email String
ID String
Связь для поиска String
Список с множественным выбором String
Number Decimal
Percent Decimal
Phone String
Picklist String
Text String
Область текста String
Текстовое поле (длинное) String
Текстовое поле (расширенное) String
Текст (зашифрованный) String
URL String

Note

Тип облачного номера службы Salesforce сопоставляется с десятичным типом в Azure Data Factory и конвейерах Azure Synapse в качестве промежуточного типа данных службы. Десятичный тип учитывает определенную точность и масштаб. Для данных, десятичные разряды которых превышают определенный масштаб, значение будет округлено при предварительном просмотре и копировании данных. Чтобы избежать потери точности в конвейерах Azure Data Factory и Azure Synapse, рекомендуется увеличить десятичные разряды до достаточно большого значения в Custom Field Definition Edit страницы Salesforce Service Cloud.

Свойства операции поиска

Подробные сведения об этих свойствах см. в разделе Действие поиска.

Жизненный цикл и обновление соединителя Salesforce Service Cloud

В следующей таблице показаны этап выпуска и журналы изменений для различных версий соединителя Salesforce Service Cloud:

Version Этап выпуска Журнал изменений
Salesforce Service Cloud V1 Removed Неприменимо.
Salesforce Service Cloud V2 GA версия доступна • Поддержка проверки подлинности OAuth2ClientCredentials вместо базовой проверки подлинности.

• Поддержка только запроса SOQL.

• Поддержка отчета путем выбора идентификатора отчета.

• Поддержка partitionOption в источнике операции копирования.

• Поддержка preserveScaleFromSchema в источнике операции копирования.

readBehavior заменяется на includeDeletedObjects в операции копирования или в операции подстановки.

Обновление соединителя Salesforce Service Cloud

Ниже приведены инструкции по обновлению соединителя Salesforce Service Cloud:

  1. Настройте подключенные приложения на портале Salesforce, указав необходимые условия.

  2. Создайте связанную службу Salesforce Service Cloud и настройте ее, ссылаясь на свойства связанной службы.

  3. Если вы используете SQL-запрос в источнике операции копирования или в операции поиска, которые ссылаются на связанную службу версии 1, вам нужно преобразовать их в запрос SOQL. Узнайте больше о запросе SOQL из Salesforce Service Cloud в качестве исходного типа и языка запросов объектов Salesforce (SOQL).

  4. Поддержка partitionOption в источнике операции копирования. Подробные сведения о конфигурации см. в разделе Salesforce Service Cloud в качестве исходного типа.

  5. Поддержка preserveScaleFromSchema в источнике операции копирования. Подробные сведения о конфигурации см. в разделе Salesforce Service Cloud в качестве исходного типа.

  6. readBehavior заменяется includeDeletedObjects в источнике действия копирования или в действии подстановки. Подробные сведения о конфигурации см. в разделе Salesforce Service Cloud в качестве исходного типа.

Список хранилищ данных, поддерживаемых в рамках функции копирования в качестве источников и приемников, см. в разделе Поддерживаемые хранилища данных.