COPY FILES INTO VOLUME
功能概述
把一个 Volume 中已有的文件原样复制到另一个 Volume(保留文件内容,不解析、不转换格式)。常用于在外部 Volume(OSS/COS/S3)、Managed Volume、USER VOLUME、TABLE VOLUME 之间搬运文件,例如把对象存储中的归档文件转存到表暂存区再导入,或在不同 Volume 之间做备份。
与
COPY INTO VOLUME(把表或查询结果导出为文件)不同:本命令的源和目标都是 Volume,按文件原样复制,不涉及表数据,也不指定 FILE_FORMAT。
语法
参数说明
-
目标 Volume(
):三种 Volume 类型任选其一。INTO
:外部 Volume(OSS/COS/S3)或 Managed Volume。VOLUME <volume_name>
:指定表的暂存 Volume。TABLE VOLUME <table_name>
:当前用户的 USER VOLUME。USER VOLUME
:可选,目标子目录;省略时写入目标 Volume 根目录。SUBDIRECTORY '<dest_path>'
-
源 Volume(
):三种 Volume 类型任选其一,可与目标类型不同(支持跨类型复制)。FROM
:可选,只复制源 Volume 指定子目录下的文件。SUBDIRECTORY '<src_path>'
-
文件筛选(
与FILES
二选一,均可省略):REGEXP
:按文件名精确指定,文件名相对源(子)目录。列表中任一文件不存在,整个操作失败并报FILES = ( '<file_name>' [, ...] )
。CZLH-70002: File not found
:按文件相对路径做正则匹配。REGEXP = '<pattern>'
返回结果说明
执行成功后返回单列
file,列出每个被复制文件在源 Volume 中的相对路径。
注意事项
关键字必填:FILES
与COPY
之间必须写INTO
。写成FILES
会被当作表导出语法而报语法错误。COPY INTO VOLUME ... FROM VOLUME- 默认覆盖:目标 Volume 中同名文件会被覆盖,重复执行幂等;本命令没有
关键字。OVERWRITE - 目标路径只保留文件名:复制到目标时不保留源子目录层级,文件落在目标
之下。SUBDIRECTORY - 源文件不存在即失败:
列表里任一文件在源中不存在,整条命令失败。FILES
使用示例
前置准备:创建两个 Volume,并往源 Volume 放入文件。
复制单个文件(最简形式):
复制多个文件到指定子目录:
用正则匹配复制(注意
REGEXP = 带等号):
从源 Volume 的子目录复制(返回的
file 是源相对路径):
不指定筛选条件时,递归复制源 Volume 下的全部文件:
跨 Volume 类型复制——把外部 Volume 的文件复制到 USER VOLUME:
把文件复制到表的 TABLE VOLUME 暂存区,便于随后用 COPY INTO 导入:
用
SHOW VOLUME DIRECTORY 验证复制结果:
相关文档
- 导出数据到 VOLUME - COPY INTO VOLUME:把表或查询结果导出为文件到 Volume
- 从 VOLUME 导入数据到表 - COPY INTO TABLE:把 Volume 中的文件导入表中
- Volume 介绍:Volume 的概念和操作
联系我们
