云数据库 GAUSSDB-数据存在错误时需要支持容错的导入场景
数据存在错误时需要支持容错的导入场景
当使用COPY或 \COPY命令执行数据导入时,若检测到数据异常,系统将默认终止导入任务。为此, GaussDB 提供了两种容错机制:智能修正模式与严格校验模式。建议优先采用严格校验模式(Level1容错等级),该模式可在保证数据完整性的前提下跳过异常记录并且不会对导入性能影响造成太大的影响。详细信息可参考数据存在错误时的导入操作指南。
以下是严格校验模式Level1容错等级的导入命令:
1 2 3 4 5 6 7 8 9 10 11 |
-- CS V格式 \COPY {data_destination} from '/path/export.txt' log errors reject limit '{limit_num}' encoding {file_encoding} CSV; --BINARY格式 \COPY {data_destination} from '/path/export.txt' log errors reject limit '{limit_num}' encoding {file_encoding} BINARY; --FIXED格式 \COPY {data_destination} from '/path/export.txt' log errors reject limit '{limit_num}' encoding {file_encoding} FIXED; --TEXT格式 \COPY {data_destination} from '/path/export.txt' log errors reject limit '{limit_num}' encoding {file_encoding}; --data_destination 只能是一个表名称 --file_encoding 表示该二进制文件导出时指定的编码格式 --limit_num 表示数据导入时容错行数的上限,一旦此COPY FROM语句错误数据超过选项指定条数,则会按照原有机制报错。 |

如果是普通用户期望使用该特性时,需要对该用户赋权容错特性两张系统表的相关权限,具体SQL如下:
1 2 |
grant insert,select,delete on pgxc_copy_error_log to {user_name}; grant insert,select,delete on gs_copy_summary to {user_name}; |