Adatok másolása a Salesforce V2-ből és a Salesforce V2-be az Azure Data Factory vagy az Azure Synapse Analytics használatával
A következőkre vonatkozik: Azure Data Factory
Azure Synapse Analytics
Tipp.
Próbálja ki a Data Factoryt a Microsoft Fabricben, amely egy teljes körű elemzési megoldás a nagyvállalatok számára. A Microsoft Fabric az adattovábbítástól az adatelemzésig, a valós idejű elemzésig, az üzleti intelligenciáig és a jelentéskészítésig mindent lefed. Ismerje meg, hogyan indíthat új próbaverziót ingyenesen!
Ez a cikk bemutatja, hogyan használható a Másolási tevékenység az Azure Data Factoryben és az Azure Synapse-folyamatokban adatok másolására a Salesforce-ból és a Salesforce-ba. A másolási tevékenység áttekintési cikkére épül, amely általános áttekintést nyújt a másolási tevékenységről.
Fontos
A Salesforce V2-összekötő továbbfejlesztett natív Salesforce-támogatást biztosít. Ha a Megoldásban a Salesforce V1-összekötőt használja, javasoljuk, hogy a lehető leghamarabb frissítse a Salesforce-összekötőt . A V2 és az 1.v közötti különbségről ebben a szakaszban olvashat.
Támogatott képességek
Ez a Salesforce-összekötő a következő képességeket támogatja:
Támogatott képességek | IR |
---|---|
Copy tevékenység (forrás/fogadó) | (1) (2) |
Keresési tevékenység | (1) (2) |
(1) Azure-integrációs modul (2) Saját üzemeltetésű integrációs modul
A forrásként vagy fogadóként támogatott adattárak listáját a Támogatott adattárak táblában találja.
Ez a Salesforce-összekötő a következőket támogatja:
- Salesforce Developer, Professional, Enterprise vagy Unlimited kiadások.
- Adatok másolása egyéni tartományból és tartományba (az egyéni tartomány éles és tesztkörnyezetekben is konfigurálható).
Explicit módon beállíthatja az ADATOK olvasásához/írásához használt API-verziót a társított szolgáltatásban lévő tulajdonságon keresztülapiVersion
. Amikor adatokat másol a Salesforce-ba, az összekötő a BULK API 2.0-t használja.
Előfeltételek
Az API-engedélyt engedélyezni kell a Salesforce-ban.
Konfigurálnia kell a Csatlakoztatott alkalmazásokat a Salesforce portálon erre a hivatalos dokumentumra hivatkozva, vagy lépésről lépésre útmutatót a jelen cikkben található javaslatban.
Fontos
- A végrehajtási felhasználónak csak API-engedéllyel kell rendelkeznie.
- A hozzáférési jogkivonat lejárati ideje a frissítési jogkivonat helyett munkamenet-szabályzatokkal módosítható.
A Salesforce Bulk API 2.0 korlátai
A Salesforce Bulk API 2.0-val kérdezzük le és használjuk az adatok betöltését. A Bulk API 2.0-ban a kötegek automatikusan létrejönnek Önnek. 24 órás gördülő időszakonként legfeljebb 15 000 köteget küldhet be. Ha a kötegek túllépik a korlátot, hibák lépnek fel.
A Bulk API 2.0-ban csak a betöltési feladatok használnak kötegeket. A lekérdezési feladatok nem. További részletekért tekintse meg a kérelmek feldolgozásának módját a Bulk API 2.0 fejlesztői útmutatójában.
További információt a Salesforce fejlesztői korlátainak "Általános korlátok" című szakaszában talál.
Első lépések
A Copy tevékenység folyamattal való végrehajtásához használja az alábbi eszközök vagy SDK-k egyikét:
- Az Adatok másolása eszköz
- Az Azure Portal
- A .NET SDK
- A Python SDK
- Azure PowerShell
- A REST API
- Az Azure Resource Manager-sablon
Társított szolgáltatás létrehozása a Salesforce-hoz felhasználói felülettel
Az alábbi lépésekkel létrehozhat egy társított szolgáltatást a Salesforce-hoz az Azure Portal felhasználói felületén.
Keresse meg az Azure Data Factory vagy a Synapse-munkaterület Kezelés lapját, és válassza a Társított szolgáltatások lehetőséget, majd kattintson az Új gombra:
Keresse meg a Salesforce-t, és válassza ki a Salesforce-összekötőt.
Konfigurálja a szolgáltatás részleteit, tesztelje a kapcsolatot, és hozza létre az új társított szolgáltatást.
Az összekötő konfigurációjának részletei
Az alábbi szakaszok a Salesforce-összekötőre jellemző entitások definiálásához használt tulajdonságok részleteit ismertetik.
Társított szolgáltatás tulajdonságai
A Salesforce társított szolgáltatás esetében az alábbi tulajdonságok támogatottak.
Tulajdonság | Leírás | Kötelező |
---|---|---|
típus | A típustulajdonságot SalesforceV2 értékre kell állítani. | Igen |
environmentUrl | Adja meg a Salesforce-példány URL-címét. Megadhatja "https://<domainName>.my.salesforce.com" például, hogy adatokat másoljon az egyéni tartományból. Ebből a cikkből megtudhatja, hogyan konfigurálhatja vagy tekintheti meg az egyéni tartományát. |
Igen |
authenticationType | A Salesforce-hoz való csatlakozáshoz használt hitelesítés típusa. Az engedélyezett érték az OAuth2ClientCredentials. |
Igen |
clientId | Adja meg a Salesforce OAuth 2.0 csatlakoztatott alkalmazás ügyfélazonosítóját. További információkért tekintse meg ezt a cikket | Igen |
clientSecret | Adja meg a Salesforce OAuth 2.0 csatlakoztatott alkalmazás ügyféltitkát. További információkért tekintse meg ezt a cikket | Igen |
apiVersion | Adja meg például a Salesforce Bulk API 2.0-s 52.0 verzióját. A Bulk API 2.0 csak az API 47.0-s verzióját >támogatja. A Bulk API 2.0 verziójáról a cikkből tájékozódhat. Hiba történik, ha alacsonyabb API-verziót használ. |
Igen |
connectVia | Az adattárhoz való csatlakozáshoz használandó integrációs modul . Ha nincs megadva, az alapértelmezett Azure Integration Runtime-t használja. | Nem |
Példa: Hitelesítő adatok tárolása
{
"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élda: Hitelesítő adatok tárolása a Key Vaultban
{
"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élda: Hitelesítő adatok tárolása a Key Vaultban, valamint environmentUrl és clientId
A Hitelesítő adatok Key Vaultban, valamint a environmentUrl és a clientId környezetben való tárolásával a felhasználói felület használatával hosszabb ideig szerkesztheti a beállításokat. Be kell jelölni a Dinamikus tartalom megadása JSON formátumban jelölőnégyzetet, és ezt a konfigurációt manuálisan kell elvégeznie. Ennek a forgatókönyvnek az az előnye, hogy az összes konfigurációs beállítást a Key Vaultból származtathatja ahelyett, hogy itt bármit paraméterezésre használna.
{
"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"
}
}
}
Adathalmaz tulajdonságai
Az adathalmazok meghatározásához elérhető szakaszok és tulajdonságok teljes listáját az Adathalmazok című cikkben találja. Ez a szakasz a Salesforce adatkészlet által támogatott tulajdonságok listáját tartalmazza.
Ha adatokat szeretne másolni a Salesforce-ból és a Salesforce-ba, állítsa az adathalmaz típustulajdonságát a SalesforceV2Object értékre. A következő tulajdonságok támogatottak.
Fontos
Az API Name "__c" része minden egyéni objektumhoz szükséges.
Példa:
{
"name": "SalesforceDataset",
"properties": {
"type": "SalesforceV2Object",
"typeProperties": {
"objectApiName": "MyTable__c"
},
"schema": [],
"linkedServiceName": {
"referenceName": "<Salesforce linked service name>",
"type": "LinkedServiceReference"
}
}
}
Másolási tevékenység tulajdonságai
A tevékenységek meghatározásához elérhető szakaszok és tulajdonságok teljes listáját a Folyamatok című cikkben találja. Ez a szakasz a Salesforce forrás és fogadó által támogatott tulajdonságok listáját tartalmazza.
Salesforce mint forrástípus
Ha adatokat szeretne másolni a Salesforce-ból, állítsa a másolási tevékenység forrástípusát a SalesforceV2Source-ra. A másolási tevékenység forrás szakaszában az alábbi tulajdonságok támogatottak.
Tulajdonság | Leírás | Kötelező |
---|---|---|
típus | A másolási tevékenység forrásának típustulajdonságát SalesforceV2Source értékre kell állítani. | Igen |
Lekérdezés | Adatok olvasása az egyéni lekérdezés használatával. A Salesforce Object Query Language (SOQL) lekérdezés csak korlátozásokkal használható. Az SOQL-korlátozásokról ebben a cikkben olvashat. Ha nincs megadva lekérdezés, a rendszer lekéri az adathalmaz "objectApiName/reportId" elemében megadott Salesforce-objektum összes adatát. | Nem (ha az adathalmazban az "objectApiName/reportId" kifejezés van megadva) |
includeDeletedObjects | Azt jelzi, hogy lekérdezi-e a meglévő rekordokat, vagy lekérdezi-e az összes rekordot, beleértve a törölt rekordokat is. Ha nincs megadva, az alapértelmezett viselkedés hamis. Engedélyezett értékek: hamis (alapértelmezett), igaz. |
Nem |
Fontos
Az API Name "__c" része minden egyéni objektumhoz szükséges.
Példa:
"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 fogadótípusként
Ha adatokat szeretne átmásolni a Salesforce-ba, állítsa a fogadó típusát a másolási tevékenységben a SalesforceV2Sink értékre. A másolási tevékenység fogadó szakaszában az alábbi tulajdonságok támogatottak.
Tulajdonság | Leírás | Kötelező |
---|---|---|
típus | A másolási tevékenység fogadójának típustulajdonságát SalesforceV2Sink értékre kell állítani. | Igen |
writeBehavior | A művelet írási viselkedése. Az engedélyezett értékek a Beszúrás és az Upsert. |
Nem (alapértelmezés: Beszúrás) |
externalIdFieldName | Az upsert művelet külső azonosító mezőjének neve. A megadott mezőt "Külső azonosító mezőként" kell definiálni a Salesforce objektumban. A megfelelő bemeneti adatokban nem lehetnek NULL értékek. | Igen az "Upsert" esetében |
writeBatchSize | Az egyes kötegekben a Salesforce-ba írt adatok sorszáma. Javasoljuk, hogy állítsa be ezt az értéket 10 000-ről 200 000-re. Az egyes kötegek túl kevés sora csökkenti a másolási teljesítményt. Az egyes kötegek túl sok sora api-időtúllépést okozhat. | Nem (az alapértelmezett érték 100 000) |
ignoreNullValues | Azt jelzi, hogy figyelmen kívül hagyja-e a bemeneti adatok NULL értékeit egy írási művelet során. Az engedélyezett értékek igazak és hamisak. - Igaz: Az upsert vagy a frissítési művelet végrehajtásakor hagyja változatlanul a célobjektumban lévő adatokat. Beszúráskor beszúrhat egy megadott alapértelmezett értéket. - Hamis: Frissítse a célobjektumban lévő adatokat NULL értékre az upsert vagy a frissítési művelet végrehajtásakor. Null érték beszúrása beszúráskor. |
Nem (az alapértelmezett érték hamis) |
maxConcurrentConnections | Az adattárhoz a tevékenység futtatása során létrehozott egyidejű kapcsolatok felső korlátja. Csak akkor adjon meg értéket, ha korlátozni szeretné az egyidejű kapcsolatokat. | Nem |
Példa: Salesforce fogadó másolási tevékenységben
"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
}
}
}
]
Adattípus-leképezés a Salesforce-hoz
Amikor adatokat másol a Salesforce-ból, a következő leképezéseket használja a Salesforce adattípusaitól a szolgáltatás belső köztes adattípusaiig. Ha tudni szeretné, hogy a másolási tevékenység hogyan képezi le a forrássémát és az adattípust a fogadóhoz, tekintse meg a séma- és adattípus-leképezéseket.
Salesforce-adattípus | Köztes szolgáltatás adattípusa |
---|---|
Automatikus szám | Sztring |
Jelölőnégyzet | Logikai |
Pénznem | Decimális |
Dátum | Dátum/idő |
Dátum/idő | Dátum/idő |
Sztring | |
ID (Azonosító) | Sztring |
Keresési kapcsolat | Sztring |
Többválasztós lista | Sztring |
Szám | Decimális |
Százalék | Decimális |
Telefonszám | Sztring |
Értéklista | Sztring |
Szöveg | Sztring |
Szövegterület | Sztring |
Szövegterület (hosszú) | Sztring |
Szövegterület (rich) | Sztring |
Szöveg (titkosított) | Sztring |
URL-cím | Sztring |
Feljegyzés
A Salesforce-szám típusa az Azure Data Factory és az Azure Synapse-folyamatok decimális típusára van megfeleltetve szolgáltatásközi adattípusként. A decimális típus a megadott pontosságot és skálázást tartja tiszteletben. Azon adatok esetében, amelyek tizedesjegyei túllépik a megadott skálát, annak értéke le van kerekítve az előzetes adatokban és a másolásban. Az Azure Data Factoryben és az Azure Synapse-folyamatokban az ilyen pontosságvesztés elkerülése érdekében fontolja meg a tizedesjegyek viszonylag nagy értékre való növelését a Salesforce Egyéni meződefiníció szerkesztési oldalán.
Keresési tevékenység tulajdonságai
A tulajdonságok részleteinek megismeréséhez tekintse meg a keresési tevékenységet.
A Salesforce-összekötő frissítése
Az alábbi lépések segítenek a Salesforce-összekötő frissítésében:
Konfigurálja a csatlakoztatott alkalmazásokat a Salesforce portálon az előfeltételekre hivatkozva.
Hozzon létre egy új Salesforce társított szolgáltatást, és konfigurálja a társított szolgáltatás tulajdonságaira hivatkozva. Manuálisan is frissítenie kell a régi társított szolgáltatásra támaszkodó meglévő adathalmazokat, és az egyes adathalmazokat az új társított szolgáltatás használatához kell szerkesztenie.
Ha SQL-lekérdezést használ a másolási tevékenység forrásában vagy a V1 társított szolgáltatásra hivatkozó keresési tevékenységben, akkor azokat SOQL-lekérdezéssé kell konvertálnia. További információ a Salesforce-ból származó SOQL-lekérdezésről forrástípusként és a Salesforce Object Query Language (SOQL) nyelvről.
A readBehavior helyére a másolási tevékenység forrásában vagy a keresési tevékenységben szereplőDeletedObjects elem kerül. A részletes konfigurációért tekintse meg a Salesforce-t forrástípusként.
Különbségek a Salesforce V2 és a V1 között
A Salesforce V2-összekötő új funkciókat kínál, és kompatibilis a Salesforce V1-összekötő legtöbb funkciójával. Az alábbi táblázat a V2 és a V1 közötti funkcióbeli különbségeket mutatja be.
Salesforce V2 | Salesforce V1 |
---|---|
Az SOQL támogatása a Salesforce Bulk API 2.0-n belül. SOQL-lekérdezések esetén: • A GROUP BY, LIMIT, ORDER BY, OFFSET vagy TYPEOF záradékok nem támogatottak. • Az olyan összesítő függvények, mint a DARAB() nem támogatottak, a Salesforce-jelentések használatával implementálhatja őket. • A GROUP BY záradékok dátumfüggvényei nem támogatottak, de a WHERE záradék támogatja őket. • Az összetett címmezők és az összetett földrajzi hely mezők nem támogatottak. Másik lehetőségként lekérdezheti az összetett mezők egyes összetevőit. • A szülő–gyermek kapcsolat lekérdezései nem támogatottak, míg a gyermek–szülő kapcsolat lekérdezései támogatottak. |
Támogatja az SQL és a SOQL szintaxist is. |
A bináris mezőket tartalmazó objektumok nem támogatottak a lekérdezés megadásakor. | A bináris mezőket tartalmazó objektumok támogatottak a lekérdezés megadásakor. |
A Tömeges API-beli objektumok támogatása lekérdezés megadásakor. | Olyan objektumok támogatása, amelyek nem támogatottak a Tömeges API-val a lekérdezés megadásakor. |
A jelentés támogatásához válasszon ki egy jelentésazonosítót. | A jelentés lekérdezési szintaxisának támogatása, például {call "<report name>"} . |
Kapcsolódó tartalom
A másolási tevékenység által forrásként és fogadóként támogatott adattárak listáját lásd : Támogatott adattárak.