Carregar seus dados
Objetivos de aprendizagem
Após concluir esta unidade, você estará apto a:
- Descrever os benefícios de carregamento de dados enxuto no Salesforce.
- Entender as vantagens da API em massa em relação à API SOAP no carregamento de grandes quantidades de dados.
- Acelerar o processo de carregamento de grandes conjuntos de dados, suspendendo a validação de dados e as operações de enriquecimento.
Como fazer um carregamento enxuto
Seja na migração de LDV ou em grandes operações contínuas de sincronização de dados, minimizar o impacto dessas ações nas operações críticas para os negócios é a prática recomendada. Uma estratégia inteligente para isso é o carregamento de produtos enxutos, incluindo apenas os dados e a configuração necessários para atender operações críticas para os negócios.
O que um carregamento enxuto implica?
- Identificar operações críticas para os negócios antes de mover usuários para o Salesforce.
- Identificar a configuração e o conjunto mínimo de dados necessários para implementar essas operações.
- Definir uma estratégia de dados e configuração com base nos requisitos identificados.
- Carregar dados o mais rápido possível para reduzir o escopo da sincronização.
Ao decidir sobre sua estratégia de carregamento de dados e configuração, considere estas opções de configuração, que permitem adiar processos não críticos e acelerar o carregamento de LDV.
Padrões de compartilhamento para toda a organização. Ao carregar dados com um modelo de compartilhamento particular, o sistema calcula o compartilhamento à medida que os registros são adicionados. Ao carregar com um modelo de compartilhamento de Leitura/gravação pública, é possível adiar este processamento até depois da substituição.
Relacionamentos de objetos complexos. Quanto mais pesquisas forem definidas em um objeto, mais verificações o sistema deverá executar durante o carregamento de dados. Porém, se for possível estabelecer alguns desses relacionamentos em uma fase posterior, isso fará com que o carregamento seja mais rápido.
Regras de compartilhamento. Se tiver regras de compartilhamento baseadas em propriedade configuradas antes de carregar dados, cada registro inserido exigirá cálculos de compartilhamento se o proprietário do registro pertencer a um papel ou grupo que define os dados a serem compartilhados. Se tiver regras de compartilhamento baseadas em critérios configuradas antes de carregar dados, cada registro com campos que correspondam aos critérios de seleção de regra também exigirá cálculos de compartilhamento.
Regras de fluxo de trabalho, regras de validação e acionadores. Essas são ferramentas poderosas para garantir que os dados inseridos durante as operações diárias sejam limpos e incluam relacionamentos apropriados entre os registros. Elas podem, ainda, retardar o processamento se estiverem ativadas durante carregamentos massivos de dados.
Mas não enxuto demais
Embora seja inteligente remover barreiras para acelerar o carregamento de dados, também é importante lembrar que algumas partes de sua configuração são essenciais (ou pelo menos altamente desejáveis) durante qualquer carregamento de dados e não devem ser afetadas:
-
Registros pai com relacionamento entre mestre e detalhes. Não será possível carregar registros filho se os pais ainda não existirem.
-
Proprietários do registro. Na maioria dos casos, seus registros serão de propriedade de usuários individuais e os proprietários precisam existir no sistema antes que seja possível carregar os dados.
-
Hierarquia de papéis. Seria possível pensar que o carregamento seria mais rápido se os proprietários de seus registros não fossem membros da hierarquia de papéis. Mas em quase todos os casos o desempenho seria o mesmo e seria consideravelmente mais rápido se você estivesse carregando contas de portal. Assim, não é vantagem adiar esse aspecto da configuração.
API em massa versus Carregamento de dados da API SOAP
No carregamento de LDV, a API escolhida faz a diferença. A API SOAP padrão Force.com é otimizada para aplicativos cliente em tempo real que atualizam alguns registros de cada vez. A API SOAP exige que desenvolvedores e administradores implementem processos complexos para carregar dados em blocos menores, monitorar resultados e fazer novas tentativas de registros que deram em erro. Esse método é aceitável para pequenos carregamentos de dados, mas se torna pesado e demorado com grandes conjuntos de dados.
A API em massa, por sua vez, é desenvolvida para facilitar o processamento de dados de alguns milhares até milhões de registros. A API em massa está baseada nos princípios REST e foi desenvolvida especificamente para simplificar e otimizar o processo de carregamento ou exclusão de grandes conjuntos de dados.
O uso da API em massa para LDV permite velocidades de processamento super-rápidas, além de linguagem programática reduzida no lado do cliente, status da tarefa fácil de monitorar, repetição automática de registros com falha, suporte para processamento paralelo, viagens de ida e volta mínimas para o Force.com, um mínimo de chamadas de API, conexões descartadas limitadas e tamanho de lote fácil de ajustar. Simplificando, é a maneira mais rápida de inserir, consultar e excluir registros.
Como funciona a API em massa
Ao fazermos o carregamento de registros usando a API em massa, esses registros são enviados para o Force.com para criar uma nova tarefa. Conforme os dados chegam à tarefa, são armazenados em local temporário e depois divididos em lotes definidos pelo usuário (10.000 registros no máximo). Mesmo que seus dados ainda estejam sendo enviados para o servidor, a plataforma Force.com envia os lotes para processamento.
Os lotes podem ser processados em paralelo ou em série, dependendo das suas necessidades. A API em massa move a funcionalidade e o trabalho do seu aplicativo cliente para o servidor. A API registra o status de cada tarefa e tenta reprocessar os registros com falha automaticamente. Se uma tarefa expirar, a API em massa a coloca automaticamente na fila e tenta novamente realizá-la para você.
Cada lote é processado de forma independente e, quando o lote termina (com êxito ou não), a tarefa é atualizada com os resultados. As tarefas podem ser monitoradas e administradas pela interface de usuário de Administrador do Salesforce.com por qualquer pessoa com acesso apropriado.
Aumentar a velocidade suspendendo eventos
Quando é necessário carregar um LDV rapidamente, é importante garantir que cada inserção seja o mais eficiente possível. Com preparação e pós-processamento corretos, é possível desativar as operações de validação e enriquecimento de dados durante o carregamento, sem comprometer a integridade dos dados ou as regras de negócios.
A plataforma Force.com inclui ferramentas poderosas para garantir que os dados inseridos por seus usuários estejam limpos e tenham relacionamentos apropriados entre os registros. As regras de validação garantem que os dados que os usuários inserem para registros novos e existentes atendem aos padrões especificados por seu negócio. As regras de fluxo de trabalho permitem que você automatize atualizações de campo, alertas de email, mensagens de saída e tarefas associadas ao fluxo de trabalho, aprovações e marcos. Os acionadores permitem manipular dados e executar outras ações na inserção do registro.
Embora essas ferramentas permitam preservar a integridade dos dados durante as operações normais, também podem retardar demais as inserções, se você ativá-las durante carregamentos massivos de dados. Mas se desativarmos a validação, o fluxo de trabalho e os acionadores, como podemos ter certeza de que, assim que o carregamento terminar, haverá dados precisos e relacionamentos certos estabelecidos entre objetos? Existem três fases principais para esse esforço: analisar e preparar dados, desativar eventos para carregamento e pós-processamento.
Como analisar e preparar os dados
Para carregar com segurança sem acionadores, regras de validação e regras de fluxo de trabalho em execução, examine os requisitos de negócio que normalmente poderiam atender essas operações e responda a algumas perguntas.
Primeiro, que requisitos podem ser atendidos pela limpeza de dados antes do carregamento de dados ou pelo sequenciamento das operações de carregamento quando houver dependências críticas entre objetos? Por exemplo, se normalmente for usada uma regra de validação para garantir que as entradas do usuário estejam dentro de intervalos válidos, é possível consultar o conjunto de dados antes do carregamento para localizar e corrigir registros que não atendam as regras.
Segundo, que requisitos podem ser atendidos pelos pós-processamento de registros depois do carregamento de dados? Um conjunto típico de casos de uso está relacionado ao enriquecimento de dados, o que poderia envolver a adição de relacionamentos de pesquisa entre objetos, campos de resumo de totalização para registros pai e outros relacionamentos de dados entre registros.
Como desativar eventos para carregamento
Depois de analisar todos os requisitos de validação e enriquecimento de dados e as ações planejadas para gerenciá-los antes ou depois do carregamento de dados, é possível desativar temporariamente regras e acionadores para acelerar o carregamento. Basta editar cada regra e defini-la com o status “inativo”. É possível desabilitar regras de atribuição de Validação, Lead e Caso e regras de atribuição de Território da mesma maneira.
Desativar acionadores temporariamente é um pouco mais complexo e requer alguma preparação. Primeiro, crie uma Configuração personalizada e um campo de caixa de seleção correspondente para controlar quando um acionador deve disparar. Em seguida, inclua uma instrução no código do acionador, como destacado neste exemplo.
Feito isso, desativar ou ativar o acionador é tão simples quanto editar o campo da caixa de seleção.
Pós-processamento
Ao terminar de carregar dados, é hora de concluir as tarefas de enriquecimento de dados e configuração que foram adiadas até este ponto:
- Adicione relacionamentos de pesquisa entre objetos, campos de resumo de totalização para registros pai e outros relacionamentos de dados entre registros usando Apex em lote ou API em massa.
- Aperfeiçoe os registros no Salesforce com chaves estrangeiras ou outros dados para facilitar a integração com seus outros sistemas usando Apex em lote ou API em massa.
- Redefina os campos nas configurações personalizadas criadas para os acionadores, para que sejam acionados apropriadamente na criação e nas atualizações de registros.
- Ative novamente as regras de validação, fluxo de trabalho e atribuição para que acionem ações apropriadas conforme os usuários inserem e editam registros.
E pronto. Usando um carregamento enxuto, a API em massa e a suspensão de eventos, você pode ter certeza de que seus carregamentos de dados são eficientes, tão rápidos quanto possível e que mantêm sua integridade. Agora que analisamos o carregamento de dados, passemos para a próxima unidade, onde abordamos a exclusão e extração.
Recursos
- Desenvolvedor do Salesforce: Bulk API Developer Guide
- Desenvolvedor do Salesforce: Extreme Force.com Data Loading, Part 2: Loading into a Lean Salesforce Configuration
- Desenvolvedor do Salesforce: Extreme Force.com Data Loading, Part 3: Suspending Events that Fire on Insert
- Desenvolvedor do Salesforce: Extreme Force.com Data Loading, Part 4: Sequencing Load Operations
- Desenvolvedor do Salesforce: Extreme Force.com Data Loading, Part 5: Loading and Extracting Data