Share via


Azure Data Factory veya Synapse Analytics kullanarak Salesforce Service Cloud'dan ve hizmetine veri kopyalama (eski)

UYGULANANLAR: Azure Data Factory Azure Synapse Analytics

İpucu

Kuruluşlar için hepsi bir arada analiz çözümü olan Microsoft Fabric'te Data Factory'yi deneyin. Microsoft Fabric , veri taşımadan veri bilimine, gerçek zamanlı analize, iş zekasına ve raporlamaya kadar her şeyi kapsar. Yeni bir deneme sürümünü ücretsiz olarak başlatmayı öğrenin!

Bu makalede Azure Data Factory ve Synapse Analytics işlem hatlarında Salesforce Service Cloud'dan ve buluta veri kopyalamak için Kopyalama Etkinliği'nin nasıl kullanılacağı özetlenmiştir. Kopyalama etkinliğine genel bir genel bakış sunan Kopyalama Etkinliğine genel bakış makalesini oluşturur.

Önemli

Hizmet, daha iyi yerel Salesforce Service Cloud desteği sağlayan yeni bir Salesforce Service Cloud bağlayıcısı yayımladı. Ayrıntılarla ilgili Salesforce Service Cloud bağlayıcısı makalesine bakın.

Desteklenen özellikler

Bu Salesforce Service Cloud bağlayıcısı aşağıdaki özellikler için desteklenir:

Desteklenen özellikler IR
Kopyalama etkinliği (kaynak/havuz) (1) (2)
Arama etkinliği (1) (2)

(1) Azure tümleştirme çalışma zamanı (2) Şirket içinde barındırılan tümleştirme çalışma zamanı

Kaynak veya havuz olarak desteklenen veri depolarının listesi için Desteklenen veri depoları tablosuna bakın.

Özellikle, bu Salesforce Service Cloud bağlayıcısı şunları destekler:

  • Salesforce Developer, Professional, Enterprise veya Unlimited sürümleri.
  • Salesforce üretim, korumalı alan ve özel etki alanından veri kopyalama.

Salesforce bağlayıcısı, Salesforce REST/Bulk API'sinin üzerine kurulmuştur. Varsayılan olarak, Salesforce'tan veri kopyalarken bağlayıcı v45 kullanır ve veri boyutuna göre REST ile Toplu API'ler arasında otomatik olarak seçim gerçekleştirir. Sonuç kümesi büyük olduğunda daha iyi performans için Toplu API kullanılır; Salesforce'a veri yazarken bağlayıcı, Toplu API'nin v40'ını kullanır. Ayrıca bağlı hizmetteki özellik aracılığıyla apiVersion verileri okumak/yazmak için kullanılan API sürümünü açıkça ayarlayabilirsiniz.

Önkoşullar

API izni Salesforce'ta etkinleştirilmelidir.

Salesforce istek sınırları

Salesforce'un hem toplam API istekleri hem de eşzamanlı API istekleri için sınırları vardır. Aaşağıdaki noktaları unutmayın:

  • Eşzamanlı istek sayısı sınırı aşarsa azaltma gerçekleşir ve rastgele hatalar görürsünüz.
  • Toplam istek sayısı sınırı aşarsa Salesforce hesabı 24 saat boyunca engellenir.

Ayrıca her iki senaryoda da "REQUEST_LIMIT_EXCEEDED" hata iletisini alabilirsiniz. Daha fazla bilgi için Salesforce geliştirici sınırları bölümündeki "API istek sınırları" bölümüne bakın.

Kullanmaya başlayın

İşlem hattıyla Kopyalama etkinliği gerçekleştirmek için aşağıdaki araçlardan veya SDK'lardan birini kullanabilirsiniz:

Kullanıcı arabirimini kullanarak Salesforce Service Cloud'a bağlı hizmet oluşturma

Azure portalı kullanıcı arabiriminde Salesforce Service Cloud'a bağlı bir hizmet oluşturmak için aşağıdaki adımları kullanın.

  1. Azure Data Factory veya Synapse çalışma alanınızda Yönet sekmesine göz atın ve Bağlı Hizmetler'i seçin, ardından Yeni'ye tıklayın:

  2. Salesforce için arama yapın ve Salesforce Service Cloud bağlayıcısını seçin.

    Select the Salesforce Service Cloud connector.

  3. Hizmet ayrıntılarını yapılandırın, bağlantıyı test edin ve yeni bağlı hizmeti oluşturun.

    Configure a linked service to Salesforce Service Cloud.

