Copiar dados do Salesforce Marketing Cloud usando o Azure Data Factory ou Synapse Analytics

APLICA-SE A: Azure Data Factory Azure Synapse Analytics

Dica

Experimente o Data Factory no Microsoft Fabric, uma solução de análise tudo-em-um para empresas. O Microsoft Fabric abrange desde movimentação de dados até ciência de dados, análise em tempo real, business intelligence e relatórios. Saiba como iniciar uma avaliação gratuita!

Este artigo descreve como usar a atividade de cópia nos pipelines do Azure Data Factory e do Synapse Analytics para copiar dados do Salesforce Marketing Cloud. Ele amplia o artigo Visão geral da atividade de cópia que apresenta uma visão geral da atividade de cópia.

Funcionalidades com suporte

Esse conector do Marketing Cloud do Salesforce é compatível com as seguintes funcionalidades:

Funcionalidades com suporte IR
Atividade de cópia (origem/-) ① ②
Atividade de pesquisa ① ②

① Runtime de integração do Azure ② Runtime de integração auto-hospedada

Para obter uma lista de armazenamentos de dados com suporte como origens e coletores, confira a tabela Armazenamentos de dados com suporte.

O conector Marketing Cloud do Salesforce dá suporte à autenticação OAuth 2 e dá suporte a tipos de pacotes herdados e avançados. O conector é criado na API REST de Marketing Cloud do Salesforce.

Observação

Esse conector não dá suporte para a recuperação de exibições, objetos personalizados ou extensões de dados personalizadas.

Introdução

Você pode criar um pipeline com atividade de cópia usando o SDK do .NET, o SDK do Python, o Azure PowerShell, a API REST ou o modelo do Azure Resource Manager. Confira o Tutorial de atividade de cópia para obter instruções passo a passo sobre a criação de um pipeline com uma atividade de cópia.

Criar um serviço vinculado ao Salesforce Marketing Cloud com a interface do usuário

Use as etapas abaixo para criar um serviço vinculado ao Salesforce Marketing Cloud na interface do usuário do portal do Azure.

  1. Navegue até a guia Gerenciar no workspace do Azure Data Factory ou do Synapse e selecione Serviços Vinculados. Depois, clique em Novo:

  2. Pesquise Salesforce e selecione o conector do Salesforce Marketing Cloud.

    Selecione o conector do Salesforce Marketing Cloud.

  3. Configure os detalhes do serviço, teste a conexão e crie o novo serviço vinculado.

    Configurar um serviço vinculado ao Salesforce Marketing Cloud com a interface do usuário.

Observação

O escopo de integração da API no Salesforce Marketing Cloud precisa ser definido como Hub | Campanha | Ler para que o conector tenha êxito.

Detalhes da configuração do conector

As seções que se seguem fornecem detalhes sobre as propriedades que são usadas para definir entidades do Data Factory específicas ao conector do Salesforce Marketing Cloud.

Propriedades do serviço vinculado

As propriedades a seguir têm suporte para o serviço vinculado do Salesforce Marketing Cloud:

Propriedade Descrição Obrigatório
type A propriedade type deve ser definida para: Salesforce Marketing Cloud Sim
connectionProperties Um grupo de propriedades que define como se conectar ao Salesforce Marketing Cloud. Sim
Em connectionProperties:
authenticationType especifica o método de autenticação a ser usado. Os valores permitidos são: Enhanced sts OAuth 2.0 ou OAuth_2.0.

O pacote de legado Marketing Cloud do Salesforce só dá suporte a OAuth_2.0, enquanto o pacote avançado precisar de Enhanced sts OAuth 2.0.
Desde 1º de agosto de 2019, o Salesforce Marketing Cloud removeu a capacidade de criar pacotes herdados. Todos os novos pacotes são pacotes avançados.
Sim
host Para o pacote avançado, o host deve ser seu subdomínio, que é representado por uma cadeia de caracteres de 28 caracteres, começando com as letras "MC", por exemplo, mc563885gzs27c5t9-63k636ttgm.
Para pacote herdado, especifique www.exacttargetapis.com.
Sim
clientId A ID do cliente associada ao aplicativo do Salesforce Marketing Cloud. Sim
clientSecret O segredo do cliente associada ao aplicativo do Salesforce Marketing Cloud. Você pode optar por marcar este campo como uma SecureString para armazená-la com segurança no serviço ou armazenar o segredo no Azure Key Vault e permitir o pull de atividade de cópia do serviço a partir daí, ao executar a cópia de dados. Saiba mais de Armazenar credenciais no Key Vault. Sim
useEncryptedEndpoints Especifica se os endpoints de fonte de dados são criptografados usando HTTPS. O valor padrão é true. Não
useHostVerification Especifica se o nome do host no certificado do servidor precisa ser igual ao nome do host do servidor nas conexões por TLS. O valor padrão é true. Não
usePeerVerification Especifica se a identidade do servidor deve ser verificada nas conexões por TLS. O valor padrão é true. Não

Exemplo: usando a autenticação do STS OAuth 2 avançada para o pacote avançado

{
    "name": "SalesforceMarketingCloudLinkedService",
    "properties": {
        "type": "SalesforceMarketingCloud",
        "typeProperties": {
            "connectionProperties": {
                "host": "<subdomain e.g. mc563885gzs27c5t9-63k636ttgm>",
                "authenticationType": "Enhanced sts OAuth 2.0",
                "clientId": "<clientId>",
                "clientSecret": {
                     "type": "SecureString",
                     "value": "<clientSecret>"
            	},
                "useEncryptedEndpoints": true,
                "useHostVerification": true,
                "usePeerVerification": true
            }
        }
    }
}

Exemplo: usando a autenticação OAuth 2 para o pacote herdado

{
    "name": "SalesforceMarketingCloudLinkedService",
    "properties": {
        "type": "SalesforceMarketingCloud",
        "typeProperties": {
            "connectionProperties": {
                "host": "www.exacttargetapis.com",
                "authenticationType": "OAuth_2.0",
                "clientId": "<clientId>",
                "clientSecret": {
                     "type": "SecureString",
                     "value": "<clientSecret>"
            	},
                "useEncryptedEndpoints": true,
                "useHostVerification": true,
                "usePeerVerification": true
            }
        }
    }
}

Se você estava usando o serviço vinculado ao Salesforce Marketing Cloud com o seguinte payload, ele ainda é compatível como está, mas é sugerido usar o novo daqui para frente, que adiciona suporte aprimorado ao pacote.

{
    "name": "SalesforceMarketingCloudLinkedService",
    "properties": {
        "type": "SalesforceMarketingCloud",
        "typeProperties": {
            "clientId": "<clientId>",
            "clientSecret": {
                 "type": "SecureString",
                 "value": "<clientSecret>"
            },
            "useEncryptedEndpoints": true,
            "useHostVerification": true,
            "usePeerVerification": true
        }
    }
}

Propriedades do conjunto de dados

Para obter uma lista completa das seções e propriedades disponíveis para definir os conjuntos de dados, confira o artigo sobre conjuntos de dados. Esta seção fornece uma lista das propriedades com suporte pelo conjunto de dados do Salesforce Marketing Cloud.

Para copiar dados do e para o Salesforce Marketing Cloud, defina a propriedade tipo do conjunto de dados como SalesforceMarketingCloudObject. Há suporte para as seguintes propriedades:

Propriedade Descrição Obrigatório
type A propriedade type do conjunto de dados deve ser definida como: SalesforceMarketingCloudObject Sim
tableName Nome da tabela. Não (se "query" na fonte da atividade for especificada)

Exemplo

{
    "name": "SalesforceMarketingCloudDataset",
    "properties": {
        "type": "SalesforceMarketingCloudObject",
        "typeProperties": {},
        "schema": [],
        "linkedServiceName": {
            "referenceName": "<SalesforceMarketingCloud linked service name>",
            "type": "LinkedServiceReference"
        }
    }
}

Propriedades da atividade de cópia

Para obter uma lista completa das seções e propriedades disponíveis para definir atividades, confia o artigo Pipelines. Esta seção fornece uma lista das propriedades com suporte pela fonte do Salesforce Marketing Cloud.

Salesforce Marketing Cloud como fonte

Para copiar dados do Salesforce Marketing Cloud, defina o tipo de origem na atividade de cópia como SalesforceMarketingCloudSource. As propriedades a seguir têm suporte na seção source da atividade de cópia:

Propriedade Descrição Obrigatório
type A propriedade tipo da fonte da atividade de cópia deve ser definida como: SalesforceMarketingCloudSource Sim
Consulta Utiliza a consulta SQL personalizada para ler os dados. Por exemplo: "SELECT * FROM MyTable". Não (se "tableName" no conjunto de dados for especificado)

Exemplo:

"activities":[
    {
        "name": "CopyFromSalesforceMarketingCloud",
        "type": "Copy",
        "inputs": [
            {
                "referenceName": "<SalesforceMarketingCloud input dataset name>",
                "type": "DatasetReference"
            }
        ],
        "outputs": [
            {
                "referenceName": "<output dataset name>",
                "type": "DatasetReference"
            }
        ],
        "typeProperties": {
            "source": {
                "type": "SalesforceMarketingCloudSource",
                "query": "SELECT * FROM MyTable"
            },
            "sink": {
                "type": "<sink type>"
            }
        }
    }
]

Observação

A tabela de contatos não é compatível.

Pesquisar propriedades de atividade

Para saber detalhes sobre as propriedades, verifique Pesquisar atividade.

Para obter uma lista de armazenamentos de dados com suporte como coletores e fontes da atividade de cópia, confira os armazenamentos de dados com suporte.