Sdílet prostřednictvím


Kopírování dat z a do Salesforce pomocí Azure Data Factory nebo Azure Synapse Analytics

PLATÍ PRO: Azure Data Factory Azure Synapse Analytics

Tip

Vyzkoušejte si službu Data Factory v Microsoft Fabric, řešení pro analýzy typu all-in-one pro podniky. Microsoft Fabric zahrnuje všechno od přesunu dat až po datové vědy, analýzy v reálném čase, business intelligence a vytváření sestav. Přečtěte si, jak začít používat novou zkušební verzi zdarma.

Tento článek popisuje, jak používat aktivitu kopírování ve službě Azure Data Factory a kanálech Azure Synapse ke kopírování dat z a do Salesforce. Vychází z článku s přehledem aktivity kopírování, který představuje obecný přehled aktivity kopírování.

Důležité

Nový konektor Salesforce poskytuje vylepšenou nativní podporu Salesforce. Pokud ve svém řešení používáte starší verzi konektoru Salesforce, upgradujte prosím konektor Salesforce před 11. říjnem 2024. Podrobnosti o rozdílu mezi starší verzí a nejnovější verzí najdete v této části .

Podporované funkce

Tento konektor Salesforce je podporovaný pro následující funkce:

Podporované funkce IR
aktivita Copy (zdroj/jímka) (1) (2)
Aktivita Lookup (1) (2)

(1) Prostředí Azure Integration Runtime (2) Místní prostředí Integration Runtime

Seznam úložišť dat podporovaných jako zdroje nebo jímky najdete v tabulce Podporované úložiště dat.

Konkrétně tento konektor Salesforce podporuje:

  • Edice Salesforce Developer, Professional, Enterprise nebo Unlimited
  • Kopírování dat z a do vlastní domény (vlastní doménu je možné nakonfigurovat v produkčním prostředí i v sandboxových prostředích).

Můžete explicitně nastavit verzi rozhraní API používanou ke čtení a zápisu dat prostřednictvím apiVersion vlastnosti v propojené službě. Když kopírujete data do Salesforce, konektor používá rozhraní BULK API 2.0.

Požadavky

  • V Salesforce musí být povolené oprávnění rozhraní API.

  • Na portálu Salesforce potřebujete nakonfigurovat propojené aplikace, které odkazují na tento oficiální dokument nebo naše podrobné pokyny v doporučení v tomto článku.

    Důležité

    • Uživatel spuštění musí mít oprávnění pouze rozhraní API.
    • Platnost přístupového tokenu může být změněna prostřednictvím zásad relace místo obnovovacího tokenu.

Omezení rozhraní Bulk API salesforce 2.0

K dotazování a ingestování dat používáme Salesforce Bulk API 2.0. V rozhraní Bulk API 2.0 se dávky vytvoří automaticky. Můžete odeslat až 15 000 dávek za 24hodinovou dobu. Pokud dávky překročí limit, dojde k selháním.

V rozhraní Bulk API 2.0 spotřebovávají dávky pouze úlohy ingestování. Úlohy dotazů se netýknou. Podrobnosti najdete v tématu Zpracování požadavků v Průvodci pro vývojáře hromadným rozhraním API 2.0.

Další informace najdete v části Obecné limity pro vývojáře Salesforce.

Začínáme

K provedení aktivita Copy s kanálem můžete použít jeden z následujících nástrojů nebo sad SDK:

Vytvoření propojené služby pro Salesforce pomocí uživatelského rozhraní

Pomocí následujícího postupu vytvořte propojenou službu pro Salesforce v uživatelském rozhraní webu Azure Portal.

  1. Přejděte na kartu Správa v pracovním prostoru Azure Data Factory nebo Synapse a vyberte Propojené služby a pak klikněte na Nový:

  2. Vyhledejte Salesforce a vyberte konektor Salesforce.

    Snímek obrazovky s konektorem Salesforce

  3. Nakonfigurujte podrobnosti o službě, otestujte připojení a vytvořte novou propojenou službu.

    Snímek obrazovky s konfigurací propojené služby pro Salesforce

Podrobnosti konfigurace konektoru

Následující části obsahují podrobnosti o vlastnostech, které slouží k definování entit specifických pro konektor Salesforce.