Bağlan veya yapılandırma ayrıntıları

Aşağıdaki bölümlerde, Salesforce Service Cloud bağlayıcısına özgü Data Factory varlıklarını tanımlamak için kullanılan özelliklerle ilgili ayrıntılar sağlanır.

Bağlı hizmet özellikleri

Salesforce bağlı hizmeti için aşağıdaki özellikler desteklenir.

Özellik Açıklama Gerekli
Tür Tür özelliği SalesforceServiceCloud olarak ayarlanmalıdır. Yes
environmentUrl Salesforce Service Cloud örneğinin URL'sini belirtin.
- Varsayılan değerdir "https://login.salesforce.com".
- Korumalı alandan veri kopyalamak için belirtin "https://test.salesforce.com".
- Özel etki alanından veri kopyalamak için belirtin, örneğin, "https://[domain].my.salesforce.com".
Hayır
username Kullanıcı hesabı için bir kullanıcı adı belirtin. Yes
password Kullanıcı hesabı için bir parola belirtin.

Güvenli bir şekilde depolamak için bu alanı SecureString olarak işaretleyin veya Azure Key Vault'ta depolanan bir gizli diziye başvurun.
Yes
Securitytoken Kullanıcı hesabı için bir güvenlik belirteci belirtin.

Genel olarak güvenlik belirteçleri hakkında bilgi edinmek için bkz . Güvenlik ve API. Güvenlik belirteci yalnızca Integration Runtime'ın IP'sini Salesforce'ta güvenilen IP adresi listesine eklerseniz atlanabilir. Azure IR kullanırken Azure Integration Runtime IP adreslerine bakın.

Güvenlik belirtecini alma ve sıfırlama yönergeleri için bkz . Güvenlik belirteci alma. Data Factory'de güvenli bir şekilde depolamak için bu alanı SecureString olarak işaretleyin veya Azure Key Vault'ta depolanan bir gizli diziye başvurun.
Hayır
apiVersion Kullanılacak Salesforce REST/Bulk API sürümünü belirtin; örneğin. 48.0 Varsayılan olarak bağlayıcı, Salesforce'tan veri kopyalamak için v45 ve Salesforce'a veri kopyalamak için v40 kullanır. Hayır
connectVia Veri deposuna bağlanmak için kullanılacak tümleştirme çalışma zamanı . Belirtilmezse, varsayılan Azure Integration Runtime'ı kullanır. Hayır

Örnek: Kimlik bilgilerini depolama

{
    "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"
        }
    }
}

Örnek: Kimlik bilgilerini Key Vault'ta depolama

{
    "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"
        }
    }
}

Veri kümesi özellikleri

Veri kümelerini tanımlamak için kullanılabilen bölümlerin ve özelliklerin tam listesi için Veri kümeleri makalesine bakın. Bu bölümde Salesforce Service Cloud veri kümesi tarafından desteklenen özelliklerin listesi sağlanır.

Salesforce Service Cloud'dan ve buluta veri kopyalamak için aşağıdaki özellikler desteklenir.

Özellik Açıklama Gerekli
Tür Tür özelliği SalesforceServiceCloudObject olarak ayarlanmalıdır. Yes
objectApiName Veri alınacak Salesforce nesne adı. Kaynak için Hayır, havuz için Evet

Önemli

API Adı'nın "__c" bölümü herhangi bir özel nesne için gereklidir.

Salesforce connection API Name

Örnek:

{
    "name": "SalesforceServiceCloudDataset",
    "properties": {
        "type": "SalesforceServiceCloudObject",
        "typeProperties": {
            "objectApiName": "MyTable__c"
        },
        "schema": [],
        "linkedServiceName": {
            "referenceName": "<Salesforce Service Cloud linked service name>",
            "type": "LinkedServiceReference"
        }
    }
}
Özellik Açıklama Gerekli
Tür Veri kümesinin type özelliği RelationalTable olarak ayarlanmalıdır. Yes
tableName Salesforce Service Cloud'daki tablonun adı. Hayır (etkinlik kaynağında "sorgu" belirtilirse)

Kopyalama etkinliğinin özellikleri

