infobright中导入数据避免特殊字符问题

简介: infobright中导入数据避免特殊字符问题

目前在用的是社区版的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;

  1. 或者,将行间隔符设定为其他特殊标识,例如:
    select fields_list... into outfile '/tmp/outfile.csv' fields terminated by '||' ESCAPED BY '\\' lines terminated by '$$$$$' from mytable;
    当然了,这种情况下,实际数据行中就不能存在 "$$$$$" 这个值了,否则会被当成换行标识。
            </div>
相关文章
|
8月前
|
SQL Oracle 关系型数据库
Oracle查询优化-将字符和数字分离
【2月更文挑战第4天】【2月更文挑战第9篇】将字符和数字分离
70 2
|
8月前
|
SQL Oracle 关系型数据库
Oracle查询优化-查询只包含数字或字母的数据
【2月更文挑战第4天】【2月更文挑战第10篇】查询只包含数字或字母的数据
908 1
|
8月前
|
XML 数据格式
【sqlserver】带分隔符字符串和多行互相转化
【sqlserver】带分隔符字符串和多行互相转化
154 0
|
8月前
|
Oracle 关系型数据库 数据库
Oracle查询优化-按照数字和字母混合字符串中的字母排序
【1月更文挑战第3天】【1月更文挑战第7篇】在对Oracle数据库进行查询优化,尤其是按照数字和字母混合字符串中的字母进行排序时,可以使用多种方法来达到预期的结果。
175 0
|
关系型数据库 MySQL 大数据
【大数据系列之MySQL】(二十):Navicat将表中数据导出到本地csv格式文件
【大数据系列之MySQL】(二十):Navicat将表中数据导出到本地csv格式文件
543 0
【大数据系列之MySQL】(二十):Navicat将表中数据导出到本地csv格式文件
|
BI 数据库
数据库:SQLServer 实现行转列、列转行用法笔记
官方解释:可以使用 PIVOT 和 UNPIVOT 关系运算符将表值表达式更改为另一个表。PIVOT 通过将表达式某一列中的唯一值转换为输出中的多个列来旋转表值表达式,并在必要时对最终输出中所需的任何其余列值执行聚合。UNPIVOT 与 PIVOT 执行相反的操作,将表值表达式的列转换为列值。
数据库:SQLServer 实现行转列、列转行用法笔记
|
SQL 关系型数据库 MySQL
mysql 行列互转
即将原本同一列下多行的不同内容作为多个字段,输出对应内容。
|
SQL 移动开发
infobright中导入数据避免特殊字符问题
infobright中导入数据避免特殊字符问题