Sdílet prostřednictvím


Kopírování dat z cloudu služeb Salesforce a do cloudu služeb Salesforce pomocí služby Azure Data Factory nebo Synapse Analytics (starší verze)

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 pomocí aktivity kopírování v kanálech Azure Data Factory a Synapse Analytics kopírovat data z cloudu služeb Salesforce a do cloudu služeb 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 Service Cloud poskytuje vylepšenou nativní podporu cloudových služeb Salesforce. Pokud ve svém řešení používáte starší konektor Salesforce Service Cloud, upgradujte prosím konektor Salesforce Service Cloud 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 Service Cloud 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 Service Cloud podporuje:

  • Edice Salesforce Developer, Professional, Enterprise nebo Unlimited
  • Kopírování dat z produkčního prostředí Salesforce, sandboxu a vlastní domény

Konektor Salesforce je založený na rozhraní REST/Bulk API Salesforce. Ve výchozím nastavení se při kopírování dat ze Salesforce používá konektor verze 45 a automaticky vybírá mezi rozhraními REST a Bulk API na základě velikosti dat – když je sada výsledků velká, použije se pro lepší výkon rozhraní BULK API. Při zápisu dat do Salesforce konektor používá rozhraní Bulk API v40 . Můžete také explicitně nastavit verzi rozhraní API použitou ke čtení a zápisu dat prostřednictvím apiVersion vlastnosti v propojené službě.

Požadavky

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

Omezení požadavků Salesforce

Salesforce má omezení pro celkové požadavky rozhraní API i souběžné požadavky rozhraní API. Mějte na paměti následující body:

  • Pokud počet souběžných požadavků překročí limit, dojde k omezování a zobrazí se náhodná selhání.
  • Pokud celkový počet požadavků překročí limit, účet Salesforce se zablokuje po dobu 24 hodin.

V obou scénářích se také může zobrazit chybová zpráva "REQUEST_LIMIT_EXCEEDED". Další informace najdete v části Limity požadavků rozhraní API v omezeních 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 s cloudem služeb Salesforce pomocí uživatelského rozhraní

Pomocí následujících kroků vytvořte propojenou službu s cloudem služeb 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 Service Cloud.

    Vyberte konektor Salesforce Service Cloud.

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

    Nakonfigurujte propojenou službu do cloudu služeb Salesforce.

Podrobnosti konfigurace konektoru

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

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 SalesforceServiceCloud. Ano
environmentUrl Zadejte adresu URL instance cloudu služby Salesforce.
- Výchozí hodnota je "https://login.salesforce.com".
– Chcete-li kopírovat data z sandboxu, zadejte "https://test.salesforce.com".
- Chcete-li kopírovat data z vlastní domény, zadejte například "https://[domain].my.salesforce.com".
No
username Zadejte uživatelské jméno pro uživatelský účet. Ano
Heslo Zadejte heslo pro uživatelský účet.

Označte toto pole jako securestring, abyste ho mohli bezpečně uložit, nebo odkazovat na tajný klíč uložený ve službě Azure Key Vault.
Ano
securityToken Zadejte token zabezpečení pro uživatelský účet.

Obecné informace o tokenech zabezpečení najdete v tématu Zabezpečení a rozhraní API. Token zabezpečení je možné přeskočit jenom v případě, že přidáte IP adresu prostředí Integration Runtime do seznamu důvěryhodných IP adres v Salesforce. Pokud používáte Azure IR, projděte si IP adresy prostředí Azure Integration Runtime.

