構造化されていないデータをドキュメント AI で読み込む

ドキュメント AI との統合により、Snowflakeは構造化データや半構造化データのロードと同様に、非構造化データのロードをサポートするようになりました。

非構造化データは、事前定義されたデータモデルまたはスキーマに適合しない情報です。通常、フォームの応答やソーシャルメディアの会話など、テキストが多い非構造化データには、画像、ビデオ、オーディオも含まれます。

このプレビュー機能を使って非構造化データをロードするには、同じ COPY INTO テーブルコマンドをコピーオプション file_processor を付けて実行します。

前提条件

この機能を使用する前に、ドキュメント AI モデルを用意し、 COPY コマンドを実行するユーザーがこのモデルにアクセスできることを確認する必要があります。詳細については、 Document AI をご参照ください。

COPY INTO コマンドの使用

構造化されていないデータを読み込むには、 COPY INTO コマンドに file_processor コピーオプションをつけて使用します。 file_processor コピーオプションのカスタムスキャナのタイプとして document_ai を指定し、スキャナの関連プロパティを指定することができます。

詳細は COPY INTO TABLE 構文 および COPY INTO コピーオプション をご参照ください。

非構造化データをロードするには、ソースステージのタイプをプレビューのステージフォーマットタイプである CUSTOM として指定することをお勧めします。その他のステージフォーマットタイプ (TYPE = { CSV | JSON | AVRO | ORC | PARQUET | XML }) は、後方互換性でサポートされています。

ステージの種類は、ステージを作成する際に file_format パラメータを使用して指定できます。 CUSTOM ステージタイプは、基礎となるステージが非構造化データを保持することを指定し、 FILE_PROCESSOR コピーオプションとともにのみ使用できます。

次の例では、モデル名 predict とモデルバージョン 1 で指定された document_ai 関数で、ステージ custom_stage からテーブル my_table に構造化されていないデータファイルをロードしています。

COPY INTO my_table FROM @custom_stage
  FILE_PROCESSOR = (
    SCANNER = 'document_ai'
    SCANNER_OPTIONS = (project_name = 'DEMO0200', model_name = 'predict' model_version = '1'));
Copy

次の例では、構造化されていないデータファイルをテーブル docai_results にロードし、 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

考慮事項と制約

  • この機能は、以下をサポートしていません。

  • デフォルトの ON_ERROR COPY オプション ON_ERROR = ABORT_STATEMENT のみがサポートされています。他の ON_ERROR オプションを使おうとすると、コンパイルに失敗します。

  • クエリあたりのファイル数は1000を超えることはできません。