使用单个COPY命令在MonetDB中批量上传多个CSV文件
MonetDB批量CSV导入方案
MonetDB的COPY命令支持批量导入多个CSV文件,无需多次执行命令,主要有两种实现方式:
1. 直接指定多个文件名(逗号分隔)
可以在FROM子句中用逗号分隔多个文件路径,一次性导入所有指定文件:
COPY INTO target_table FROM '/shared-storage/file1.csv', '/shared-storage/file2.csv', '/shared-storage/file3.csv' USING DELIMITERS ',', '\n', '"' -- 按需调整分隔符、换行符、引号符 HEADER; -- 如果CSV包含表头,添加此选项
2. 使用通配符匹配目录下的所有目标文件
如果目录下的CSV文件符合统一命名规则(比如都是.csv后缀),可以用通配符*批量匹配整个目录下的文件:
COPY INTO target_table FROM '/shared-storage/csv-files/*.csv' USING DELIMITERS ',', '\n', '"' HEADER;
注意事项
- 确保MonetDB服务进程对共享存储卷的目标目录和文件有读权限,否则会出现访问拒绝错误
- 所有待导入的CSV文件必须和目标数据表的字段顺序、数据类型完全匹配,否则会触发导入失败
- 如果文件使用了特殊编码,可通过
ENCODING选项指定,比如ENCODING 'UTF-8'
内容的提问来源于stack exchange,提问作者Vikas Verma
相关产品推荐
相关产品推荐

