infobright导入数据遇到特殊字符报错的解决方法
程序员文章站
2024-02-29 14:24:40
目前在用的是社区版的infobright,不支持dml功能,只能用load data方式导入数据。
如果元数据中有特殊控制字符,导入过程中经常会报错,很是恼火。应对策略有...
目前在用的是社区版的infobright,不支持dml功能,只能用load data方式导入数据。
如果元数据中有特殊控制字符,导入过程中经常会报错,很是恼火。应对策略有两种方法:
1.设置reject file导入之前,设定 @bh_reject_file_path 和 @bh_abort_on_count 就可以忽略多少条导入失败的记录,并且将这些记录保存在指定文件
复制代码 代码如下:
/** when the number of rows rejected reaches 10, abort process **/
set @bh_reject_file_path = '/tmp/reject_file';
set @bh_abort_on_count = 10;
bh_abort_on_count 设定为 -1 的话,表示永不忽略。
也可以设置 bh_abort_on_threshold 选项,该选项表示有最多多少百分比的数据允许被忽略,因此该选项的值是小数格式,例如 bh_abort_on_threshold = 0.03(表示3%)
2.导出时指定结束符此外,还可以在导出数据时制定结束符,并且设定忽略哪些转义字符(\、”、' 等字符),例如:
复制代码 代码如下:
select fields_list... into outfile '/tmp/outfile.csv' fields terminated by '||' escaped by '\\' lines terminated by '\r\n' from mytable;
3.或者,将行间隔符设定为其他特殊标识,例如:select fields_list… into outfile ‘/tmp/outfile.csv' fields terminated by ‘||' escaped by ‘\\' lines terminated by ‘$$$$$\r\n' from mytable;当然了,这种情况下,实际数据行中就不能存在 “$$$$$\r\n” 这个值了,否则会被当成换行标识。
推荐阅读
-
infobright导入数据遇到特殊字符报错的解决方法
-
SQL去除数据库表中tab、空格、回车符等特殊字符的解决方法
-
SQL去除数据库表中tab、空格、回车符等特殊字符的解决方法
-
Ajax传递的数据包含特殊字符时的解决方法
-
innodb_index_stats导入备份数据时报错表主键冲突的解决方法
-
Hive与Oracle之间利用Sqoop进行数据的导入导出时遇到的问题及解决方法
-
数据库查询中遭遇特殊字符导致问题的解决方法
-
innodb_index_stats导入备份数据时报错表主键冲突的解决方法
-
js前端处理过滤特殊字符以及输入法特殊表情符号emoji的正则方法,解决数据库报错问题。
-
Hive与Oracle之间利用Sqoop进行数据的导入导出时遇到的问题及解决方法