Vlastnosti propojené služby

Pro propojenou službu Salesforce jsou podporovány následující vlastnosti.

Vlastnost Popis Povinní účastníci
type Vlastnost typu musí být nastavená na SalesforceV2. Ano
environmentUrl Zadejte adresu URL instance Salesforce.
Zadejte "https://<domainName>.my.salesforce.com" například, že chcete kopírovat data z vlastní domény. Informace o konfiguraci nebo zobrazení vlastní domény najdete v tomto článku.
Ano
authenticationType Typ ověřování sloužící k připojení k Salesforce.
Povolená hodnota je OAuth2ClientCredentials.
Ano
clientId Zadejte ID klienta připojené aplikace Salesforce OAuth 2.0. Další informace najdete v tomto článku. Ano
clientSecret Zadejte tajný klíč klienta připojené aplikace Salesforce OAuth 2.0. Další informace najdete v tomto článku. Ano
apiVersion Zadejte verzi rozhraní Bulk API salesforce 2.0, která se má použít, 52.0například . Rozhraní Bulk API 2.0 podporuje pouze verzi >rozhraní API = 47.0. Informace o verzi bulk API 2.0 najdete v článku. K selhání dojde v případě, že používáte nižší verzi rozhraní API. Ano
connectVia Prostředí Integration Runtime , které se má použít pro připojení k úložišti dat. Pokud není zadaný, použije výchozí prostředí Azure Integration Runtime. No

Příklad: Uložení přihlašovacích údajů

{
    "name": "SalesforceLinkedService",
    "properties": {
        "type": "SalesforceV2",
        "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"
        }
    }
}

Příklad: Uložení přihlašovacích údajů ve službě Key Vault

{
    "name": "SalesforceLinkedService",
    "properties": {
        "type": "SalesforceV2",
        "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"
        }
    }
}

Příklad: Ukládání přihlašovacích údajů ve službě Key Vault a id klienta a environmentUrl

Uložením přihlašovacích údajů ve službě Key Vault a id klienta a id prostředí můžete k úpravě nastavení použít uživatelské rozhraní. Je nutné zaškrtnout políčko Zadat dynamický obsah ve formátu JSON a tuto konfiguraci musíte provést ručně. Výhodou tohoto scénáře je, že můžete odvodit všechna nastavení konfigurace ze služby Key Vault místo parametrizace čehokoli tady.

{
    "name": "SalesforceLinkedService",
    "properties": {
        "type": "SalesforceV2",
        "typeProperties": {
            "environmentUrl": {
                "type": "AzureKeyVaultSecret",
                "secretName": "<secret name of environment URL in AKV>",
                "store": {
                    "referenceName": "<Azure Key Vault linked service>",
                    "type": "LinkedServiceReference"
                },
            },
            "authenticationType": "OAuth2ClientCredentials",
            "clientId": {
                "type": "AzureKeyVaultSecret",
                "secretName": "<secret name of client ID in AKV>",
                "store": {
                    "referenceName": "<Azure Key Vault linked service>",
                    "type": "LinkedServiceReference"
                },
            },
            "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"
        }
    }
}

Vlastnosti datové sady

Úplný seznam oddílů a vlastností dostupných pro definování datových sad najdete v článku Datové sady . Tato část obsahuje seznam vlastností podporovaných datovou sadou Salesforce.

Pokud chcete kopírovat data z a do Salesforce, nastavte vlastnost typu datové sady na SalesforceV2Object. Podporují se následující vlastnosti.

Vlastnost Popis Povinní účastníci
type Vlastnost typu musí být nastavena na SalesforceV2Object. Ano
objectApiName Název objektu Salesforce pro načtení dat. Použitelná místní verze prostředí Integration Runtime je 5.44.8984.1 nebo vyšší. Ne pro zdroj (pokud je zadán dotaz ve zdroji), Ano pro jímku
reportId ID sestavy Salesforce pro načtení dat. V jímce se nepodporuje. Při používání sestav existují omezení . Použitelná místní verze prostředí Integration Runtime je 5.44.8984.1 nebo vyšší. Ne pro zdroj (pokud je zadán dotaz ve zdroji), nepodporuje jímku.

