Laden von unstrukturierten Daten mit Document AI¶
Durch die Integration mit Document AI unterstützt Snowflake jetzt das Laden von unstrukturierten Daten, ähnlich wie das Laden von strukturierten und semistrukturierten Daten.
Unstrukturierte Daten sind Informationen, die nicht in ein vordefiniertes Datenmodell oder Schema passen. Unstrukturierte Daten sind in der Regel textlastig, z. B. Antworten auf Formulare oder Konversation in sozialen Medien, sie umfassen aber auch Bilder, Videos und Audiodaten.
Um unstrukturierte Daten mit diesem Vorschau-Feature zu laden, können Sie denselben COPY INTO-Tabellenbefehl mit einer Kopieroption file_processor
ausführen.
Voraussetzungen¶
Bevor Sie dieses Feature verwenden, müssen Sie ein Document-AI-Modell vorbereiten und sicherstellen, dass der Benutzer, der den Befehl COPY ausführt, Zugriff auf dieses Modell hat. Weitere Informationen dazu finden Sie unter Document AI.
Verwenden des Befehls COPY INTO¶
Sie können unstrukturierte Daten laden, indem Sie den Befehl COPY INTO mit der file_processor
Kopieroption verwenden. Sie können document_ai
als Typ des benutzerdefinierten Scanners für die file_processor
Kopieroption angeben und die zugehörigen Eigenschaften für den Scanner festlegen.
Weitere Informationen finden Sie unter COPY INTO TABLE-Syntax und COPY INTO Kopieroptionen.
Um unstrukturierte Daten zu laden, empfehlen wir, den Typ des Quell-Stagingbereichs als CUSTOM
anzugeben. Dies ist ein Stagingbereichsformat-Typ in der Vorschau. Die anderen Stagingbereichsformat-Typen (TYPE = { CSV | JSON | AVRO | ORC | PARQUET | XML })
werden aus Gründen der Abwärtskompatibilität unterstützt.
Sie können den Stagingbereichstyp mit dem Parameter file_format
festlegen, wenn Sie einen Stagingbereich erstellen. Der Stagingbereichstyp CUSTOM
gibt an, dass der zugrunde liegende Stagingbereich unstrukturierte Daten enthält und kann nur mit der FILE_PROCESSOR
Kopieroption verwendet werden.
Beispiele¶
Das folgende Beispiel zeigt das Laden von unstrukturierten Datendateien aus einem Stagingbereich custom_stage
in eine Tabelle my_table
, wobei die Funktion document_ai
durch einen Modellnamen predict
und eine Modellversion 1
angegeben wird.
COPY INTO my_table FROM @custom_stage FILE_PROCESSOR = ( SCANNER = 'document_ai' SCANNER_OPTIONS = (project_name = 'DEMO0200', model_name = 'predict' model_version = '1'));
Das folgende Beispiel zeigt das Laden von Dateien mit unstrukturierten Dateien in eine Tabelle docai_results
und die Umwandlung der Rohdaten mit einer Anweisung 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'));
Hinweise und Einschränkungen¶
Dieses Feature unterstützt die folgenden Funktionen nicht:
MATCH_BY_COLUMN_NAME COPY-Option
Nur die standardmäßige ON_ERROR COPY-Option
ON_ERROR = ABORT_STATEMENT
wird unterstützt. Der Versuch, andere ON_ERROR-Optionen zu verwenden, führt zu einem Kompilierungsfehler.Die Anzahl der Dateien pro Abfrage darf 1000 nicht überschreiten.