如何将.csv数据文件导入Redis数据库? .csv文件中包含“id,time,latitude,longitude”列。您能否向我推荐导入CSV文件并能够执行空间查询的最佳方法?
答案 0 :(得分:0)
这是一个非常广泛的问题,因为我们不知道您想要的数据结构。你期望什么样的问题,等等。为了解决你的问题,你需要:
记下预期的查询。记下预期的分区。此文件是您的完整数据集吗?
记下您的数据结构。它将在很大程度上取决于来自p1的答案。
选择您最熟悉的任何(脚本)语言。加载文件,在CSV库中处理,从p2映射到数据结构,推送到Redis。您可以使用客户端库或redis-cli
执行后者。
例如,您希望将数据放置在排序集中,其中id
是zset的密钥,时间戳是分数,lat,lon
是有效负载,您可以这样做:
$ cat data.csv
id1,1528961481,45.0,45.0
id1,1528961482,45.1,45.1
id2,1528961483,50.0,50.0
id2,1528961484,50.1,50.0
cat data.csv | awk -F "," '{print $1" "$2" "$3" "$4}' | xargs -n4 sh -c 'redis-cli -p 6370 zadd $1 $2 "$3,$4"' sh
127.0.0.1:6370> zrange id2 0 -1
1)“50.0,50.0”
2)“50.1,50.0”