亲测 win7建立wifi热点(小米V4可用)4.20已更新可连接无网络问题

Posted on

亲测 win7建立wifi热点(小米V4可用)4.20已更新可连接无网络问题 - 机型讨论 - MIUI官方论坛 - 发烧友必刷的Android ROM

登录 后使用快捷导航 没有帐号?注册

MIUI官方论坛4.20已更新可连接无网络问题 - 机型讨论 - MIUI官方论坛 - 发烧友必刷的Android ROM_files/logo.png)

登录 | 注册 | 忘记密码

搜索 欢迎页 秀照片赢小米

小米/Google/MOTO 小米手机1/1S 小米手机2 Galaxy Nexus Google Nexus S Google Nexus One Google Nexus 7 MOTO Defy/Defy+ MOTO XT910 MOTO Atrix 2 ME865 MOTO Atrix 4G ME860 MOTO Milestone HTC HTC Sensation G14/18 HTC One X HTC One S HTC EVO 3D HTC Incredible S HTC Desire S HTC Desire HD HTC Desire Z HTC HD2 HTC EVO 4G HTC Desire SAMSUNG Samsung I9100 Galaxy Note I9220 Galaxy S III I9300 Samsung I9000 Samsung T959 Samsung I897 华为/中兴/联想/天语 华为 Honor 华为 Ascend P1  华为 Ascend D1 华为 C8812 华为 U8800+/Pro 华为 U8800 中兴 V880 中兴 U970 联想 乐Phone 联想 乐pad S2005 天语V8 大黄蜂2 其它品牌 索尼 LT26i 索爱 LT18i/LT15i 索爱 MT15i/ST18i LG P990 LG Optimus LTE/LU6200 LG P970 OPPO finder 魅族 MX 其它机型

12345678910... 127下一页 返回列表 发新帖4.20已更新可连接无网络问题 - 机型讨论 - MIUI官方论坛 - 发烧友必刷的Android ROM_files/pn_post.png)

查看: 21461|回复: 1264 打印4.20已更新可连接无网络问题 - 机型讨论 - MIUI官方论坛 - 发烧友必刷的Android ROM_files/print.png) 上一主题4.20已更新可连接无网络问题 - 机型讨论 - MIUI官方论坛 - 发烧友必刷的Android ROM_files/thread-prev.png) 下一主题4.20已更新可连接无网络问题 - 机型讨论 - MIUI官方论坛 - 发烧友必刷的Android ROM_files/thread-next.png)

[经验技巧] 亲测 win7建立wifi热点(小米V4可用)4.20已更新可连接无网络问题 4.20已更新可连接无网络问题 - 机型讨论 - MIUI官方论坛 - 发烧友必刷的Android ROM_files/002.small.gif)

4.20已更新可连接无网络问题 - 机型讨论 - MIUI官方论坛 - 发烧友必刷的Android ROM_files/hot_3.gif "3 级热门") [复制链接]

4.20已更新可连接无网络问题 - 机型讨论 - MIUI官方论坛 - 发烧友必刷的Android ROM_files/002.gif "热帖")

sorianne sorianne 当前在线 积分21200经验18126 米威望196 米精华1帖子1271性别保密签到次数31MIUI版本2.8.24注册时间2011-8-31最后登录2012-8-29

QQ4.20已更新可连接无网络问题 - 机型讨论 - MIUI官方论坛 - 发烧友必刷的Android ROM_files/qq.gif)查看详细资料4.20已更新可连接无网络问题 - 机型讨论 - MIUI官方论坛 - 发烧友必刷的Android ROM_files/userinfo.gif)

4.20已更新可连接无网络问题 - 机型讨论 - MIUI官方论坛 - 发烧友必刷的Android ROM_files/70_avatar_middle.jpg)

29 主题 50 好友 2万 积分

解答组

学的是工程,每天研究的是手机,兴趣爱好是足球的纯妹纸!

Rank: 64.20已更新可连接无网络问题 - 机型讨论 - MIUI官方论坛 - 发烧友必刷的Android ROM_files/star_level3.gif)Rank: 64.20已更新可连接无网络问题 - 机型讨论 - MIUI官方论坛 - 发烧友必刷的Android ROM_files/star_level2.gif) 积分21200机型小米手机1签到次数31MIUI版本2.8.24在线时间946 小时

MIUI 100周4.20已更新可连接无网络问题 - 机型讨论 - MIUI官方论坛 - 发烧友必刷的Android ROM_files/medal_100week.png) 技术达人4.20已更新可连接无网络问题 - 机型讨论 - MIUI官方论坛 - 发烧友必刷的Android ROM_files/medal22.png)

4.20已更新可连接无网络问题 - 机型讨论 - MIUI官方论坛 - 发烧友必刷的Android ROM_files/online_member.gif) 发表于 2012-4-1 22:04:49 |只看该作者 |倒序浏览

本帖最后由 sorianne 于 2012-5-16 21:26 编辑 写在前面: 很多同鞋在学校宿舍上网,或者上班族都是使用笔记本,一根网线一个账号一个人使用,手机明明支持wifi还要每个月去花钱包流量包,是不是很蛋疼? 今天sorianne给大家带来的这个方法适用于有无线网卡win7系统笔记本、 设置完毕后,只要是支持wifi的设备都可以使用哦。 如果有帮助到你,请给我评分支持,谢谢! 不说废话了,教程开始: 你可以开启windows 7隐藏的功能,让你的小米飞一会吧!

一、点击开始搜索:CMD 1.jpg4.20已更新可连接无网络问题 - 机型讨论 - MIUI官方论坛 - 发烧友必刷的Android ROM_files/205339plv7vydhzp87vd78.jpg "1.jpg")

2012-4-1 20:53 上传 下载附件 (1.62 KB)

发送到手机

12.jpg4.20已更新可连接无网络问题 - 机型讨论 - MIUI官方论坛 - 发烧友必刷的Android ROM_files/220245s6xlc4618w668wz1.jpg.thumb.jpg "12.jpg")

2012-4-1 22:02 上传 下载附件 (46.3 KB)

发送到手机 二、运行命令:netsh wlan set hostednetwork mode=allow ssid=sorianne key=12345678 **4_副本.jpg4.20已更新可连接无网络问题 - 机型讨论 - MIUI官方论坛 - 发烧友必刷的Android ROMfiles/205341fvfhi2oqz5wmmqmw.jpg.thumb.jpg "4副本.jpg")

2012-4-1 20:53 上传 下载附件 (61.75 KB)

发送到手机 **

此命令有三个参数,mode:是否启用虚拟WiFi网卡,改为disallow则为禁用 。 ssid:无线网名称,最好用英文(以sorianne为例)。

key:无线网密码,八个以上字符(以12345678为例)。 以上三个参数可以自己设置,例如只使用mode=disallow可以直接禁用虚拟Wifi网卡。 **5.jpg4.20已更新可连接无网络问题 - 机型讨论 - MIUI官方论坛 - 发烧友必刷的Android ROM_files/205343a1nv1oyhb8yravoy.jpg.thumb.jpg "5.jpg")

2012-4-1 20:53 上传 下载附件 (48.96 KB)

发送到手机 **

三、 开启成功后,网络连接中会多出一个网卡为“Microsoft Virtual WiFi Miniport Adapter”的无线连接2,为方便起见,个人将其重命名为sorianne。 四、有些win7可能找不到网络连接,在 控制面板\网络和 Internet\网络和共享中心 点左边的更改适配器设置就是网络连接。 **6.5.jpg4.20已更新可连接无网络问题 - 机型讨论 - MIUI官方论坛 - 发烧友必刷的Android ROM_files/211037fxbdrirw22okvndw.jpg.thumb.jpg "6.5.jpg")

2012-4-1 21:10 上传 下载附件 (86.96 KB)

发送到手机 **

五、在“网络连接”窗口中,右键单击已连接到Internet的网络连接,选择“属性”→“共享”,勾上“允许其他······连接(N)”并选择“Sorianne”。确定之后,提供共享的网卡图标旁会出现“共享的”字样,表示“宽带连接”已共享至“Sorianne”** 7.jpg4.20已更新可连接无网络问题 - 机型讨论 - MIUI官方论坛 - 发烧友必刷的Android ROM_files/211041dfnfi4ar4kdphrf4.jpg.thumb.jpg "7.jpg")

2012-4-1 21:10 上传 下载附件 (102.17 KB)

发送到手机 六、 **

继续打开记事本功能输入:**netsh wlan start hostednetwork ps:将start改为stop即可关闭该无线网,以后开机后要启用该无线网只需再次运行此命令即可 **

**8.jpg4.20已更新可连接无网络问题 - 机型讨论 - MIUI官方论坛 - 发烧友必刷的Android ROM_files/212604dc4d9fzjqjiiqqd0.jpg.thumb.jpg "8.jpg")

2012-4-1 21:26 上传 下载附件 (50.6 KB)

发送到手机 9.jpg4.20已更新可连接无网络问题 - 机型讨论 - MIUI官方论坛 - 发烧友必刷的Android ROM_files/212606dnjvqzj0axvq0q2v.jpg.thumb.jpg "9.jpg")

2012-4-1 21:26 上传 下载附件 (15.24 KB)

发送到手机 10.jpg4.20已更新可连接无网络问题 - 机型讨论 - MIUI官方论坛 - 发烧友必刷的Android ROM_files/212609kgyg5dva3vj5jcyv.jpg.thumb.jpg "10.jpg")

2012-4-1 21:26 上传 下载附件 (61.81 KB)

发送到手机 七、

游客,如果您要查看本帖隐藏内容请回复 **

