2013-05-08 3 views
1

csv 파일을 MYSQL로 가져 오려고하는데 다음 스키마가 있습니다.mysql에 데이터가있는 csv 파일 가져 오기

CREATE TABLE `monitor` (
`id` bigint(20) NOT NULL AUTO_INCREMENT, 
`time` time DEFAULT NULL, 
`domain_name` text, 
`cpu_ns` int(11) DEFAULT NULL, 
`cpu_percentage` int(11) DEFAULT NULL, 
`mem_bytes` int(11) DEFAULT NULL, 
`mem_percentage` int(11) DEFAULT NULL, 
`block_rdby` int(11) DEFAULT NULL, 
`block_wrby` int(11) DEFAULT NULL, 
`net_rxby` int(11) DEFAULT NULL, 
`net_wrby` int(11) DEFAULT NULL, 
PRIMARY KEY (`id`) 
) ENGINE=InnoDB DEFAULT CHARSET=latin1 

다음과 같은 데이터가있는 파일을 가져 오는 중에 문제가 발생합니다.

16:48:27,2,s-1-VM,220000000.,0.448204684384,262144,0,0,0,60,0 
16:48:30,2,s-1-VM,260000000.,0.528932926209,262144,0,0,16384,300,0 
16:48:33,2,s-1-VM,300000000.,0.609786677944,262144,0,0,0,180,0 
16:48:37,2,s-1-VM,290000000.,0.59000206364,262144,0,0,16384,120,0 
16:48:40,2,s-1-VM,270000000.,0.54985661784,262144,0,0,0,649,425 
16:48:43,2,s-1-VM,310000000.,0.631207212346,262144,0,0,0,180,0 
16:48:46,2,s-1-VM,220000000.,0.44728232907,262144,0,0,20480,60,0 
16:48:49,2,s-1-VM,200000000.,0.407008216196,262144,0,0,0,300,0 
16:48:52,2,s-1-VM,250000000.,0.508946559213,262144,0,0,0,240,0 
16:48:55,2,s-1-VM,240000000.,0.488674160215,262144,0,0,0,120,0 

어떻게 내 데이터베이스로 가져올 수 있습니까?

나는 다음을 시도해 보았고 많은 경고를 받았다.

LOAD DATA LOCAL INFILE '/tmp/domain2.csv' INTO TABLE vtop FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n'; 

귀하의 도움에 감사드립니다. 내가 제대로 http://dev.mysql.com/doc/refman/5.1/de/load-data.html을 이해한다면

는 명령문의 끝에서

"SET id=NULL " 

을 통해 (즉,이 AUTO_INCREMENT 수) null로 ID를 설정해야합니다, 당신

답변

3

감사드립니다. 그렇지 않으면 열 개수와 열 순서가 완벽하게 일치해야합니다.

그러나 열이 전혀 일치하지 않습니다 (위치 2의 "2"는 무엇입니까?). 따라서 CSV 구조로 임시 테이블을 만든 다음 삽입을 통해 할당 ... 일치하는 열을 선택하십시오.

+0

이상한 두 번째 열에주의하십시오. 테이블에 필요하지 않은 경우 dummy1과 같은 변수에 넣으십시오 (시간, @ dummy1, 도메인 이름, cpu_ns ...) – flaschenpost

+0

ID에 대한 권리가 있습니다. , 그리고 컬럼과 스키마에서의 실수에 대해서! 큰 감사합니다! – Deano

0

MySQL이 인공 지능이 아니기 때문에 16:48:27time 필드에 들어가야한다는 것을 알 수 없습니다. 대신 id에 넣으려고합니다.

당신은 그들이 테이블에 가야 명시 적으로 필드에 CSV 파일의 열을 매핑 할 필요가

: 다른 답변에 주어진 나는 아직 열 이름을 나열 할 수있는 가능성을 알고하지 않은

LOAD DATA .... (time, domain_name, x, y, z, foo, bar)