使用 Document AI 加载非结构化数据

通过与 Document AI 集成,Snowflake 现在支持加载非结构化数据,类似于加载结构化和半结构化数据。

非结构化数据是不适合预定义数据模型或架构的信息。非结构化数据通常文本繁多,例如表单响应和社交媒体对话,还包括图像、视频和音频。

要使用此预览功能加载非结构化数据,您可以运行带复制选项 file_processor 的相同 COPY INTO 表命令。

先决条件

在使用此功能之前,您必须准备一个 Document AI 模型,并确保运行 COPY 命令的用户有权访问此模型。有关更多信息,请参阅 Document AI

使用 COPY INTO 命令

您可以使用带 file_processor 复制选项的 COPY INTO 命令加载非结构化数据。您可以将 document_ai 指定为 file_processor 复制选项的自定义扫描器类型,并指定扫描器的关联属性。

有关更多信息,请参阅 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。

语言: 中文