Pokyny k získání a resetování tokenu zabezpečení najdete v tématu Získání tokenu zabezpečení. Označte toto pole jako securestring pro bezpečné uložení ve službě Data Factory nebo odkazování na tajný klíč uložený ve službě Azure Key Vault.
No
apiVersion Zadejte verzi rozhraní REST/Bulk API salesforce, která se má použít, například 48.0. Ve výchozím nastavení konektor ke kopírování dat ze Salesforce používá v45 a ke kopírování dat do Salesforce používá v40 . No
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": "SalesforceServiceCloudLinkedService",
    "properties": {
        "type": "SalesforceServiceCloud",
        "typeProperties": {
            "username": "<username>",
            "password": {
                "type": "SecureString",
                "value": "<password>"
            },
            "securityToken": {
                "type": "SecureString",
                "value": "<security token>"
            }
        },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

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

{
    "name": "SalesforceServiceCloudLinkedService",
    "properties": {
        "type": "SalesforceServiceCloud",
        "typeProperties": {
            "username": "<username>",
            "password": {
                "type": "AzureKeyVaultSecret",
                "secretName": "<secret name of password in AKV>",
                "store":{
                    "referenceName": "<Azure Key Vault linked service>",
                    "type": "LinkedServiceReference"
                }
            },
            "securityToken": {
                "type": "AzureKeyVaultSecret",
                "secretName": "<secret name of security token in AKV>",
                "store":{
                    "referenceName": "<Azure Key Vault linked service>",
                    "type": "LinkedServiceReference"
                }
            }
        },
        "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 Service Cloud.

Pokud chcete kopírovat data z cloudu služeb Salesforce a do cloudu služeb Salesforce, podporují se následující vlastnosti.

Vlastnost Popis Povinní účastníci
type Vlastnost typu musí být nastavena na SalesforceServiceCloudObject. Ano
objectApiName Název objektu Salesforce pro načtení dat. Ne pro zdroj, Ano pro 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": "SalesforceServiceCloudDataset",
    "properties": {
        "type": "SalesforceServiceCloudObject",
        "typeProperties": {
            "objectApiName": "MyTable__c"
        },
        "schema": [],
        "linkedServiceName": {
            "referenceName": "<Salesforce Service Cloud linked service name>",
            "type": "LinkedServiceReference"
        }
    }
}
Vlastnost Popis Povinní účastníci
type Vlastnost typu datové sady musí být nastavena na RelationalTable. Ano
tableName Název tabulky v Cloudu služby Salesforce Ne (pokud je ve zdroji aktivity zadán dotaz)

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 služby Salesforce.

Cloud služby Salesforce jako typ zdroje

Pokud chcete kopírovat data z cloudu služby Salesforce, podporují se v části zdroje aktivity kopírování následující vlastnosti.

Vlastnost Popis Povinní účastníci
type Vlastnost typu zdroje aktivity kopírování musí být nastavena na SalesforceServiceCloudSource. Ano
query Ke čtení dat použijte vlastní dotaz. Můžete použít dotaz SOQL (Salesforce Object Query Language) nebo dotaz SQL-92. Další tipy najdete v části Tipy pro dotazy. Pokud není zadaný dotaz, načtou se všechna data objektu Cloud služby Salesforce zadaného v objektu objectApiName v datové sadě. Ne (pokud je v datové sadě zadáno "objectApiName")
readBehavior 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 první.
Povolené hodnoty: dotaz (výchozí), queryAll.
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": "CopyFromSalesforceServiceCloud",
        "type": "Copy",
        "inputs": [
            {
                "referenceName": "<Salesforce Service Cloud input dataset name>",
                "type": "DatasetReference"
            }
        ],
        "outputs": [
            {
                "referenceName": "<output dataset name>",
                "type": "DatasetReference"
            }
        ],
        "typeProperties": {
            "source": {
                "type": "SalesforceServiceCloudSource",
                "query": "SELECT Col_Currency__c, Col_Date__c, Col_Email__c FROM AllDataType__c"
            },
            "sink": {
                "type": "<sink type>"
            }
        }
    }
]

Poznámka:

Zdroj cloudu služby Salesforce nepodporuje nastavení proxy serveru v místním prostředí Integration Runtime, ale jímka funguje.

Cloud služby Salesforce jako typ jímky

Pokud chcete kopírovat data do cloudu služby Salesforce, podporují se v části jímky aktivity kopírování následující vlastnosti.