PS:这一步有很多童鞋反馈说,可以连接设备但是没有Internet访问权限,所以我也仔细研究了一下,可以在设备管理器里面更新一下网络适配器中的软件程序。 游客,如果您要查看本帖隐藏内容请回复 Sorianne 已有 28 人评分经验 威望 收起 理由4.20已更新可连接无网络问题 - 机型讨论 - MIUI官方论坛 - 发烧友必刷的Android ROM_files/03_avatar_small.jpg) 恋上悦的泪+ 2 MIUI 因你更精彩! 4.20已更新可连接无网络问题 - 机型讨论 - MIUI官方论坛 - 发烧友必刷的Android ROM_files/noavatar_small.gif) 草原萧然+ 1 赞 4.20已更新可连接无网络问题 - 机型讨论 - MIUI官方论坛 - 发烧友必刷的Android ROM_files/42_avatar_small.jpg) highskey+ 1 真是麻烦,买一个无线mini路由器不就得了. 4.20已更新可连接无网络问题 - 机型讨论 - MIUI官方论坛 - 发烧友必刷的Android ROM_files/38_avatar_small.jpg) kgducd+ 1 现在V4不能使用电脑热点了 4.20已更新可连接无网络问题 - 机型讨论 - MIUI官方论坛 - 发烧友必刷的Android ROM_files/06_avatar_small.jpg) 幸幸福福+ 1 赞一个 4.20已更新可连接无网络问题 - 机型讨论 - MIUI官方论坛 - 发烧友必刷的Android ROM_files/96_avatar_small.jpg) zhucezhaungyong+ 1 支持 4.20已更新可连接无网络问题 - 机型讨论 - MIUI官方论坛 - 发烧友必刷的Android ROM_files/noavatar_small.gif) crazyln123+ 1 赞一个 4.20已更新可连接无网络问题 - 机型讨论 - MIUI官方论坛 - 发烧友必刷的Android ROM_files/51_avatar_small.jpg) 0619943+ 4 很给力 4.20已更新可连接无网络问题 - 机型讨论 - MIUI官方论坛 - 发烧友必刷的Android ROM_files/45_avatar_small.jpg) 会编程的猫+ 10 + 3 妹子~~ 4.20已更新可连接无网络问题 - 机型讨论 - MIUI官方论坛 - 发烧友必刷的Android ROM_files/73_avatar_small.jpg) 小胖狐狸+ 1 很给力 4.20已更新可连接无网络问题 - 机型讨论 - MIUI官方论坛 - 发烧友必刷的Android ROM_files/10_avatar_small.jpg) LOVE小蛇+ 5 不错,图文并茂,顶 4.20已更新可连接无网络问题 - 机型讨论 - MIUI官方论坛 - 发烧友必刷的Android ROM_files/80_avatar_small.jpg) 光光师傅+ 1 解决大问题 4.20已更新可连接无网络问题 - 机型讨论 - MIUI官方论坛 - 发烧友必刷的Android ROM_files/43_avatar_small.jpg) 消逝の青春+ 5 支持妹纸! 4.20已更新可连接无网络问题 - 机型讨论 - MIUI官方论坛 - 发烧友必刷的Android ROM_files/21_avatar_small.jpg) 贝贝6810774+ 3 支持美妞 4.20已更新可连接无网络问题 - 机型讨论 - MIUI官方论坛 - 发烧友必刷的Android ROM_files/41_avatar_small.jpg) 无锡小包子+ 3 给你加三分 4.20已更新可连接无网络问题 - 机型讨论 - MIUI官方论坛 - 发烧友必刷的Android ROM_files/04_avatar_small.jpg) 小阳哥ag+ 1 试了不行? 我是本地连接的一根宽带 红叉在. 4.20已更新可连接无网络问题 - 机型讨论 - MIUI官方论坛 - 发烧友必刷的Android ROM_files/13_avatar_small.jpg) 团支书+ 10 我很赞同 4.20已更新可连接无网络问题 - 机型讨论 - MIUI官方论坛 - 发烧友必刷的Android ROM_files/18_avatar_small.jpg) 微醺··↗+ 3 不错,加油! 4.20已更新可连接无网络问题 - 机型讨论 - MIUI官方论坛 - 发烧友必刷的Android ROM_files/23_avatar_small.jpg) Hey。StRiVe+ 5 妹纸V5!!支持了···加油!!!!. 4.20已更新可连接无网络问题 - 机型讨论 - MIUI官方论坛 - 发烧友必刷的Android ROM_files/27_avatar_small.jpg) xzhlksh+ 5 精品文章

总评分: 经验 + 109 威望 + 4 查看全部评分 本主题由 小墨灰 于 3 天前 提升

分享4.20已更新可连接无网络问题 - 机型讨论 - MIUI官方论坛 - 发烧友必刷的Android ROM_files/oshr.png)分享1 收藏4.20已更新可连接无网络问题 - 机型讨论 - MIUI官方论坛 - 发烧友必刷的Android ROM_files/fav.gif)收藏116 如对我的解答,还有任何疑问,请点击回复,第一时间继续解答。 对我本人有任何意见或建议,请直接微博@我、http://weibo.com/lucy29 4.20已更新可连接无网络问题 - 机型讨论 - MIUI官方论坛 - 发烧友必刷的Android ROM_files/113821q8y99z9s3y6hzg7h.jpg) 回复 引用

举报 乀蒾夨De鱼

乀蒾夨De鱼 当前在线 积分10961经验8570 米威望6 米精华0帖子2280性别男签到次数58MIUI版本2.8.24注册时间2011-5-1最后登录2012-8-29

查看详细资料4.20已更新可连接无网络问题 - 机型讨论 - MIUI官方论坛 - 发烧友必刷的Android ROM_files/userinfo.gif) 4.20已更新可连接无网络问题 - 机型讨论 - MIUI官方论坛 - 发烧友必刷的Android ROM_files/06_avatar_middle.jpg)

10 主题 64 好友 1万 积分

解答组

MIUI为发烧而生

Rank: 64.20已更新可连接无网络问题 - 机型讨论 - MIUI官方论坛 - 发烧友必刷的Android ROM_files/star_level3.gif)Rank: 64.20已更新可连接无网络问题 - 机型讨论 - MIUI官方论坛 - 发烧友必刷的Android ROM_files/star_level2.gif)

积分10961机型小米手机1签到次数58MIUI版本2.8.24在线时间2381 小时

MIUI 100周4.20已更新可连接无网络问题 - 机型讨论 - MIUI官方论坛 - 发烧友必刷的Android ROM_files/medal_100week.png) MIUI俱乐部发烧友4.20已更新可连接无网络问题 - 机型讨论 - MIUI官方论坛 - 发烧友必刷的Android ROM_files/medal29.png) 小米手机元器件合体活动勋章4.20已更新可连接无网络问题 - 机型讨论 - MIUI官方论坛 - 发烧友必刷的Android ROM_files/medal15.png)

4.20已更新可连接无网络问题 - 机型讨论 - MIUI官方论坛 - 发烧友必刷的Android ROM_files/online_member.gif) 发表于 2012-4-1 22:06:45 |只看该作者

本帖最后由 乀蒾夨De鱼 于 2012-4-1 22:07 编辑 沙发4.20已更新可连接无网络问题 - 机型讨论 - MIUI官方论坛 - 发烧友必刷的Android ROM_files/m003.gif) 已有 1 人评分经验 收起 理由4.20已更新可连接无网络问题 - 机型讨论 - MIUI官方论坛 - 发烧友必刷的Android ROM_files/70_avatar_small.jpg) sorianne+ 5 鱼就是好~

总评分: 经验 + 5 查看全部评分 4.20已更新可连接无网络问题 - 机型讨论 - MIUI官方论坛 - 发烧友必刷的Android ROM_files/7.png) 如有疑问,请点击回复,我会第一时间回复 回复 引用

举报

my丶love

my丶love 当前在线 积分11089经验7994 米威望112 米精华1帖子2509性别保密签到次数32MIUI版本2.8.28注册时间2011-8-23最后登录2012-8-29

QQ4.20已更新可连接无网络问题 - 机型讨论 - MIUI官方论坛 - 发烧友必刷的Android ROM_files/qq.gif)查看详细资料4.20已更新可连接无网络问题 - 机型讨论 - MIUI官方论坛 - 发烧友必刷的Android ROM_files/userinfo.gif) 4.20已更新可连接无网络问题 - 机型讨论 - MIUI官方论坛 - 发烧友必刷的Android ROM_files/99_avatar_middle.jpg)

62 主题 69 好友 1万 积分

解答组

寻找丶幸福

Rank: 64.20已更新可连接无网络问题 - 机型讨论 - MIUI官方论坛 - 发烧友必刷的Android ROM_files/star_level3.gif)Rank: 64.20已更新可连接无网络问题 - 机型讨论 - MIUI官方论坛 - 发烧友必刷的Android ROM_files/star_level2.gif)

积分11089机型MOTO Defy签到次数32MIUI版本2.8.28在线时间1431 小时

MIUI 100周4.20已更新可连接无网络问题 - 机型讨论 - MIUI官方论坛 - 发烧友必刷的Android ROM_files/medal_100week.png) 我爱米兔4.20已更新可连接无网络问题 - 机型讨论 - MIUI官方论坛 - 发烧友必刷的Android ROM_files/medal25.png) MIUI俱乐部发烧友4.20已更新可连接无网络问题 - 机型讨论 - MIUI官方论坛 - 发烧友必刷的Android ROM_files/medal29.png) 技术达人4.20已更新可连接无网络问题 - 机型讨论 - MIUI官方论坛 - 发烧友必刷的Android ROM_files/medal22.png)

4.20已更新可连接无网络问题 - 机型讨论 - MIUI官方论坛 - 发烧友必刷的Android ROM_files/online_member.gif) 发表于 2012-4-1 22:06:47 |只看该作者

本帖最后由 my丶love 于 2012-4-1 22:07 编辑 沙发拉出去砍了,板凳威武,支持妹纸。。 已有 1 人评分经验 收起 理由4.20已更新可连接无网络问题 - 机型讨论 - MIUI官方论坛 - 发烧友必刷的Android ROM_files/70_avatar_small.jpg) sorianne+ 5 嘿嘿O(∩_∩)O~

总评分: 经验 + 5 查看全部评分 做一个傻子多么好。 回复 引用

举报 luffy_wang

luffy_wang 当前离线 积分22283经验16503 米威望20 米精华21帖子7566性别保密签到次数62MIUI版本2.8.28注册时间2011-3-7最后登录2012-8-29

