Présentation de la prise en charge des données non structurées

Cette rubrique présente les concepts clés et fournit des instructions pour accéder aux fichiers de données non structurées et les partager.

Dans ce chapitre :

Prise en charge du service de stockage Cloud

Les zones de préparation externes (stockage dans le Cloud externe) et internes (c’est-à-dire Snowflake) prennent en charge les données non structurées.

Zones de préparation externes

Stockez les fichiers dans un stockage Cloud externe : Amazon S3, Google Cloud Storage ou l’un des services de stockage dans le Cloud Microsoft Azure pris en charge :

  • Stockage d’objets blob

  • Data Lake Storage Gen2

  • Usage général v1

  • Usage général v2

Types d’URLs disponibles pour accéder aux fichiers

Les types d’URLs suivants sont disponibles pour accéder aux fichiers dans le stockage Cloud :

URL scopée

URL encodée qui permet un accès temporaire à un fichier en zone de préparation sans accorder de privilèges à la zone de préparation.

L’URL expire lorsque la période de persistance de résultats de la requête se termine (c’est-à-dire lorsque le cache des résultats expire), ce qui correspond actuellement à 24 heures.

URL du fichier

URL qui identifie la base de données, le schéma, la zone de préparation et le chemin d’accès à un ensemble de fichiers. Un rôle qui a des privilèges suffisants sur la zone de préparation peut accéder aux fichiers.

URL pré-signée

URL HTTPS simple utilisée pour accéder à un fichier via un navigateur Web. Un fichier est temporairement accessible aux utilisateurs via cette URL en utilisant un jeton d’accès pré-signé. Le délai d’expiration du jeton d’accès est configurable.

Le tableau suivant décrit les principales caractéristiques de ces types d’URL :

URL scopée

URL du fichier

URL pré-signée

Cas d’utilisation

Recommandé pour les administrateurs de fichiers afin de donner un accès étendu aux fichiers de données à des rôles spécifiques dans le même compte. Fournissez l’accès aux fichiers via une vue qui récupère les URLs scopées. Seuls les rôles qui ont des privilèges sur la vue peuvent accéder aux fichiers. Idéal pour une utilisation dans des applications personnalisées, pour fournir des données non structurées à d’autres comptes via un partage, ou pour le téléchargement et l’analyse ad hoc de données non structurées via Snowsight.

URL permanente vers un fichier sur une zone de préparation. Pour télécharger un fichier ou y accéder, les utilisateurs envoient l’URL du fichier dans une requête GET au point de terminaison API REST avec le jeton d’autorisation. Idéal pour les applications personnalisées qui nécessitent un accès à des fichiers de données non structurés.

Utilisé pour télécharger des fichiers ou y accéder sans s’authentifier dans Snowflake ni transmettre de jeton d’autorisation. Les URLs pré-signées sont ouvertes ; tout utilisateur ou toute application peut accéder directement aux fichiers ou les télécharger. Idéal pour les applications de veille stratégique ou les outils de reporting qui doivent afficher le contenu de fichiers non structurés.

Mode de génération

Interrogez la fonction BUILD_SCOPED_FILE_URL.

Interrogez soit la table de répertoire de la zone de préparation qui fait référence aux fichiers en zone de préparation soit appelez la fonction BUILD_STAGE_FILE_URL.

Interrogez la fonction GET_PRESIGNED_URL.

Utilisation

Les options suivantes sont disponibles :

  • Dans Snowsight, cliquez sur une URL scopée dans la table des résultats de la requête. Snowsight récupère le fichier uniquement pour l’utilisateur qui a généré l’URL scopée.

  • Envoyez une URL scopée dans une requête GET au point de terminaison de l’API REST de la prise en charge du fichier. Pour plus d’informations, voir API REST pour la prise en charge des données non structurées.

Les options suivantes sont disponibles :

  • Dans Snowsight, cliquez sur une URL de fichier dans la table des résultats de la requête. Snowsight ne récupère le fichier que si le rôle actif dispose de privilèges suffisants.

  • Envoyez une URL de fichier dans une requête GET au point de terminaison de l’APIREST de la prise en charge du fichier. Pour plus d’informations, voir API REST pour la prise en charge des données non structurées.

Les options suivantes sont disponibles :

  • Dans Snowsight, cliquez sur une URL pré-signée dans la table des résultats de la requête.

  • Accédez à l’URL pré-signée directement dans un navigateur Web.

Partage de données

Les fournisseurs de données peuvent partager les URLs scopées avec les consommateurs de données en tant que valeurs de colonnes dans des vues sécurisées.

Non pris en charge.

Les fournisseurs de données peuvent partager des URLs pré-signées avec les consommateurs de données comme valeurs de colonnes dans des vues sécurisées.

Autorisation

Seul l’utilisateur qui génère une URL scopée peut utiliser l’URL pour accéder au fichier référencé.

Le rôle spécifié dans l’appel GET REST API doit avoir des privilèges suffisants sur la zone de préparation : USAGE (zone de préparation externe) ou READ (zone de préparation interne).

Toute personne qui possède l’URL pré-signée peut accéder au fichier référencé pendant toute la durée de vie du jeton.

Expiration

Période d’expiration pour le cache des résultats de la requête (actuellement 24 heures).

Permanent.

Durée spécifiée dans l’argument expiration_time.

Chiffrement côté serveur uniquement pour les zones de préparation

