使用 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'));
以下示例演示如何将非结构化数据文件加载到表 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。