構造化されていないデータをドキュメント 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'));
次の例では、構造化されていないデータファイルをテーブル 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'));
考慮事項と制約¶
この機能は、以下をサポートしていません。
MATCH_BY_COLUMN_NAME COPY オプション
デフォルトの ON_ERROR COPY オプション
ON_ERROR = ABORT_STATEMENT
のみがサポートされています。他の ON_ERROR オプションを使おうとすると、コンパイルに失敗します。クエリあたりのファイル数は1000を超えることはできません。