查看详细资料4.20已更新可连接无网络问题 - 机型讨论 - MIUI官方论坛 - 发烧友必刷的Android ROM_files/userinfo.gif) 4.20已更新可连接无网络问题 - 机型讨论 - MIUI官方论坛 - 发烧友必刷的Android ROM_files/09_avatar_middle.jpg)

29 主题 205 好友 2万 积分

社区版主

为小米发烧~~

Rank: 74.20已更新可连接无网络问题 - 机型讨论 - MIUI官方论坛 - 发烧友必刷的Android ROM_files/star_level3.gif)Rank: 74.20已更新可连接无网络问题 - 机型讨论 - MIUI官方论坛 - 发烧友必刷的Android ROM_files/star_level2.gif)Rank: 74.20已更新可连接无网络问题 - 机型讨论 - MIUI官方论坛 - 发烧友必刷的Android ROM_files/star_level1.gif)

积分22283机型小米手机1签到次数62MIUI版本2.8.28在线时间3384 小时

MIUI 100周4.20已更新可连接无网络问题 - 机型讨论 - MIUI官方论坛 - 发烧友必刷的Android ROM_files/medal_100week.png) 小米终身荣誉会员勋章4.20已更新可连接无网络问题 - 机型讨论 - MIUI官方论坛 - 发烧友必刷的Android ROM_files/medal13.gif) 小米手机元器件合体活动勋章4.20已更新可连接无网络问题 - 机型讨论 - MIUI官方论坛 - 发烧友必刷的Android ROM_files/medal15.png) 我爱米兔4.20已更新可连接无网络问题 - 机型讨论 - MIUI官方论坛 - 发烧友必刷的Android ROM_files/medal25.png) MIUI俱乐部发烧友4.20已更新可连接无网络问题 - 机型讨论 - MIUI官方论坛 - 发烧友必刷的Android ROM_files/medal29.png)

4.20已更新可连接无网络问题 - 机型讨论 - MIUI官方论坛 - 发烧友必刷的Android ROM_files/online_moderator.gif) 发表于 2012-4-1 22:12:53 |只看该作者

地板才是王道啊~可以跌打滚爬~ 已有 1 人评分经验 收起 理由4.20已更新可连接无网络问题 - 机型讨论 - MIUI官方论坛 - 发烧友必刷的Android ROM_files/70_avatar_small.jpg) sorianne+ 5 可爱的小灰灰~

总评分: 经验 + 5 查看全部评分 4.20已更新可连接无网络问题 - 机型讨论 - MIUI官方论坛 - 发烧友必刷的Android ROM_files/7(1).png) 回复 引用

举报

onezhangyu521

onezhangyu521 当前离线 积分26315经验17786 米威望78 米精华4帖子10692性别男签到次数25MIUI版本2.8.28注册时间2011-12-10最后登录2012-8-28

QQ4.20已更新可连接无网络问题 - 机型讨论 - MIUI官方论坛 - 发烧友必刷的Android ROM_files/qq.gif)查看详细资料4.20已更新可连接无网络问题 - 机型讨论 - MIUI官方论坛 - 发烧友必刷的Android ROM_files/userinfo.gif) 4.20已更新可连接无网络问题 - 机型讨论 - MIUI官方论坛 - 发烧友必刷的Android ROM_files/35_avatar_middle.jpg)

716 主题 419 好友 2万 积分

解答组

【BUG=求助?】求看顶置贴

Rank: 64.20已更新可连接无网络问题 - 机型讨论 - MIUI官方论坛 - 发烧友必刷的Android ROM_files/star_level3.gif)Rank: 64.20已更新可连接无网络问题 - 机型讨论 - MIUI官方论坛 - 发烧友必刷的Android ROM_files/star_level2.gif)

积分26315机型小米手机1签到次数25MIUI版本2.8.28在线时间4765 小时

MIUI 100周4.20已更新可连接无网络问题 - 机型讨论 - MIUI官方论坛 - 发烧友必刷的Android ROM_files/medal_100week.png) 技术大师4.20已更新可连接无网络问题 - 机型讨论 - MIUI官方论坛 - 发烧友必刷的Android ROM_files/medal23.png)

4.20已更新可连接无网络问题 - 机型讨论 - MIUI官方论坛 - 发烧友必刷的Android ROM_files/online_member.gif) 发表于 2012-4-1 22:13:52 |只看该作者

前排正常中·········· 已有 1 人评分经验 收起 理由4.20已更新可连接无网络问题 - 机型讨论 - MIUI官方论坛 - 发烧友必刷的Android ROM_files/70_avatar_small.jpg) sorianne+ 5 嘿嘿O(∩_∩)O~

总评分: 经验 + 5 查看全部评分 4.20已更新可连接无网络问题 - 机型讨论 - MIUI官方论坛 - 发烧友必刷的Android ROM_files/m032.gif)已经提交的帖子 请移步到提交的链接中查看进度 补充相关内容,您的配合才能使问题得到更好的解决 回复解答组,版主,或者,答复对应人 点击该楼层回复 ,不然别人是看不到你帖子中的回复的,造成效低,易产生误会。望周知 回复 引用

举报 QQ20750760

QQ20750760 当前离线 积分3431经验2590 米威望3 米精华0帖子847性别男签到次数51MIUI版本2.8.17注册时间2011-6-14最后登录2012-8-26

QQ4.20已更新可连接无网络问题 - 机型讨论 - MIUI官方论坛 - 发烧友必刷的Android ROM_files/qq.gif)查看详细资料4.20已更新可连接无网络问题 - 机型讨论 - MIUI官方论坛 - 发烧友必刷的Android ROM_files/userinfo.gif) 4.20已更新可连接无网络问题 - 机型讨论 - MIUI官方论坛 - 发烧友必刷的Android ROM_files/48_avatar_middle.jpg)

39 主题 9 好友 3431 积分

玩机之王

Rank: 54.20已更新可连接无网络问题 - 机型讨论 - MIUI官方论坛 - 发烧友必刷的Android ROM_files/star_level3.gif)Rank: 54.20已更新可连接无网络问题 - 机型讨论 - MIUI官方论坛 - 发烧友必刷的Android ROM_files/star_level1.gif)

玩机之王, 积分 3431, 距离下一级还需 1569 积分 积分3431机型Galaxy Nexus签到次数51MIUI版本2.8.17在线时间775 小时

MIUI 100周4.20已更新可连接无网络问题 - 机型讨论 - MIUI官方论坛 - 发烧友必刷的Android ROM_files/medal_100week.png) 小米手机元器件合体活动勋章4.20已更新可连接无网络问题 - 机型讨论 - MIUI官方论坛 - 发烧友必刷的Android ROM_files/medal15.png)

4.20已更新可连接无网络问题 - 机型讨论 - MIUI官方论坛 - 发烧友必刷的Android ROM_files/online_member.gif) 发表于 2012-4-1 22:14:00 |只看该作者

非常实用,4.20已更新可连接无网络问题 - 机型讨论 - MIUI官方论坛 - 发烧友必刷的Android ROMfiles/m034.gif) 已有 1 人评分经验 收起 理由4.20已更新可连接无网络问题 - 机型讨论 - MIUI官方论坛 - 发烧友必刷的Android ROM_files/70_avatar_small.jpg) sorianne+ 5 嘿嘿O(∩∩)O~

总评分: 经验 + 5 查看全部评分 4.20已更新可连接无网络问题 - 机型讨论 - MIUI官方论坛 - 发烧友必刷的Android ROM_files/forum ... vcddwxxhv0gbzd0.jpg) 回复 引用

举报

tsuhv

tsuhv 当前离线 积分5196经验4152 米威望11 米精华0帖子1251签到次数11MIUI版本2.3.7c注册时间2012-1-28最后登录2012-8-28

查看详细资料4.20已更新可连接无网络问题 - 机型讨论 - MIUI官方论坛 - 发烧友必刷的Android ROM_files/userinfo.gif) 4.20已更新可连接无网络问题 - 机型讨论 - MIUI官方论坛 - 发烧友必刷的Android ROM_files/58_avatar_middle.jpg)

23 主题 40 好友 5196 积分

解答组

解答组

Rank: 64.20已更新可连接无网络问题 - 机型讨论 - MIUI官方论坛 - 发烧友必刷的Android ROM_files/star_level3.gif)Rank: 64.20已更新可连接无网络问题 - 机型讨论 - MIUI官方论坛 - 发烧友必刷的Android ROM_files/star_level2.gif)

积分5196机型小米手机1签到次数11MIUI版本2.3.7c在线时间617 小时

4.20已更新可连接无网络问题 - 机型讨论 - MIUI官方论坛 - 发烧友必刷的Android ROM_files/online_member.gif) 发表于 2012-4-1 22:14:47 |只看该作者

嗯。可以加点血! 已有 1 人评分经验 收起 理由4.20已更新可连接无网络问题 - 机型讨论 - MIUI官方论坛 - 发烧友必刷的Android ROM_files/70_avatar_small.jpg) sorianne+ 5 嘿嘿O(∩_∩)O~

总评分: 经验 + 5 查看全部评分 如果对我的解答有什么不清楚的地方,请点击左下角的回复按钮,否则我可能看不到哦~ 4.20已更新可连接无网络问题 - 机型讨论 - MIUI官方论坛 - 发烧友必刷的Android ROM_files/5.png) 回复 引用

举报 Chammo

Chammo 当前离线 积分5797经验4536 米威望16 米精华2帖子1409性别男签到次数9MIUI版本2.8.24注册时间2012-1-16最后登录2012-8-27

查看详细资料4.20已更新可连接无网络问题 - 机型讨论 - MIUI官方论坛 - 发烧友必刷的Android ROM_files/userinfo.gif) 4.20已更新可连接无网络问题 - 机型讨论 - MIUI官方论坛 - 发烧友必刷的Android ROM_files/66_avatar_middle.jpg)

22 主题 66 好友 5797 积分

玩机之皇

有问题请回复我...

Rank: 64.20已更新可连接无网络问题 - 机型讨论 - MIUI官方论坛 - 发烧友必刷的Android ROM_files/star_level3.gif)Rank: 64.20已更新可连接无网络问题 - 机型讨论 - MIUI官方论坛 - 发烧友必刷的Android ROM_files/star_level2.gif)

