Référence du connecteur basé sur les query
Cette page contient la documentation de référence pour les connecteurs basés sur la query dans Lakeflow Connect, y compris les paramètres de configuration, les exigences de colonne de curseur, la syntaxe de suivi des suppressions et les conditions d'erreur.
Configuration du pipeline
Les parameters suivants sont pris en charge pour les connecteurs basés sur la query. Définissez ces valeurs dans le bloc ingestion_definition de votre configuration de pipeline.
parameter | Type | Obligatoire | Description |
|---|---|---|---|
| chaîne | Requis pour l'ingestion de connexions étrangères. | Le nom de la connexion qui stocke les identifiants d’authentification pour la base de données source. Si |
| booléen | Requis pour l'ingestion de catalogues externes | Défini sur |
| chaîne | Oui | Le catalogue dans le système source (ou le nom du catalogue étranger si |
| chaîne | Oui | Le schéma dans le système source à ingérer. |
| chaîne | Obligatoire pour les objets de niveau table | La table dans le schéma source à ingérer. |
| chaîne | Requis pour l'ingestion de connexions étrangères. | Nom de la colonne de curseur à utiliser pour le suivi incrémentiel. Doit être une seule colonne à croissance monotone. Consultez les exigences de la colonne de curseur. |
| liste de chaînes | Requis pour l'ingestion de catalogues externes | Une liste contenant le nom de la colonne de curseur. Une seule colonne est prise en charge. |
| liste de chaînes | Obligatoire, sauf si le mode de suivi de l'historique (SCD) est | Les colonnes de clé primaire utilisées pour identifier les lignes pour les opérations de Merge. Requis pour les modes |
| chaîne | Non | Une expression SQL qui prend la valeur |
| entier | Non | L'intervalle minimum en secondes entre les analyses d'instantanés de clé primaire pour détecter les suppressions définitives. Si non défini, le suivi des suppressions définitives est désactivé. Ce paramètre n'est pas pris en charge lorsque |
| chaîne | Non | Le mode de suivi de l'historique (SCD) pour la table de destination. Valeurs prises en charge : |
| chaîne | Oui | Le catalogue dans lequel écrire la table de destination. |
| chaîne | Oui | Le schéma dans lequel écrire la table de destination. |
| chaîne | Non | Le nom de la table de destination. Default to the source table name if not specified. Consultez Nommer une table de destination. |
Exigences de colonne de curseur
La colonne curseur suit la progression incrémentielle entre les exécutions de pipeline. Le connecteur stocke la valeur maximale du curseur après chaque exécution réussie et l'utilise comme filtre de limite inférieure lors de l'exécution suivante.
Exigences :
- Vous devez spécifier une seule colonne de curseur. Vous ne pouvez pas spécifier plusieurs colonnes comme curseur composite. Si vous en spécifiez plusieurs, le pipeline échoue avec
INVALID_CURSOR_COLUMNS. - La colonne de curseur doit augmenter de façon monotone. Les valeurs ne doivent jamais diminuer. Les lignes dont les valeurs de curseur sont égales ou inférieures à la marque haute stockée ne sont pas réingérées lors des exécutions ultérieures.
- Les lignes avec une colonne de curseur NULL ne sont pas ingérées.
Types de colonnes pris en charge :
- Types Timestamp ou date (recommandé)
- Types numériques (entier, entier long, décimal et double)
- Types binaires (encodés en tant que nombres binaires)
- Types de chaînes
Condition de suppression
Le paramètre deletion_condition permet aux connecteurs basés sur des requêtes de détecter les suppressions logicielles. Cette fonctionnalité est uniquement configurable à l'aide de l'API.
La valeur est une expression SQL qui s’évalue à true pour les lignes qui doivent être traitées comme supprimées dans la table de destination. Le connecteur évalue cette expression lors de chaque exécution de pipeline.
Syntaxe :
"deletion_condition": "<sql-expression>"
Exemples :
"deletion_condition": "deleted_at IS NOT NULL"
"deletion_condition": "is_deleted = 1"
"deletion_condition": "status = 'DELETED'"
Lorsqu'une ligne correspond au deletion_condition, le connecteur supprime la ligne correspondante de la table de destination (pour SCD_TYPE_1) ou la marque comme supprimée (pour SCD_TYPE_2).
Suivi des suppressions définitives
Le paramètre hard_deletion_sync_min_interval_in_seconds permet aux connecteurs basés sur une requête de détecter les suppressions définitives — les lignes qui ont été physiquement supprimées de la table source. Cette fonctionnalité est en Bêta et n'est configurable qu'à l'aide de l'API.
Le suivi des suppressions définitives fonctionne en prenant périodiquement un instantané des clés primaires présentes dans la table source et en les comparant à la table de destination. Les lignes présentes dans la destination mais absentes de l'instantané source sont considérées comme supprimées.
La valeur définit l'intervalle minimal en secondes entre les analyses d'instantanés. Cette valeur agit comme une limite inférieure : si le pipeline s'exécute moins fréquemment que cet intervalle, la synchronisation des suppressions définitives s'aligne sur la fréquence d'ingestion réelle plutôt que de s'exécuter plus souvent. La mise à jour de ce paramètre ne trigger pas un instantané complet.
Le suivi des suppressions définitives nécessite que primary_keys soit configuré sur la table, et n'est pris en charge que pour les colonnes de curseur Timestamp. Ce n'est pas pris en charge lorsque scd_type est SCD_TYPE_2.
Syntaxe :
"hard_deletion_sync_min_interval_in_seconds": <integer>
Exemple :
"hard_deletion_sync_min_interval_in_seconds": 86400
Cet exemple Trigger une analyse de suppression définitive au plus une fois toutes les 24 heures (86400 secondes).
Conditions d'erreur
L'erreur la plus courante est INVALID_CURSOR_COLUMNS. Cela se produit lorsque la colonne de curseur n'est pas configurée correctement. Consultez Colonnes de curseur invalides pour les étapes de dépannage.