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 ‘$$$$$\r\n’ from mytable;当然了,这种情况下,实际数据行中就不能存在 “$$$$$\r\n” 这个值了,否则会被当成换行标识。

--------------------------------------分割线--------------------------------------

知数堂 (http://zhishuedu.com)培训是由资深MySQL专家叶金荣、吴炳锡联合推出的专业优质培训品牌,主要有MySQL DBA实战优化和Python运维开发课程,是业内最有良心、最有品质的培训课程。

本文出自 “老叶茶馆” 博客,请务必保留此出处http://imysql.blog.51cto.com/1540006/1879883

时间: 2024-10-23 07:47:59

infobright中导入数据避免特殊字符问题的相关文章

中文 数据库 乱码 excel中导入数据到mysql 问题

数据库编码  表编码  ide编码 必须一致,即可解决问题 场景:把这些数据导入数据库,并且得到城市名称拼音的首字母 从excel中导入数据到mysql,使用了jxl这个库 使用了pinyin4这个库,但是发现有bug import java.io.UnsupportedEncodingException; import java.sql.Connection;import java.sql.DriverManager;import java.sql.SQLException;import ja

【ADO.NET】3、从TXT中导入数据到数据库

private void btnInput_Click(object sender, EventArgs e) { if (opFile.ShowDialog() != DialogResult.OK) //判断用户点击 确定 还是 取消,不点确定,则返回程序 { return; } using(FileStream FStream = File.OpenRead(opFile.FileName)) //打开文件进行读取 { //定义字符编码为GB2312 using (StreamReader

solr6.6教程-从mysql数据库中导入数据(三)

整理多半天的solr6.6,终于算是把solr6.6中配置数据库弄出来了,网上的文章千篇一律,各说个的,没有一篇统一覆盖solr6.6版本配置的 帖子,本章节我会把配置的一些注意事项一一列举,由于时间原因,本片只介绍如何一次性导入数据,不附带增量导入,想看增量的同学可以在后面的文章中. 1,配置准备 本文的前提是你已经配置好了solr,并新创建了一个core,我们下面都会按照前一篇文章中的core_demo为基础开始 2,修改soreconfig.xml 在soreconfig.xml的<req

elasticsearch river 从数据库中导入数据

Elasticsearch中使用reiver-jdbc导入数据 2014-05-13 15:10 本站整理 浏览(3384) Elasticsearch中使用reiver-jdbc导入数据,有需要的朋友可以参考下. Elastisearch中提供了river模块来从其他数据源中获取数据,该项功能以插件的形式存在,目前已有的river插件包括: river pluginsedit 1. Supported by Elasticsearch CouchDB River Plugin RabbitMQ

从S3中导入数据到Dynamodb

本节如果你已经从Dynamodb中导出过数据,而且导出的文件以及被存入S3.文件内部结构会在Verify Data Export File 中描写叙述. 我们称之前导出数据的原始表为source table,数据将要被导入的表为destination table.你能够将S3中的导出文件导入到dynamodb的表中.可是要先确保满足以下条件: The destination table 已经存在. (导入任务不会为你创建表) The destination table 与 source tabl

solr4从mysql数据库中导入数据

实际项目中,我们需要把已存在于数据库中的数据导入到solr索引库中,solr给我们提供了一个非常简便的方式DIH,下面我们以mysql数据为例. 1.进入你的core(如collection1),新建一个目录lib. 2.拷贝mysql-connector-java-5.1.14.jar到新建的lib目录中. 3.从solr的解压文件目录中找到“E:\solrbase\example-DIH\solr\db\conf”下的db-data-config.xml文件到你的core(如collecti

从MySQL向Greenplum集群中导入数据

我们要从MySQL当中导出数据到Greenplum当中,按照以下步骤就可以 1:将MySQL当中的表导出外部文件 以schema_name.table_name为例 select product_id, number, name, english_name, purchase_name, system_name, bar_code, category_one, category_two, category_three, parent_id, parent_number, brand_id, su

Elasticsearch --- 向es中导入数据

一.从文件导入(用django启动) def zi_dr(request): f = open('c.txt', 'r', encoding='utf-8') action = [ { "_index": "c12", "_type": "doc", "_source": { "title": i.strip(), # 去掉 空 } } for i in f] s = time.time

python从Microsoft Excel文件中导入数据

excel中后缀为csv和xls,二者区别如下:1.xls 文件就是Microsoft excel电子表格的文件格式.2.csv是最通用的一种文件格式,它可以非常容易地被导入各种PC表格及数据库中. 此文件,一行即为数据表的一行.生成数据表字段用半角逗号隔开.csv是文本文件,用记事本就能打开,XLS是二进制的文件只有用EXCEL才能打csv文件是以逗号为分隔符号,将各字段列分离出的一种ASCII文件.csv(*.csv) 文件格式只能保存活动工作表中的单元格所显示的文本和数值.工作表中所有的数