Compartilhar via


Ingerir dados do Salesforce

Importante

O LakeFlow Connect está em Visualização Pública restrita. Para participar da versão prévia, entre em contato com sua equipe de conta do Databricks.

Este artigo descreve como ingerir dados do Salesforce e carregá-lo no Azure Databricks usando o LakeFlow Connect. O pipeline de ingestão resultante é regido pelo Catálogo do Unity e é alimentado por computação sem servidor e por Tabelas Dinâmicas Delta.

O conector de ingestão do Salesforce é compatível com a seguinte origem:

  • Salesforce Sales Cloud

Antes de começar

Para criar um pipeline de ingestão, você deve atender aos seguintes requisitos:

  • Seu espaço de trabalho está habilitado para o Catálogo do Unity.

  • A computação sem servidor está habilitada para notebooks, fluxos de trabalho e Tabelas Dinâmicas Delta. Confira Habilitar a computação sem servidor.

  • Para criar uma conexão: você tem CREATE CONNECTION no metastore.

    Para usar uma conexão existente: você tem USE CONNECTION ou ALL PRIVILEGES no objeto de conexão.

  • USE CATALOG no catálogo de destino.

  • USE SCHEMA e CREATE TABLE em um esquema existente ou CREATE SCHEMA no catálogo de destino.

  • (Recomendado) Crie um usuário do Salesforce que o Databricks possa usar para recuperar dados. Verifique se o usuário tem acesso à API e acesso a todos os objetos que você planeja ingerir.

Criar uma conexão do Salesforce

Permissões necessárias: CREATE CONNECTIONno metastore. Entre em contato com um administrador do metastore para conceder isso.

Se você quiser criar um pipeline de ingestão usando uma conexão existente, pule para a seção a seguir. Você precisa USE CONNECTION ou ALL PRIVILEGES na conexão.

Para criar uma conexão do Salesforce, faça o seguinte:

  1. No workspace do Azure Databricks, clique em Catálogo > Locais externos > Conexões > Criar conexão.

  2. Para obter o Nome da conexão, especifique um nome exclusivo para a conexão do Salesforce.

  3. Em Tipo de conexão, clique em Salesforce.

  4. Se você estiver ingerindo de uma conta de área restrita do Salesforce, defina é área restrita para true.

  5. Clique em Fazer logon com o Salesforce.

    Logon do Salesforce

  6. Se você estiver assimilando de um sandbox do Salesforce, clique em Usar domínio personalizado. Forneça a URL da sandbox e prossiga para fazer login. O Databricks recomenda fazer login como um usuário do Salesforce dedicado à ingestão do Databricks.

    Usar o botão de domínio personalizado

    Inserir URL da área restrita

  7. Após executar a página Criar Conexão, clique em Criar.

Criar um pipeline de ingestão

Permissões necessárias: USE CONNECTION ou ALL PRIVILEGES em uma conexão.

Essa etapa descreve como criar o pipeline de ingestão. Cada tabela ingerida corresponde a uma tabela de streaming com o mesmo nome (mas tudo em letras minúsculas) no destino por padrão, a menos que você a renomeie explicitamente.

Interface do usuário do Databricks

  1. Na barra lateral do workspace do Azure Databricks, clique em Ingestão de Dados.

  2. Na página Adicionar dados , em Conectores do Databricks, clique em Salesforce.

    O assistente de assimilação do Salesforce é aberto.

  3. Na página Pipeline do assistente, insira um nome exclusivo para o pipeline de ingestão.

  4. No menu suspenso Catálogo de destino, selecione um catálogo. Os dados ingeridos e os logs de eventos serão gravados neste catálogo.

  5. Selecione a conexão do Catálogo do Unity que armazena as credenciais necessárias para acessar os dados do Salesforce.

    Se não houver conexões do Salesforce, clique em Criar conexão. Você deve ter o CREATE CONNECTION privilégio no metastore.

  6. Clique em Criar pipeline e continue.

  7. Na página Origem, selecione as tabelas do Salesforce a serem assimiladas no Databricks e clique em Avançar.

    Se você selecionar um esquema, o conector de ingestão do Salesforce gravará todas as tabelas existentes e futuras no esquema de origem nas tabelas gerenciadas do Catálogo do Unity.

  8. Na página Destino , selecione o catálogo e o esquema do Catálogo do Unity para gravar.

    Se você não quiser usar um esquema existente, clique em Criar esquema. Você deve ter os USE CATALOG privilégios e CREATE SCHEMA no catálogo pai.

  9. Clique em Salvar pipeline e continue.

  10. Na página Configurações, clique em Criar agenda. Defina a frequência para atualizar as tabelas de destino.

  11. Opcionalmente, defina notificações por email para êxito ou falha da operação do pipeline.

  12. Clique em Salvar e executar pipeline.

