Advertisement
Guest User

Untitled

a guest
Jul 29th, 2016
76
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.15 KB | None | 0 0
  1. $ ./load_data.sh sampledata_CRLF.csv.gz
  2. count: 4
  3. 1 Tokyo POINT(139.7541618 35.6822589)
  4. 2 Osaka POINT(135.5001783 34.6914242)
  5. 3 Kyoto POINT(135.7620049 35.0166064)
  6. 4 Nagoya POINT(136.9019222 35.1830687)
  7.  
  8. $ cat load_data.sh
  9. #!/bin/sh
  10. USER="root"
  11. PASSWORD=""
  12. DATABASE=""
  13. DAT_INFILE_GZ=$1
  14. FIFO="/tmp/dat.named_pipe"
  15. [ -z `pidof mysqld` ] && (echo "Please start mysqld: mysql.server start"; exit 1)
  16. [ ! -e ${FIFO} ] && mkfifo ${FIFO}
  17. gzcat < ${DAT_INFILE_GZ} | nkf --guess
  18. gzcat < ${DAT_INFILE_GZ} > ${FIFO} &
  19.  
  20. mysql -u${USER} -p${PASSWORD} -D ${DATABASE} -N -B 2>/dev/null << EOS
  21. CREATE TEMPORARY TABLE temp_table (
  22. no integer,
  23. city text,
  24. location geometry not null,
  25. SPATIAL INDEX (location)
  26. ) ENGINE=MyISAM;
  27. SET @i=0;
  28. LOAD DATA LOCAL INFILE '$FIFO'
  29. INTO TABLE temp_table
  30. FIELDS TERMINATED BY ','
  31. LINES TERMINATED BY '\r\n'
  32. IGNORE 1 LINES
  33. # ENCLOSED BY '"'
  34. (@a,@b,@c,@d)
  35. SET no=(@i:=@i+1), city=@a, location=st_geomfromtext(concat('point(',@c,' ',@d,')'));
  36. SELECT 'count:', count(location) from temp_table;
  37. SELECT no, city, st_astext(location) from temp_table;
  38. # SHOW CREATE TABLE temp_table;
  39. EOS
  40.  
  41. exit $?
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement