Catégories :

Fonctions système (Informations système)

SYSTEM$VALIDATE_STORAGE_INTEGRATION

Valide la configuration d’une intégration de stockage spécifiée. La fonction tente d’utiliser l’intégration de stockage pour écrire, lire, lister ou supprimer un fichier pour un emplacement de stockage que vous spécifiez par chemin.

Pour plus d’informations sur la configuration des intégrations de stockage, voir :

Voir aussi :

CREATE STORAGE INTEGRATION, ALTER STORAGE INTEGRATION

Syntaxe

SYSTEM$VALIDATE_STORAGE_INTEGRATION( '<storage_integration_name>', '<storage_path>', '<test_file_name>', '<validate_action>' )
Copy

Arguments

storage_integration_name

Nom de l’intégration de stockage à tester.

Les noms d’intégration de stockage sont sensibles à la casse.

storage_path

Chemin d’accès complet à un emplacement de stockage que vous souhaitez valider. Le chemin d’accès au stockage doit être une URL figurant dans la liste STORAGE_ALLOWED_LOCATIONS pour l’intégration de stockage.

Amazon S3

's3://bucket/path/'

  • Le préfixe s3 fait référence au stockage S3 dans les régions publiques AWS. Le préfixe s3gov fait référence au stockage S3 dans les régions gouvernementales.

  • bucket est le nom d’un compartiment S3 qui stocke vos fichiers de données.

  • path est un chemin d’accès ou un répertoire facultatif figurant dans le compartiment.

Google Cloud Storage

'gcs://bucket/path/'

  • bucket est le nom d’un compartiment GCS qui stocke vos fichiers de données.

  • path est un chemin d’accès ou un répertoire facultatif figurant dans le compartiment.

Microsoft Azure

'azure://account.blob.core.windows.net/container/path/'

  • account est le nom du compte de stockage Azure.

  • container est le nom d’un conteneur de stockage blob Azure qui stocke vos fichiers de données.

  • path est un chemin d’accès ou un répertoire facultatif figurant dans le compartiment.

test_file_name

Nom du fichier à utiliser pour la validation de l’intégration de stockage.

validate_action

Action de validation à effectuer.

Valeurs :
  • read - Valide le fait que Snowflake peut lire à partir de l’emplacement de stockage. Cette action échoue si le fichier n’existe pas.

  • write - Valide le fait que Snowflake peut écrire dans l’emplacement de stockage. Cette action échoue si le fichier existe déjà.

  • list - Valide le fait que Snowflake peut établir la liste des fichiers de l’emplacement de stockage.

  • delete - Valide le fait que Snowflake peut supprimer des fichiers dans l’emplacement de stockage.

  • all - Valide toutes les actions possibles dans l’emplacement de stockage.

Renvoie

La fonction renvoie un objet JSON avec les propriétés décrites ci-dessous :

Propriété

Description

status

Statut du test de validation. Renvoie un statut de success si toutes les actions ont été effectuées correctement ; renvoie failure si une action ne s’est pas déroulée comme prévu.

actions

Tableau d’objets contenant l’action de validation demandée (READ, DELETE, LIST, WRITE) et le statut.

{
  "status" : "success",
  "actions" : {
    "READ" : {
      "status" : "success"
    },
    "DELETE" : {
      "status" : "success"
    },
    "LIST" : {
      "status" : "success"
    },
    "WRITE" : {
      "status" : "success"
    }
  }
}
Copy

Exemples

L’exemple suivant valide la configuration de l’intégration de stockage example_integration pour toutes les actions de validation. L’exemple renvoie un résultat positif au format JSON.

SELECT
  SYSTEM$VALIDATE_STORAGE_INTEGRATION(
    'example_integration',
    's3://example_bucket/test_path/'',
    'validate_all.txt', 'all');
Copy

Sortie :

+----------------------------+
|           RESULT           |
+----------------------------+
| {                          |
|   "status" : "success",    |
|   "actions" : {            |
|     "READ" : {             |
|       "status" : "success" |
|     },                     |
|     "DELETE" : {           |
|       "status" : "success" |
|     },                     |
|     "LIST" : {             |
|       "status" : "success" |
|     },                     |
|     "WRITE" : {            |
|       "status" : "success" |
|     }                      |
|   }                        |
| }                          |
+----------------------------+

L’exemple suivant montre le résultat lorsque l’intégration de stockage ne dispose pas d’autorisations read.

SELECT
  SYSTEM$VALIDATE_STORAGE_INTEGRATION(
    'example_integration',
    'gcs://example_bucket/test_path/'',
    'read_fail.txt', 'all');
Copy

Sortie :

+----------------------------------------------------------------------------------------------------------------+
|                                                     RESULT                                                     |
+----------------------------------------------------------------------------------------------------------------+
| {                                                                                                              |
|   "status" : "failure",                                                                                        |
|   "actions" : {                                                                                                |
|     "READ" : {                                                                                                 |
|       "message" : "Access Denied (Status Code: 403; Error Code: AccessDenied)",                                |
|       "status" : "failure"                                                                                     |
|     },                                                                                                         |
|     "DELETE" : {                                                                                               |
|       "status" : "success"                                                                                     |
|     },                                                                                                         |
|     "LIST" : {                                                                                                 |
|       "status" : "success"                                                                                     |
|     },                                                                                                         |
|     "WRITE" : {                                                                                                |
|       "status" : "success"                                                                                     |
|     }                                                                                                          |
|   },                                                                                                           |
|   "message" : "Some of the integration checks failed. Check the Snowflake documentation for more information." |
| }                                                                                                              |
+----------------------------------------------------------------------------------------------------------------+