Ingira dados do Salesforce
Aprenda como importar dados do Salesforce para Databricks usando LakeFlow Connect.
Requisitos
-
Para criar um pipeline de ingestão, você deve primeiro atender aos seguintes requisitos:
-
Seu workspace deve estar habilitado para o Unity Catalog.
-
O compute sem servidor deve estar habilitado para o seu workspace. Consulte os requisitos do compute sem servidor.
-
Se você planeja criar uma nova conexão: Você deve ter privilégios
CREATE CONNECTIONno metastore. Consulte a seção sobre privilégios de gerenciamento no Unity Catalog.Se o conector oferecer suporte à criação pipeline baseada em interface de usuário, um administrador poderá criar a conexão e o pipeline ao mesmo tempo, concluindo os passos nesta página. No entanto, se os usuários que criam o pipeline usarem a criação pipeline baseada em API ou não forem usuários administradores, um administrador deverá primeiro criar a conexão no Catalog Explorer. Veja Conectar às fontes de ingestão de gerenciar.
-
Se você planeja usar uma conexão existente: você deve ter privilégios
USE CONNECTIONouALL PRIVILEGESno objeto de conexão. -
Você deve ter privilégios
USE CATALOGno catálogo de destino. -
Você deve ter privilégios
USE SCHEMAeCREATE TABLEem um esquema existente ou privilégiosCREATE SCHEMAno catálogo de destino.
-
-
O Salesforce aplica restrições de uso aos aplicativos conectados. As permissões na tabela a seguir são necessárias para uma primeira autenticação bem-sucedida. Se você não tiver essas permissões, o Salesforce bloqueará a conexão e exigirá que um administrador instale o aplicativo conectado do Databricks.
Condição | Permissão necessária |
|---|---|
O Controle de Acesso à API está habilitado. |
|
O Controle de Acesso à API não está habilitado. |
|
Para obter informações básicas, consulte Preparar-se para alterações nas restrições de uso de aplicativos conectados na documentação do Salesforce.
-
Para ingerir do Salesforce, o seguinte é recomendado:
-
Crie um usuário do Salesforce que a Databricks possa usar para recuperar dados. Certifique-se de que o usuário tenha acesso à API e a todos os objetos que o senhor planeja ingerir.
Criar um pipeline de ingestão
Beta
Você pode filtrar linhas durante a ingestão para melhorar o desempenho e reduzir a duplicação de dados. Consulte Selecionar linhas para ingestão.
- Databricks UI
- Databricks Asset Bundles
- Na barra lateral do site Databricks workspace, clique em ingestão de dados .
- Na página Adicionar dados , em Conectores do Databricks , clique em Salesforce .
- Na página Conexão do assistente de ingestão, selecione a conexão que armazena suas credenciais de acesso ao Salesforce. Se você tiver o privilégio
CREATE CONNECTIONno metastore, poderá clicar.Criar conexão para criar uma nova conexão com os detalhes de autenticação no Salesforce.
- Clique em Avançar .
- Na página de configuração de ingestão , insira um nome exclusivo para o pipeline.
- Selecione um catálogo e um esquema para gravar logs de eventos. Se você tiver privilégios
USE CATALOGeCREATE SCHEMAno catálogo, poderá clicar.Para criar um novo esquema, clique em "Criar esquema" no menu suspenso.
- Clique em Create pipeline (Criar pipeline) e continue .
- Na página Origem , selecione as tabelas que deseja importar. Se você selecionar Todas as tabelas , todas as tabelas existentes e futuras no esquema de origem serão incluídas.
- Clique em Salvar e continuar .
- Na página Destino , selecione um catálogo e um esquema para carregar os dados. (Opcional) Se você tiver privilégios
USE CATALOGeCREATE SCHEMAno catálogo, poderá clicar.Para criar um novo esquema, clique em "Criar esquema" no menu suspenso.
- Clique em Salvar e continuar .
- (Opcional) Na página de programação e notificações , clique em
Criar programar . Defina a frequência de refresh das tabelas de destino.
- (Opcional) Clique
Adicione uma notificação para configurar notificações email para operações pipeline bem-sucedidas ou com falha e, em seguida, clique em Salvar e execute pipeline .
Use pacotes de automação declarativa para gerenciar o pipeline do Salesforce como código. Os pacotes podem conter definições YAML de Job e tarefa, são gerenciados usando a CLI Databricks e podem ser compartilhados e executados em diferentes espaços de trabalho de destino (como desenvolvimento, teste e produção). Para mais informações, consulte O que são pacotes de automação declarativa?.
-
Crie um novo pacote usando a CLI do Databricks:
Bashdatabricks bundle init -
Adicione dois novos arquivos de recurso ao pacote:
- Um arquivo de definição de pipeline (por exemplo,
resources/sfdc_pipeline.yml). Consulte pipeline.ingestion_definition e exemplos. - Um arquivo de definição de trabalho que controla a frequência de ingestão de dados (por exemplo,
resources/sfdc_job.yml).
- Um arquivo de definição de pipeline (por exemplo,
-
implantado o pipeline usando o Databricks CLI:
Bashdatabricks bundle deploy
Exemplos
Utilize esses exemplos para configurar seu pipeline.
Ingerir campos de fórmula incrementalmente
Beta
Este recurso está em versão Beta.
Por default, os campos de fórmula são ingeridos usando o Snapshot completo em cada execução pipeline . No entanto, você pode habilitar a ingestão incremental para campos de fórmula definindo o sinalizador pipelines.enableSalesforceFormulaFieldsMVComputation: "true" no bloco configuration da definição do seu pipeline.
O seguinte arquivo de definição de pipeline permite a ingestão incremental de campos de fórmula:
resources:
pipelines:
pipeline_sfdc:
name: salesforce_pipeline
catalog: my_catalog
schema: my_schema
configuration:
pipelines.enableSalesforceFormulaFieldsMVComputation: 'true'
ingestion_definition:
connection_name: <salesforce-connection>
objects:
- table:
source_schema: objects
source_table: Account
destination_catalog: my_catalog
destination_schema: my_schema
Para obter mais informações, consulte Ingerir campos de fórmula do Salesforce de forma incremental.
Ingerir dois objetos do Salesforce em esquemas separados
O seguinte arquivo de definição de pipeline ingere dois objetos do Salesforce em esquemas separados:
resources:
pipelines:
pipeline_sfdc:
name: salesforce_pipeline
catalog: my_catalog_1 # Location of the pipeline event log
schema: my_schema_1 # Location of the pipeline event log
ingestion_definition:
connection_name: <salesforce-connection>
objects:
- table:
source_schema: objects
source_table: AccountShare
destination_catalog: my_catalog_1 # Location of this table
destination_schema: my_schema_1 # Location of this table
- table:
source_schema: objects
source_table: AccountPartner
destination_catalog: my_catalog_2 # Location of this table
destination_schema: my_schema_2 # Location of this table
Ingerir um objeto do Salesforce três vezes
O seguinte arquivo de definição de pipeline ingere um objeto do Salesforce em três tabelas de destino diferentes. Opcionalmente, você pode atribuir um novo nome às tabelas ingeridas para diferenciá-las quando várias tabelas forem ingeridas no mesmo esquema de destino (duplicatas não são suportadas).
resources:
pipelines:
pipeline_sfdc:
name: salesforce_pipeline
catalog: my_catalog_1 # Location of the pipeline event log
schema: my_schema_1 # Location of the pipeline event log
ingestion_definition:
connection_name: <salesforce-connection>
objects:
- table:
source_schema: objects
source_table: Order
destination_catalog: my_catalog_1 # Location of first copy
destination_schema: my_schema_1 # Location of first copy
- table:
source_schema: objects
source_table: Order
destination_catalog: my_catalog_2 # Location of second copy
destination_schema: my_schema_2 # Location of second copy
- table:
source_schema: objects
source_table: Order
destination_catalog: my_catalog_2 # Location of third copy, renamed
destination_schema: my_schema_2 # Location of third copy, renamed
destination_table: order_duplicate # Table rename
Arquivo de definição de trabalho de pacote
Segue abaixo um exemplo de arquivo de definição de tarefa para uso com pacotes de automação declarativa. A execução do trabalho ocorre todos os dias, exatamente um dia após a última execução.
resources:
jobs:
sfdc_dab_job:
name: sfdc_dab_job
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}
Padrões comuns
Para configurações avançadas pipeline , consulte Padrões comuns para gerenciar pipeline de ingestão.
Próximos passos
começar, programar e definir alerta em seu pipeline. Consulte Tarefa comum de manutenção pipeline.