Pacotes de Ativos do Databricks

Esta guia descreve como implantar um pipeline de ingestão usando DABs (Asset Bundles) do Databricks. Os pacotes podem conter definições YAML de trabalhos e tarefas, são gerenciados usando a CLI do Databricks e podem ser compartilhados e executados em diferentes workspaces de destino (como desenvolvimento, preparo e produção). Para obter mais informações, consulte Pacotes de ativos do Databricks.

  1. Crie um novo pacote usando a CLI do Databricks:

    databricks bundle init
    
  2. Adicione dois novos arquivos de recurso ao pacote:

    • Um arquivo de definição de pipeline (resources/sfdc_pipeline.yml).
    • Um arquivo de fluxo de trabalho que controla a frequência de ingestão de dados (resources/sfdc_job.yml).

    A seguir, é mostrado um arquivo resources/sfdc_pipeline.yml de exemplo:

    variables:
      dest_catalog:
        default: main
      dest_schema:
        default: ingest_destination_schema
    
    # The main pipeline for sfdc_dab
    resources:
      pipelines:
        pipeline_sfdc:
          name: salesforce_pipeline
          ingestion_definition:
            connection_name: <salesforce-connection>
            objects:
              # An array of objects to ingest from Salesforce. This example
              # ingests the AccountShare, AccountPartner, and ApexPage objects.
              - table:
                  source_schema: objects
                  source_table: AccountShare
                  destination_catalog: ${var.dest_catalog}
                  destination_schema: ${var.dest_schema}
              - table:
                  source_schema: objects
                  source_table: AccountPartner
                  destination_catalog: ${var.dest_catalog}
                  destination_schema: ${var.dest_schema}
              - table:
                  source_schema: objects
                  source_table: ApexPage
                  destination_catalog: ${var.dest_catalog}
                  destination_schema: ${var.dest_schema}
          channel: "preview"
    

    A seguir, é mostrado um arquivo resources/sfdc_job.yml de exemplo:

    resources:
      jobs:
        sfdc_dab_job:
          name: sfdc_dab_job
    
          trigger:
            # Run this job every day, exactly one day from the last run
            # See https://docs.databricks.com/api/workspace/jobs/create#trigger
            periodic:
              interval: 1
              unit: DAYS
    
          email_notifications:
            on_failure:
              - <email-address>
    
          tasks:
            - task_key: refresh_pipeline
              pipeline_task:
                pipeline_id: ${resources.pipelines.pipeline_sfdc.id}
    
  3. Implante o pipeline usando a CLI do Databricks:

    databricks bundle deploy
    

CLI do Databricks

Para criar o pipeline:

databricks pipelines create --json "<pipeline-definition | json-file-path>"

Para atualizar o pipeline:

databricks pipelines update --json "<<pipeline-definition | json-file-path>"

Para obter a definição do pipeline:

databricks pipelines get "<pipeline-id>"

Para excluir o pipeline:

databricks pipelines delete "<pipeline-id>"

Para obter mais informações, você pode executar:

databricks pipelines --help
databricks pipelines <create|update|get|delete|...> --help

Inicie, agende e defina alertas no seu pipeline

  1. Depois que o pipeline tiver sido criado, reveja o workspace do Databricks e clique em Tabelas Dinâmicas Delta.

    O novo pipeline aparece na lista de pipelines.

  2. Para exibir os detalhes do pipeline, clique no nome do pipeline.

  3. Na página de detalhes do pipeline, execute o pipeline clicando em Iniciar. Você pode agendar o pipeline clicando em Agendar.

  4. Para definir alertas no pipeline, clique em Agendar, depois em Mais opções e, em seguida, adicione uma notificação.

  5. Após a conclusão da ingestão, você pode consultar suas tabelas.

Observação

Quando o pipeline é executado, você pode ver duas exibições de origem para uma determinada tabela. Uma exibição contém os instantâneos dos campos de fórmula. A outra exibição contém os pulls dos dados incrementais dos campos sem fórmula. Essas exibições são unidas na tabela de destino.