Pour prendre en charge l’accès aux fichiers à l’aide d’URLs pré-signées, créez des zones de préparation internes ou externes nommées avec un chiffrement côté serveur plutôt que côté client. Lorsque les fichiers d’une zone de préparation sont chiffrés côté client, les utilisateurs ne peuvent pas lire les fichiers en zone de préparation sans avoir accès à la clé de chiffrement.

Note

Actuellement, la création de zones de préparation internes avec un chiffrement côté serveur est limitée aux versions suivantes du client Snowflake :

  • Pilote JDBC v3.12.11 (ou supérieur)

Tables de répertoire

Les tables de répertoire stockent un catalogue de fichiers en zone de préparation dans un stockage Cloud. Les rôles disposant de privilèges suffisants peuvent interroger une table de répertoire pour récupérer les URLs de fichier afin d’accéder aux fichiers en zone de préparation.

Pour plus de détails, voir Tables de répertoire.

Fonctions SQL

Les Nouvelles fonctions suivants sont fournis pour accéder aux fichiers de données :

Fonction SQL

Description

GET_STAGE_LOCATION

Renvoie les URL d’une zone de préparation nommée externe ou interne en utilisant le nom de la zone de préparation comme entrée.

GET_RELATIVE_PATH

Extrait le chemin d’accès d’un fichier en zone de préparation par rapport à son emplacement dans la zone de préparation en utilisant le nom de la zone de préparation et le chemin d’accès absolu du fichier dans le stockage Cloud comme entrées.

GET_ABSOLUTE_PATH

Renvoie le chemin absolu d’un fichier en zone de préparation en utilisant le nom de la zone de préparation et le chemin du fichier par rapport à son emplacement dans la zone de préparation comme entrées.

GET_PRESIGNED_URL

Génère l’URL pré-signée vers un fichier en zone de préparation en utilisant le nom de la zone de préparation et le chemin de fichier relatif comme entrées. Accédez aux fichiers dans une zone de préparation externe en utilisant la fonction.

BUILD_SCOPED_FILE_URL

Génère une URL scopée hébergée par Snowflake vers un fichier en zone de préparation en utilisant le nom de la zone de préparation et le chemin de fichier relatif comme entrées.

BUILD_STAGE_FILE_URL

Génère une URL de fichier hébergé par Snowflake vers un fichier en zone de préparation en utilisant le nom de la zone de préparation et le chemin de fichier relatif comme entrées.

Colonnes de métadonnées

L’ensemble suivant de colonnes de métadonnées pour une zone de préparation stocke des informations similaires à celles renvoyées par les fonctions décrites dans Fonctions SQL :

METADATA$RELATIVE_PATH

Stocke des valeurs similaires à la sortie de la fonction GET_RELATIVE_PATH. Affiche le chemin d’un fichier en zone de préparation par rapport à son emplacement dans la zone de préparation.

METADATA$ABSOLUTE_PATH

Stocke des valeurs similaires à la sortie de la fonction GET_ABSOLUTE_PATH. Affiche le chemin absolu d’un fichier en zone de préparation en utilisant le nom de la zone de préparation et le chemin du fichier par rapport à son emplacement dans la zone de préparation comme entrées.

METADATA$PRESIGNED_URL

Stocke des valeurs similaires à la sortie de la fonction GET_PRESIGNED_URL. Affiche l’URL pré-signée vers un fichier en zone de préparation avec les paramètres par défaut.

Exemples

Interroger les valeurs de colonnes METADATA$ABSOLUTE_PATH

Utilisez l’API de votre service de stockage dans le Cloud pour générer une liste de documents JSON contenant les métadonnées extraites des images.

Par exemple, supposons que le document JSON pour un fichier image bitmap soit le suivant :

{
  "file_url": "s3://photos/national_parks/us/yosemite/half_dome.jpg",
  "image_format": "jpeg",
  "dimensions": {"x" : 1024, "y" : 768},
  "tags":[
    "rock",
    "cliff",
    "valley"
  ],
  "dominant_color": "gray"
}

L’instruction SQL suivante renvoie les valeurs de la colonne METADATA$ABSOLUTE_PATH pour le fichier d’image mis en zone de préparation et le document JSON :

SELECT METADATA$ABSOLUTE_PATH FROM @images_stage;

+---------------------------------------------------------------+
| METADATA$ABSOLUTE_PATH                                        |
|---------------------------------------------------------------|
| s3://photos/national_parks/us/yosemite/half_dome.jpg          |
...
| s3://photosimage_metadata.json                                |
+---------------------------------------------------------------+

Téléchargement de fichiers en zone de préparation dans Snowsight

Les utilisateurs peuvent cliquer sur une URL générée, scopée, pré-signée ou de fichier dans la table des résultats d’une feuille de calcul Snowsight et télécharger le fichier référencé.

  1. Connectez-vous à la nouvelle interface Web.

  2. Cliquez sur Worksheets » My Worksheets (ou ouvrez une feuille de calcul locale sous Recent ou dans Folders) » <nom_feuilledecalcul>.

  3. Renvoie une URL scopée, pré-signée, ou de fichier dans une requête en utilisant l’une des méthodes prises en charge.

  4. Cliquez sur l’URL dans la table des résultats. Snowsight télécharge le fichier référencé par l’URL.

    Download pre-signed URL in Snowsight results table