(点击上方公号,可快速关注)
将外部数据导入(import)数据库是在数据库应用中一个很常见的需求。其实这就是在数据的管理和操作中的ETL (Extract, transform, load)的L (Load)部分,也就是说,将特定结构(structure)或者格式(format)的数据导入某个目的地(比如数据库,这里我们讨论MySQL)。 本文要讨论的内容,是如何方便地将多种格式(JSON, Text, XML, CSV)的数据导入MySQL之中。 本文大纲:
1. 将Text文件(包括CSV文件)导入MySQL 这里我们的讨论是基于一个假定,Text file和CSV file是有着比较规范的格式的(properly formatted),比如说每行的每个数据域(field)之间是由一个共同的分隔符(比如tab: t)分隔的。 那么首先,你需要根据你的数据的格式(有哪些域),来设计好数据库的对应的表 (的Schema)。 举个例子,要处理的Text文件或者CSV文件是以t作为分隔符的,每行有id, name, balance这么三个数据域,那么首先我们需要在数据库中创建这个表:
创建成功以后就可以导入了。操作方式很简单:
这里要注意的是,我们需要开启local-infile这个MySQL的配置参数,才能够成功导入。究其原因,从MySQL的Manual中可以看到这么一段话:
这是MySQL出于安全考虑的默认配置。因此,我们需要在配置文件my.cnf中(以Debian发行版的Linux, 如Ubuntu为例, 即是在/etc/my.cnf中),确保:
抑或是在命令行启动MySQL时加上local-infile这一项:
此外,我们也可以使用MySQL的一个官方导入程序 mysqlimport,这个程序本质上就是为LOAD DATA FILE提供了一个命令行的inte**ce,很容易理解,我们这里就不再详述。 2. 将XML文件导入MySQL 这件事的完成方式,与我们的XML的形式有着很大的关系。 举个例子说,当你的XML数据文件有着很非常规范的格式,比如: |
|
声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系
[邮箱地址] 删除
|