Dépanner les problèmes de partage courants dans OpenSharing
Les sections suivantes décrivent les erreurs courantes qui peuvent survenir lorsque vous tentez d'accéder aux données d'un partage.
Erreurs de dépassement de la limite de ressources
**Problème** : votre query sur une table partagée renvoie RESOURCE_LIMIT_EXCEEDED l'erreur.
"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"
**Causes possibles** : Il existe des limites sur le nombre de fichiers de métadonnées autorisés pour une table partagée :
- Fichiers actifs : Une table partagée prend en charge un maximum de 400 000 fichiers actifs (actions AddFile). Si le nombre de fichiers actifs dépasse cette limite, les queries renvoient l'erreur « nombre de fichiers dépassé ».
- Actions de suppression de fichiers : Une table partagée prend en charge un maximum de 100 000 actions RemoveFile dans le journal Delta. Si le nombre d'actions RemoveFile dépasse cette limite, les queries renvoient l'erreur « taille des métadonnées dépassée ».
Vous pouvez demander une augmentation de la limite de fichiers actifs. Voir les limites des Ressources.
Correction recommandée : Contactez votre fournisseur de données et demandez-lui d'optimiser la table partagée en exécutant OPTIMIZE et VACUUM pour compacter les petits fichiers et supprimer les entrées RemoveFile obsolètes du journal Delta. Pour plus de conseils, consultez l'erreur RESOURCE_LIMIT_EXCEEDED lors de l'interrogation d'une table Delta Sharing dans la Base de connaissances Databricks.
Problème de nom de compartiment AWS S3
Problème : vous voyez un message d'erreur indiquant que le fichier est introuvable ou une exception de certificat.
Exemple d’erreur Spark :
FileReadException: Error while reading file delta-sharing:/%252Ftmp%252Fexample.share%2523example.tpc_ds.example/XXXXXXXXXXXXX/XXXXXXXX.
Caused by: SSLPeerUnverifiedException: Certificate for - <[workspace name].cloud.databricks.com.s3.us-east-1.amazonaws.com> doesn't match any of the subject alternative names [s3.amazonaws.com, *.s3.amazonaws.com…]:
Exemple d'erreur Pandas :
FileNotFoundError(path)
FileNotFoundError: https://xxxx.xxxxxx.s3.xx-xxxx-1.amazonaws.com/xxxxxx/part-00000-xxxxx-Amz-Algorithm=Axxxxxx-Amz-Date=xxxxxxxx&X-Amz-SignedHeaders=host&X-Amz-Expires=xxx&X-Amz-Credential=xxxxxxx_request&X-Amz-Signature=xxxxx
Exemple d'erreur Power BI :
DataSource.Error: The underlying connection was closed: Could not establish trust relationship for the SSL/TLS secure channel.
Details:
https://xxxx.xxxxxxxxx.s3.xx-xxxx-1.amazonaws.com/xxxxxxxx/part-00000-xxxxxxx.snappy.parquet
Cause possible : En règle générale, vous voyez cette erreur car le nom de votre compartiment utilise la notation par points ou par périodes (par exemple, incorrect.bucket.name.notation). Il s'agit d'une limitation AWS. Consultez les règles de nommage de compartiment AWS.
Vous pourriez obtenir cette erreur même si le nom de votre compartiment est correctement formaté. Par exemple, vous pourriez rencontrer une erreur SSL (SSLCertVerificationError) lorsque vous exécutez du code sur PyCharm.
Correction recommandée : Si le nom de votre compartiment utilise une notation de nommage de compartiment AWS non valide, utilisez un compartiment différent pour Unity Catalog et OpenSharing.
Si votre compartiment utilise des conventions de nommage valides et que vous rencontrez toujours un FileNotFoundError en Python, activez la journalisation de débogage pour aider à isoler le problème :
import logging
logging.basicConfig(level=logging.DEBUG)
Problème de fichier de données vacuumé
**Problème** : Vous voyez un message d'erreur qui génère une exception « 404 Le [chemin|clé] spécifié n'existe pas ».
Exemples d'erreurs Spark :
java.lang.Throwable: HTTP request failed with status: HTTP/1.1 404 The specified path does not exist.
OU
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>
Cause possible : généralement, cette erreur se produit parce que le fichier de données correspondant à l’URL pré-signée est vacuum dans la table partagée et que le fichier de données appartient à une version de table historique.
Solution de contournement : interrogez le dernier instantané.
Erreur d'incompatibilité de schéma avec Spark open source
Problème : Lorsque vous utilisez Open Source Spark (OSS), vous rencontrez une erreur d'incompatibilité de schéma lors de la lecture des tables OpenSharing.
Exemple d'erreur :
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
Cause possible : Le schéma ou les colonnes de partition de la table Delta ont été modifiés après la création du DataFrame.
Correction recommandée : définissez l'indicateur de configuration Spark spark.delta.sharing.client.useStructuralSchemaMatch sur true.
La configuration spark.delta.sharing.client.useStructuralSchemaMatch est uniquement disponible dans delta-sharing-client 1.2.3 ou une version ultérieure, ce qui nécessite Apache Spark 4.0.0 ou une version ultérieure.
spark.conf.set("spark.delta.sharing.client.useStructuralSchemaMatch", "true")
Problème d'accès à l'asset de matérialisation partagée
Problème : Votre query sur une vue partagée, une vue matérialisée ou une table de streaming renvoie l'erreur 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."
Causes possibles : Le fournisseur n'a pas accès en lecture-écriture à l'asset qu'il essaie de partager.
Correction recommandée : Contactez votre fournisseur de données pour vous assurer qu'ils disposent d'un accès en lecture-écriture à l'asset de données partagé.
Erreur d'accès réseau lors de la matérialisation des données
**Problème** : Votre query sur un asset de données partagé renvoie une erreur concernant l’accès au stockage cloud du fournisseur de données.
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.
**Causes possibles** : L'emplacement de stockage des données matérialisées a des restrictions réseau (telles qu'un pare-feu ou un private link) qui empêchěńt le compute serverless Databricks d'y accéder. Lorsque vous partagez des vues, des vues matérialisées ou des tables de streaming, les données sont temporairement matérialisées du côté du fournisseur. L'emplacement de stockage de la matérialisation est l'emplacement de stockage du schéma ou du catalogue parent de l'asset.
Correction recommandée : Le fournisseur de données doit autoriser les adresses IP du compute Serverless de sa région correspondante pour accéder à l'emplacement de stockage des tables dépendantes de la vue. Pour configurer votre pare-feu, consultez la configuration du pare-feu de compute Serverless.
Erreur de l'asset de données « n'existe pas »
Si vous cliquez sur un asset partagé et rencontrez une erreur « l'objet n'existe pas », le propriétaire du partage côté fournisseur pourrait ne pas disposer des autorisations suffisantes sur l'asset. Contactez votre fournisseur de données et demandez-lui de vérifier que le propriétaire du partage dispose des autorisations requises sur tous les assets partagés. Pour plus d'informations sur les autorisations requises pour qu'un propriétaire de partage partage un asset de données, consultez Exigences et Accorder l'accès au partage au destinataire.