Pular para o conteúdo principal

Limitações do conector de ingestão do Salesforce

Este artigo lista as limitações e considerações sobre a conexão e a ingestão de dados do Salesforce usando LakeFlow Connect.

  • Quando uma tabela de origem é excluída, a tabela de destino não é excluída automaticamente. Você deve excluir a tabela de destino manualmente. Esse comportamento não é consistente com o comportamento do DLT.
  • Durante os períodos de manutenção da fonte, a Databricks pode não conseguir acessar seus dados.
  • Se um nome de tabela de origem entrar em conflito com um nome de tabela de destino existente, a atualização do pipeline falhará.

Limitações gerais

  • Há um máximo de 250 objetos por pipeline. No entanto, não há limite conhecido para o número de linhas ou colunas suportadas nesses objetos.

  • base64, os tipos address, location ou complexValue não são suportados. Essas colunas são eliminadas automaticamente durante a ingestão.

  • Os seguintes objetos não são suportados:

    • Objetos com cláusulas WHERE ou restrições LIMIT:

      • Announcement
      • AppTabMember
      • CollaborationGroupRecord
      • ColorDefinition
      • ContentDocumentLink
      • ContentFolderItem
      • ContentFolderMember
      • DataStatistics
      • DatacloudDandBCompany
      • EntityParticle
      • FieldDefinition
      • FieldHistoryArchive
      • FlexQueueItem
      • FlowVariableView
      • FlowVersionView
      • IconDefinition
      • IdeaComment
      • NetworkUserHistoryRecent
      • OwnerChangeOptionInfo
      • PicklistValueInfo
      • PlatformAction
      • RelationshipDomain
      • RelationshipInfo
      • SearchLayout
      • SiteDetail
      • UserEntityAccess
      • UserFieldAccess
      • Vote
    • Objetos para monitoramento de eventos em tempo real:

      • ApiEvent
      • BulkApiResultEventStore
      • EmbeddedServiceDetail
      • EmbeddedServiceLabel
      • FormulaFunction
      • FormulaFunctionAllowedType
      • FormulaFunctionCategory
      • IdentityProviderEventStore
      • IdentityVerificationEvent
      • LightningUriEvent
      • ListViewEvent
      • LoginAsEvent
      • LoginEvent
      • LogoutEvent
      • Publisher
      • RecordActionHistory
      • ReportEvent
      • TabDefinition
      • UriEvent
    • Objetos que terminam com __b, __x ou __hd

    • ActivityMetric

    • ActivityMetricRollup

    • Site

  • Só há suporte para um destino por pipeline. Todas as tabelas devem ter o mesmo catálogo e esquema.

  • Databricks selecione uma coluna de cursor para rastrear a leitura incremental de dados e alterações de sequência que compartilham o mesmo key primário. A Databricks seleciona a coluna do cursor na lista a seguir, em ordem de preferência: SystemModstamp, LastModifiedDate, CreatedDate, e LoginTime.

    Por exemplo, se SystemModstamp não estiver disponível, a Databricks procurará LastModifiedDate. Se um objeto não tiver um desses cursores, o site Databricks tira um Snapshot da tabela.

  • A Databricks transforma automaticamente os tipos de dados do Salesforce em tipos de dados compatíveis com o Delta. Para obter a lista aproximada de transformações, consulte Transformações automáticas de dados.

  • O Databricks pode ingerir campos de fórmula. No entanto, no momento, o site Databricks exige um Snapshot completo desses campos. Isso significa que a latência do pipeline depende do fato de seus dados do Salesforce incluírem campos de fórmula e do volume de atualizações em seus dados do Salesforce.

  • Databricks campos de fórmula de execução na mesma cadência que o restante do pipeline. No entanto, dentro da cadência de atualizações do pipeline, os campos sem fórmula podem ser atualizados antes dos campos com fórmula.

  • Databricks tratar as exclusões da mesma forma que as inserções e atualizações. Quando uma linha é excluída do Salesforce, ela é excluída da tabela bronze na próxima sincronização dos dados. Por exemplo, suponha que o senhor tenha um pipeline sendo executado de hora em hora. Se você sincronizar às 12h e tiver um registro excluído às 12h30, a exclusão não será refletida até que a sincronização às 13h ocorra.

    Há um caso extremo: Se o pipeline não tiver sido executado depois que os registros foram excluídos, mas antes de serem removidos da lixeira do Salesforce, o Databricks perderá essas exclusões. A única maneira de se recuperar disso é com um refresh completo.

  • O Salesforce tem um limite de 4 conexões por usuário por aplicativo conectado. Se você precisar criar mais de 4 conexões, crie um novo usuário.

  • Por motivos de segurança, só autentique se o senhor tiver clicado em um link OAuth na interface do usuário do Databricks.

  • O Salesforce permite que o senhor gire um refresh tokens. O conector não suporta isso.

  • A seleção e a desseleção em nível de coluna não são suportadas.

  • O SCD tipo 2 não é compatível.

  • Não há suporte para atualizações de campos de fórmulas incrementais.

Limitações de exclusão

  • Se a tabela estiver habilitada para exclusão temporária:

    • A exclusão é refletida na próxima sincronização.
  • Se a tabela não oferecer suporte à exclusão flexível:

    • O conector agrupa automaticamente o Snapshot para ingestão
    • Exceção: Isso não funciona para objetos de história. O conector presume que elas sejam lidas de forma incremental e que nenhuma exclusão ocorra.
  • Se a tabela oferecer suporte à exclusão reversível e o usuário excluir itens manualmente, o conector não poderá capturar a exclusão. O registro permanece na tabela bronze, a menos que o senhor execute um full-refresh.

Perda de precisão para campos numéricos e monetários

Atualmente, os dados do Salesforce do tipo NUMBER e CURRENCY perdem três dígitos de precisão quando ingeridos. Esses valores podem ter 18 dígitos antes do ponto decimal no Salesforce, mas têm apenas 15 dígitos antes do ponto decimal no Databricks.