Etkinlikleri tanımlamak için kullanılabilen bölümlerin ve özelliklerin tam listesi için İşlem hatları makalesine bakın. Bu bölümde Salesforce Service Bulut kaynağı ve havuzu tarafından desteklenen özelliklerin listesi sağlanır.

Kaynak türü olarak Salesforce Service Cloud

Salesforce Service Cloud'dan veri kopyalamak için kopyalama etkinliği kaynağı bölümünde aşağıdaki özellikler desteklenir.

Özellik Açıklama Gerekli
Tür Kopyalama etkinliği kaynağının tür özelliği SalesforceServiceCloudSource olarak ayarlanmalıdır. Yes
query Verileri okumak için özel sorguyu kullanın. Salesforce Nesne Sorgu Dili (SOQL) sorgusunu veya SQL-92 sorgusunu kullanabilirsiniz. Sorgu ipuçları bölümünde daha fazla ipucuna bakın. Sorgu belirtilmezse, veri kümesindeki "objectApiName" içinde belirtilen Salesforce Service Cloud nesnesinin tüm verileri alınır. Hayır (veri kümesinde "objectApiName" belirtildiyse)
readBehavior Var olan kayıtların mı yoksa silinenler de dahil olmak üzere tüm kayıtların mı sorgulanıp sorgulanmayacağını gösterir. Belirtilmezse, varsayılan davranış önceki davranıştır.
İzin verilen değerler: sorgu (varsayılan), queryAll.
Hayır

Önemli

API Adı'nın "__c" bölümü herhangi bir özel nesne için gereklidir.

Salesforce connection API Name list

Örnek:

"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>"
            }
        }
    }
]

Not

Salesforce Service Bulut kaynağı, şirket içinde barındırılan tümleştirme çalışma zamanında ara sunucu ayarlarını desteklemez, ancak havuz destekler.

Havuz türü olarak Salesforce Service Cloud

Salesforce Service Cloud'a veri kopyalamak için kopyalama etkinliği havuzu bölümünde aşağıdaki özellikler desteklenir.

Özellik Açıklama Gerekli
Tür Kopyalama etkinliği havuzu type özelliği SalesforceServiceCloudSink olarak ayarlanmalıdır. Yes
writeBehavior İşlemin yazma davranışı.
İzin verilen değerler Insert ve Upsert değerleridir.
Hayır (varsayılan değer Ekle'dir)
externalIdFieldName Upsert işleminin dış kimlik alanının adı. Belirtilen alan Salesforce Service Cloud nesnesinde "Dış Kimlik Alanı" olarak tanımlanmalıdır. Karşılık gelen giriş verilerinde NULL değerleri olamaz. "Upsert" için Evet
writeBatchSize Her toplu işlemde Salesforce Service Cloud'a yazılan verilerin satır sayısı. Hayır (varsayılan değer 5.000'dir)
ignoreNullValues Yazma işlemi sırasında giriş verilerinden NULL değerlerin yoksayılıp yoksayılmayacağını gösterir.
İzin verilen değerler true ve false değerleridir.
- Doğru: Bir upsert veya update işlemi yaptığınızda hedef nesnedeki verileri değiştirmeden bırakın. Ekleme işlemi yaparken tanımlı bir varsayılan değer ekleyin.
- False: Bir upsert veya update işlemi yaptığınızda hedef nesnedeki verileri NULL olarak güncelleştirin. Ekleme işlemi yaparken NULL değer ekleyin.
Hayır (varsayılan değer false)
 maxConcurrent Bağlan ions Etkinlik çalıştırması sırasında veri deposuna kurulan eş zamanlı bağlantıların üst sınırı. Yalnızca eşzamanlı bağlantıları sınırlamak istediğinizde bir değer belirtin.  No

Örnek:

"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
            }
        }
    }
]

Sorgu ipuçları

Salesforce Service Cloud raporundan veri alma

Olarak {call "<report name>"}bir sorgu belirterek Salesforce Service Cloud raporlarından veri alabilirsiniz. "query": "{call \"TestReport\"}" bunun bir örneğidir.

Salesforce Hizmeti Bulut Geri Dönüşüm Kutusu'ndan silinen kayıtları alma

Salesforce Service Bulut Geri Dönüşüm Kutusu'ndan geçici olarak silinen kayıtları sorgulamak için olarak queryAllbelirtebilirsinizreadBehavior.

SOQL ile SQL sorgu söz dizimi arasındaki fark

