Aller au contenu principal

Sélectionner les lignes à ingérer

S'applique à : Icône de coche verte connecteurs SaaS Icône X rouge connecteurs de base de données Icône de coche verte connecteurs basés sur la query

Le filtrage de lignes vous permet d'ingérer uniquement les données dont vous avez besoin en appliquant des conditions similaires à une clause WHERE SQL. Cela améliore les performances (en particulier pour les charges initiales avec des données historiques) et minimise la duplication des données (en particulier dans les environnements de développement).

Connecteurs pris en charge

Fonctionnement du filtrage des lignes

Le filtrage des lignes agit comme un filtre WHERE en SQL. Vous pouvez comparer les valeurs de la source avec des entiers, des booléens, des chaînes de caractères et d'autres types de données. Vous pouvez également utiliser des combinaisons complexes de clauses pour extraire uniquement les données dont vous avez besoin.

Le filtrage des lignes s'applique lors du chargement initial et des mises à jour incrémentielles ultérieures.

Limitations

Le filtrage des lignes présente les limitations suivantes :

  • Salesforce : Le filtrage des lignes n'est pris en charge que sur deux colonnes : la clé primaire (ID, si disponible) et la colonne de curseur. Le connecteur sélectionne la colonne de curseur dans la liste suivante, par ordre de préférence : SystemModstamp, LastModifiedDate, CreatedDate et LoginTime.

  • ServiceNow :

    • Seul l'opérateur AND est pris en charge. L'opérateur OR n'est pas actuellement disponible. Par exemple, u_age = 40 AND u_active = TRUE fonctionne, mais u_age = 40 OR u_active = TRUE ne fonctionne pas.
    • Les Timestamp des filtres doivent être au format suivant : YYYY-MM-DD HH: mm:SS (par exemple, 2004-03-02 17:14:59).
    • Pour filtrer sur un champ de référence, comparez son sous-champ value au sys_id de l'enregistrement référencé (par exemple, assigned_to.value = '5137153cc611227c000bbd1bd8cd2005'). Le connecteur applique des filtres de champs de référence après avoir récupéré les lignes de ServiceNow, afin que la quantité de données lue par le connecteur depuis la source ne soit pas limitée.
  • Mises à jour des lignes ou des query : Le connecteur ne supprime pas une ligne lorsqu'elle correspond au filtre lors du chargement initial, mais la ligne ou la query est mise à jour de sorte qu'elle ne corresponde plus à un chargement ultérieur. Le connecteur n'ingère pas non plus une ligne qui ne correspondait pas à la query lors d'une mise à jour précédente du pipeline, mais qui correspond maintenant lors d'une mise à jour ultérieure.

Configurer le filtrage de lignes

Pour configurer un pipeline avec un filtrage de lignes, ajoutez la configuration row_filter à la spécification de votre pipeline. Par exemple :

Python
pipeline_spec = """
{
"name": "...",
"ingestion_definition": {
"connection_name": "...",
"objects": [
{
"table": {
"source_schema": "...",
"source_table": "...",
"destination_catalog": "...",
"destination_schema": "...",
"destination_table": "...",
"table_configuration": {
"row_filter": "..."
}
}
}
]
},
"channel": "PREVIEW"
}
"""
create_pipeline(pipeline_spec)

Exemples

Ingérer des données après un certain timestamp système :

JSON
"row_filter": "SystemModstamp > '2025-06-10T23:40:11.000-07:00'"

Ingérer une ligne spécifique :

JSON
"row_filter": "Id = 'a00Qy00000vps2NIAQ'"

Opérateurs pris en charge

Le tableau suivant présente les opérateurs pris en charge pour le filtrage des lignes :

Opérateur

Pris en charge

AND

Oui

OR

Salesforce et Google Analytics uniquement

=

Oui

!=

Oui

LIKE

Non

IN

Non

< <=

Oui

> >=

Oui

Opérateur

Pris en charge

AND

Oui

OR

Salesforce et Google Analytics uniquement

=

Oui

!=

Oui

LIKE

Non

IN

Non

< <=

Oui

> >=

Oui

Comportement du filtrage de ligne dans les cas extrêmes

Le tableau suivant décrit le comportement de filtrage des lignes dans les scénarios de cas limites.

Scénario

Comportement

refresh requis

Une ligne ne correspond pas au filtre lors du chargement initial, puis est mise à jour pour y correspondre lors d'un chargement ultérieur.

La ligne est ingérée lors de la prochaine mise à jour du pipeline.

Non

Une ligne correspond au filtre lors du chargement initial, puis elle est mise à jour de manière à ne plus y correspondre.

La ligne n'est pas supprimée lors de la prochaine mise à jour du pipeline.

Non

La query est mise à jour, et une ligne précédemment non ingérée correspond maintenant.

La ligne n'est pas ingérée lors de la prochaine mise à jour du pipeline.

Oui (refresh complète requise)

La query est mise à jour et une ligne précédemment ingérée ne correspond plus.

La ligne n'est pas supprimée lors de la prochaine mise à jour du pipeline.

Non

Scénario

Comportement

refresh requis

Une ligne ne correspond pas au filtre lors du chargement initial, puis est mise à jour pour y correspondre lors d'un chargement ultérieur.

La ligne est ingérée lors de la prochaine mise à jour du pipeline.

Non

Une ligne correspond au filtre lors du chargement initial, puis elle est mise à jour de manière à ne plus y correspondre.

La ligne n'est pas supprimée lors de la prochaine mise à jour du pipeline.

Non

La query est mise à jour, et une ligne précédemment non ingérée correspond maintenant.

La ligne n'est pas ingérée lors de la prochaine mise à jour du pipeline.

Oui (refresh complète requise)

La query est mise à jour et une ligne précédemment ingérée ne correspond plus.

La ligne n'est pas supprimée lors de la prochaine mise à jour du pipeline.

Non

Ressources supplémentaires