Azure Data Factory veya Azure Synapse Analytics kullanarak Salesforce'tan ve Salesforce'a veri kopyalama

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, Salesforce'tan ve Salesforce'a veri kopyalamak için Azure Data Factory ve Azure Synapse işlem hatlarında 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

Yeni Salesforce bağlayıcısı geliştirilmiş yerel Salesforce desteği sağlar. Çözümünüzde yalnızca geriye dönük uyumluluk için olduğu gibi desteklenen eski Salesforce bağlayıcısını kullanıyorsanız Salesforce bağlayıcısı (eski) makalesine bakın.

Desteklenen özellikler

Bu Salesforce 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.

Bu Salesforce bağlayıcısı özellikle şunları destekler:

  • Salesforce Developer, Professional, Enterprise veya Unlimited sürümleri.
  • özel etki alanından ve etki alanına veri kopyalama (Özel etki alanı hem üretim hem de korumalı alan ortamlarında yapılandırılabilir).

Bağlı hizmetteki özellik aracılığıyla apiVersion verileri okumak/yazmak için kullanılan API sürümünü açıkça ayarlayabilirsiniz. Bağlayıcı, Salesforce'a veri kopyalarken BULK API 2.0 kullanır.

Önkoşullar

  • API izni Salesforce'ta etkinleştirilmelidir.

  • Salesforce portalında bu resmi belge veya bu makaledeki önerideki adım adım kılavuzumuza başvuran Bağlan uygulamaları yapılandırmanız gerekir.

    Önemli

    • Yürütme kullanıcısının Yalnızca API izni olmalıdır.
    • Erişim Belirteci'nin süresi, yenileme belirteci yerine oturum ilkeleri aracılığıyla değiştirilebilir.

Salesforce Toplu API 2.0 Sınırları

Verileri sorgulamak ve almak için Salesforce Bulk API 2.0'ı kullanırız. Toplu API 2.0'da toplu işlemler sizin için otomatik olarak oluşturulur. Sıralı 24 saatlik dönem başına en fazla 15.000 toplu işlem gönderebilirsiniz. Toplu işlemler sınırı aşarsa hatalarla karşılaşırsınız.

Toplu API 2.0'da yalnızca alma işleri toplu işleri kullanır. Sorgu işleri bunu yapamaz. Ayrıntılar için Bkz . Toplu API 2.0 Geliştirici Kılavuzu'nda İsteklerin İşlenme Şekli.

Daha fazla bilgi için Salesforce geliştirici sınırları bölümündeki "Genel 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'a bağlı hizmet oluşturma

Azure portalı kullanıcı arabiriminde Salesforce'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 bağlayıcısını seçin.

    Salesforce bağlayıcısının ekran görüntüsü.

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

    Salesforce için bağlı hizmet yapılandırmasının ekran görüntüsü.

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

Aşağıdaki bölümlerde Salesforce bağlayıcısına özgü varlıkları 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 SalesforceV2 olarak ayarlanmalıdır. Yes
environmentUrl Salesforce örneğinin URL'sini belirtin.
Örneğin, verileri özel etki alanından kopyalamak için belirtin "https://<domainName>.my.salesforce.com" . Bu makaleye başvurarak özel etki alanınızı yapılandırmayı veya görüntülemeyi öğrenin.
Yes
authenticationType Salesforce'a bağlanmak için kullanılan kimlik doğrulama türü.
İzin verilen değer OAuth2ClientCredentials değeridir.
Yes
clientId Salesforce OAuth 2.0 Bağlan ed Uygulamasının istemci kimliğini belirtin. Daha fazla bilgi için bu makaleye gidin Yes
clientSecret Salesforce OAuth 2.0 Bağlan ed Uygulamasının istemci gizli dizisini belirtin. Daha fazla bilgi için bu makaleye gidin Yes
apiVersion Kullanılacak Salesforce Toplu API 2.0 sürümünü belirtin; örneğin. 52.0 Toplu API 2.0 yalnızca API sürümü >= 47.0'i destekler. Toplu API 2.0 sürümü hakkında bilgi edinmek için makaleye bakın. Daha düşük bir API sürümü kullanırsanız hataya neden olur. Yes
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": "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"
        }
    }
}

Örnek: Kimlik bilgilerini Key Vault'ta depolama

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

Örnek: Kimlik bilgilerini Key Vault'ta, ayrıca environmentUrl ve clientId'de depolama

Bunu yaptığınızda artık ayarları düzenlemek için kullanıcı arabirimini kullanamayacağınızı unutmayın. JSON biçiminde dinamik içerik belirt onay kutusu işaretlenir ve bu yapılandırmayı tamamen el ile düzenlemeniz gerekir. Bunun avantajı, burada herhangi bir parametreyi parametreleştirmek yerine Key Vault'tan TÜM yapılandırma ayarlarını türetmenizdir.

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

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 veri kümesi tarafından desteklenen özelliklerin listesi sağlanır.

ve'den Salesforce'a veri kopyalamak için veri kümesinin tür özelliğini SalesforceV2Object olarak ayarlayın. Aşağıdaki özellikler desteklenir.