玩机之皇, 积分 5797, 距离下一级还需 14203 积分 积分5797机型HTC DHD签到次数9MIUI版本2.8.24在线时间774 小时

MIUI 100周4.20已更新可连接无网络问题 - 机型讨论 - MIUI官方论坛 - 发烧友必刷的Android ROM_files/medal_100week.png)

4.20已更新可连接无网络问题 - 机型讨论 - MIUI官方论坛 - 发烧友必刷的Android ROM_files/online_member.gif) 发表于 2012-4-1 22:15:17 |只看该作者

4.20已更新可连接无网络问题 - 机型讨论 - MIUI官方论坛 - 发烧友必刷的Android ROMfiles/m020.gif)前排都没了 已有 1 人评分经验 收起 理由4.20已更新可连接无网络问题 - 机型讨论 - MIUI官方论坛 - 发烧友必刷的Android ROM_files/70_avatar_small.jpg) sorianne+ 5 嘿嘿O(∩∩)O~

总评分: 经验 + 5 查看全部评分 卖女孩的小火柴...采姑娘的小蘑菇 4.20已更新可连接无网络问题 - 机型讨论 - MIUI官方论坛 - 发烧友必刷的Android ROM_files/113821q8y99z9s3y6hzg7h.jpg) 回复 引用

举报

无声小五

无声小五 当前离线 积分5084经验3813 米威望3 米精华0帖子1244性别保密签到次数34MIUI版本2.8.28注册时间2011-8-17最后登录2012-8-29

查看详细资料4.20已更新可连接无网络问题 - 机型讨论 - MIUI官方论坛 - 发烧友必刷的Android ROM_files/userinfo.gif) 4.20已更新可连接无网络问题 - 机型讨论 - MIUI官方论坛 - 发烧友必刷的Android ROM_files/60_avatar_middle.jpg)

17 主题 26 好友 5084 积分

玩机之皇

其实,路并没有错的,错的只是选择。

Rank: 64.20已更新可连接无网络问题 - 机型讨论 - MIUI官方论坛 - 发烧友必刷的Android ROM_files/star_level3.gif)Rank: 64.20已更新可连接无网络问题 - 机型讨论 - MIUI官方论坛 - 发烧友必刷的Android ROM_files/star_level2.gif)

玩机之皇, 积分 5084, 距离下一级还需 14916 积分 积分5084机型小米手机1签到次数34MIUI版本2.8.28在线时间1259 小时

MIUI 100周4.20已更新可连接无网络问题 - 机型讨论 - MIUI官方论坛 - 发烧友必刷的Android ROM_files/medal_100week.png)

4.20已更新可连接无网络问题 - 机型讨论 - MIUI官方论坛 - 发烧友必刷的Android ROM_files/online_member.gif) 发表于 2012-4-1 22:15:37 |只看该作者

支持。。。。 已有 1 人评分经验 收起 理由4.20已更新可连接无网络问题 - 机型讨论 - MIUI官方论坛 - 发烧友必刷的Android ROM_files/70_avatar_small.jpg) sorianne+ 5 嘿嘿O(∩_∩)O~

总评分: 经验 + 5 查看全部评分 做人一定要经得起谎言,受得起敷衍,忍得住欺骗,忘得了诺言,放得下一切! 回复 引用

举报 老版-王

老版-王 当前离线 积分1060经验931 米威望0 米精华0帖子105性别男签到次数38MIUI版本2.8.28注册时间2011-9-12最后登录2012-8-29

查看详细资料4.20已更新可连接无网络问题 - 机型讨论 - MIUI官方论坛 - 发烧友必刷的Android ROM_files/userinfo.gif) 4.20已更新可连接无网络问题 - 机型讨论 - MIUI官方论坛 - 发烧友必刷的Android ROM_files/35_avatar_middle(1).jpg)

4 主题 1 好友 1060 积分

玩机大师

Rank: 44.20已更新可连接无网络问题 - 机型讨论 - MIUI官方论坛 - 发烧友必刷的Android ROM_files/star_level3.gif)

玩机大师, 积分 1060, 距离下一级还需 940 积分 积分1060机型小米手机1签到次数38MIUI版本2.8.28在线时间152 小时

MIUI 100周4.20已更新可连接无网络问题 - 机型讨论 - MIUI官方论坛 - 发烧友必刷的Android ROM_files/medal_100week.png) 小米手机元器件合体活动勋章4.20已更新可连接无网络问题 - 机型讨论 - MIUI官方论坛 - 发烧友必刷的Android ROM_files/medal15.png)

4.20已更新可连接无网络问题 - 机型讨论 - MIUI官方论坛 - 发烧友必刷的Android ROM_files/online_member.gif) 发表于 2012-4-1 22:16:51 |只看该作者

公司不搞WIFI 坑爹。 已有 1 人评分经验 收起 理由4.20已更新可连接无网络问题 - 机型讨论 - MIUI官方论坛 - 发烧友必刷的Android ROM_files/70_avatar_small.jpg) sorianne+ 5 嘿嘿O(∩_∩)O~

总评分: 经验 + 5 查看全部评分 4.20已更新可连接无网络问题 - 机型讨论 - MIUI官方论坛 - 发烧友必刷的Android ROM_files/myphonesbbs_733835.jpg) 回复 引用

举报 12345678910... 127下一页返回列表 发新帖4.20已更新可连接无网络问题 - 机型讨论 - MIUI官方论坛 - 发烧友必刷的Android ROM_files/pn_post.png)

高级模式

B Color Image Link Quote Code Smilies

您需要登录后才可以回帖 登录 | 注册

发表回复 回帖后跳转到最后一页

浏览过的版块

MIUI 100周

100周发布纪念

技术达人

技术达人

MIUI俱乐部发烧友

MIUI俱乐部发烧友

小米手机元器件合体活动勋章

小米求合体勋章

我爱米兔

我爱米兔

小米终身荣誉会员勋章

小米终身荣誉会员勋章

技术大师

技术大师

MIUI官方网站 - 小米旗下网站 - 加入小米 - 免责声明 - 手机版 Copyright @ 2012 MIUI 京ICP备10046444号 可信网站 4.20已更新可连接无网络问题 - 机型讨论 - MIUI官方论坛 - 发烧友必刷的Android ROM_files/pic.gif) 积分 0, 距离下一级还需 积分 回顶部

MongoDB 客户端工具

Posted on

MongoDB 客户端工具 - MongoDB - SimpleFramework

我的空间 |邀请 |登录|注册 Simple is a java web application framework, and Simple is beautiful.

首页新闻资讯博客论坛Simple市场下载演示

如何获取Simple网站站点的所有源代码

zcb的博客

关注 (1)

博客»zcb»显示全文

MongoDB 客户端工具 0评/2596阅

发表于: 2011-05-05 12:31

NoSQL的运动不止,MongoDB 作为其中的主力军发展迅猛,但是图形化工具少见,我在此做了一个简单的收集,如果将来有新发现将会不断更新。

mongodbHUB 在mac和Windows都有本版 开源地址: http://github.com/bububa/MongoHub-Mac 下载地址: http://github.com/downloads/bububa/MongoHub-Mac/MongoHub.zip 另外还有之前用Titanium Desktop做的,用Win或Linux的可以试试。 http://github.com/bububa/MongoHub

windows 下载地址: http://cloud2.appcelerator.net/win32_win32/1bdd2f931d52d518c0b25b31c1f30182/9092b680-4ec3-4538-91ec-b937e644eb79/MongoHub.exe

如图所示: http://www.javabloger.com/images/2010-05/mongodb/mac-win-mongo-hub2.png

在看一个B/S基于php的 phpmoadmin 下载地址: http://code.google.com/p/phpmoadmin-mongodb-admin-tool-for-php/ 如图所示: http://www.javabloger.com/images/2010-05/mongodb/php-mongodb.png

还有一个是根据CouchDB进行改写的 下载地址: http://github.com/sbellity/futon4mongo

如图所示: http://www.javabloger.com/images/2010-05/mongodb/futon4mongo.png

mongo3是基于MongoDB 集群管理工具 下载地址: http://www.mongo3.com/ 如图所示: http://www.javabloger.com/images/2010-05/mongodb/mongo_3.png

RockMongo 是一个PHP5写的MongoDB管理工具。

支持中文极好,运行速度快,安装简单,还可以查看 GridFS 分块

rock mongodb

点击 http://code.google.com/p/rock-php/downloads/list 下载最新的版本.

转自http://www.javabloger.com/article/mongodb-gui-win-linux-mac.html

表情 发表评论

看不清楚,再换一张 高级模式

相关主题

Spring Data 及 MongoDB 0/1587

赵老师, 512天前

Mongodb从配置到应用 0/1431

zcb, 636天前 11个有用的Web开发在线工具 1/1093

赵老师, 682天前

Iperf上手指南 0/1280

幸福街, 661天前 【IBM Developerworks 文章选录】四篇 0/827

赵老师, 585天前

MongoDB: 8. Sharding (1) 0/879

zcb, 654天前

一周点击排行

瘫痪的小女孩 0/51

sijialgc, 5天前

你永远不懂我伤悲,就像白天不懂夜的黑 0/31

sijialgc, 5天前 留言|联系我们|版权声明|关于

simpleframework.net Copyright ©2011 版权所有

Powered by SimpleFramework [ 0.343 s ]

第一节 MongoDB介绍及下载与安装

Posted on

第一节 MongoDB介绍及下载与安装

第一节 MongoDB介绍及下载与安装

引言 MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。他支持的数据结构非常松散,是类似json的bjson格式,因此可以存储比较复杂的数据类型。Mongo最大的特点是他支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引。

它的特点是高性能、易部署、易使用,存储数据非常方便。主要功能特性有:

  • 面向集合存储,易存储对象类型的数据。
  • 模式自由。
  • 支持动态查询。
  • 支持完全索引,包含内部对象。
  • 支持查询。
  • 支持复制和故障恢复。
  • 使用高效的二进制数据存储,包括大型对象(如视频等)。
  • 自动处理碎片,以支持云计算层次的扩展性
  • 支持RUBY,PYTHON,JAVA,C++,PHP等多种语言。
  • 文件存储格式为BSON(一种JSON的扩展)
  • 可通过网络访问

