首页 > 解决方案 > 如何将“.csv”数据文件导入 Redis 数据库

问题描述

如何将 .csv 数据文件导入 Redis 数据库?.csv 文件中包含“id、时间、纬度、经度”列。您能否向我建议导入 CSV 文件并能够执行空间查询的最佳方法?

标签: csvimportredisspatial

解决方案


这是一个非常广泛的问题,因为我们不知道你想要什么数据结构。您期望什么查询等。为了解决您的问题,您需要:

  1. 写下预期的查询。写下预期的分区。这个文件是你的完整数据集吗?

  2. 写下你的数据结构。这将在很大程度上取决于 p1 的答案。

  3. 选择您最熟悉的任何(脚本)语言。加载您的文件,在 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"


推荐阅读