limitazioni del connettore GitHub

Importante

Questa funzionalità è in versione beta. Gli amministratori dell'area di lavoro possono controllare l'accesso a questa funzionalità dalla pagina Anteprime . Vedere Gestire le anteprime di Azure Databricks.

Questa pagina contiene informazioni sulle limitazioni note del connettore GitHub gestito in Lakeflow Connect.

Limitazioni generali

  • Durante l'esecuzione di una pipeline pianificata, gli avvisi non vengono attivati immediatamente. Attivano invece quando viene eseguito l'aggiornamento successivo.
  • Quando viene eliminata una tabella di origine, la tabella di destinazione non viene eliminata automaticamente. È necessario eliminare manualmente la tabella di destinazione. Questo comportamento non è coerente con il comportamento delle pipeline dichiarative Spark in Lakeflow.
  • Durante i periodi di manutenzione di origine, Databricks potrebbe non essere in grado di accedere ai dati.
  • Se un nome di tabella di origine è in conflitto con un nome di tabella di destinazione esistente, l'aggiornamento della pipeline non riesce.
  • Il supporto per pipeline a più destinazioni è solo tramite API.
  • Puoi opzionalmente rinominare una tabella che ingerisci. Se rinomini una tabella nel tuo pipeline, diventa un pipeline esclusivamente API e non puoi più modificare il pipeline nell'interfaccia utente.
  • Se selezioni una colonna dopo che una pipeline è già iniziata, il connettore non ricarica automaticamente i dati per la nuova colonna. Per inserire dati cronologici, eseguire manualmente un aggiornamento completo nella tabella.
  • Databricks non può inserire due o più tabelle con lo stesso nome nella stessa pipeline, anche se provengono da schemi di origine diversi.
  • Il sistema di origine presuppone che le colonne del cursore aumentino in modo monotonico.
  • Il connettore inserisce dati non elaborati senza trasformazioni. Utilizza le pipeline dichiarative Spark a valle nelle pipeline Lakeflow per eseguire trasformazioni.

Eliminazioni non supportate

Il connettore GitHub non supporta il recupero delle eliminazioni, ad eccezione di repo_contents. Si tratta di una limitazione api GitHub.

La repo_contents tabella acquisisce le eliminazioni di file. Quando un file viene rimosso dal repository di origine, il connettore rimuove la riga corrispondente dalla tabella (eliminazione rigida). Vedere Contenuto del repository.

Supporto incrementale limitato

La maggior parte delle tabelle non supporta gli aggiornamenti incrementali perché l'API GitHub non offre un modo per filtrare i record in base a un cursore. Queste tabelle vengono aggiornate completamente in ogni aggiornamento della pipeline. Per un elenco delle tabelle e dei relativi modelli di aggiornamento, vedere Dati supportati.

Linee guida sulle prestazioni per organizzazioni di grandi dimensioni

Tabelle come commits, pull_requestse issues possono contenere milioni di record in organizzazioni di grandi dimensioni. Poiché queste tabelle vengono aggiornate integralmente a ogni esecuzione della pipeline, i costi di ingestione crescono in funzione delle dimensioni dell'organizzazione e della frequenza della pipeline.

Per ridurre il volume per esecuzione:

  • Utilizzare la selezione di colonne per limitare le colonne inserite per queste tabelle.
  • Usare una frequenza di pipeline più bassa per le pipeline che includono tabelle ad alto volume.

Contenuto del repository

La repo_contents tabella inserisce tutte le voci nell'albero di ogni repository, inclusi file, directory, sottomoduli e collegamenti simbolici. Solo le voci file (blob) popolano la colonna content. Le directory (tree) e i sottomoduli (commit) vengono acquisiti come righe di soli metadati con la colonna content impostata su null. Si applicano le limitazioni seguenti:

  • Solo ramo predefinito: il connettore inserisce il ramo predefinito di ogni repository, registrato nella branch_name colonna. La selezione o l'acquisizione di più branch per ogni repository non è supportata.
  • Limite di dimensioni del file: i file superiori a 100 MB non vengono recuperati. Il connettore inserisce ancora la riga di metadati del file (path, sha, size_bytes), ma la content colonna è null.
  • File binari: per i file binari, la content colonna è null e is_binary è true. In content viene inserito solo il contenuto dei file di testo.

Per altre informazioni, vedere Contenuto del repository (repo_contentstabella).

Dati supportati

Tabelle con aggiornamenti incrementali

Le tabelle seguenti supportano gli aggiornamenti incrementali:

  • repositories
  • audit_logs: Solo per gli account dell'organizzazione. Nel github.com piano gratuito, la cronologia dei log di controllo è limitata a 90 giorni.
  • repo_contents: acquisisce gli elementi della struttura del repository e il contenuto dei file. Sono supportati gli aggiornamenti incrementali e le eliminazioni. Vedere Contenuto del repository.

Tabelle con soli aggiornamenti in batch

Le tabelle seguenti vengono aggiornate completamente in ogni aggiornamento della pipeline (non incrementale):

  • branches
  • collaborators
  • commits
  • deployments
  • deployment_statuses
  • discussions
  • issues
  • labels
  • milestones
  • org_members
  • pull_request_commits
  • pull_request_review_comments
  • pull_request_reviews
  • pull_requests
  • releases
  • tags
  • team_members
  • teams
  • workflows