Dépannage lors de l’utilisation de tables Apache Iceberg™ avec Snowflake Open Catalog dans Snowflake¶
Les scénarios suivants peuvent vous aider à résoudre les problèmes qui peuvent survenir lors de l’utilisation de tables Apache Iceberg™ avec Snowflake Open Catalog dans Snowflake.
Impossible de créer une intégration de catalogue pour Open Catalog¶
Cette section décrit comment résoudre les problèmes liés à la création d’une intégration de catalogue pour Open Catalog.
Pour résoudre le problème, identifiez le message d’erreur que vous avez reçu dans la sortie SQL lorsque la création de votre intégration de catalogue a échoué.
Erreur |
SQL Execution Error: Cannot create catalog integration <catalog_integration_name> due to error: Unable to process: Unable to find
warehouse <catalog_name>. Check the REST configuration and ensure the warehouse name '<catalog_name>' matches the Polaris catalog
name.
|
---|---|
Cause |
Le |
Solution |
Mettez à jour le Important Le |
Erreur |
SQL Execution Error: User provided authentication credentials are invalid for catalog integration <catalog_integration_name> due
to error: Malformed request: unauthorized_client: The client is not authorized.
|
---|---|
Cause |
Le jeton OAuth que vous avez spécifié dans l’intégration de catalogue n’est pas valide. |
Solution |
Assurez-vous que les valeurs spécifiées pour |
Impossible de créer une table gérée par Snowflake¶
Cette section décrit comment résoudre les problèmes liés à la création d’une table gérée par Snowflake.
Pour résoudre le problème, identifiez le message d’erreur que vous avez reçu dans la sortie SQL lorsque la création de votre table a échoué.
Erreur |
SQL Execution Error: Failed to validate CATALOG_SYNC target '<catalog_integration_name>' due to error: The Snowflake service
connection associated with the Polaris catalog integration does not have the required privileges to send notifications. The
minimum required privileges are TABLE_CREATE, TABLE_WRITE_PROPERTIES, TABLE_DROP, NAMESPACE_CREATE, and NAMESPACE_DROP.
|
---|---|
Cause |
Le rôle de catalogue pour le catalogue externe auquel vous souhaitez vous connecter ne dispose pas des privilèges nécessaires pour envoyer des notifications à Open Catalog. |
Solution |
Mettez à jour le rôle de catalogue en accordant tous les privilèges suivants au rôle de catalogue pour votre catalogue externe :
L’endroit où vous mettez à jour le rôle de catalogue dépend du fait que les autorisations dont il dispose sont appliquées au niveau du catalogue, de l’espace de noms ou de la table. Consultez la procédure applicable à votre rôle de catalogue : |
Erreur |
SQL Execution Error: Failed to access the REST endpoint of catalog integration <catalog_integration_name> with error: Unable to
process: Failed to get subscoped credentials: Error assuming AWS_ROLE:
User: <IAM_user_arn> is not authorized to perform: sts:AssumeRole on resource: <S3_role_arn>. Check the accessibility of the REST
catalog URI or warehouse.
|
---|---|
Cause |
L’utilisateur IAM AWS de votre catalogue externe n’est pas en mesure d’assumer le rôle qui dispose de l’autorisation d’accéder à S3. |
Solution |
Modifiez le document de politique dans AWS pour permettre à l’utilisateur IAM de votre compte Open Catalog d’assumer le rôle qui dispose de l’autorisation d’accéder à votre compartiment S3. Pour modifier le document de politique, vous devez mettre à jour le rôle IAM dans AWS. Pour plus de détails, voir Récupérer l’utilisateur IAM AWS pour votre compte Snowflake Open Catalog et Octroyer à l’utilisateur IAM des autorisations pour accéder à des objets de compartiment. Gardez à l’esprit que le document de politique doit inclure l’ARN de l’utilisateur IAM et l’ID externe pour votre volume externe et votre catalogue externe dans Open Catalog. Dans l’exemple de document de politique suivant, notez les valeurs suivantes :
|
Erreur |
SQL Execution Error: Failed to validate CATALOG_SYNC target '<catalog_integration_name>' due to error: The associated Polaris
catalog cannot be of type INTERNAL.
|
---|---|
Cause |
Vous essayez de synchroniser une table gérée par Snowflake avec un catalogue interne dans Open Catalog. Vous ne pouvez synchroniser une table gérée par Snowflake qu’avec un catalogue externe dans Open Catalog. |
Solution |
Vous ne pouvez pas mettre à jour un catalogue interne existant vers un catalogue externe. Vous devez donc créer un nouveau catalogue externe :
|
Erreur |
SQL Execution Error: Failed to validate CATALOG_SYNC target '<catalog_integration_name>' due to error: SQL Execution Error:
Resource on the REST endpoint of catalog integration CATINT is forbidden due to error: Forbidden: Invalid locations '[<path to metadata file>]'
for identifier '<identifier>': <path to metadata file> is not in the list of allowed locations: [<list of allowed locations>].
|
---|---|
Cause |
Le chemin d’accès au fichier de métadonnées de la table que vous souhaitez créer n’est pas inclus dans la liste des emplacements autorisés pour votre fournisseur Cloud externe. Par conséquent, Open Catalog ne peut pas accéder au fichier de métadonnées de la table. |
Solution |
Assurez-vous que l’emplacement du fichier de métadonnées se trouve sous le chemin d’accès au fichier de l’emplacement de base par défaut du catalogue créé par l’administrateur du service dans Open Catalog, ou qu’il se trouve sous l’un des emplacements supplémentaires autorisés, le cas échéant. Pour obtenir la liste des emplacements autorisés, sélectionnez le catalogue dans Open Catalog et reportez-vous au champ Emplacements. |
Vous ne pouvez pas modifier une table Iceberg lorsque vous spécifiez le paramètre CATALOG_SYNC.¶
Cette section décrit comment résoudre les problèmes liés à la modification du paramètre CATALOG_SYNC.
Pour résoudre le problème, identifiez le message d’erreur que vous avez reçu dans la sortie SQL lorsque la modification de votre table a échoué.
Erreur |
SQL Execution Error: Failed to validate CATALOG_SYNC target '<catalog_integration_name>' due to error: The Snowflake service
connection associated with the Polaris catalog integration does not have the required privileges to send notifications. The minimum
required privileges are TABLE_CREATE, TABLE_WRITE_PROPERTIES, TABLE_DROP, NAMESPACE_CREATE, and NAMESPACE_DROP.
|
---|---|
Cause |
Le rôle de catalogue pour le catalogue externe auquel vous souhaitez vous connecter ne dispose pas des privilèges nécessaires pour envoyer des notifications à Open Catalog. |
Solution |
Accordez tous les privilèges suivants au rôle de catalogue pour votre catalogue externe :
L’endroit où vous mettez à jour le rôle de catalogue dépend du fait que les autorisations dont il dispose sont appliquées au niveau du catalogue, de l’espace de noms ou de la table. Consultez la procédure applicable à votre rôle de catalogue : |
Erreur |
SQL Execution Error: Failed to access the REST endpoint of catalog integration <catalog_integration_name> with error: Unable to
process: Failed to get subscoped credentials: Error assuming AWS_ROLE:
User: <IAM_user_arn> is not authorized to perform: sts:AssumeRole on resource: <S3_role_arn>. Check the accessibility of the REST
catalog URI or warehouse.
|
---|---|
Cause |
L’utilisateur IAM AWS de votre catalogue externe n’est pas autorisé à accéder aux objets du compartiment S3. |
Solution |
Modifiez le document de politique dans AWS pour permettre à l’utilisateur IAM de votre compte Open Catalog d’accéder aux objets de votre compartiment S3. Pour modifier le document de politique, vous devez mettre à jour le rôle IAM dans AWS. Pour plus de détails, voir Récupérer l’utilisateur IAM AWS pour votre compte Polaris Open Catalog et Octroyer à l’utilisateur IAM des autorisations pour accéder à des objets de compartiment. Gardez à l’esprit que le document de politique doit inclure l’ARN de l’utilisateur IAM et l’ID externe pour votre volume externe et votre catalogue externe dans Open Catalog. Dans l’exemple de document de politique suivant, notez les valeurs suivantes :
|
Erreur |
SQL Execution Error: Failed to validate CATALOG_SYNC target '<catalog_integration_name>' due to error: The associated Polaris
catalog cannot be of type INTERNAL.
|
---|---|
Cause |
Vous essayez de synchroniser une table Iceberg gérée par Snowflake avec une intégration de catalogue pour un catalogue interne dans Open Catalog. Vous ne pouvez synchroniser une table Iceberg gérée par Snowflake qu’avec un catalogue externe dans Open Catalog. |
Solution |
Vous ne pouvez pas mettre à jour un catalogue interne existant vers un catalogue externe. Vous devez donc créer un nouveau catalogue externe :
|
Erreur |
SQL Execution Error: Failed to validate CATALOG_SYNC target '<catalog_integration_name>' due to error: SQL Execution Error:
Resource on the REST endpoint of catalog integration CATINT is forbidden due to error: Forbidden: Invalid locations '[<path to metadata file>]'
for identifier '<identifier>': <path to metadata file> is not in the list of allowed locations: [<list of allowed locations>].
|
---|---|
Cause |
Le chemin d’accès au fichier de métadonnées de la table que vous souhaitez créer n’est pas inclus dans la liste des emplacements autorisés pour votre fournisseur Cloud externe. Par conséquent, Open Catalog ne peut pas accéder au fichier de métadonnées de la table. |
Solution |
Assurez-vous que l’emplacement du fichier de métadonnées se trouve sous le chemin d’accès au fichier de l’emplacement de base par défaut du catalogue créé par l’administrateur du service dans Open Catalog, ou qu’il se trouve sous l’un des emplacements supplémentaires autorisés, le cas échéant. Pour obtenir la liste des emplacements autorisés, sélectionnez le catalogue dans Open Catalog et reportez-vous au champ Locations. |