1

csv ファイルを MYSQL にインポートしようとしていますが、次のスキーマがあります。

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';

あなたの助けは大歓迎です。

ありがとうございました

4

2 に答える 2

3

http://dev.mysql.com/doc/refman/5.1/de/load-data.htmlを正しく理解している場合は、ID を null (auto_increment にする) に設定する必要があります。

"SET id=NULL " 

声明の最後に。それ以外の場合、列の数と列の順序は完全に一致する必要があります。

しかし、列がまったく一致しません (位置 2 の「2」は何ですか?)。したがって、CSV の構造を使用して一時テーブルを作成し、挿入を介して割り当てます ... 一致する列を選択します。

于 2013-05-08T21:46:06.207 に答える
0

MySQL は AI ではないので16:48:27、フィールドに入れるべきものを理解できません。代わりtimeに、それを詰め込もうとしますid

CSV ファイルの列を、テーブルに入力する必要があるフィールドに明示的にマップする必要があります。

LOAD DATA .... (time, domain_name, x, y, z, foo, bar) 
于 2013-05-08T21:48:04.987 に答える