所谓“面向集合”(Collenction-Orented),意思是数据被分组存储在数据集中,被称为一个集合(Collenction)。每个 集合在数据库中都有一个唯一的标识名,并且可以包含无限数目的文档。集合的概念类似关系型数据库(RDBMS)里的表(table),不同的是它不需要定 义任何模式(schema)。 模式自由(schema-free),意味着对于存储在mongodb数据库中的文件,我们不需要知道它的任何结构定义。如果需要的话,你完全可以把不同结构的文件存储在同一个数据库里。 存储在集合中的文档,被存储为键-值对的形式。键用于唯一标识一个文档,为字符串类型,而值则可以是各中复杂的文件类型。我们称这种存储形式为BSON(Binary Serialized dOcument Format)。

MongoDB服务端可运行在Linux、Windows或OS X平台,支持32位和64位应用,默认端口为27017。推荐运行在64位平台,因为MongoDB

在32位模式运行时支持的最大文件尺寸为2GB。

MongoDB把数据存储在文件中(默认路径为:/data/db),为提高效率使用内存映射文件进行管理。

以上为随便摘的,其实就是非传统的非关系数据库,现在归到文档型数据库分类之中,注意32位操作系统支持的最大文件为2GB,所以做大文件海量储存的朋友要选择64位的系统安装。开始我们的下载安装之路吧。

一、下载

MongoDB的官网是:http://www.mongodb.org/

MongoDB最新版本下载在官网的DownLoad菜单下:http://www.mongodb.org/downloads

本人选择的是Windows 32-bit 1.8.1版本

MongoDB For .net 驱动开发包位于官网的Driver菜单下(含其它语言开发链接):https://github.com/mongodb/mongo-csharp-driver/downloads

本人操作系统为Windows7 专业版,选择MongoDB版本为Windows 32-bit 1.8.1,开发包为VS2008版本

开始我们的安装过程了

二、安装

1.解压mongodb-win32-i386-1.8.1.zip ,创建路径C:\Program Files\mongodb ,将解压后的Bin文件Copy to 此文件夹下

2.C:\Program Files\mongodb 下建立Data文件夹 C:\Program Files\mongodb\data ,然后分别建立db,log两个文件夹,至此mongodb下有以下文件夹

C:\Program Files\mongodb\bin

C:\Program Files\mongodb\data\db

C:\Program Files\mongodb\data\log

在log文件夹下创建一个日志文件MongoDB.log,即C:\Program Files\mongodb\data\log\MongoDB.log

完成以上工作后,你为奇怪为什么要建立这些文件夹(因为,Mongodb安装需要这些文件夹,默认安装是不用创建,但是文件都为安装到C:\data\下)


3.几种安装方式介绍

3.1 程序启动方式

运行cmd.exe 进入DOS命中界面

cd C:\Program Files\mongodb\bin

C:\Program Files\mongodb\bin>mongod -dbpath "C:\Program Files\mongodb\data\db"

执行此命令即将mongodb的数据库文件创建到C:\Program Files\mongodb\data\db 目录,不出意外的会看到命令最后一行sucess的成功提示

此时数据库就已启动,该界面为Mongo的启动程序,关闭后可直接双击bin下的mongod.exe (注意是d,这个是启动程序)

启动程序开启后,再运行mongo.exe 程序(注意没有d) ,界面如下

测试数据库操作

help (查看相关信息)

db.foo.insert({a:1}) (往foo表插入a,1字段值,foo表为默认表)

db.foo.find() (查看foo表数据)

结果如下:

可以看到插入了3条记录分别人a,cctv,set 。

当mongod.exe被关闭时,mongo.exe 就无法连接到数据库了,因此每次想使用mongodb数据库都要开启mongod.exe程序,所以比较麻烦,接下来我们将

MongoDB安装为windows服务吧

3.2 windows service方式

运行cmd.exe

cd C:\Program Files\mongodb\bin

C:\Program Files\mongodb\bin>mongod --dbpath "C:\Program Files\mongodb\data\db" --logpath "C:\Program Files\mongodb\data\log\MongoDB.log" --install --serviceName "MongoDB"

这里MongoDB.log就是开始建立的日志文件,--serviceName "MongoDB" 服务名为MongoDB

运行命令成功为如下图:

引时服务已经安装成功,运行

NET START MongoDB (开启服务)

NET stop MongoDB (关闭服务)

>

C:\Program Files\mongodb\bin>mongod --dbpath "C:\Program Files\mongodb\data\db" --logpath "C:\Program Files\mongodb\data\log\MongoDB.log" --remove --serviceName "MongoDB" (删除,注意不是--install了)

其它命令可查阅help命令或官网说明。

查看服务

运行bin文件夹下mongo.exe 客户端测试一下吧。测试同3.1相同 。

3.3 守护进程方式创

--fork 以守护进程方式运行MongoDB,创建服务器进程

C:\Program Files\mongodb\bin>mongod --port 10220 --fork --dbpath "C:\Program Files\mongodb\data\db" --logpath "C:\Program Files\mongodb\data\log\MongoDB.log"

forked process : 44086

all output going to : MongoDB.log

到此几种安装就介绍完了。

4、停止MongoDB

最稳妥的方式,处理完当前所有操作并将缓存的数据保存到磁盘上才停止

user admin

db.shutdownServer();

当然我们也可以直接关闭进程,但这种方式会导致缓存中的数据未急时刷新保存到磁盘上而丢失。下一章就是mongo for .net开发了。

分类: MongoDB

标签: mongodb, mongo for .net, nosql 绿色通道: 好文要顶 关注我 收藏该文与我联系

小城岁月 关注 - 26 粉丝 - 221

+加关注

3

0 (请您对文章做出评价)

»下一篇:第二节 为什么用MongoDB及.NET开发入门

posted on 2011-06-11 20:07 小城岁月 阅读(10141) 评论(5) 编辑 收藏

/#1楼

小城 ,这是原创???

支持(0)反对(0) 2011-06-12 00:07 | 白菜.tang

/#2楼[楼主]

@白菜.tang 鄙视你

支持(0)反对(0) http://pic.cnitblog.com/face/u131283.jpg?id=15165123

2011-06-12 10:08 | 小城岁月

/#3楼

支持个~

支持(0)反对(0) 2011-06-12 21:23 | 布莱特

/#4楼

看来是玩命的写,我们就玩命的拜吧~~~紧跟时代潮流哈

支持(0)反对(0) 2011-06-15 16:14 | happydream

/#5楼21611232011/7/26 15:05:12

好料

支持(0)反对(0) 2011-07-26 15:05 | 技术拓荒者

Google Dremel 原理 – 如何能3秒分析1PB

Posted on

Google Dremel 原理 – 如何能3秒分析1PB

简介

Dremel 是Google 的“交互式”数据分析系统。可以组建成规模上千的集群,处理PB级别的数据。MapReduce处理一个数据,需要分钟级的时间。作为MapReduce的发起人,Google开发了Dremel将处理时间缩短到秒级,作为MapReduce的有力补充。Dremel作为Google BigQuery的report引擎,获得了很大的成功。最近Apache计划推出Dremel的开源实现Drill,将Dremel的技术又推到了浪尖上。

Google Dremel设计

根据Google公开的论文《Dremel: Interactive Analysis of WebScaleDatasets》可以看到Dremel的设计原理。还有一些测试报告。论文写于2006年,公开于2010年,Google在处理大数据方面,果真有得天独厚的优势。下面的内容,很大部分来自这篇论文。

随着Hadoop的流行,大规模的数据分析系统已经越来越普及。数据分析师需要一个能将数据“玩转”的交互式系统。如此,就可以非常方便快捷的浏览数据,建立分析模型。Dremel系统有下面几个主要的特点:

  • Dremel**是一个大规模系统。**在一个PB级别的数据集上面,将任务缩短到秒级,无疑需要大量的并发。磁盘的顺序读速度在100MB/S上下,那么在1S内处理1TB数据,意味着至少需要有1万个磁盘的并发读! Google一向是用廉价机器办大事的好手。但是机器越多,出问题概率越大,如此大的集群规模,需要有足够的容错考虑,保证整个分析的速度不被集群中的个别慢(坏)节点影响。
  • Dremel**是MR**交互式查询能力不足的补充。和MapReduce一样,Dremel也需要和数据运行在一起,将计算移动到数据上面。所以它需要GFS这样的文件系统作为存储层。在设计之初,Dremel并非是MapReduce的替代品,它只是可以执行非常快的分析,在使用的时候,常常用它来处理MapReduce的结果集或者用来建立分析原型。
  • Dremel**的数据模型是嵌套(nested)**的。互联网数据常常是非关系型的。Dremel还需要有一个灵活的数据模型,这个数据模型至关重要。Dremel支持一个嵌套(nested)的数据模型,类似于Json。而传统的关系模型,由于不可避免的有大量的Join操作,在处理如此大规模的数据的时候,往往是有心无力的。
  • Dremel**中的数据是用列式存储的。**使用列式存储,分析的时候,可以只扫描需要的那部分数据的时候,减少CPU和磁盘的访问量。同时列式存储是压缩友好的,使用压缩,可以综合CPU和磁盘,发挥最大的效能。对于关系型数据,如果使用列式存储,我们都很有经验。但是对于嵌套(nested)的结构,Dremel也可以用列存储,非常值得我们学习。
  • Dremel**结合了Web搜索和并行DBMS**的技术。首先,他借鉴了Web搜索中的“查询树”的概念,将一个相对巨大复杂的查询,分割成较小较简单的查询。大事化小,小事化了,能并发的在大量节点上跑。其次,和并行DBMS类似,Dremel可以提供了一个SQL-like的接口,就像Hive和Pig那样。

Google Dremel应用场景

设想一个使用场景。我们的美女数据分析师,她有一个新的想法要验证。要验证她的想法,需要在一个上亿条数据上面,跑一个查询,看看结果和她的想法是不是一样,她可不希望等太长时间,最好几秒钟结果就出来。当然她的想法不一定完善,还需要不断调整语句。然后她验证了想法,发现了数据中的价值。最后,她可以将这个语句完善成一个长期运行的任务。

