Introduction aux données non structurées¶
Les données non structurées sont des informations qui n’entrent pas dans un modèle ou un schéma de données prédéfini. Généralement composées de texte, comme les réponses à des formulaires et les conversations sur les médias sociaux, les données non structurées comprennent également des images, des vidéos et du son. Les types de fichiers spécifiques à l’industrie tels que VCF (génomique), KDF (semi-conducteurs), ou HDF5 (aéronautique) sont inclus dans cette catégorie.
Snowflake prend en charge les actions suivantes :
Accédez en toute sécurité aux fichiers de données situés dans le stockage Cloud.
Partagez les URLs d’accès aux fichiers avec vos collaborateurs et partenaires.
Chargez les URLs d’accès aux fichiers et les autres métadonnées du fichier dans les tables Snowflake.
Traitez des données non structurées.
Cette rubrique présente les concepts clés et fournit des instructions pour accéder à des fichiers de données non structurées, les partager et les traiter.
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. Snowflake enregistre dans l’historique des requêtes des informations sur les personnes qui utilisent une URL scopée pour accéder à un fichier et d’où elles le font. 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 dans 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 :
|
Les options suivantes sont disponibles :
|
Les options suivantes sont disponibles :
|
Les consommateurs de données peuvent accéder à des fichiers de données non structurés par le biais de valeurs de colonnes de ce type dans des vues sécurisées, partagées par les fournisseurs de données. |
Les consommateurs de données ne peuvent pas accéder à des fichiers de données non structurés par le biais de valeurs de colonnes de ce type dans des vues sécurisées partagées par les fournisseurs de données. |
Les consommateurs de données peuvent accéder à des fichiers de données non structurés par le biais de valeurs de colonnes de ce type dans des vues sécurisées, partagées par les fournisseurs de donné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 |
Chiffrement côté serveur pour l’accès à des données non structurées¶
Pour permettre l’accès à des données non structurées dans une zone de préparation interne, vous pouvez envisager d’utiliser le chiffrement côté serveur lorsque vous créez la zone de préparation. Sinon, les fichiers en zone de préparation seront chiffrés par défaut côté client. Les clés de chiffrement appartiennent à Snowflake, et les fichiers chiffrés côté client sont illisibles pour les utilisateurs et les outils externes qui utilisent des fichiers pré-signés ou des URLs scopées.
Pour configurer le chiffrement côté serveur pour une zone de préparation interne, spécifiez le type de chiffrement SNOWFLAKE_SSE
dans la commande CREATE STAGE. Pour plus d’informations, voir Paramètres de zone de préparation interne (internalStageParams).
L’exemple suivant crée une zone de préparation interne nommée my_int_stage
avec un chiffrement côté serveur et une table de répertoire.
CREATE STAGE my_int_stage
ENCRYPTION = (TYPE = 'SNOWFLAKE_SSE')
DIRECTORY = ( ENABLE = true );
Important
Si vous avez besoin de Tri-Secret Secure pour des raisons de sécurité, utilisez le type de chiffrement SNOWFLAKE_FULL
pour les zones de préparation internes. SNOWFLAKE_SSE
ne prend pas en charge Tri-Secret Secure.
Note
Vous ne pouvez pas modifier le type de chiffrement pour une zone de préparation interne après la création de la zone de préparation.
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 une version supérieure)
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 |
---|---|
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. |
|
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. |
|
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. |
|
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. |
|
Génère une URL de fichier Snowflake scopé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. |
|
Génère une URL de fichier 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. |
Téléchargement de fichiers en zone de préparation dans Snowsight¶
Les utilisateurs peuvent sélectionner une URL générée, au champ d’application défini, pré-signée ou de fichier dans la table de résultats d’une feuille de calcul Snowsight et télécharger le fichier référencé.
Connectez-vous à Snowsight.
Sélectionnez Projects » Worksheets » My Worksheets ou ouvrez une feuille de calcul locale en accédant à Recent ou à Folders » <nom_feuilledecalcul>.
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.
Sélectionnez l’URL dans la table de résultats. Snowsight télécharge le fichier référencé par l’URL.
Traitement de données non structurées¶
Snowflake prend en charge les fonctions suivantes pour vous aider à traiter des données non structurées.
- Fonctions externes
Les fonctions externes sont des fonctions définies par l’utilisateur que vous stockez et exécutez en dehors de Snowflake.. Avec les fonctions externes, vous pouvez utiliser des bibliothèques telles qu’Amazon Textract, Document AI ou Azure Computer Vision auxquelles il n’est pas possible d’accéder à partir des fonctions internes définies par l’utilisateur (UDFs).
Pour plus d’informations, voir Écriture de fonctions externes.
- Fonctions définies par l’utilisateur et procédures stockées
Snowflake prend en charge plusieurs façons de lire un fichier au sein d’un code Java ou Python afin que vous puissiez traiter des données non structurées ou utiliser vos propres modèles de machine learning dans des fonctions définies par l’utilisateur (UDFs), des fonctions de table définies par l’utilisateur (UDTFs) ou des procédures stockées.
Vous pouvez étendre le SQL que vous utilisez dans Snowflake ou développer une application utilisant le API Snowpark.
Pour plus d’informations et d’exemples, consultez les rubriques suivantes.