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
ouALL PRIVILEGES
no objeto de conexão.USE CATALOG
no catálogo de destino.USE SCHEMA
eCREATE TABLE
em um esquema existente ouCREATE 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 CONNECTION
no 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:
No workspace do Azure Databricks, clique em Catálogo > Locais externos > Conexões > Criar conexão.
Para obter o Nome da conexão, especifique um nome exclusivo para a conexão do Salesforce.
Em Tipo de conexão, clique em Salesforce.
Se você estiver ingerindo de uma conta de área restrita do Salesforce, defina é área restrita para
true
.Clique em Fazer logon com o Salesforce.
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.
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
Na barra lateral do workspace do Azure Databricks, clique em Ingestão de Dados.
Na página Adicionar dados , em Conectores do Databricks, clique em Salesforce.
O assistente de assimilação do Salesforce é aberto.
Na página Pipeline do assistente, insira um nome exclusivo para o pipeline de ingestão.
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.
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.Clique em Criar pipeline e continue.
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.
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 eCREATE SCHEMA
no catálogo pai.Clique em Salvar pipeline e continue.
Na página Configurações, clique em Criar agenda. Defina a frequência para atualizar as tabelas de destino.
Opcionalmente, defina notificações por email para êxito ou falha da operação do pipeline.
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.
Crie um novo pacote usando a CLI do Databricks:
databricks bundle init
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}
- Um arquivo de definição de pipeline (
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
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.
Para exibir os detalhes do pipeline, clique no nome do pipeline.
Na página de detalhes do pipeline, execute o pipeline clicando em Iniciar. Você pode agendar o pipeline clicando em Agendar.
Para definir alertas no pipeline, clique em Agendar, depois em Mais opções e, em seguida, adicione uma notificação.
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.