2016格力故障代码大全空调b1是什么故障

其他(17)
将外部数据导入(import)数据库是在数据库应用中一个很常见的需求。其实这就是在数据的管理和操作中的ETL (Extract, transform, load)的L (Load)部分,也就是说,将特定结构(structure)或者格式(format)的数据导入某个目的地(比如数据库,这里我们讨论MySQL)。
本文要讨论的内容,是如何方便地将多种格式(JSON, Text, XML, CSV)的数据导入MySQL之中。
本文大纲:
将Text文件(包括CSV文件)导入MySQL
将XML文件导入MySQL
将JSON文件导入MySQL
使用MySQL workbench的Table Data Export and Import Wizard进行JSON或CSV文件的导入导出
1. 将Text文件(包括CSV文件)导入MySQL
这里我们的讨论是基于一个假定,Text file和CSV file是有着比较规范的格式的(properly formatted),比如说每行的每个数据域(field)之间是由一个共同的分隔符(比如tab: t)分隔的。
那么首先,你需要根据你的数据的格式(有哪些域),来设计好数据库的对应的表 (的Schema)。
举个例子,要处理的Text文件或者CSV文件是以t作为分隔符的,每行有id, name, balance这么三个数据域,那么首先我们需要在数据库中创建这个表:
CREATE TABLE sometable(id INT, name VARCHAR(255), balance DECIMAL(8,4));
创建成功以后就可以导入了。操作方式很简单:
LOAD DATA LOCAL INFILE '你的文件路径(如~/file.csv)' &INTO TABLE sometable FIELDS TERMINATED BY 't' [ENCLOSED BY '&'(可选)] LINES TERMINATED BY 'n' (id, name, balance)
这里要注意的是,我们需要开启local-infile这个MySQL的配置参数,才能够成功导入。究其原因,从MySQL的Manual中可以看到这么一段话:
LOCAL works only if your server and your client both have been configured to permit it. For example, if mysqld was started with –local-infile=0, LOCAL does not work. See Section 6.1.6, “Security Issues with LOAD DATA
这是MySQL出于安全考虑的默认配置。因此,我们需要在配置文件my.cnf中(以Debian发行版的Linux, 如Ubuntu为例, 即是在/f中),确保:
local-infile=1
抑或是在命令行启动MySQL时加上–local-infile这一项:
mysql --local-infile -uroot -pyourpwd yourdbname
此外,我们也可以使用MySQL的一个官方导入程序 mysqlimport,这个程序本质上就是为LOAD DATA FILE提供了一个命令行的interface,很容易理解,我们这里就不再详述。
2. 将XML文件导入MySQL
这件事的完成方式,与我们的XML的形式有着很大的关系。
举个例子说,当你的XML数据文件有着很非常规范的格式,比如:
&?xml version=&1.0&?&
& &&field name=&id&&1&/field&
& &&field name=&name&&Free&/field&
& &&field name=&balance&&&/field&
& &&field name=&id&&2&/field&
& &&field name=&name&&Niki&/field&
& &&field name=&balance&&&/field&
&row column1=&value1& column2=&value2& .../&
我们就可以很方便使用LOAD XML来导入,这里可以参见MySQL的官方手册–LOAD XML Syntax。 然而我们可能有另外一些需求,比如说,我们可能会想要将XML文件的域映射到不同名字的列(TABLE COLUMN)之中。这里要注意,MySQL v5.0.7以后,MySQL的Stored Procedure中不能再运行LOAD XML INFILE 或者LOAD DATA INFILE。所以转换的程序(procedure)的编写方式与在此之前有所不同。这里,我们需要使用Load_File()和ExtractValue()这两个函数。
以下是一个示例XML文件和程序:
&?xml version=&1.0&?&
&some_list&
&&someone id=&1& fname=&Rob& lname=&Gravelle&/&
&&someone id=&2& fname=&Al& lname=&Bundy&/&
&&someone id=&3& fname=&Little& lname=&Richard&/&
&/some_list&
DELIMITER $$
CREATE DEFINER=`root`@`localhost` PROCEDURE `import_some_xml`(path varchar(255), node varchar(255))
& &declare xml_
& &declare v_row_index int unsigned default 0; & &
& &declare v_row_ &
& &declare v_xpath_row varchar(255); &
& &set xml_content = load_file(path);
& &-- calculate the number of row elements. & &
& &set v_row_count &= extractValue(xml_content, concat('count(', node, ')')); &
& &-- loop through all the row elements & &
& &while v_row_index & v_row_count do & & & & & & & &
& & & &set v_row_index = v_row_index + 1; & & & &
& & & &set v_xpath_row = concat(node, '[', v_row_index, ']/@*');
& & & &insert into applicants values (
& & & & & &extractValue(xml_content, concat(v_xpath_row, '[1]')),
& & & & & &extractValue(xml_content, concat(v_xpath_row, '[2]')),
& & & & & &extractValue(xml_content, concat(v_xpath_row, '[3]'))
我们知道MySQL的命令分隔符默认为分号,然而脚本中很显然是有分号的,但是我们并不希望立即执行,所以我们需要临时更改分隔符。
3. 将JSON文件导入MySQL
如何将JSON文件导入MySQL中,是一个很有趣的话题。JSON是一种现在相当常用的文件结构,所以掌握它的导入具有比较广泛的意义。
很多时候,我们处理的JSON数据是以如下形式出现的:
{&name&:&Julia&,&gender&:&female&}
{&name&:&Alice&,&gender&:&female&}
{&name&:&Bob&,&gender&:&male&}
{&name&:&Julian&,&gender&:&male&}
而并不是规整的[{},{},{},{}](一些NoSQL数据库的Export)。
这样的形势对于载入有一个好处:因为每一行是一个JSON Object,所以我们便可以按行处理此文件,而不需要因为JSON的严格结构将整个文件(比如一个许多G的.json文件)全部载入。
方式一 使用common-schema
common-schema是一个应用很广泛的MySQL的框架,它有着很丰富的功能和详细的文档。我们可以使用它的JSON解析的功能。(它还具有JSON转换成XML等等方便的功能)
具体说来,将common-schema导入之后,使用它的extract_json_value函数即可。源码中:
create function extract_json_value(
& &json_text text charset utf8,
& &xpath text charset utf8
) returns text charset utf8
该函数接受两个参数,一个是json_text,表示json文件的内容,另一个是xpath,表示数据的结构(这里可以类比XML文件的处理)。很多读者应该知道,XPath是用来对XML中的元素进行定位的,这里也可以作一样的理解。
以本段开始的几行JSON为例,这里common-schema的使用如下例:
select common_schema.extract_json_value(f.event_data,'/name') as name, common_schema.extract_json_value(f.event_data,'/gender') as gender, sum(f.event_count) as event_count from json_event_fact f group by name,
关于event_data,我们需要先理解LOAD DATA INFILE是一个event,不同的event type对应不同的event data。这部分知识可以参看Event Data for Specific Event Types
如果感兴趣,可以参看其源码。参看一个受到广泛使用的项目的源码,对于自身成长是很有益的。
当然了,我们也可以像之前处理XML文件导入一样,自己编写程序。这里便不再给出实例程序,有兴趣的读者可以自行编写或者跟笔者交流。
方式二 使用mysqljsonimport
这是Anders Karlsson的一个完成度很高的作品。这一份程序由C写成。它依赖于一个JSON Parser,Jansson。他们都有着比较好的维护和文档,所以使用上体验很好。
mysqljsonimport的下载在SourceForge上。具体使用参照其文档即可。
为了方便不熟悉源码安装的朋友,笔者在这里提一下安装流程和注意事项。
安装命令顺序如下:
$ wget http://sourceforge.net/projects/mysqljson/files/myjsonimport_1.6/mysqljsonimport-1.6.tar.gz &
$ tar xvfz mysqljsonimport-1.6.tar.gz &
$ cd mysqljsonimport-1.6 &
$ ./configure –-with-mysql=/xxx/mysql &
$ make check &
$ sudo make install
--with-mysql这一步不是必要的,只要你安装的mysql的路径是系统的默认路径。很关键的,而且很容易被不熟悉的朋友忽略的是,这一个C程序要成功编译和运行,是需要MySQL的C API的,所以需要安装的依赖,除了jansson,还有libmysqlclient-dev。
jansson的安装就是简单的源码安装,libmysqlclient-dev则可以使用包管理工具(比如ubuntu中使用apt-get即可;编译和安装前,建议先sudo apt-get update以避免不必要的麻烦)。
导入命令:
$ ./mysqljsonimport –-database test –-table tablename jsonfilename
还有一个parser,作者是Kazuho,感兴趣的读者可以参看一下,他的相关博文是mysql_json – a MySQL UDF for parsing JSON ,github项目是mysql_json。
4. 使用MySQL workbench
Workbench这个工具对于许多不熟悉SQL语言或者命令行的朋友还是很方便和友好的。利用它,可以方便地导入和导出CSV和JSON文件。
具体操作图例参见MySQL官方手册即可:Table Data Export and Import Wizard,这里不再赘述。
本文介绍了将不同格式(JSON, Text, XML, CSV)的文件导入MySQL数据库的一些详细手段,并进行了一些分析,目的在于帮助读者扫除一些导入的障碍,理清一些概念。之所以没有讨论导出,是因为导出是一个MySQL到外的操作,是以MySQL本身为转移的,只要参考MySQL本身的机理即可。
真正对于大量数据的导入导出,需要思考的问题会很多(比如说在导入时,如何考虑Sharding,这需要另开一篇讨论了。
将外部数据导入(import)数据库是在数据库应用中一个很常见的需求。其实这就是在数据的管理和操作中的ETL (Extract, transform, load)的L (Load)部分,也就是说,将特定结构(structure)或者格式(format)的数据导入某个目的地(比如数据库,这里我们讨论MySQL)。
本文要讨论的内容,是如何方便地将多种格式(JSON, Text, XML, CSV)的数据导入MySQL之中。
本文大纲:
将Text文件(包括CSV文件)导入MySQL
将XML文件导入MySQL
将JSON文件导入MySQL
使用MySQL workbench的Table Data Export and Import Wizard进行JSON或CSV文件的导入导出
1. 将Text文件(包括CSV文件)导入MySQL
这里我们的讨论是基于一个假定,Text file和CSV file是有着比较规范的格式的(properly formatted),比如说每行的每个数据域(field)之间是由一个共同的分隔符(比如tab: t)分隔的。
那么首先,你需要根据你的数据的格式(有哪些域),来设计好数据库的对应的表 (的Schema)。
举个例子,要处理的Text文件或者CSV文件是以t作为分隔符的,每行有id, name, balance这么三个数据域,那么首先我们需要在数据库中创建这个表:
CREATE TABLE sometable(id INT, name VARCHAR(255), balance DECIMAL(8,4));
创建成功以后就可以导入了。操作方式很简单:
LOAD DATA LOCAL INFILE '你的文件路径(如~/file.csv)' &INTO TABLE sometable FIELDS TERMINATED BY 't' [ENCLOSED BY '&'(可选)] LINES TERMINATED BY 'n' (id, name, balance)
这里要注意的是,我们需要开启local-infile这个MySQL的配置参数,才能够成功导入。究其原因,从MySQL的Manual中可以看到这么一段话:
LOCAL works only if your server and your client both have been configured to permit it. For example, if mysqld was started with –local-infile=0, LOCAL does not work. See Section 6.1.6, “Security Issues with LOAD DATA
这是MySQL出于安全考虑的默认配置。因此,我们需要在配置文件my.cnf中(以Debian发行版的Linux, 如Ubuntu为例, 即是在/f中),确保:
local-infile=1
抑或是在命令行启动MySQL时加上–local-infile这一项:
mysql --local-infile -uroot -pyourpwd yourdbname
此外,我们也可以使用MySQL的一个官方导入程序 mysqlimport,这个程序本质上就是为LOAD DATA FILE提供了一个命令行的interface,很容易理解,我们这里就不再详述。
2. 将XML文件导入MySQL
这件事的完成方式,与我们的XML的形式有着很大的关系。
举个例子说,当你的XML数据文件有着很非常规范的格式,比如:
&?xml version=&1.0&?&
& &&field name=&id&&1&/field&
& &&field name=&name&&Free&/field&
& &&field name=&balance&&&/field&
& &&field name=&id&&2&/field&
& &&field name=&name&&Niki&/field&
& &&field name=&balance&&&/field&
&row column1=&value1& column2=&value2& .../&
我们就可以很方便使用LOAD XML来导入,这里可以参见MySQL的官方手册–LOAD XML Syntax。 然而我们可能有另外一些需求,比如说,我们可能会想要将XML文件的域映射到不同名字的列(TABLE COLUMN)之中。这里要注意,MySQL v5.0.7以后,MySQL的Stored Procedure中不能再运行LOAD XML INFILE 或者LOAD DATA INFILE。所以转换的程序(procedure)的编写方式与在此之前有所不同。这里,我们需要使用Load_File()和ExtractValue()这两个函数。
以下是一个示例XML文件和程序:
&?xml version=&1.0&?&
&some_list&
&&someone id=&1& fname=&Rob& lname=&Gravelle&/&
&&someone id=&2& fname=&Al& lname=&Bundy&/&
&&someone id=&3& fname=&Little& lname=&Richard&/&
&/some_list&
DELIMITER $$
CREATE DEFINER=`root`@`localhost` PROCEDURE `import_some_xml`(path varchar(255), node varchar(255))
& &declare xml_
& &declare v_row_index int unsigned default 0; & &
& &declare v_row_ &
& &declare v_xpath_row varchar(255); &
& &set xml_content = load_file(path);
& &-- calculate the number of row elements. & &
& &set v_row_count &= extractValue(xml_content, concat('count(', node, ')')); &
& &-- loop through all the row elements & &
& &while v_row_index & v_row_count do & & & & & & & &
& & & &set v_row_index = v_row_index + 1; & & & &
& & & &set v_xpath_row = concat(node, '[', v_row_index, ']/@*');
& & & &insert into applicants values (
& & & & & &extractValue(xml_content, concat(v_xpath_row, '[1]')),
& & & & & &extractValue(xml_content, concat(v_xpath_row, '[2]')),
& & & & & &extractValue(xml_content, concat(v_xpath_row, '[3]'))
我们知道MySQL的命令分隔符默认为分号,然而脚本中很显然是有分号的,但是我们并不希望立即执行,所以我们需要临时更改分隔符。
3. 将JSON文件导入MySQL
如何将JSON文件导入MySQL中,是一个很有趣的话题。JSON是一种现在相当常用的文件结构,所以掌握它的导入具有比较广泛的意义。
很多时候,我们处理的JSON数据是以如下形式出现的:
{&name&:&Julia&,&gender&:&female&}
{&name&:&Alice&,&gender&:&female&}
{&name&:&Bob&,&gender&:&male&}
{&name&:&Julian&,&gender&:&male&}
而并不是规整的[{},{},{},{}](一些NoSQL数据库的Export)。
这样的形势对于载入有一个好处:因为每一行是一个JSON Object,所以我们便可以按行处理此文件,而不需要因为JSON的严格结构将整个文件(比如一个许多G的.json文件)全部载入。
方式一 使用common-schema
common-schema是一个应用很广泛的MySQL的框架,它有着很丰富的功能和详细的文档。我们可以使用它的JSON解析的功能。(它还具有JSON转换成XML等等方便的功能)
具体说来,将common-schema导入之后,使用它的extract_json_value函数即可。源码中:
create function extract_json_value(
& &json_text text charset utf8,
& &xpath text charset utf8
) returns text charset utf8
该函数接受两个参数,一个是json_text,表示json文件的内容,另一个是xpath,表示数据的结构(这里可以类比XML文件的处理)。很多读者应该知道,XPath是用来对XML中的元素进行定位的,这里也可以作一样的理解。
以本段开始的几行JSON为例,这里common-schema的使用如下例:
select common_schema.extract_json_value(f.event_data,'/name') as name, common_schema.extract_json_value(f.event_data,'/gender') as gender, sum(f.event_count) as event_count from json_event_fact f group by name,
关于event_data,我们需要先理解LOAD DATA INFILE是一个event,不同的event type对应不同的event data。这部分知识可以参看Event Data for Specific Event Types
如果感兴趣,可以参看其源码。参看一个受到广泛使用的项目的源码,对于自身成长是很有益的。
当然了,我们也可以像之前处理XML文件导入一样,自己编写程序。这里便不再给出实例程序,有兴趣的读者可以自行编写或者跟笔者交流。
方式二 使用mysqljsonimport
这是Anders Karlsson的一个完成度很高的作品。这一份程序由C写成。它依赖于一个JSON Parser,Jansson。他们都有着比较好的维护和文档,所以使用上体验很好。
mysqljsonimport的下载在SourceForge上。具体使用参照其文档即可。
为了方便不熟悉源码安装的朋友,笔者在这里提一下安装流程和注意事项。
安装命令顺序如下:
$ wget http://sourceforge.net/projects/mysqljson/files/myjsonimport_1.6/mysqljsonimport-1.6.tar.gz &
$ tar xvfz mysqljsonimport-1.6.tar.gz &
$ cd mysqljsonimport-1.6 &
$ ./configure –-with-mysql=/xxx/mysql &
$ make check &
$ sudo make install
--with-mysql这一步不是必要的,只要你安装的mysql的路径是系统的默认路径。很关键的,而且很容易被不熟悉的朋友忽略的是,这一个C程序要成功编译和运行,是需要MySQL的C API的,所以需要安装的依赖,除了jansson,还有libmysqlclient-dev。
jansson的安装就是简单的源码安装,libmysqlclient-dev则可以使用包管理工具(比如ubuntu中使用apt-get即可;编译和安装前,建议先sudo apt-get update以避免不必要的麻烦)。
导入命令:
$ ./mysqljsonimport –-database test –-table tablename jsonfilename
还有一个parser,作者是Kazuho,感兴趣的读者可以参看一下,他的相关博文是mysql_json – a MySQL UDF for parsing JSON ,github项目是mysql_json。
4. 使用MySQL workbench
Workbench这个工具对于许多不熟悉SQL语言或者命令行的朋友还是很方便和友好的。利用它,可以方便地导入和导出CSV和JSON文件。
具体操作图例参见MySQL官方手册即可:Table Data Export and Import Wizard,这里不再赘述。
本文介绍了将不同格式(JSON, Text, XML, CSV)的文件导入MySQL数据库的一些详细手段,并进行了一些分析,目的在于帮助读者扫除一些导入的障碍,理清一些概念。之所以没有讨论导出,是因为导出是一个MySQL到外的操作,是以MySQL本身为转移的,只要参考MySQL本身的机理即可。
真正对于大量数据的导入导出,需要思考的问题会很多(比如说在导入时,如何考虑Sharding,这需要另开一篇讨论了。
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:2478次
排名:千里之外
转载:60篇查看: 290|回复: 8
请问,CSV文件映射列wish属性时,列名称那无法对应
主题帖子积分
wish新手, 积分 48, 距离下一级还需 152 积分
wish新手, 积分 48, 距离下一级还需 152 积分
注册wish会员可以获取很多wish教程资料
才可以下载或查看,没有帐号?
wish·.jpg (241.18 KB, 下载次数: 0)
21:34 上传
&&j2 j: \5 k: x8 R
! _# A0 H8 b, K2 f/ d) P
请问,为什么我点击时只能不能打字,我得列名称的下拉选项要么整排,要么空白,无法对应,感谢好人指导下啊。。。。。。。4 D: F3 Q: l9 v. u
当他人从你分享的链接访问本页面时,每一个访问者的点击,你将获得[2WS币]的奖励,一个IP计算一次.
欧美饰品厂家直销,货源庄家;可国内跨境一件代发
主题帖子积分
wish新手, 积分 48, 距离下一级还需 152 积分
wish新手, 积分 48, 距离下一级还需 152 积分
还是我自己聪明啊,找到方法了,
欧美饰品厂家直销,货源庄家;可国内跨境一件代发
主题帖子积分
wish上路, 积分 421, 距离下一级还需 79 积分
wish上路, 积分 421, 距离下一级还需 79 积分
终于出单了 哈哈
欧美饰品厂家直销,货源庄家;可国内跨境一件代发
主题帖子积分
wish专家, 积分 2662, 距离下一级还需 338 积分
wish专家, 积分 2662, 距离下一级还需 338 积分
路过过过过过个
欧美饰品厂家直销,货源庄家;可国内跨境一件代发
主题帖子积分
wish上路, 积分 288, 距离下一级还需 212 积分
wish上路, 积分 288, 距离下一级还需 212 积分
新手探路,飘过
欧美饰品厂家直销,货源庄家;可国内跨境一件代发
主题帖子积分
wish上路, 积分 308, 距离下一级还需 192 积分
wish上路, 积分 308, 距离下一级还需 192 积分
做wish还是需要坚持上产品
欧美饰品厂家直销,货源庄家;可国内跨境一件代发
主题帖子积分
wish新手, 积分 93, 距离下一级还需 107 积分
wish新手, 积分 93, 距离下一级还需 107 积分
请问找到方法了吗?我也碰到一样的问题
欧美饰品厂家直销,货源庄家;可国内跨境一件代发
主题帖子积分
wish新手, 积分 2, 距离下一级还需 198 积分
wish新手, 积分 2, 距离下一级还需 198 积分
怎么弄啊, 我也这样
欧美饰品厂家直销,货源庄家;可国内跨境一件代发
主题帖子积分
wish新手, 积分 68, 距离下一级还需 132 积分
wish新手, 积分 68, 距离下一级还需 132 积分
赚个wish币就走 嘿嘿
欧美饰品厂家直销,货源庄家;可国内跨境一件代发
站长推荐 /1
wishbbs官方教程,新手注册账号、了解后台、发布产品、订单处理等问题
Powered by Discuz X3.2字段类型映射,我要把列映射成自定义类集合,如何实现?.这个字段是一个字符串形式,保存的是ID,如“12:1$13:2$46:5”,表示这个订单里有ID为12 13 46三种产品,其中每种产品分别有1
5个。现在Linq to Sql产生的数据类中,订单类Order的Products字段是string类型,产品类是ProductInfo。通过修改属性,我把Order.Products的类型设置成了List&ProductInfo&,但使用GridView显示数据的时候提示无法将String类型转化为List&ProductInfo&,请问这个如何解决?--------------------------------------------------------------还是改回去吧从取出来后在自己按分隔符拆成list吧------解决方案--------------------------------------------------------sql server里写个函数,可以在linq里用或用linq,select出后再遍历拆------解决方案--------------------------------------------------------建议你把产品详细信息单独再建一个表用来,并且和订单号做好主键的约束关系,这样他才是一个对象,才能体现面向对象的关系。wilocw-surf_map-067ad0e MATLAB脚本和演示住将列CSV数据映射到三维表面和想象,可运行 3D Graphic 3D图形编程 274万源代码下载-
&文件名称: wilocw-surf_map-067ad0e& & [
& & & & &&]
&&所属分类:
&&开发工具: matlab
&&文件大小: 794 KB
&&上传时间:
&&下载次数: 0
&&提 供 者:
&详细说明:MATLAB脚本和演示住将列CSV数据映射到三维表面和想象,可运行-MATLAB live script and demo for mapping column CSV data into 3-D surface and visualising it
文件列表(点击判断是否您需要的文件,如果是垃圾请在下面评价投诉):
&&wilocw-surf_map-067ad0e&&.......................\README.md&&.......................\doc.html&&.......................\doc.pdf&&.......................\example_data.csv&&.......................\example_surface.png&&.......................\html&&.......................\....\surf_map.html&&.......................\....\surf_map.pdf&&.......................\....\surf_map.png&&.......................\....\surf_map_01.png&&.......................\....\surf_map_02.png&&.......................\....\surf_map_03.png&&.......................\....\surf_map_04.png&&.......................\....\surf_map_05.png&&.......................\....\surf_map_eq.png&&.......................\....\surf_map_eq.png&&.......................\license&&.......................\run_for_help.m&&.......................\surf_map.m&&.......................\surf_map.mlx
&输入关键字,在本站274万海量源码库中尽情搜索:

我要回帖

更多关于 2016格力故障代码大全 的文章

 

随机推荐