如何将海量数据插入REDIS

 

近日由于工作需要,需要对海量数据(1亿条)放入到redis中,于是开启了幸运(磨难)之旅。

一 旅途概述。

旅途目的:携带海量数据,并将海量数据运送到redis内存服务器

旅途意义:放入redis之后供其它系统模块查询

旅途装备:

            硬货(硬件):ThinkPad x260笔记本一台、优盘一个、鼠标一个、水杯等(其它用品)若干。

            软货(软件): redis服务、Windows7系统8G内存、eclipse、JDK、mysql数据库、海量数据、浏览器、互联网等

旅途过程:后面详述

旅途总结:1、顺利的开始不代表顺利的过程;

          2、过程再难不代表没有办法;

          3、一些看似简单的服务操作,当遇到大数据量是就有可能不简单

          4、山外青山楼外楼

二 旅途沿途风景

2.1 主角亮相

本次的海量数据是全国基站信息数据库,数据包含的内容及说明如下。

 

字段名称

类型

取值范围

内容

备注

mcc

整型

460

Mobile Country Code

数据库中所有条目此字段均为460,如需压缩数据库存储空间可删除此字段

mnc

整型

0,1,11,10000-20000

Mobile Network Code

0表示移动基站
1表示联通基站

11表示电信LTE基站10000-20000表示电信CDMA基站,此时此字段的取值并非MNC,实际为电信SID

lac

整型

0-65535

Location Area Code

对于电信CDMA基站,此字段的取值并非LAC,实际为电信NID

ci

整型

0-268435455

Cell ID

对于WCDMA基站,此字段的取值为28位(二进制)的UTRAN Cell ID,
对于TD-SCDMA基站,此字段的取值为16位(二进制)的Cell ID,
对于LTE基站,此字段的取值为28位(二进制)的ECI(由高20位的EnodeB ID和低8位的Cell ID组成)
对于电信CDMA基站,此字段的取值并非Cell ID,实际为电信BID

lat

浮点型

0.0-90.0

纬度

WGS84坐标

lon

浮点型

0.0-180.0

经度

WGS84坐标

acc

整型

0-10000

精度

以米为单位,表示基站覆盖半径

date

整型

 

更新日期

 

validity

浮点型

0.0-1.0

有效性

数值越大有效性越高

addr

字符串

 

地址

地址描述字符串

province

字符串

 

省/直辖市/自治区

city

字符串

 

地级市/地区/自治州/盟

district

字符串

 

县级市/县/市辖区/自治县/旗

township

字符串

 

镇/乡/街道

 

源数据为压缩文件,大小为4G左右,解压完为近20G,且数据为建表和插入的sql语句。鉴于sql文件格式不规范(相对于每条数据以特殊字符分割来说),所以计划先导入到数据库中再进行处理。

导入数据:

Cmd进入mysql安装目录的bin文件夹;

执行命令:mysql  -utest -ptest -Ddbname < d:/sql/xxx.sql

导入开始…… 若干秒之后,报错了(当时没截图)

看错误的描述就是插入语句不合法,还有部分中文乱码。通过搜索得知,应该是字符集的问题(源数据中有中文),于是重新运行导入命令:

mysql  -utest -ptest --default-character-set=utf8 -Dname < d:/sql/xxx.sql

导入开始…… 若干秒之后,导入成功。

至此,第一步算成功完成。

 

==========~~~~~~~~~~~====妖娆分割线======~~~~~~~~~~~~~~======

2.2 降妖除魔

接下来就真正开始了犯二与苦逼的过程。

使用本数据,是想通过基站的mnc,lac和ci三个值,查询对应的地理位置信息。通过对数据的分析,确定将mnc、lac和ci作为key,地理信息作为value放入redis。

犯二1:数据库直接到redis

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值