Informazioni di riferimento sul connettore basato su query

Questa pagina contiene la documentazione di riferimento per i connettori basati su query in Lakeflow Connect, inclusi i parametri di configurazione, i requisiti delle colonne di cursore, la sintassi di rilevamento dell'eliminazione e le condizioni di errore.

Configurazione della pipeline

I parametri seguenti sono supportati per i connettori basati su query. Impostare questi valori nel ingestion_definition blocco della configurazione della pipeline.

Parametro Tipo Obbligatorio Descrizione
connection_name corda Obbligatorio per l'inserimento di connessioni esterne Nome della connessione in cui sono archiviate le credenziali di autenticazione per il database di origine. Se ingest_from_uc_foreign_catalog è true, non specificare connection_name.
ingest_from_uc_foreign_catalog boolean Obbligatorio per l'inserimento di cataloghi stranieri Impostare su per true inserire da un catalogo esterno supportato da Lakehouse Federation. Se true, non specificare connection_name.
source_catalog corda Catalogo nel sistema di origine (o il nome del catalogo esterno se ingest_from_uc_foreign_catalog è true).
source_schema corda Schema nel sistema di origine da cui inserire.
source_table corda Obbligatorio per gli oggetti a livello di tabella Tabella nello schema di origine da inserire.
cursor_column corda Obbligatorio per l'inserimento di connessioni esterne Nome della colonna del cursore da utilizzare per il rilevamento incrementale. Deve essere una singola colonna che aumenta in modo monotonico. Vedere Requisiti della colonna cursore.
cursor_columns Elenco di stringhe Obbligatorio per l'inserimento di cataloghi stranieri Elenco contenente il nome della colonna del cursore. È supportata una sola colonna.
primary_keys Elenco di stringhe Obbligatorio a meno che la modalità di rilevamento della cronologia (SCD) non sia APPEND_ONLY (inserimento del catalogo esterno) Colonne chiave primaria utilizzate per identificare le righe per le operazioni di unione. Obbligatorio per SCD_TYPE_1 le modalità e SCD_TYPE_2 .
deletion_condition corda No Espressione SQL che restituisce true per le righe che rappresentano eliminazioni soft. Configurabile solo tramite l'API. Vedere Condizione di eliminazione.
hard_deletion_sync_min_interval_in_seconds numero intero No Intervallo minimo in secondi tra le analisi dello snapshot della chiave primaria per rilevare le eliminazioni hard. Se non è impostato, il rilevamento dell'eliminazione automatica è disabilitato. Questo parametro non è supportato quando scd_type è SCD_TYPE_2. È configurabile solo tramite l'API (Beta). Vedere Rilevamento dell'eliminazione automatica.
scd_type corda No Modalità di rilevamento della cronologia (SCD) per la tabella di destinazione. Valori supportati: SCD_TYPE_1 (impostazione predefinita), SCD_TYPE_2, APPEND_ONLY.
destination_catalog corda Catalogo in cui scrivere la tabella di destinazione.
destination_schema corda Schema in cui scrivere la tabella di destinazione.
destination_table corda No Nome della tabella di destinazione. L'impostazione predefinita è il nome della tabella di origine, se non specificato. Vedere Assegnare un nome a una tabella di destinazione.

Requisiti per la colonna del cursore

La colonna cursore tiene traccia dello stato di avanzamento incrementale tra le esecuzioni della pipeline. Il connettore archivia il valore massimo del cursore dopo ogni esecuzione riuscita e lo usa come filtro con limite inferiore all'esecuzione successiva.

Requisiti:

  • È necessario specificare una singola colonna di cursore. Non è possibile specificare più colonne come cursore composito. Se si specificano più di uno, la pipeline ha esito negativo con INVALID_CURSOR_COLUMNS.
  • La colonna del cursore deve aumentare in modo monotonico. I valori non devono mai diminuire. Le righe con valori di cursore al di sotto o al di sotto del contrassegno di acqua elevato archiviato non vengono reinserite nelle esecuzioni successive.
  • Le righe con una colonna di cursore NULL non vengono inserite.

Tipi di colonna supportati:

  • Timestamp o tipi di data (scelta consigliata)
  • Tipi numerici (integer, long integer, decimale e double)
  • Tipi binari (codificati come numeri binari)
  • Tipi stringa

Condizione di eliminazione

Il deletion_condition parametro consente ai connettori basati su query di rilevare eliminazioni soft. Questa funzionalità è configurabile solo tramite l'API.

Il valore è un'espressione SQL che restituisce true per le righe che devono essere considerate eliminate nella tabella di destinazione. Il connettore valuta questa espressione durante ogni esecuzione della pipeline.

Sintassi:

"deletion_condition": "<sql-expression>"

Esempi:

"deletion_condition": "deleted_at IS NOT NULL"
"deletion_condition": "is_deleted = 1"
"deletion_condition": "status = 'DELETED'"

Quando una riga corrisponde a deletion_condition, il connettore rimuove la riga corrispondente dalla tabella di destinazione (per SCD_TYPE_1) o la contrassegna come eliminata (per SCD_TYPE_2).

Rilevamento dell'eliminazione a livello di disco rigido

Il hard_deletion_sync_min_interval_in_seconds parametro consente ai connettori basati su query di rilevare eliminazioni hard, ovvero righe che sono state rimosse fisicamente dalla tabella di origine. Questa funzionalità è in versione beta ed è configurabile solo tramite l'API.

Il rilevamento dell'eliminazione temporanea funziona periodicamente eseguendo uno snapshot delle chiavi primarie presenti nella tabella di origine e confrontandole con la tabella di destinazione. Le righe presenti nella destinazione ma assenti dallo snapshot di origine vengono considerate come eliminate.

Il valore imposta l'intervallo minimo in secondi tra le analisi snapshot. Questo valore funge da limite inferiore: se la pipeline viene eseguita meno frequentemente rispetto a questo intervallo, la sincronizzazione dell'eliminazione rigida è allineata alla frequenza di inserimento effettiva anziché più spesso in esecuzione. L'aggiornamento di questo parametro non attiva uno snapshot completo.

Annotazioni

Il rilevamento dell'eliminazione temporanea deve primary_keys essere configurato nella tabella. Non è supportato quando scd_type è SCD_TYPE_2.

Sintassi:

"hard_deletion_sync_min_interval_in_seconds": <integer>

Esempio:

"hard_deletion_sync_min_interval_in_seconds": 86400

Questo esempio attiva un'analisi di eliminazione automatica non più di una volta ogni 24 ore (86400 secondi).

Condizioni di errore

L'errore più comune è INVALID_CURSOR_COLUMNS. Ciò si verifica quando la colonna del cursore non è configurata correttamente. Per la procedura di risoluzione dei problemi, vedere Colonne di cursore non valide .