Özellik Açıklama Gerekli
Tür tür özelliği SalesforceV2Object olarak ayarlanmalıdır. Yes
objectApiName Veri alınacak Salesforce nesne adı. Kaynak için hayır (kaynakta "SOQLQuery" belirtilirse), havuz için Evet
reportId Verileri almak için Salesforce raporunun kimliği. Havuz'da desteklenmez. Raporları kullanırken sınırlamalar olduğunu unutmayın. Kaynak için hayır (kaynakta "SOQLQuery" belirtildiyse), havuzu desteklemez

Önemli

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

Salesforce bağlantı API'si Adı

Örnek:

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

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 kaynağı ve havuzu tarafından desteklenen özelliklerin listesi sağlanır.

Kaynak türü olarak Salesforce

Salesforce'tan veri kopyalamak için kopyalama etkinliğindeki kaynak türünü SalesforceV2Source olarak ayarlayın. 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 type özelliği SalesforceV2Source olarak ayarlanmalıdır. Yes
SOQLQuery Verileri okumak için özel sorguyu kullanın. Salesforce Nesne Sorgu Dili (SOQL) sorgusunu yalnızca sınırlamalarla kullanabilirsiniz. SOQL sınırlamaları için bu makaleye bakın. Sorgu belirtilmezse, veri kümesindeki "ObjectApiName/reportId" içinde belirtilen Salesforce nesnesinin tüm verileri alınır. Hayır (veri kümesinde "ObjectApiName/reportId" belirtilirse)
includeDeletedObjects 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ış false olur.
İzin verilen değerler: false (varsayılan), true.
Hayır

Önemli

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

Salesforce bağlantı API'si Ad listesi

Örnek:

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

Havuz türü olarak Salesforce

Verileri Salesforce'a kopyalamak için kopyalama etkinliğindeki havuz türünü SalesforceV2Sink olarak ayarlayın. 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 SalesforceV2Sink 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 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'a yazılan verilerin satır sayısı. Öneri bu değeri 10.000'den 200.000'e ayarlayın. Her toplu işteki çok az satır kopyalama performansını düşürür. Her toplu işlemde çok fazla satır api zaman aşımına neden olabilir. Hayır (varsayılan değer 100.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: Kopyalama etkinliğinde Salesforce havuzu

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

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

Salesforce'tan veri kopyaladığınızda, aşağıdaki eşlemeler Salesforce veri türlerinden hizmet içindeki ara veri türlerine dahili olarak 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 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 Sayı 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'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.

Salesforce bağlı hizmetini yükseltme

Bağlı hizmetinizi ve ilgili sorgularınızı yükseltmenize yardımcı olan adımlar şunlardır:

  1. Önkoşullar'a başvurarak Salesforce portalında bağlı uygulamaları yapılandırın.

  2. Yeni bir Salesforce bağlı hizmeti oluşturun ve Bağlı hizmet özelliklerine başvurarak bunu yapılandırın.

  3. Kopyalama etkinliği kaynağında veya eski bağlı hizmete başvuran arama etkinliğinde SQL sorgusu kullanıyorsanız, bunları SOQL sorgusuna dönüştürmeniz gerekir. Kaynak türü olarak Salesforce'tan SOQL sorgusu ve Salesforce Nesne Sorgu Dili (SOQL) hakkında daha fazla bilgi edinin.

  4. readBehavior, kopyalama etkinliği kaynağındaki veya arama etkinliğindeki includeDeletedObjects ile değiştirilir. Ayrıntılı yapılandırma için bkz . Kaynak türü olarak Salesforce.

Salesforce ile Salesforce arasındaki farklar (eski)

Salesforce bağlayıcısı yeni işlevler sunar ve Salesforce (eski) bağlayıcısının çoğu özelliğiyle uyumludur. Aşağıdaki tabloda Salesforce ile Salesforce (eski) arasındaki özellik farklılıkları gösterilmektedir.

Salesforce Salesforce (eski)
Salesforce Bulk API 2.0 içinde SOQL desteği.
SOQL sorguları için:
• GROUP BY, LIMIT, ORDER BY, OFFSET veya TYPEOF yan tümceleri desteklenmez.
• COUNT() gibi toplama işlevleri desteklenmez, bunları uygulamak için Salesforce raporlarını kullanabilirsiniz.
• GROUP BY yan tümcelerindeki tarih işlevleri desteklenmez, ancak WHERE yan tümcesinde desteklenir.
• Bileşik adres alanları veya bileşik coğrafi konum alanları desteklenmez. Alternatif olarak, bileşik alanların bileşenlerini tek tek sorgular.
• Üst-alt ilişki sorguları desteklenmezken, alt öğeden üst öğeye ilişki sorguları desteklenir.
Hem SQL hem de SOQL söz dizimlerini destekler.
İkili alanlar içeren nesneler desteklenmez. İkili alanlar içeren nesneler, Ek nesnesi gibi desteklenir.
Toplu API içindeki nesneleri destekler. Daha fazla bilgi için bu makaleye bakın. CaseStatus gibi Toplu API tarafından desteklenmeyen nesneleri destekleyin.
Bir rapor kimliği seçerek raporu destekleyin. Gibi {call "<report name>"}rapor sorgusu söz dizimlerini destekleyin.

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