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'));
Copy

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'));
Copy

Hinweise und Einschränkungen

  • Dieses Feature unterstützt die folgenden Funktionen nicht:

  • 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.