Salesforce Service Cloud'dan veri kopyalarken SOQL sorgusu veya SQL sorgusu kullanabilirsiniz. Bu ikisinin farklı söz dizimi ve işlevsellik desteği olduğuna dikkat edin, karıştırmayın. Salesforce Service Cloud tarafından yerel olarak desteklenen SOQL sorgusunu kullanmanız önerilir. Aşağıdaki tabloda ana farklar listelemektedir:

Sözdizimi SOQL Modu SQL Modu
Sütun seçimi Sorguda kopyalanacak alanları numaralandırmanız gerekir; örneğin, SELECT field1, filed2 FROM objectname SELECT * sütun seçimine ek olarak desteklenir.
Tırnak Dosyalanan/nesne adları alıntılanamaz. Alan/nesne adları tırnak içine alınabiliyor, örneğin. SELECT "id" FROM "Account"
Tarih saat biçimi Buradaki ayrıntılara ve sonraki bölümdeki örneklere bakın. Buradaki ayrıntılara ve sonraki bölümdeki örneklere bakın.
Boole değerleri ve Trueolarak False temsil edilir, örneğin. SELECT … WHERE IsDeleted=True 0 veya 1 olarak temsil edilir, örneğin. SELECT … WHERE IsDeleted=1
Sütun yeniden adlandırma Desteklenmiyor. Desteklenir, örneğin: SELECT a AS b FROM ….
İlişki Desteklenir, örneğin. Account_vod__r.nvs_Country__c Desteklenmiyor.

DateTime sütununda where yan tümcesi kullanarak verileri alma

SOQL veya SQL sorgusunu belirttiğinizde DateTime biçim farkına dikkat edin. Örneğin:

  • SOQL örneği: 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 örneği: 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')}'}

MALFORMED_QUERY Hatası: Kesilmiş

"MALFORMED_QUERY: Kesilmiş" hatasıyla karşılaşırsanız, bunun nedeni normalde verilerde JunctionIdList türü sütununa sahip olmanız ve Salesforce'un bu tür verileri çok sayıda satırla destekleme sınırlaması olmasıdır. Azaltmak için JunctionIdList sütununu hariç tutmaya veya kopyalanacak satır sayısını sınırlamaya çalışın (birden çok kopyalama etkinliği çalıştırmasına bölümleyebilirsiniz).

Salesforce Service Cloud için veri türü eşlemesi

Salesforce Service Cloud'dan veri kopyaladığınızda, Salesforce Service Cloud veri türlerinden hizmet içinde dahili olarak kullanılan ara veri türlerine aşağıdaki eşlemeler kullanılır. Kopyalama etkinliğinin kaynak şemayı ve veri türünü havuza nasıl eşlediğini öğrenmek için bkz . Şema ve veri türü eşlemeleri.

Salesforce Service Cloud veri türü Hizmet ara veri türü
Otomatik Numara String
Onay kutusu Boolean
Para birimi Ondalık
Tarih DateTime
Tarih/Zaman DateTime
E-posta adresi String
Kimlik String
Arama İlişkisi String
Çoklu Seçim Seçme Listesi String
Sayı Ondalık
Yüzde Ondalık
Phone String
Picklist String
Metin String
Metin Alanı String
Metin Alanı (Uzun) String
Metin Alanı (Zengin) String
Metin (Şifrelenmiş) String
URL String

Not

Salesforce Hizmeti Bulut Numarası türü, Hizmet ara veri türü olarak Azure Data Factory ve Azure Synapse işlem hatlarındaki Ondalık türüne eşleniyor. Ondalık türü tanımlı duyarlığı ve ölçeği dikkate alır. Ondalık basamakları tanımlı ölçeği aşan veriler için değeri önizleme verilerinde yuvarlanır ve kopyalanır. Azure Data Factory ve Azure Synapse işlem hatlarında böyle bir duyarlık kaybı yaşamamak için Salesforce Service Cloud'un Özel Alan Tanımı Düzenleme sayfasında ondalık basamakları makul bir büyük değere yükseltmeyi göz önünde bulundurun.

Arama etkinliği özellikleri

Özellikler hakkında ayrıntılı bilgi edinmek için Arama etkinliği'ne bakın.

Sonraki adımlar

Kopyalama etkinliği tarafından kaynak ve havuz olarak desteklenen veri depolarının listesi için bkz . Desteklenen veri depoları.