Adatok másolása a Salesforce Service Cloudból és a Salesforce Service Cloudba az Azure Data Factory vagy a Synapse Analytics használatával (örökölt)
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 a Synapse Analytics-folyamatokban adatok másolására a Salesforce Service Cloudból és a Salesforce Szolgáltatásfelhőbe. 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 szolgáltatás kiadott egy új Salesforce Service Cloud-összekötőt, amely jobb natív Salesforce Service Cloud-támogatást biztosít. A részletekről a Salesforce Service Cloud-összekötőről szóló cikkben olvashat.
Támogatott képességek
Ez a Salesforce Service Cloud-ö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 Service Cloud-összekötő a következőket támogatja:
- Salesforce Developer, Professional, Enterprise vagy Unlimited kiadások.
- Adatok másolása a Salesforce éles környezetéből, tesztkörnyezetéből és egyéni tartományából.
A Salesforce-összekötő a Salesforce REST/Bulk API-ra épül. Alapértelmezés szerint a Salesforce-ból történő adatmásoláskor az összekötő v45-öt használ, és automatikusan választ a REST és a Tömeges API-k között az adatméret alapján – ha az eredményhalmaz nagy, akkor a Tömeges API-t használja a jobb teljesítmény érdekében; amikor adatokat ír a Salesforce-ba, az összekötő a Bulk API 40-es verziójával dolgozik. A társított szolgáltatásban lévő tulajdonságon keresztül apiVersion
az adatok olvasásához/írásához használt API-verziót is explicit módon beállíthatja.
Előfeltételek
Az API-engedélyt engedélyezni kell a Salesforce-ban.
Salesforce-kérelmek korlátai
A Salesforce mind a teljes API-kérésekre, mind az egyidejű API-kérelmekre vonatkozóan korlátozásokkal rendelkezik. Vegye figyelembe az alábbiakat:
- Ha az egyidejű kérések száma meghaladja a korlátot, szabályozás történik, és véletlenszerű hibákat tapasztal.
- Ha a kérelmek teljes száma meghaladja a korlátot, a Salesforce-fiók 24 órán keresztül le lesz tiltva.
Mindkét esetben előfordulhat, hogy a "REQUEST_LIMIT_EXC Enterprise kiadás DED" hibaüzenet jelenik meg. További információt a Salesforce fejlesztői korlátainak "API-kérelmek korlátai" 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 Service Cloudhoz felhasználói felületen
Az alábbi lépéseket követve hozzon létre egy társított szolgáltatást a Salesforce Service Cloudhoz 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 Service Cloud-ö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.
Csatlakozás or konfigurációjának részletei
A következő szakaszok a Salesforce Service Cloud-összekötőre jellemző Data Factory-entitások meghatározá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 SalesforceServiceCloud értékre kell állítani. | Igen |
environmentUrl | Adja meg a Salesforce Service Cloud-példány URL-címét. - Az alapértelmezett érték. "https://login.salesforce.com" - Ha adatokat szeretne másolni a tesztkörnyezetből, adja meg "https://test.salesforce.com" . - Ha egyéni tartományból szeretne adatokat másolni, adja meg például. "https://[domain].my.salesforce.com" |
Nem |
username | Adja meg a felhasználói fiók felhasználónevét. | Igen |
jelszó | Adja meg a felhasználói fiók jelszavát. Jelölje meg ezt a mezőt SecureStringként, hogy biztonságosan tárolja, vagy hivatkozzon az Azure Key Vaultban tárolt titkos kódra. |
Igen |
securityToken | Adjon meg egy biztonsági jogkivonatot a felhasználói fiókhoz. A biztonsági jogkivonatok általános megismeréséhez tekintse meg a Biztonság és az API című témakört. A biztonsági jogkivonat csak akkor hagyható ki, ha hozzáadja az integrációs modul IP-címét a Salesforce megbízható IP-címlistájához . Az Azure IR használatakor tekintse meg az Azure Integration Runtime IP-címeit. A biztonsági jogkivonat beszerzésére és alaphelyzetbe állítására vonatkozó utasításokért lásd : Biztonsági jogkivonat beszerzése. Jelölje meg ezt a mezőt SecureStringként, hogy biztonságosan tárolja a Data Factoryben, vagy hivatkozzon az Azure Key Vaultban tárolt titkos kódra. |
Nem |
apiVersion | Adja meg a használni kívánt Salesforce REST/Bulk API-verziót, például. 48.0 Alapértelmezés szerint az összekötő a v45-ös verzióval másolja az adatokat a Salesforce-ból, és a v40-et használja az adatok Salesforce-ba másolásához. |
Nem |
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": "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élda: Hitelesítő adatok tárolása a Key Vaultban
{
"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"
}
}
}
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 Service Cloud-adatkészlet által támogatott tulajdonságok listáját tartalmazza.
Az adatok a Salesforce Service Cloudból és a Salesforce Service Cloudba való másolásához az alábbi tulajdonságokat támogatják.
Tulajdonság | Leírás | Kötelező |
---|---|---|
típus | A típustulajdonságot SalesforceServiceCloudObject értékre kell állítani. | Igen |
objectApiName | Az adatok lekéréséhez használt Salesforce-objektum neve. | Nem a forráshoz, igen a fogadóhoz |
Fontos
Az API Name "__c" része minden egyéni objektumhoz szükséges.
Példa:
{
"name": "SalesforceServiceCloudDataset",
"properties": {
"type": "SalesforceServiceCloudObject",
"typeProperties": {
"objectApiName": "MyTable__c"
},
"schema": [],
"linkedServiceName": {
"referenceName": "<Salesforce Service Cloud linked service name>",
"type": "LinkedServiceReference"
}
}
}
Tulajdonság | Leírás | Kötelező |
---|---|---|
típus | Az adathalmaz típustulajdonságának Relációs táblára kell állítania. | Igen |
tableName | A Tábla neve a Salesforce Service Cloudban. | Nem (ha "lekérdezés" van megadva a tevékenységforrásban) |
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 Service Cloud-forrás és fogadó által támogatott tulajdonságok listáját tartalmazza.
A Salesforce Service Cloud mint forrástípus
Ha a Salesforce Service Cloudból szeretne adatokat másolni, 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 a SalesforceServiceCloudSource értékre kell állítani. | Igen |
Lekérdezés | Adatok olvasása az egyéni lekérdezés használatával. Használhatja a Salesforce Object Query Language (SOQL) lekérdezést vagy az SQL-92 lekérdezést. További tippek a lekérdezési tippek szakaszban. Ha nincs megadva lekérdezés, a rendszer lekéri az adathalmaz "objectApiName" elemében megadott Salesforce Service Cloud-objektum összes adatát. | Nem (ha az adathalmazban az "objectApiName" van megadva) |
readBehavior | 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 az előbbi. Engedélyezett értékek: lekérdezés (alapértelmezett), queryAll. |
Nem |
Fontos
Az API Name "__c" része minden egyéni objektumhoz szükséges.
Példa:
"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>"
}
}
}
]
Feljegyzés
A Salesforce Service Cloud-forrás nem támogatja a proxybeállításokat a saját üzemeltetésű integrációs modulban, de a fogadó igen.
Salesforce Service Cloud fogadótípusként
Ha adatokat szeretne átmásolni a Salesforce Szolgáltatásfelhőbe, a másolási tevékenység fogadó szakasza az alábbi tulajdonságokat támogatja.
Tulajdonság | Leírás | Kötelező |
---|---|---|
típus | A másolási tevékenység fogadójának típustulajdonságát a SalesforceServiceCloudSink é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 Service Cloud objektumban. A megfelelő bemeneti adatokban nem lehetnek NULL értékek. | Igen az "Upsert" esetében |
writeBatchSize | A Salesforce Service Cloudba írt adatok sorszáma minden kötegben. | Nem (az alapértelmezett érték 5000) |
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) |
maxConcurrent Csatlakozás ions | 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:
"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
}
}
}
]
Lekérdezési tippek
Adatok lekérése Salesforce Service Cloud-jelentésből
Adatokat a Salesforce Service Cloud-jelentésekből lekérhet egy lekérdezés {call "<report name>"}
megadásával. Például: "query": "{call \"TestReport\"}"
.
Törölt rekordok lekérése a Salesforce Szolgáltatásfelhő lomtárából
Ha le szeretné kérdezni a helyreállíthatóan törölt rekordokat a Salesforce Szolgáltatásfelhő lomtárából, megadhatja readBehavior
a következőt: queryAll
.
Az SOQL és az SQL-lekérdezés szintaxisának különbsége
Amikor adatokat másol a Salesforce Service Cloudból, SOQL-lekérdezést vagy SQL-lekérdezést is használhat. Vegye figyelembe, hogy ez a kettő különböző szintaxissal és funkciótámogatással rendelkezik, ne keverje össze. Javasoljuk, hogy használja az SOQL-lekérdezést, amelyet a Salesforce Service Cloud natív módon támogat. Az alábbi táblázat a főbb különbségeket sorolja fel:
Syntax | SOQL mód | SQL Mód |
---|---|---|
Oszlop kijelölése | Számba kell vennie a lekérdezésben másolandó mezőket, például: SELECT field1, filed2 FROM objectname |
SELECT * az oszlopkijelölés mellett támogatott. |
Idézőjelek | A iktatott/objektumneveket nem lehet idézni. | A mező-/objektumnevek idézhetők, például: SELECT "id" FROM "Account" |
Datetime formátum | A részleteket itt találja, és a következő szakaszban található példákat. | A részleteket itt találja, és a következő szakaszban található példákat. |
Logikai értékek | Másként False True és , például SELECT … WHERE IsDeleted=True . |
0 vagy 1 értékként jelölve, például. SELECT … WHERE IsDeleted=1 |
Oszlop átnevezése | Nem támogatott. | Támogatott, például: SELECT a AS b FROM … . |
Kapcsolat | Támogatott, pl. . Account_vod__r.nvs_Country__c |
Nem támogatott. |
Adatok lekérése a DateTime oszlop where záradékával
Az SOQL- vagy SQL-lekérdezés megadásakor figyeljen a DateTime formátum különbségére. Példa:
- SOQL-minta:
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')}
- SQL-minta:
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')}'}
A MALFORMED_QUERY hibája: Csonkolt
Ha a "MALFORMED_QUERY: Csonkolt" hibaüzenetet kapja, az általában annak köszönhető, hogy a JunctionIdList típusú oszlop szerepel az adatokban, és a Salesforce korlátozza az ilyen adatok nagy számú sortal való támogatását. A probléma elhárításához próbálja meg kizárni a JunctionIdList oszlopot, vagy korlátozza a másolandó sorok számát (több másolási tevékenység futtatására is particionálhat).
Adattípus-leképezés a Salesforce Service Cloudhoz
Amikor adatokat másol a Salesforce Service Cloudból, a következő leképezéseket használja a Salesforce Service Cloud adattípusaitól a szolgáltatáson belül használt köztes adattípusokig. 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 Service Cloud-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 szolgáltatás felhőszáma az Azure Data Factoryben és az Azure Synapse-folyamatokban a decimális típusra 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 lesz 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 Service Cloud Egyéni meződefiníció szerkesztési lapján.
Keresési tevékenység tulajdonságai
A tulajdonságok részleteinek megismeréséhez tekintse meg a keresési tevékenységet.
Következő lépések
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.