csv - 如何将“.csv”数据文件导入 Redis 数据库
问题描述
如何将 .csv 数据文件导入 Redis 数据库?.csv 文件中包含“id、时间、纬度、经度”列。您能否向我建议导入 CSV 文件并能够执行空间查询的最佳方法?
解决方案
这是一个非常广泛的问题,因为我们不知道你想要什么数据结构。您期望什么查询等。为了解决您的问题,您需要:
写下预期的查询。写下预期的分区。这个文件是你的完整数据集吗?
写下你的数据结构。这将在很大程度上取决于 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"
推荐阅读
- python - Django RegexValidator 在 Django Admin 中导致 AttributeError
- c# - 创建具有来自 Dockerfile 的 https 的 ASP.Net Docker 容器的正确方法?
- sql - 导入 Excel 时如何翻译 .csv 文件中的特殊字符?
- numerical-methods - 寻找一种简单的方法来调整网格点的位置
- javascript - NextJS 加载外部图像亚马逊
- java - 我应该如何直接使用 UTF8 或 UTF16 随机生成一个固定长度的字符串变量?
- python - 使用 Selenium Python 生成新密码
- javascript - http fetch 提供与网络不同的状态?
- java - 如何将来自互联网的视频文件设置为 Flutter 中的系统壁纸
- linux - 我正在尝试使用 CentOS 从 Linux 中的 CSV 添加多个用户