Condividi tramite


Risolvere i problemi comuni di condivisione in Delta Sharing

Le sezioni seguenti descrivono gli errori comuni che possono verificarsi quando si tenta di accedere ai dati in una condivisione.

Errori di superamento del limite di risorse

Problema: La tua query su una tabella condivisa restituisce l'errore RESOURCE_LIMIT_EXCEEDED.

  • "RESOURCE_LIMIT_EXCEEDED","message":"The table metadata size exceeded limits"
  • "RESOURCE_LIMIT_EXCEEDED","message":"The number of files in the table to return exceeded limits, consider contact your provider to optimize the table"

Possibili cause: esistono limiti al numero di file nei metadati consentiti per una tabella condivisa:

  • File attivi: una tabella condivisa supporta un massimo di 400.000 file attivi (azioni AddFile). Se il numero di file attivi supera questo limite, le query restituiscono l'errore "numero di file superati".
  • Rimuovi azioni file: una tabella condivisa supporta un massimo di 100.000 azioni RemoveFile nel log Delta. Se il numero di azioni RemoveFile supera questo limite, le query restituiscono l'errore "Dimensioni dei metadati superate".

È possibile richiedere un aumento del limite per i file attivi. Vedere Limiti delle risorse.

Correzione consigliata: contattare il provider di dati e chiedere loro di ottimizzare la tabella condivisa eseguendo OPTIMIZE e compattando i file di piccole dimensioni e VACUUM rimuovendo le voci RemoveFile non aggiornate dal log Delta. Per altre indicazioni, vedere errore RESOURCE_LIMIT_EXCEEDED durante l'esecuzione di query su una tabella di Delta Sharing nella Knowledge Base di Databricks.

Problema del file di dati vuoto

Problema: viene visualizzato un messaggio di errore che genera un'eccezione "404 L'eccezione [path|key] specificata non esiste".

Esempi di errori Spark:

java.lang.Throwable: HTTP request failed with status: HTTP/1.1 404 The specified path does not exist.

o

HTTP request failed with status: HTTP/1.1 404 Not Found <?xml version="1.0" encoding="UTF-8"?>
<Error><Code>NoSuchKey</Code><Message>The specified key does not exist.</Message>

Possibile causa: in genere viene visualizzato questo errore perché il file di dati corrispondente all'URL prefirmato è vuoto nella tabella condivisa e il file di dati appartiene a una versione della tabella cronologica.

Soluzione alternativa: eseguire una query sullo snapshot più recente.

Errore di mancata corrispondenza dello schema con Spark open source

Problema: quando si usa Open Source Spark (OSS), viene visualizzato un errore di mancata corrispondenza dello schema durante la lettura delle tabelle di condivisione differenziale.

Esempio di errore:

py4j.protocol.Py4JJavaError: An error occurred while calling o85.count.: org.apache.spark.SparkException: The schema or partition columns of your Delta table has changed since your DataFrame was created. Please redefine your DataFrame

Possibile causa: le colonne dello schema o della partizione della tabella Delta sono state modificate dopo la creazione del dataframe.

Correzione consigliata: impostare il flag spark.delta.sharing.client.useStructuralSchemaMatch di configurazione spark su true:

spark.conf.set("spark.delta.sharing.client.useStructuralSchemaMatch", "true")

Problema di configurazione della rete di archiviazione

Problema: viene visualizzato un messaggio di errore che genera un'eccezione SSLCertVerificationError.

Esempio di errore Spark:

ssl.SSLCertVerificationError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1006)

Possibile causa: in genere viene visualizzato questo errore perché esiste una restrizione di rete nel percorso di archiviazione della tabella o del volume condiviso.

Correzione consigliata: nell'interfaccia del provider di archiviazione consentire l'accesso al percorso di archiviazione consentendo l'indirizzo IP client nelle impostazioni del firewall dell'account di archiviazione.

Problema di accesso agli asset di materializzazione condivisi

Problema: la query su una vista condivisa, una vista materializzata o una tabella di streaming restituisce l'errore DS_MATERIALIZATION_QUERY_FAILED.

"DS_MATERIALIZATION_QUERY_FAILED": "The shared asset could not be materialized due to the asset not being accessible in the materialization workspace. Please ask data provider to contact :re[DB] support to override the materialization workspace."

Possibili cause: il provider non dispone dell'accesso in lettura/scrittura all'asset che sta tentando di condividere.

Correzione consigliata: contattare il provider di dati per assicurarsi che disponga dell'accesso in lettura/scrittura all'asset di dati condiviso.

Errore di accesso alla rete durante la materializzazione dei dati

Problema: la query su un asset di dati condiviso restituisce un errore relativo all'accesso all'archiviazione cloud del provider di dati.

There was an issue accessing the data provider's cloud storage. Shared view materialization uses the Serverless compute of data provider's region to perform the materialization. Please contact the data provider to allowlist Serverless compute IPs of their corresponding region to access the view's dependent tables storage location.

Cause possibili: Il percorso di archiviazione per i dati materializzati presenta restrizioni di rete (ad esempio un firewall o un collegamento privato) che impediscono al calcolo serverless di Azure Databricks di accedervi. Quando si condividono viste, viste materializzate o tabelle di streaming, i dati vengono materializzati temporaneamente sul lato del provider. Il percorso di archiviazione della materializzazione è lo schema padre dell'asset o il percorso di archiviazione del catalogo.

Correzione consigliata: il provider di dati deve autorizzare gli indirizzi IP di calcolo serverless della regione corrispondente per accedere alla posizione di archiviazione delle tabelle dipendenti della visualizzazione. Per configurare il firewall, vedere Configurare un firewall per l'accesso al calcolo senza server (legacy)

Errore "Asset di dati inesistente"

Se si fa clic su un asset condiviso e si verifica un errore "non esistente", il proprietario della condivisione sul lato provider potrebbe non disporre di autorizzazioni sufficienti per l'asset. Contattare il provider di dati e chiedere loro di verificare che il proprietario della condivisione disponga delle autorizzazioni necessarie per tutti gli asset condivisi. Per altre informazioni sulle autorizzazioni necessarie per consentire a un proprietario della condivisione di condividere un asset di dati, vedere Requisiti e Concedere ai destinatari l'accesso alla condivisione.