Aller au contenu principal

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

connection_name

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 ingest_from_uc_foreign_catalog est true, ne spécifiez pas connection_name.

ingest_from_uc_foreign_catalog

booléen

Requis pour l'ingestion de catalogues externes

Défini sur true pour ingérer à partir d'un catalogue externe pris en charge par Lakehouse Federation. Si true, ne spécifiez pas connection_name.

source_catalog

chaîne

Oui

Le catalogue dans le système source (ou le nom du catalogue étranger si ingest_from_uc_foreign_catalog est true).

source_schema

chaîne

Oui

Le schéma dans le système source à ingérer.

source_table

chaîne

Obligatoire pour les objets de niveau table

La table dans le schéma source à ingérer.

cursor_column

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.

cursor_columns

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.

primary_keys

liste de chaînes

Obligatoire, sauf si le mode de suivi de l'historique (SCD) est APPEND_ONLY (ingestion de catalogue étranger).

Les colonnes de clé primaire utilisées pour identifier les lignes pour les opérations de Merge. Requis pour les modes SCD_TYPE_1 et SCD_TYPE_2.

deletion_condition

chaîne

Non

Une expression SQL qui prend la valeur true pour les lignes qui représentent des suppressions logiques. Configurable uniquement via l'API. Consultez la condition de suppression.

hard_deletion_sync_min_interval_in_seconds

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 scd_type est SCD_TYPE_2. Il n'est configurable qu'à l'aide de l'API (Bêta). Consultez Suivi de la suppression définitive.

scd_type

chaîne

Non

Le mode de suivi de l'historique (SCD) pour la table de destination. Valeurs prises en charge : SCD_TYPE_1 (default), SCD_TYPE_2, APPEND_ONLY.

destination_catalog

chaîne

Oui

Le catalogue dans lequel écrire la table de destination.

destination_schema

chaîne

Oui

Le schéma dans lequel écrire la table de destination.

destination_table

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.

parameter

Type

Obligatoire

Description

connection_name

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 ingest_from_uc_foreign_catalog est true, ne spécifiez pas connection_name.

ingest_from_uc_foreign_catalog

booléen

Requis pour l'ingestion de catalogues externes

Défini sur true pour ingérer à partir d'un catalogue externe pris en charge par Lakehouse Federation. Si true, ne spécifiez pas connection_name.

source_catalog

chaîne

Oui

Le catalogue dans le système source (ou le nom du catalogue étranger si ingest_from_uc_foreign_catalog est true).

source_schema

chaîne

Oui

Le schéma dans le système source à ingérer.

source_table

chaîne

Obligatoire pour les objets de niveau table

La table dans le schéma source à ingérer.

cursor_column

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.

cursor_columns

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.

primary_keys

liste de chaînes

Obligatoire, sauf si le mode de suivi de l'historique (SCD) est APPEND_ONLY (ingestion de catalogue étranger).

Les colonnes de clé primaire utilisées pour identifier les lignes pour les opérations de Merge. Requis pour les modes SCD_TYPE_1 et SCD_TYPE_2.

deletion_condition

chaîne

Non

Une expression SQL qui prend la valeur true pour les lignes qui représentent des suppressions logiques. Configurable uniquement via l'API. Consultez la condition de suppression.

hard_deletion_sync_min_interval_in_seconds

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 scd_type est SCD_TYPE_2. Il n'est configurable qu'à l'aide de l'API (Bêta). Consultez Suivi de la suppression définitive.

scd_type

chaîne

Non

Le mode de suivi de l'historique (SCD) pour la table de destination. Valeurs prises en charge : SCD_TYPE_1 (default), SCD_TYPE_2, APPEND_ONLY.

destination_catalog

chaîne

Oui

Le catalogue dans lequel écrire la table de destination.

destination_schema

chaîne

Oui

Le schéma dans lequel écrire la table de destination.

destination_table

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 :

JSON
"deletion_condition": "deleted_at IS NOT NULL"
JSON
"deletion_condition": "is_deleted = 1"
JSON
"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.

remarque

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 :

JSON
"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.