Chargement de données non structurées avec Document AI¶
En s’intégrant à Document AI, Snowflake prend désormais en charge le chargement de données non structurées, de manière similaire au chargement de données structurées et semi-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.
Pour charger des données non structurées avec cette fonctionnalité en avant-première, vous pouvez exécuter la même commande de table COPY INTO avec une option de copie file_processor
.
Conditions préalables¶
Avant d’utiliser cette fonctionnalité, vous devez préparer un modèle de Document AI et vous assurer que l’utilisateur qui exécute la commande COPY a accès à ce modèle. Pour plus d’informations, voir Document AI.
Utilisation de la commande COPY INTO¶
Vous pouvez charger des données non structurées à l’aide de la commande COPY INTO avec l’option de copie file_processor
. Vous pouvez spécifier document_ai
comme type de scanner personnalisé pour l’option de copie file_processor
et spécifier les propriétés associées pour le scanner.
Pour plus d’informations, consultez la syntaxe COPY INTO TABLE et les options de copie COPY INTO.
Pour charger des données non structurées, nous vous recommandons de spécifier le type de zone de préparation source comme CUSTOM
, qui est un type de format de zone de préparation en avant-première. Les autres types de formats de zone de préparation (TYPE = { CSV | JSON | AVRO | ORC | PARQUET | XML })
sont pris en charge pour la compatibilité descendante.
Vous pouvez spécifier le type de zone de préparation à l’aide du paramètre file_format
lors de la création d’une zone de préparation. Le type de zone de préparation CUSTOM
spécifie que la zone de préparation sous-jacente contient des données non structurées et ne peut être utilisée qu’avec l’option de copie FILE_PROCESSOR
.
Exemples¶
L’exemple suivant montre le chargement de fichiers de données non structurées à partir d’une zone de préparation custom_stage
dans une table my_table
, avec la fonction document_ai
spécifiée par un nom de modèle predict
et la version du modèle 1
.
COPY INTO my_table FROM @custom_stage FILE_PROCESSOR = ( SCANNER = 'document_ai' SCANNER_OPTIONS = (project_name = 'DEMO0200', model_name = 'predict' model_version = '1'));
L’exemple suivant montre le chargement de fichiers de données non structurées dans une table docai_results
et la transformation de données brutes à l’aide d’une instruction SELECT.
CREATE OR REPLACE TABLE docai_results (inspection_date date, inspector varchar); COPY INTO docai_results FROM (SELECT $1:inspection_date[0].value::date, $1:inspector[0].value FROM @custom_stage) FILE_PROCESSOR = ( SCANNER = 'document_ai' SCANNER_OPTIONS = (project_name = 'DEMO0201', model_name = 'predict' model_version = '1'));
Considérations et limites¶
Cette fonctionnalité ne prend pas en charge ce qui suit :
Option MATCH_BY_COLUMN_NAME COPY.
Seule l’option ON_ERROR COPY par défaut
ON_ERROR = ABORT_STATEMENT
est prise en charge. La tentative d’utiliser d’autres options ON_ERROR entraînera une erreur de compilation.Le nombre de fichiers par requête ne peut pas dépasser 1 000.