Důležité

Část "__c" názvu rozhraní API je nutná pro jakýkoli vlastní objekt.

Název rozhraní API pro připojení Salesforce

Příklad:

{
    "name": "SalesforceDataset",
    "properties": {
        "type": "SalesforceV2Object",
        "typeProperties": {
            "objectApiName": "MyTable__c"
        },
        "schema": [],
        "linkedServiceName": {
            "referenceName": "<Salesforce linked service name>",
            "type": "LinkedServiceReference"
        }
    }
}

Vlastnosti aktivity kopírování

Úplný seznam oddílů a vlastností dostupných pro definování aktivit najdete v článku Pipelines . Tato část obsahuje seznam vlastností podporovaných zdrojem a jímkou Salesforce.

Salesforce jako typ zdroje

Pokud chcete kopírovat data ze Salesforce, nastavte typ zdroje v aktivitě kopírování na SalesforceV2Source. Ve zdrojové části aktivity kopírování jsou podporovány následující vlastnosti.

Vlastnost Popis Povinní účastníci
type Vlastnost typu zdroje aktivity kopírování musí být nastavena na SalesforceV2Source. Ano
query Ke čtení dat použijte vlastní dotaz. Dotaz salesforce Object Query Language (SOQL) můžete používat pouze s omezeními. Informace o omezeních SOQL najdete v tomto článku. Pokud není zadaný dotaz, načtou se všechna data objektu Salesforce zadaného v objektu objectApiName/reportId v datové sadě. Ne (pokud je v datové sadě zadán parametr objectApiName/reportId)
includeDeletedObjects Označuje, zda se má dotazovat na existující záznamy, nebo dotazovat všechny záznamy včetně odstraněných záznamů. Pokud není zadáno, výchozí chování je false.
Povolené hodnoty: false (výchozí), true.
No

Důležité

Část "__c" názvu rozhraní API je nutná pro jakýkoli vlastní objekt.

Seznam názvů rozhraní API pro připojení Salesforce

Příklad:

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

Salesforce jako typ jímky

Pokud chcete kopírovat data do Salesforce, nastavte typ jímky v aktivitě kopírování na SalesforceV2Sink. Následující vlastnosti jsou podporovány v části jímky aktivity kopírování.

Vlastnost Popis Povinní účastníci
type Vlastnost typu jímky aktivity kopírování musí být nastavena na SalesforceV2Sink. Ano
writeBehavior Chování zápisu operace.
Povolené hodnoty jsou Insert a Upsert.
Ne (výchozí hodnota je Vložit)
externalIdFieldName Název pole externího ID pro operaci upsertu. Zadané pole musí být definováno jako "Pole externího ID" v objektu Salesforce. V odpovídajících vstupních datech nemůže mít hodnoty NULL. Ano pro upsert
writeBatchSize Počet řádků dat zapsaných do Salesforce v každé dávce. Nastavte tuto hodnotu od 10 000 do 200 000. Příliš málo řádků v každé dávce snižuje výkon kopírování. Příliš mnoho řádků v každé dávce může způsobit vypršení časového limitu rozhraní API. Ne (výchozí hodnota je 100 000)
ignoreNullValues Určuje, zda se mají ignorovat hodnoty NULL ze vstupních dat během operace zápisu.
Povolené hodnoty jsou true a false.
- True: Při operaci upsertu nebo aktualizace ponechte data v cílovém objektu beze změny. Při operaci vložení vložte definovanou výchozí hodnotu.
- False: Při operaci upsertu nebo aktualizace aktualizujte data v cílovém objektu na hodnotu NULL. Pokud provedete operaci vložení, vložte hodnotu NULL.
Ne (výchozí hodnota je false)
 maxConcurrentConnections Horní limit souběžných připojení vytvořených k úložišti dat během spuštění aktivity. Zadejte hodnotu pouze v případech, kdy chcete omezit souběžná připojení.  Ne

Příklad: Jímka Salesforce v aktivitě kopírování

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

Mapování datových typů pro Salesforce

Při kopírování dat z Salesforce se následující mapování používají z datových typů Salesforce k dočasným datovým typům v rámci služby interně. Informace o tom, jak aktivita kopírování mapuje zdrojové schéma a datový typ na jímku, najdete v tématu Mapování schématu a datového typu.

