Aller au contenu principal

Limitations du connecteur d'ingestion Salesforce

Découvrez les limites et considérations pour l'ingestion de données à partir de Salesforce à l'aide de Databricks Lakeflow Connect.

Limitations générales des connecteurs SaaS

Les limitations de cette section s'appliquent à tous les connecteurs SaaS de Lakeflow Connect.

  • Lorsque vous exécutez un pipeline planifié, les alertes ne se Trigger pas immédiatement. Au lieu de cela, ils Trigger lors de l’exécution de la prochaine mise à jour.
  • Lorsqu’une table source est supprimée, la table de destination n’est pas automatiquement supprimée. Vous devez supprimer la table de destination manuellement. Ce comportement n'est pas cohérent avec le comportement de Spark Declarative Pipelines sur Lakeflow.
  • Pendant les périodes de maintenance de la source, Databricks pourrait ne pas être en mesure d'accéder à vos données.
  • Si un nom de table source entre en conflit avec un nom de table de destination existant, la mise à jour du pipeline échoue.
  • La prise en charge des pipelines multi-destination est uniquement via l'API.
  • Vous pouvez éventuellement renommer une table que vous ingérez. Si vous renommez une table dans votre pipeline, il devient un pipeline API uniquement, et vous ne pouvez plus modifier le pipeline dans l'interface utilisateur.
  • Si vous sélectionnez une colonne après qu'un pipeline a déjà start, le connecteur ne renseigne pas automatiquement les données historiques pour la nouvelle colonne. Pour ingérer des données historiques, exécutez manuellement un refresh complet sur la table.
  • Databricks ne peut pas ingérer deux tables ou plus portant le même nom dans le même pipeline, même si elles proviennent de schémas sources différents.
  • Le système source suppose que les colonnes du curseur augmentent de façon monotone.
  • Le connecteur ingère des données brutes sans transformations. Utilisez les Spark Declarative Pipelines en aval sur les Lakeflow Pipelines pour les transformations.

Authentification

  • Le connecteur prend en charge OAuth avec des jetons refresh manuels. Cependant, si Salesforce fait pivoter ou révoque un jeton refresh, le connecteur ne le met pas à jour automatiquement. Vous devez obtenir un nouveau jeton refresh et mettre à jour la configuration du connecteur manuellement.

Types de données

  • Les données Salesforce de type NUMBER et CURRENCY perdent trois chiffres de précision lors de l'ingestion. Ces valeurs peuvent avoir 18 chiffres avant la virgule dans Salesforce, mais elles n'ont que 15 chiffres avant la virgule dans Databricks.

pipeline

  • Il y a un maximum de 250 objets par pipeline. Cependant, il n'y a aucune limite sur le nombre de lignes ou de colonnes prises en charge au sein de ces objets.

  • base64, les types address et location ne sont pas pris en charge. Ces colonnes sont automatiquement supprimées lors de l'ingestion. (complexValue est pris en charge et ingéré en tant que chaîne de caractères.)

  • By default, Databricks nécessite un instantané complet des champs de formule. C'est parce que Salesforce ne met pas à jour la colonne du curseur lorsque la sortie de la formule change, de sorte que les champs de formule peuvent changer silencieusement sans être détectés par le pipeline d'ingestion. Par conséquent, la latence du pipeline dépend de si vos données Salesforce incluent des champs de formule et du volume de mises à jour dans vos données Salesforce. Cependant, vous pouvez activer l'ingestion incrémentielle pour les champs de formule. Pour une liste des limitations d'ingestion incrémentielle des champs de formule, consultez Limitations.

  • Databricks exécute les champs de formule au même rythme que le reste du pipeline. Cependant, les champs non-formules pourraient être mis à jour plus tôt que les champs de formule.

  • Databricks traite les suppressions logiques de la même manière que les insertions et les mises à jour. Lorsqu'une ligne est supprimée de Salesforce, elle est supprimée de la table bronze lors de la prochaine synchronisation des données. Par exemple, supposons que vous ayez un pipeline en cours d'exécution toutes les heures. Si vous synchronisez à 12 h 00, puis que vous avez un enregistrement supprimé à 12 h 30, la suppression ne sera reflétée qu'à la synchronisation de 13 h 00.

    Il existe un cas limite : si le pipeline n'a pas été exécuté après la suppression des enregistrements mais avant qu'ils ne soient purgés de la corbeille de Salesforce, Databricks manque ces suppressions. La seule façon de s'en remettre est un full refresh.

  • Databricks ne prend pas en charge les suppressions définitives automatiquement. Vous devez entièrement refresh la table de destination pour refléter ces éléments.

Tables

Voici une liste non exhaustive d'objets Salesforce non pris en charge :

  • Objets avec WHERE clauses ou LIMIT restrictions :

    • Announcement
    • ApexTypeImplementor
    • AppTabMember
    • CollaborationGroupRecord
    • ColorDefinition
    • ContentDocumentLink * Dans la version 59.0 de l'API Salesforce et au-delà, vous pouvez contourner cette limitation si votre query sélectionne Id, LinkedEntityId ou ContentDocumentId et aucun autre champ. Pour ingérer cet objet, vous devez disposer de l'View All Data autorisation.
    • ContentFolderItem
    • ContentFolderMember
    • DataStatistics
    • DatacloudDandBCompany
    • EntityParticle
    • FieldDefinition
    • FieldHistoryArchive
    • FlexQueueItem
    • FlowVariableView
    • FlowVersionView
    • IconDefinition
    • IdeaComment
    • NetworkUserHistoryRecent
    • OwnerChangeOptionInfo
    • PicklistValueInfo
    • PlatformAction
    • RelationshipDomain
    • RelationshipInfo
    • SearchLayout
    • SiteDetail
    • TaskWhoRelation
    • UserEntityAccess
    • UserFieldAccess
    • Vote
  • Objets pour le monitoring d'événements en temps réel :

    • ApiEvent
    • BulkApiResultEventStore
    • EmbeddedServiceDetail
    • EmbeddedServiceLabel
    • FormulaFunction
    • FormulaFunctionAllowedType
    • FormulaFunctionCategory
    • IdentityProviderEventStore
    • IdentityVerificationEvent
    • LightningUriEvent
    • ListViewEvent
    • LoginAsEvent
    • LoginEvent
    • LogoutEvent
    • Publisher
    • RecordActionHistory
    • ReportEvent
    • TabDefinition
    • UriEvent
  • Objets se terminant par __b (grands objets), __x (objets externes), ou __hd (objets de données historiques).

  • Également non pris en charge (indépendant du suffixe) :

    • ActivityMetric
    • ActivityMetricRollup