对于Google,数据一开始是放在GFS上的。可以通过MapReduce将数据导入到Dremel中去,在这些MapReduce中还可以做一些处理。然后分析师使用Dremel,轻松愉悦的分析数据,建立模型。最后可以编制成一个长期运行的MapReduce任务。

这种处理方式,让笔者联想到Greenplum的Chorus. Chorus也可以为分析师提供快速的数据查询,不过解决方案是通过预处理,导入部分数据,减少数据集的大小。用的是三十六计,走为上计,避开的瞬时分析大数据的难题。Chorus最近即将开源,可以关注下。

还有一点特别的就是按列存储的嵌套数据格式。如图所示,在按记录存储的模式中,一个记录的多列是连续的写在一起的。在按列存储中,可以将数据按列分开。也就是说,可以仅仅扫描A.B.C而不去读A.E或者A.B.C。难点在于,我们如何能同时高效地扫描若干列,并做一些分析。

Google Dremel数据模型

在Google, 用Protocol Buffer常常作为序列化的方案。其数据模型可以用数学方法严格的表示如下:

t=dom|

其中t可以是一个基本类型或者组合类型。其中基本类型可以是integer,float和string。组合类型可以是若干个基本类型拼凑。星号(/*)指的是任何类型都可以重复,就是数组一样。问号(?)指的是任意类型都是可以是可选的。简单来说,除了没有Map外,和一个Json几乎没有区别。

下图是例子,Schema定义了一个组合类型Document.有一个必选列DocId,可选列Links,还有一个数组列Name。可以用Name.Language.Code来表示Code列。

这种数据格式是语言无关,平台无关的。可以使用Java来写MR程序来生成这个格式,然后用C++来读取。在这种列式存储中,能够快速通用处理也是非常的重要的。

上图,是一个示例数据的抽象的模型;下图是这份数据在Dremel实际的存储的格式。

如果是关系型数据,而不是嵌套的结构。存储的时候,我们可以将每一列的值直接排列下来,不用引入其他的概念,也不会丢失数据。对于嵌套的结构,我们还需要两个变量R (Repetition Level) ,D (Definition Level) 才能存储其完整的信息。

Repetition Level是记录该列的值是在哪一个级别上重复的。举个例子说明:对于Name.Language.Code? 我们一共有三条非Null的记录。

  1. 第一个是”en-us”,出现在第一个Name的第一个Lanuage的第一个Code里面。在此之前,这三个元素是没有重复过的,都是第一个。所以其R为0。
  2. 第二个是”en”,出现在下一个Lanuage里面。也就是说Lanague是重复的元素。Name.Language.Code中Lanague排第二个,所以其R为2.
  3. 第三个是”en-gb”,出现在下一个Name中,Name是重复元素,排第一个,所以其R为1。

我们可以想象,将所有的没有值的列,设值为NULL。如果是数组列,我们也想象有一个NULL值。有了Repetition Level,我们就可以很好的用列表示嵌套的结构了。但是还有一点不足。就是还需要表示一个数组是不是我们想象出来的。

Definition Level 是定义的深度,用来记录该列是否是”想象”出来的。所以对于非NULL的记录,是没有意义的,其值必然为相同。同样举个例子。例如Name.Language.Country,

  • 第一个”us”是在R1里面,其中Name,Language,Country是有定义的。所以D为3。
  • 第二个”NULL”也是在R1的里面,其中Name,Language是有定义的,其他是想象的。所以D为2。
  • 第三个”NULL”还是在R1的里面,其中Name是有定义的,其他是想象的。所以D为1。
  • 第四个”gb”是在R1里面,其中Name,Language,Country是有定义的。所以D为3。

就是这样,如果路径中有required,可以将其减去,因为required必然会define,记录其数量没有意义。

理解了如何存储这种嵌套结构。写没有难度。读的时候,我们只读其中部分字段,来构建部分的数据模型。例如,只读取DocID和Name.Language.Country。我们可以同时扫描两个字段,先扫描DocID。记录下第一个,然后发现下一个DocID的R是0;于是该读Name.Language.Country,如果下一个R是1或者2就继续读,如果是0就开始读下一个DocID。

下图展示了一个更为复杂的读取的状态机示例。在读取过程中使用了Definition Level来快速Jump,提升性能。

到此为止,我们已经知道了Dremel的数据结构。就像其他数据分析系统一样,数据结构确定下来,功能就决定了一大半。对于Dremel的数据查询,必然是“全表扫描”,但由于其巧妙的列存储设计,良好的数据模型设计可以回避掉大部分Join需求和扫描最少的列。

Google Dremel查询方式

Dremel可以使用一种SQL-like的语法查询嵌套数据。由于Dremel的数据是只读的,并且会密集的发起多次类似的请求。所以可以保留上次请求的信息,还优化下次请求的explain过程。那又是如何explain的呢?

这是一个树状架构。当Client发其一个请求,根节点受到请求,根据metadata,将其分解到枝叶,直到到位于数据上面的叶子Server。他们扫描处理数据,又不断汇总到根节点。

举个例子:对于请求: SELECT A, COUNT(B) FROM T GROUP BY A

根节点收到请求,会根据数据的分区请求,将请求变成可以拆分的样子。原来的请求会变为。

SELECT A, SUM(c) FROM (R1 UNION ALL ... Rn) GROUP BY A

R1,…RN是T的分区计算出的结果集。越大的表有越多的分区,越多的分区可以越好的支持并发。

然后再将请求切分,发送到每个分区的叶子Server上面去,对于每个Server ?Ri = SELECT A, COUNT(B) AS c FROM Ti GROUP BY A

结构集一定会比原始数据小很多,处理起来也更快。根服务器可以很快的将数据汇总。具体的聚合方式,可以使用现有的并行数据库技术。

Dremel是一个多用户的系统。切割分配任务的时候,还需要考虑用户优先级和负载均衡。对于大型系统,还需要考虑容错,如果一个叶子Server出现故障或变慢,不能让整个查询也受到明显影响。

通常情况下,每个计算节点,执行多个任务。例如,技巧中有3000个叶子Server,每个Server使用8个线程,有可以有24000个计算单元。如果一张表可以划分为100000个区,就意味着大约每个计算单元需要计算5个区。这执行的过程中,如果某一个计算单元太忙,就会另外启一个来计算。这个过程是动态分配的。

对于GFS这样的存储,一份数据一般有3份拷贝,计算单元很容易就能分配到数据所在的节点上,典型的情况可以到达95%的命中率。

Dremel还有一个配置,就是在执行查询的时候,可以指定扫描部分分区,比如可以扫描30%的分区,在使用的时候,相当于随机抽样,加快查询。

Google Dremel测试实验

实验的数据源如下表示。大部分数据复制了3次,也有一个两次。每个表会有若干分区,每个分区的大小在100K到800K之间。如果压缩率是25%,并且计入复制3份的事实的话。T1的大小已经达到PB级别。这么小且巨量的分区,对于GFS的要求很高,现在的Hdfs稳定版恐怕受不了。接下来的测试会逐步揭示其是如何超过MR,并对性能作出分析。 表名 记录数 大小(**已压缩) 列数 数据中心 复制数量** T1 85 billion 87 TB 270 A 3× T2 24 billion 13 TB 530 A 3× T3 4 billion 70 TB 1200 A 3× T4 1+ trillion 105 TB 50 B 2× T5 1+ trillion 20 TB 30 B 3×

列存测试

首先,我们测试看看列存的效果。对于T1表,1GB的数据大约有300K行,使用列存的话压缩后大约在375MB。这台机器磁盘的吞吐在70MB/s左右。这1GB的数据,就是我们的现在的测试数据源,测试环境是单机。

见上图。

  • 曲线A,是用列存读取数据并解压的耗时。
  • 曲线B是一条一条记录挨个读的时间。
  • 曲线C是在B的基础上,加上了反序列化的时间。
  • 曲线d,是按行存读并解压的耗时。
  • 曲线e加上了反序列化的时间。因为列很多,反序列化耗时超过了读并解压的50%。

从图上可以看出。如果需要读的列很少的话,列存的优势就会特别的明显。对于列的增加,产生的耗时也几乎是线性的。而一条一条该个读和反序列化的开销是很大的,几乎都在原来基础上增加了一倍。而按行读,列数的增加没有影响,因为一次性读了全部列。

Dremel和MapReduce的对比测试

MR和Dremel最大的区别在于行存和列存。如果不能击败MapReduce,Remel就没有意义了。使用最常见的WordCount测试,计算这个数据中Word的个数。 Q1: SELECT SUM(CountWords(txtField)) / COUNT(/*) FROM T1

上图是测试的结果。使用了两个MR任务。这两个任务和Dremel一样都运行在3000个节点上面。如果使用列存,Dremel的按列读的MR只需要读0.5TB的数据,而按行存需要读87TB。 MR提供了一个方便有效的途经来讲按行数据转换成按列的数据。Dremel可以方便的导入MapReduce的处理结果。

树状计算Server测试

接下来我们要对比在T2表示使用两个不同的Group BY查询。T2表有24 billion 行的记录。每个记录有一个 item列表,每一item有一个amount 字段。总共有40 billion个item.amount。这两个Query分别是。 Q2: SELECT country, SUM(item.amount) FROM T2 GROUP BY country

Q3: SELECT domain, SUM(item.amount) FROM T2 WHERE domain CONTAINS ’.net’ GROUP BY domain

Q2需要扫描60GB的压缩数据,Q3需要扫描180GB,同时还要过滤一个条件。

上图是这两个Query在不同的server拓扑下的性能。每个测试都是有2900个叶子Server。在2级拓扑中,根server直接和叶子Server通信。在3级拓扑中,各个级别的比例是1:100:2900,增加了100个中间Server。在4级拓扑中,比例为1:10:100:2900.

Q2可以在3级拓扑下3秒内执行完毕,但是为他提供更高的拓扑级别,对性能提升没有裨益。相比之下,为Q3提供更高的拓扑级别,性能可以有效提升。这个测试体现了树状拓扑对性能提升的作用。

每个分区的执行情况

对于刚刚的两个查询,具体的每个分区的执行情况是这样的。

可以看到99%的分区都在1s内完成了。Dremel会自动调度,使用新的Server计算拖后腿的任务。

记录内聚合

由于Demel支持List的数据类型,有的时候,我们需要计算每个记录里面的各个List的聚合。如 Q4 : SELECT COUNT(c1 > c2) FROM

(SELECT SUM(a.b.c.d) WITHIN RECORD AS c1,

SUM(a.b.p.q.r) WITHIN RECORD AS c2

FROM T3)

我们需要count所有sum(a.b.c.d)比sum(a.b.p.q.r),执行这条语句实际只需要扫描13GB的数据,耗时15s,而整张表有70TB。如果没有这样的嵌套数据结构,这样的查询会很复杂。

扩展性测试

Dremel有良好的扩展性,可以通过增加机器来缩短查询的时间。并且可以处理数以万亿计的记录。

对于查询: Q5: SELECT TOP(aid, 20), COUNT(/*) FROM T4?WHERE bid = fvalue1g AND cid = fvalue2g

使用不同的叶子Server数目来进行测试。

可以发现CPU的耗时总数是基本不变的,在30万秒左右。但是随着节点数的增加,执行时间也会相应缩短。几乎呈线性递减。如果我们使用通过CPU时间计费的“云计算”机器,每个租户的查询都可以很快,成本也会非常低廉。

容错测试

一个大团队里面,总有几个拖油瓶。对于有万亿条记录的T5,我们执行下面的语句。 Q6: SELECT COUNT(DISTINCT a) FROM T5

值得注意的是T5的数据只有两份拷贝,所以有更高的概率出现坏节点和拖油瓶。这个查询需要扫描大约1TB的压缩数据,使用2500个节点。

可以看到99%的分区都在5S内完成的。不幸的是,有一些分区需要较长的时间来处理。尽管通过动态调度可以加快一些,但在如此大规模的计算上面,很难完全不出问题。如果不在意太精确的结果,完全可以小小减少覆盖的比例,大大提升相应速度。

Google Dremel 的影响

Google Dremel的能在如此短的时间内处理这么大的数据,的确是十分惊艳的。有个伯克利分校的教授Armando Fox说过一句话“如果你曾事先告诉我Dremel声称其将可做些什么,那么我不会相信你能开发出这种工具”。这么给力的技术,必然对业界造成巨大的影响。第一个被波及到的必然是Hadoop。

Dremel与Hadoop

Dremel的公开论文里面已经说的很明白,Dremel不是用来替代MapReduce,而是和其更好的结合。Hadoop的Hive,Pig无法提供及时的查询,而Dremel的快速查询技术可以给Hadoop提供有力的补充。同时Dremel可以用来分析MapReduce的结果集,只需要将MapReduce的OutputFormat修改为Dremel的格式,就可以几乎不引入额外开销,将数据导入Dremel。使用Dremel来开发数据分析模型,MapReduce来执行数据分析模型。

Hadoop的Hive,Pig现在也有了列存的模式,架构上和Dremel也接近。但是无论存储结构还是计算方式都没有Dremel精致。对Hadoop实时性的改进也一直是个热点话题。要想在Hadoop中山寨一个Dremel,并且相对现有解决方案有突破,笔者觉得Hadoop自身需要一些改进。一个是HDFS需要对并发细碎的数据读性能有大的改进,HDFS需要更加的低延迟。再者是Hadoop需要不仅仅支持MapReduce这一种计算框架。其他部分,Hadoop都有对应的开源组件,万事俱备只欠东风。

Dremel的开源实现

Dremel现在还没有一个可以运行的开源实现,不过我们看到很多努力。一个是Apache的Drill,一个是OpenDremel/Dazo。

OpenDremel/Dazo

OpenDremel是一个开源项目,最近改名为Dazo。可以在GoogleCode上找到http://code.google.com/p/dremel/。目前还没有发布。作者声称他已经完成了一个通用执行引擎和OpenStack Swift的集成。笔者感觉其越走越歪,离Dremel越来越远了。

Apache Drill

Drill是Hadoop的赞助商之一MapR发起的。Drill作为一个Dremel的山寨项目,有和Dremel相似的架构和能力。他们希望Drill最终会想Hive,Pig一样成为Hadoop上的重要组成部分。为Hadoop提供快速查询的能力。和Dremel有一点不同,在数据模型上,开源的项目需要支持更标准的数据结构。比如CSV和JSON。同时Drill还有更大的灵活性,支持多重查询语言,多种接口。

现在Drill的目标是完成初始的需求,架构。完成一个初始的实现。这个实现包括一个执行引擎和DrQL。DrQL是一个基于列的格式,类似于Dremel。目前,Drill已经完成的需求和架构设计。总共分为了四个组件

  • Query language:类似Google BigQuery的查询语言,支持嵌套模型,名为DrQL.
  • Low-lantency distribute execution engine:执行引擎,可以支持大规模扩展和容错。可以运行在上万台机器上计算数以PB的数据。
  • Nested data format:嵌套数据模型,和Dremel类似。也支持CSV,JSON,YAML类似的模型。这样执行引擎就可以支持更多的数据类型。
  • Scalable data source: 支持多种数据源,现阶段以Hadoop为数据源。

目前这四个组件在分别积极的推进,Drill也非常希望有社区其他公司来加入。Drill希望加入到Hadoop生态系统中去。

最后的话

本文介绍了Google Dremel的使用场景,设计实现,测试实验,和对开源世界的影响。相信不久的将来,Dremel的技术会得到广泛的应用。 Share the post "Google Dremel 原理 - 如何能3秒分析1PB"

NoSQL数据库探讨之一 - 为什么要用非关系数据库?

Posted on

NoSQL数据库探讨之一 - 为什么要用非关系数据库? - robbin的自言自语

随着互联网web2.0网站的兴起,非关系型的数据库现在成了一个极其热门的新领域,非关系数据库产品的发展非常迅速。而传统的关系数据库在应付web2.0网站,特别是超大规模和高并发的SNS类型的web2.0纯动态网站已经显得力不从心,暴露了很多难以克服的问题,例如: 1、High performance - 对数据库高并发读写的需求 web2.0网站要根据用户个性化信息来实时生成动态页面和提供动态信息,所以基本上无法使用动态页面静态化技术,因此数据库并发负载非常高,往往要达到每秒上万次读写请求。关系数据库应付上万次SQL查询还勉强顶得住,但是应付上万次SQL写数据请求,硬盘IO就已经无法承受了。其实对于普通的BBS网站,往往也存在对高并发写请求的需求,例如像JavaEye网站的实时统计在线用户状态,记录热门帖子的点击次数,投票计数等,因此这是一个相当普遍的需求。 2、Huge Storage - 对海量数据的高效率存储和访问的需求 类似Facebook,twitter,Friendfeed这样的SNS网站,每天用户产生海量的用户动态,以Friendfeed为例,一个月就达到了2.5亿条用户动态,对于关系数据库来说,在一张2.5亿条记录的表里面进行SQL查询,效率是极其低下乃至不可忍受的。再例如大型web网站的用户登录系统,例如腾讯,盛大,动辄数以亿计的帐号,关系数据库也很难应付。 3、High Scalability && High Availability- 对数据库的高可扩展性和高可用性的需求 在基于web的架构当中,数据库是最难进行横向扩展的,当一个应用系统的用户量和访问量与日俱增的时候,你的数据库却没有办法像web server和app server那样简单的通过添加更多的硬件和服务节点来扩展性能和负载能力。对于很多需要提供24小时不间断服务的网站来说,对数据库系统进行升级和扩展是非常痛苦的事情,往往需要停机维护和数据迁移,为什么数据库不能通过不断的添加服务器节点来实现扩展呢? 在上面提到的“三高”需求面前,关系数据库遇到了难以克服的障碍,而对于web2.0网站来说,关系数据库的很多主要特性却往往无用武之地,例如: 1、数据库事务一致性需求 很多web实时系统并不要求严格的数据库事务,对读一致性的要求很低,有些场合对写一致性要求也不高。因此数据库事务管理成了数据库高负载下一个沉重的负担。 2、数据库的写实时性和读实时性需求 对关系数据库来说,插入一条数据之后立刻查询,是肯定可以读出来这条数据的,但是对于很多web应用来说,并不要求这么高的实时性,比方说我(JavaEye的robbin)发一条消息之后,过几秒乃至十几秒之后,我的订阅者才看到这条动态是完全可以接受的。 3、对复杂的SQL查询,特别是多表关联查询的需求 任何大数据量的web系统,都非常忌讳多个大表的关联查询,以及复杂的数据分析类型的复杂SQL报表查询,特别是SNS类型的网站,从需求以及产品设计角度,就避免了这种情况的产生。往往更多的只是单表的主键查询,以及单表的简单条件分页查询,SQL的功能被极大的弱化了。 因此,关系数据库在这些越来越多的应用场景下显得不那么合适了,为了解决这类问题的非关系数据库应运而生,现在这两年,各种各样非关系数据库,特别是键值数据库(Key-Value Store DB)风起云涌,多得让人眼花缭乱。前不久国外刚刚举办了NoSQL Conference,各路NoSQL数据库纷纷亮相,加上未亮相但是名声在外的,起码有超过10个开源的NoSQLDB,例如: Redis,Tokyo Cabinet,Cassandra,Voldemort,MongoDB,Dynomite,HBase,CouchDB,Hypertable, Riak,Tin, Flare, Lightcloud, KiokuDB,Scalaris, Kai, ThruDB, ...... 这些NoSQL数据库,有的是用C/C++编写的,有的是用Java编写的,还有的是用Erlang编写的,每个都有自己的独到之处,看都看不过来了,我(robbin)也只能从中挑选一些比较有特色,看起来更有前景的产品学习和了解一下。这些NoSQL数据库大致可以分为以下的三类: 一、满足极高读写性能需求的Kye-Value数据库:Redis,Tokyo Cabinet, Flare 高性能Key-Value数据库的主要特点就是具有极高的并发读写性能,Redis,Tokyo Cabinet, Flare,这3个Key-Value DB都是用C编写的,他们的性能都相当出色,但出了出色的性能,他们还有自己独特的功能: 1、Redis Redis是一个很新的项目,刚刚发布了1.0版本。Redis本质上是一个Key-Value类型的内存数据库,很像memcached,整个数据库统统加载在内存当中进行操作,定期通过异步操作把数据库数据flush到硬盘上进行保存。因为是纯内存操作,Redis的性能非常出色,每秒可以处理超过10万次读写操作,是我知道的性能最快的Key-Value DB。 Redis的出色之处不仅仅是性能,Redis最大的魅力是支持保存List链表和Set集合的数据结构,而且还支持对List进行各种操作,例如从List两端push和pop数据,取List区间,排序等等,对Set支持各种集合的并集交集操作,此外单个value的最大限制是1GB,不像memcached只能保存1MB的数据,因此Redis可以用来实现很多有用的功能,比方说用他的List来做FIFO双向链表,实现一个轻量级的高性能消息队列服务,用他的Set可以做高性能的tag系统等等。另外Redis也可以对存入的Key-Value设置expire时间,因此也可以被当作一个功能加强版的memcached来用。 Redis的主要缺点是数据库容量受到物理内存的限制,不能用作海量数据的高性能读写,并且它没有原生的可扩展机制,不具有scale(可扩展)能力,要依赖客户端来实现分布式读写,因此Redis适合的场景主要局限在较小数据量的高性能操作和运算上。目前使用Redis的网站有github,Engine Yard。 2、Tokyo Cabinet和Tokoy Tyrant TC和TT的开发者是日本人Mikio Hirabayashi,主要被用在日本最大的SNS网站mixi.jp上,TC发展的时间最早,现在已经是一个非常成熟的项目,也是Kye-Value数据库领域最大的热点,现在被广泛的应用在很多很多网站上。TC是一个高性能的存储引擎,而TT提供了多线程高并发服务器,性能也非常出色,每秒可以处理4-5万次读写操作。 TC除了支持Key-Value存储之外,还支持保存Hashtable数据类型,因此很像一个简单的数据库表,并且还支持基于column的条件查询,分页查询和排序功能,基本上相当于支持单表的基础查询功能了,所以可以简单的替代关系数据库的很多操作,这也是TC受到大家欢迎的主要原因之一,有一个Ruby的项目miyazakiresistance将TT的hashtable的操作封装成和ActiveRecord一样的操作,用起来非常爽。 TC/TT在mixi的实际应用当中,存储了2000万条以上的数据,同时支撑了上万个并发连接,是一个久经考验的项目。TC在保证了极高的并发读写性能的同时,具有可靠的数据持久化机制,同时还支持类似关系数据库表结构的hashtable以及简单的条件,分页和排序操作,是一个很棒的NoSQL数据库。 TC的主要缺点是在数据量达到上亿级别以后,并发写数据性能会大幅度下降,NoSQL: If Only It Was That Easy提到,他们发现在TC里面插入1.6亿条2-20KB数据的时候,写入性能开始急剧下降。看来是当数据量上亿条的时候,TC性能开始大幅度下降,从TC作者自己提供的mixi数据来看,至少上千万条数据量的时候还没有遇到这么明显的写入性能瓶颈。 这个是Tim Yang做的一个Memcached,Redis和Tokyo Tyrant的简单的性能评测,仅供参考 3、Flare TC是日本第一大SNS网站mixi开发的,而Flare是日本第二大SNS网站green.jp开发的,有意思吧。Flare简单的说就是给TC添加了scale功能。他替换掉了TT部分,自己另外给TC写了网络服务器,Flare的主要特点就是支持scale能力,他在网络服务端之前添加了一个node server,来管理后端的多个服务器节点,因此可以动态添加数据库服务节点,删除服务器节点,也支持failover。如果你的使用场景必须要让TC可以scale,那么可以考虑flare。 flare唯一的缺点就是他只支持memcached协议,因此当你使用flare的时候,就不能使用TC的table数据结构了,只能使用TC的key-value数据结构存储。 二、满足海量存储需求和访问的面向文档的数据库:MongoDB,CouchDB 面向文档的非关系数据库主要解决的问题不是高性能的并发读写,而是保证海量数据存储的同时,具有良好的查询性能。MongoDB是用C++开发的,而CouchDB则是Erlang开发的: 1、MongoDB MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。他支持的数据结构非常松散,是类似json的bjson格式,因此可以存储比较复杂的数据类型。Mongo最大的特点是他支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引。 Mongo主要解决的是海量数据的访问效率问题,根据官方的文档,当数据量达到50GB以上的时候,Mongo的数据库访问速度是MySQL的10倍以上。Mongo的并发读写效率不是特别出色,根据官方提供的性能测试表明,大约每秒可以处理0.5万-1.5次读写请求。对于Mongo的并发读写性能,我(robbin)也打算有空的时候好好测试一下。 因为Mongo主要是支持海量数据存储的,所以Mongo还自带了一个出色的分布式文件系统GridFS,可以支持海量的数据存储,但我也看到有些评论认为GridFS性能不佳,这一点还是有待亲自做点测试来验证了。 最后由于Mongo可以支持复杂的数据结构,而且带有强大的数据查询功能,因此非常受到欢迎,很多项目都考虑用MongoDB来替代MySQL来实现不是特别复杂的Web应用,比方说why we migrated from MySQL to MongoDB就是一个真实的从MySQL迁移到MongoDB的案例,由于数据量实在太大,所以迁移到了Mongo上面,数据查询的速度得到了非常显著的提升。 MongoDB也有一个ruby的项目MongoMapper,是模仿Merb的DataMapper编写的MongoDB的接口,使用起来非常简单,几乎和DataMapper一模一样,功能非常强大易用。 2、CouchDB CouchDB现在是一个非常有名气的项目,似乎不用多介绍了。但是我却对CouchDB没有什么兴趣,主要是因为CouchDB仅仅提供了基于HTTP REST的接口,因此CouchDB单纯从并发读写性能来说,是非常糟糕的,这让我立刻抛弃了对CouchDB的兴趣。 三、满足高可扩展性和可用性的面向分布式计算的数据库:Cassandra,Voldemort 面向scale能力的数据库其实主要解决的问题领域和上述两类数据库还不太一样,它首先必须是一个分布式的数据库系统,由分布在不同节点上面的数据库共同构成一个数据库服务系统,并且根据这种分布式架构来提供online的,具有弹性的可扩展能力,例如可以不停机的添加更多数据节点,删除数据节点等等。因此像Cassandra常常被看成是一个开源版本的Google BigTable的替代品。Cassandra和Voldemort都是用Java开发的: 1、Cassandra Cassandra项目是Facebook在2008年开源出来的,随后Facebook自己使用Cassandra的另外一个不开源的分支,而开源出来的Cassandra主要被Amazon的Dynamite团队来维护,并且Cassandra被认为是Dynamite2.0版本。目前除了Facebook之外,twitter和digg.com都在使用Cassandra。 Cassandra的主要特点就是它不是一个数据库,而是由一堆数据库节点共同构成的一个分布式网络服务,对Cassandra的一个写操作,会被复制到其他节点上去,对Cassandra的读操作,也会被路由到某个节点上面去读取。对于一个Cassandra群集来说,扩展性能是比较简单的事情,只管在群集里面添加节点就可以了。我看到有文章说Facebook的Cassandra群集有超过100台服务器构成的数据库群集。 Cassandra也支持比较丰富的数据结构和功能强大的查询语言,和MongoDB比较类似,查询功能比MongoDB稍弱一些,twitter的平台架构部门领导Evan Weaver写了一篇文章介绍Cassandra:http://blog.evanweaver.com/articles/2009/07/06/up-and-running-with-cassandra/,有非常详细的介绍。 Cassandra以单个节点来衡量,其节点的并发读写性能不是特别好,有文章说评测下来Cassandra每秒大约不到1万次读写请求,我也看到一些对这个问题进行质疑的评论,但是评价Cassandra单个节点的性能是没有意义的,真实的分布式数据库访问系统必然是n多个节点构成的系统,其并发性能取决于整个系统的节点数量,路由效率,而不仅仅是单节点的并发负载能力。 2、Voldemort Voldemort是个和Cassandra类似的面向解决scale问题的分布式数据库系统,Cassandra来自于Facebook这个SNS网站,而Voldemort则来自于Linkedin这个SNS网站。说起来SNS网站为我们贡献了n多的NoSQL数据库,例如Cassandar,Voldemort,Tokyo Cabinet,Flare等等。Voldemort的资料不是很多,因此我没有特别仔细去钻研,Voldemort官方给出Voldemort的并发读写性能也很不错,每秒超过了1.5万次读写。 从Facebook开发Cassandra,Linkedin开发Voldemort,我们也可以大致看出国外大型SNS网站对于分布式数据库,特别是对数据库的scale能力方面的需求是多么殷切。前面我(robbin)提到,web应用的架构当中,web层和app层相对来说都很容易横向扩展,唯有数据库是单点的,极难scale,现在Facebook和Linkedin在非关系型数据库的分布式方面探索了一条很好的方向,这也是为什么现在Cassandra这么热门的主要原因。 如今,NoSQL数据库是个令人很兴奋的领域,总是不断有新的技术新的产品冒出来,改变我们已经形成的固有的技术观念,我自己(robbin)稍微了解了一些,就感觉自己深深的沉迷进去了,可以说NoSQL数据库领域也是博大精深的,我(robbin)也只能浅尝辄止,我(robbin)写这篇文章既是自己一点点钻研心得,也是抛砖引玉,希望吸引对这个领域有经验的朋友来讨论和交流。 从我(robbin)个人的兴趣来说,分布式数据库系统不是我能实际用到的技术,因此不打算花时间深入,而其他两个数据领域(高性能NoSQLDB和海量存储NoSQLDB)都是我很感兴趣的,特别是Redis,TT/TC和MongoDB这3个NoSQL数据库,因此我接下来将写三篇文章分别详细介绍这3个数据库。