Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- $ ./load_data.sh sampledata_CRLF.csv.gz
- count: 4
- 1 Tokyo POINT(139.7541618 35.6822589)
- 2 Osaka POINT(135.5001783 34.6914242)
- 3 Kyoto POINT(135.7620049 35.0166064)
- 4 Nagoya POINT(136.9019222 35.1830687)
- $ cat load_data.sh
- #!/bin/sh
- USER="root"
- PASSWORD=""
- DATABASE=""
- DAT_INFILE_GZ=$1
- FIFO="/tmp/dat.named_pipe"
- [ -z `pidof mysqld` ] && (echo "Please start mysqld: mysql.server start"; exit 1)
- [ ! -e ${FIFO} ] && mkfifo ${FIFO}
- gzcat < ${DAT_INFILE_GZ} | nkf --guess
- gzcat < ${DAT_INFILE_GZ} > ${FIFO} &
- mysql -u${USER} -p${PASSWORD} -D ${DATABASE} -N -B 2>/dev/null << EOS
- CREATE TEMPORARY TABLE temp_table (
- no integer,
- city text,
- location geometry not null,
- SPATIAL INDEX (location)
- ) ENGINE=MyISAM;
- SET @i=0;
- LOAD DATA LOCAL INFILE '$FIFO'
- INTO TABLE temp_table
- FIELDS TERMINATED BY ','
- LINES TERMINATED BY '\r\n'
- IGNORE 1 LINES
- # ENCLOSED BY '"'
- (@a,@b,@c,@d)
- SET no=(@i:=@i+1), city=@a, location=st_geomfromtext(concat('point(',@c,' ',@d,')'));
- SELECT 'count:', count(location) from temp_table;
- SELECT no, city, st_astext(location) from temp_table;
- # SHOW CREATE TABLE temp_table;
- EOS
- exit $?
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement