Dojo
最新
最佳
搜索
订阅
解道Jdon
领域驱动设计
架构设计
热点话题
GitHub开源免费源代码
产品经理
数据工程
微服务架构文章排行榜
DevOps文章排行榜
go语言文章排行榜
数据科学
kafka教程文章排行榜
幽默模因
更多话题
疑问~nosql数据库如何使用
10-05-04
zzxsky1986
最近的项目中用量berkeley db,所以也看了一些nosql的技术,但是越是了解我越是迷惑,不知道这些db到底该如何去使用,key-value存储,只能根据key搜索,这个是不是也有点太简单了?还是我了解的不够?举个例子,现在有个日志,有类型,时间,来自哪个服务器,我现在有个需求是根据类型和来自哪个服务器查询(and关系),我该怎么去做?
2
banq
2010-05-04 19:43
现在整个软件发展背景到了计算和存储分开时代,根据key获得存储数据,然后再使用
Hadoop
之类进行计算,包括搜索,传统组合查询分解为获得所有数据,再筛选排序两个部分。
zzxsky1986
2010-05-05 17:12
谢谢banq老师,我知道怎么做了。
bookcold
2010-05-06 21:59
"现在整个软件发展背景到了计算和存储分开时代"
请教老师,为什么说现在才是计算和存储分开的时代呢?那sql不算吗?
banq
2010-05-06 22:09
挺好的问题,sql本可只做存储方面事,但很多人看中其强健的select 功能,复杂的select 不只是从存储读取,还有筛选 搜索 排序等等,这些功能对巨大数据量就力不从心了,hadoop t级数据排序创有史最快,这些我们都要好好利用。
从一个角度看,sql是一个打包通用版,不一定适合所有情况。
谈得更深入些,如果按照OO设计,领域驱动设计,将业务计算都由领域模型驱动,过去,是由用户界面直接驱动SQL进行查询 筛选计算,现在中间增加一个第三者中间者领域模型,用户界面发出事件给领域模型,领域模型根据策略,决定使用
Hadoop
进行计算,还是利用SQL筛选,还是使用全文检索luncen,等等,这样,你的一个系统通过领域模型来协调存储和计算,就比存储和计算单纯分离更上一个层次。
当然,这个概念要普及,也是很难,不管如果,很多人喜欢快,SQL打包在一起很快,那么NoSQL也迎合这样一个特点,比如HBase或Hive等将Haoop计算和存储打包在一起,你就可以象写SQL语句一样写一起交由Hive,Hive再进行分离。
这些区别都可以看成软件文化吧。
[该贴被banq于2010-05-07 10:21修改过]
jametong
2010-06-21 15:05
关键要看你的业务需要什么样的数据模型..
对于大规模的网站, 都通过业务的设计, 将结果的查询简单化成了普通的Key/Value查询, 排序/合并等操作都交由应用程序本身去处理, 这样就可以实现更大规模的扩展.
如果业务规模较小, 而又对关系模型有一定的依赖, 短期来看可能并不适合使用NoSQL.
猜你喜欢
其他人在看