Datový typ Salesforce Dočasný datový typ služby
Automatické číslo String
Checkbox Logická hodnota
Měna Desetinné číslo
Date DateTime
Datum a čas DateTime
Email String
ID String
Relace vyhledávání String
Vícenásobný výběr rozevíracího seznamu String
Počet Des. místo
Procenta Desetinné číslo
Telefon String
Picklist String
Text String
Oblast textu String
Textová oblast (dlouhá) String
Textová oblast (formát RTF) String
Text (šifrovaný) String
URL String

Poznámka:

Typ číslo salesforce se mapuje na desetinný typ v kanálech Azure Data Factory a Azure Synapse jako dočasný datový typ služby. Desetinný typ respektuje definovanou přesnost a měřítko. U dat, jejichž desetinná místa překročí definované měřítko, se jeho hodnota v datech náhledu zaokrouhlí a zkopíruje. Abyste se vyhnuli takové ztrátě přesnosti v kanálech Azure Data Factory a Azure Synapse, zvažte zvýšení desetinných míst na přiměřeně velkou hodnotu na stránce Upravit definici vlastního pole salesforce.

Vlastnosti aktivity vyhledávání

Podrobnosti o vlastnostech najdete v aktivitě Vyhledávání.

Upgrade propojené služby Salesforce

Tady jsou kroky, které vám pomůžou upgradovat propojenou službu a související dotazy:

  1. Na portálu Salesforce nakonfigurujte připojené aplikace podle požadavků.

  2. Vytvořte novou propojenou službu Salesforce a nakonfigurujte ji odkazem na vlastnosti propojené služby. Musíte také ručně aktualizovat existující datové sady, které spoléhají na starou propojenou službu, a upravovat každou datovou sadu tak, aby místo toho používala novou propojenou službu.

  3. Pokud používáte dotaz SQL ve zdroji aktivity kopírování nebo vyhledávací aktivitě odkazující na starší propojenou službu, musíte je převést na dotaz SOQL. Přečtěte si další informace o dotazech SOQL ze Salesforce jako zdrojového typu a jazyku SOQL (Salesforce Object Query Language).

  4. ReadBehavior je nahrazen parametrem includeDeletedObjects ve zdroji aktivity kopírování nebo vyhledávací aktivitou. Podrobnou konfiguraci najdete v Salesforce jako typ zdroje.

Rozdíly mezi Salesforce a Salesforce (starší verze)

Konektor Salesforce nabízí nové funkce a je kompatibilní s většinou funkcí konektoru Salesforce (starší verze). Následující tabulka uvádí rozdíly mezi funkcemi Salesforce a Salesforce (starší verze).

Salesforce Salesforce (starší verze)
Podpora SOQL v salesforce Bulk API 2.0.
Dotazy SOQL:
• Klauzule GROUP BY, LIMIT, ORDER BY, OFFSET nebo TYPEOF nejsou podporovány.
• Agregační funkce, jako je COUNT(), nejsou podporované. K jejich implementaci můžete použít sestavy Salesforce.
• Funkce kalendářních dat v klauzulích GROUP BY nejsou podporované, ale podporují se v klauzuli WHERE.
• Složená pole adres nebo složená pole geografické polohy nejsou podporována. Alternativně se dotazujte na jednotlivé komponenty složených polí.
• Dotazy relací nadřazenosti a podřízenosti nejsou podporovány, zatímco dotazy relací mezi podřízenými položkami jsou podporovány.
Podporuje syntaxi SQL i SOQL.
Objekty, které obsahují binární pole, se při zadávání dotazu nepodporují. Objekty, které obsahují binární pole, jsou podporovány při zadávání dotazu.
Podpora objektů v rozhraní Bulk API při zadávání dotazu Podpora objektů, které nejsou podporovány rozhraním Bulk API při zadávání dotazu
Podpora sestavy výběrem ID sestavy Podpora syntaxe dotazu sestavy, například {call "<report name>"}.

Seznam úložišť dat podporovaných jako zdroje a jímky aktivitou kopírování najdete v tématu Podporované úložiště dat.