Ingerir dados do Salesforce
Importante
O LakeFlow Connect está em pré-visualização pública fechada. Para participar da visualização, entre em contato com sua equipe de conta Databricks.
Este artigo descreve como ingerir dados do Salesforce e carregá-los no Azure Databricks usando o LakeFlow Connect. O pipeline de ingestão resultante é governado pelo Unity Catalog e é alimentado por computação sem servidor e Delta Live Tables.
O conector de ingestão do Salesforce suporta 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 Unity.
A computação sem servidor está habilitada para notebooks, fluxos de trabalho e tabelas Delta Live. Consulte Ativar 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. Certifique-se de que o usuário tenha acesso à API e a todos os objetos que você planeja ingerir.
Criar uma conexão com o Salesforce
Permissões necessárias: CREATE CONNECTION
no metastore. Entre em contato com um administrador da 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 com o Salesforce, faça o seguinte:
No espaço de trabalho do Azure Databricks, clique em Catálogo > Locais > externos Conexões > Criar conexão.
Em 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 a partir de uma conta de área restrita do Salesforce, defina É área restrita como
true
.Clique em Fazer login com o Salesforce.
Se você estiver ingerindo a partir de uma área restrita do Salesforce, clique em Usar domínio personalizado. Forneça o URL da área restrita e prossiga para o login. A Databricks recomenda fazer login como um usuário do Salesforce dedicado à ingestão de Databricks.
Depois de retornar à 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.
Esta etapa descreve como criar o pipeline de ingestão. Cada tabela ingerida corresponde a uma tabela de streaming com o mesmo nome (mas todas minúsculas) no destino por padrão, a menos que você a renomeie explicitamente.
Interface do usuário do Databricks
Na barra lateral do espaço de trabalho do Azure Databricks, clique em Ingestão de Dados.
Na página Adicionar dados, em Conectores Databricks, clique em Salesforce.
O assistente de ingestão do Salesforce é aberto.
Na página Pipeline do assistente, insira um nome exclusivo para o pipeline de ingestão.
Na lista suspensa 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 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 ingeridas 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 Unity Catalog.
Na página Destino, selecione o catálogo e o esquema do Catálogo Unity para gravar.
Se 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 e-mail para o sucesso ou falha da operação do pipeline.
Clique em Salvar e executar pipeline.
Pacotes de ativos Databricks
Esta guia descreve como implantar um pipeline de ingestão usando Databricks Asset Bundles (DABs). 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 espaços de trabalho de destino (como desenvolvimento, preparação e produção). Para obter mais informações, consulte Databricks Asset Bundles.
Crie um novo pacote usando a CLI do Databricks:
databricks bundle init
Adicione dois novos arquivos de recursos 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
).
Segue-se um ficheiro de exemplo
resources/sfdc_pipeline.yml
: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"
Segue-se um ficheiro de exemplo
resources/sfdc_job.yml
: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 de 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
Iniciar, agendar e definir alertas no seu pipeline
Depois que o pipeline tiver sido criado, revisite o espaço de trabalho Databricks e clique em Delta Live Tables.
O novo pipeline aparece na lista de pipeline.
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, clique em Mais opções e adicione uma notificação.
Após a conclusão da ingestão, pode consultar as suas tabelas.
Nota
Quando o pipeline é executado, você pode ver duas exibições de código-fonte para uma determinada tabela. Uma vista contém os instantâneos para campos de fórmula. A outra vista contém os dados incrementais extraídos para campos que não sejam de fórmula. Esses modos de exibição são unidos na tabela de destino.