Копирование данных из облака Salesforce Service с помощью Фабрика данных Azure или Azure Synapse Analytics

Область применения:Фабрика данных Azure Azure Synapse Analytics

Совет

Попробуйте использовать фабрику данных в Microsoft Fabric, решение для аналитики с одним интерфейсом для предприятий. Microsoft Fabric охватывает все, от перемещения данных до обработки и анализа данных в режиме реального времени, бизнес-аналитики и отчетности. Узнайте, как бесплатно запустить новую пробную версию !

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

Внимание

Новый соединитель Salesforce Service Cloud обеспечивает улучшенную поддержку собственного облака Salesforce Service. Если вы используете устаревший соединитель Salesforce Service Cloud в решении, поддерживается только для обратной совместимости, см. статью Salesforce Service Cloud Connector (устаревшая версия).

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

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

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

① Среда выполнения интеграции Azure ② Локальная среда выполнения интеграции

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

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

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

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

Необходимые компоненты

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

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

    Внимание

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

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

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

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

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

Начать

Чтобы выполнить действие копирования с конвейером, можно воспользоваться одним из приведенных ниже средств или пакетов SDK:

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

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

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

  2. Выполните поиск Salesforce и выберите соединитель Salesforce Service Cloud.

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

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

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

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

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

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

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

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

Пример хранения учетных данных в хранилище ключей

{
    "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. Поддерживаются следующие свойства.

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

Внимание

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

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

Пример:

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

Свойства действия копирования

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

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

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

Свойство Описание: Обязательное поле
type Свойство type источника действия копирования должно иметь значение SalesforceServiceCloudV2Source. Да
SOQLQuery Используйте пользовательский запрос для чтения данных. С ограничениями можно использовать только запрос языка запросов объектов Salesforce (SOQL ). Ограничения SOQL см. в этой статье. Если запрос не указан, будут извлечены все данные объекта Salesforce, указанного в objectApiName/reportId в наборе данных. Нет (если параметр ObjectApiName/reportId в наборе данных указан)
includeDeletedObjects Указывает, следует ли запрашивать существующие записи или все записи, включая удаленные. Если оно не указано, поведение по умолчанию равно false.
Допустимые значения: false (по умолчанию), true.
No

Внимание

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

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

Пример:

"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",
                "SOQLQuery": "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. В разделе sink действия Copy поддерживаются следующие свойства.

Свойство Описание: Обязательное поле
type Свойство type приемника действия копирования должно иметь значение SalesforceServiceCloudV2Sink. Да
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 или обновления (update) оставьте данные в целевом объекте без изменений. При выполнении операции вставки (insert) вставьте определенное значение по умолчанию.
- False: при выполнении операции upsert или обновления (update) обновите данные в целевом объекте до значения NULL. При выполнении операции вставки (insert) вставьте значение NULL.
Нет (по умолчанию используется значение false)
 maxConcurrent Подключение ions Верхний предел одновременных подключений, установленных для хранилища данных при выполнении действия. Указывайте значение только при необходимости ограничить количество одновременных подключений.  Без

Пример: приемник Облака Salesforce Service в действии копирования

"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 Промежуточный тип данных службы
Автонумерация Строка
Флажок Логический
Валюта Десятичное число
Дата Дата/время
Дата и время Дата/время
Электронное письмо Строка
Идентификатор Строка
Связь для подстановки Строка
Список множественного выбора Строка
Число Десятичн.
Процент Десятичное число
Номер телефона Строка
Picklist Строка
Текст Строка
Область текста Строка
Текстовое поле (длинное) Строка
Текстовое поле (расширенное) Строка
Текст (зашифрованный) Строка
URL Строка

Примечание.

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

Свойства действия поиска

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

Обновление связанной службы Salesforce Service

Ниже приведены действия, которые помогут вам обновить связанную службу и связанные запросы:

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

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

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

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

Различия между облаком Salesforce Service и облаком Salesforce Service (устаревшая версия)

Соединитель Salesforce Service Cloud предлагает новые функциональные возможности и совместим с большинством функций соединителя Salesforce Service Cloud (устаревшая версия). В приведенной ниже таблице показаны различия функций между Cloud и Salesforce Service Cloud и Salesforce Service Cloud (устаревшая версия).

Облачная служба Salesforce Cloud Salesforce Service Cloud (устаревшая версия)
Поддержка SOQL в Salesforce Bulk API 2.0.
Для запросов SOQL:
• Предложения GROUP BY, LIMIT, ORDER BY, OFFSET или TYPEOF не поддерживаются.
• Агрегатные функции, такие как COUNT() не поддерживаются, можно использовать отчеты Salesforce для их реализации.
• Функции даты в предложениях GROUP BY не поддерживаются, но поддерживаются в предложении WHERE.
• Составные поля адресов или составные поля географического расположения не поддерживаются. В качестве альтернативы запросите отдельные компоненты составных полей.
• Запросы отношений "родители к дочерним" не поддерживаются, в то время как поддерживаются запросы отношений "дочерний к родителям".
Поддержка синтаксиса SQL и SOQL.
Объекты, содержащие двоичные поля, не поддерживаются. Поддерживаются объекты, содержащие двоичные поля, например объект Вложения.
Поддержка объектов в пакетном API. Дополнительные сведения см. в этой статье. Поддержка объектов, которые не поддерживаются api массовой рассылки, например CaseStatus.
Отчет о поддержке, выбрав идентификатор отчета. Поддержка синтаксиса запроса отчета, например {call "<report name>"}.

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