Vlastnost Popis Povinní účastníci
type Vlastnost typu jímky aktivity kopírování musí být nastavena na SalesforceServiceCloudSink. 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 Cloud služby 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 cloudu služby Salesforce v každé dávce. Ne (výchozí hodnota je 5 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:

"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": "SalesforceServiceCloudSink",
                "writeBehavior": "Upsert",
                "externalIdFieldName": "CustomerId__c",
                "writeBatchSize": 10000,
                "ignoreNullValues": true
            }
        }
    }
]

Tipy pro dotazy

Načtení dat ze sestavy cloudových služeb Salesforce

Data můžete načíst ze sestav cloudových služeb Salesforce zadáním dotazu jako {call "<report name>"}. Příklad: "query": "{call \"TestReport\"}".

Načtení odstraněných záznamů z koše cloudu služby Salesforce

Pokud chcete dotazovat obnovitelně odstraněné záznamy z koše cloudu služby Salesforce, můžete zadat readBehavior jako queryAll.

Rozdíl mezi syntaxí dotazů SOQL a SQL

Při kopírování dat z cloudu služby Salesforce můžete použít dotaz SOQL nebo dotaz SQL. Všimněte si, že tyto dvě verze mají jinou podporu syntaxe a funkčnosti, nesměšujte je. Doporučujeme použít dotaz SOQL, který je nativně podporován cloudem služeb Salesforce. Následující tabulka uvádí hlavní rozdíly:

Syntaxe Režim SOQL Režim SQL
Výběr sloupce Potřebujete vytvořit výčet polí, která se mají zkopírovat v dotazu, například SELECT field1, filed2 FROM objectname SELECT * podporuje se kromě výběru sloupce.
Uvozovky Názvy souborů nebo objektů nelze uvozovat. Názvy polí nebo objektů mohou být citovány, například SELECT "id" FROM "Account"
Formát data a času Podrobnosti najdete tady a ukázky v další části. Podrobnosti najdete tady a ukázky v další části.
Logické hodnoty Reprezentováno jako False a True, např. SELECT … WHERE IsDeleted=True Vyjádřeno jako 0 nebo 1, např. SELECT … WHERE IsDeleted=1
Přejmenování sloupců Nepodporováno Podporováno, například: SELECT a AS b FROM ….
Vztah Podporováno, např. Account_vod__r.nvs_Country__c Nepodporováno

Načtení dat pomocí klauzule where ve sloupci DateTime

Při zadání dotazu SOQL nebo SQL věnujte pozornost rozdílu ve formátu DateTime. Příklad:

  • Ukázka SOQL: SELECT Id, Name, BillingCity FROM Account WHERE LastModifiedDate >= @{formatDateTime(pipeline().parameters.StartTime,'yyyy-MM-ddTHH:mm:ssZ')} AND LastModifiedDate < @{formatDateTime(pipeline().parameters.EndTime,'yyyy-MM-ddTHH:mm:ssZ')}
  • Ukázka SQL: SELECT * FROM Account WHERE LastModifiedDate >= {ts'@{formatDateTime(pipeline().parameters.StartTime,'yyyy-MM-dd HH:mm:ss')}'} AND LastModifiedDate < {ts'@{formatDateTime(pipeline().parameters.EndTime,'yyyy-MM-dd HH:mm:ss')}'}

Chyba MALFORMED_QUERY: Zkráceno

Pokud dojde k chybě "MALFORMED_QUERY: Zkráceno", obvykle je to kvůli tomu, že máte sloupec typu JunctionIdList v datech a Salesforce má omezení na podporu těchto dat s velkým počtem řádků. Pokud chcete tento problém zmírnit, zkuste vyloučit sloupec JunctionIdList nebo omezit počet řádků pro kopírování (můžete rozdělit oddíly na více spuštění aktivit kopírování).

Mapování datových typů pro Cloud služby Salesforce

Při kopírování dat z cloudu služby Salesforce se následující mapování používají z datových typů cloudových služeb Salesforce k internímu použití datových typů v rámci služby Salesforce. 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 Cloud služby 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 cloudových služeb 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 zaokrouhlí v datech náhledu a zkopíruje se. 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 v cloudu služeb Salesforce.

Vlastnosti aktivity vyhledávání

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

Další kroky

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