0
Happy weekend
Blah blah blah … 周五喝的有点大,导致一直到周六晚上,胃还是叽里咕噜的,古某、刘某过于能喝,下次得回避了……
差不多一整天的时间吧,把Hadoop 下面的项目过完了,又去看了看Cassandra(休息时间看了三集生活大爆炸,以降低我对英文文档的厌恶感)。
时间仓促,先把只言片语列在这里,有空再整理个Matrix。
下面的内容很凌乱,仅作笔记,若你有什么想说的,欢迎留言或者给我发邮件!
$ 带着问题阅读
- 我需要处理的数据非常复杂,类似于:
book: { title : '', isbn : '', chapters: { 'chapter 1': { 'title' : 'c1', 'breif' : 'c b 1' }, 'chapter 1': { 'title' : 'c1', 'breif' : 'c b 1' } } } - 我需要执行临时查询,可能要根据chapter.title 找到book
- 我需要执行数据挖掘
- 单个数据条目的体积非常大(约100k),条目的数量非常多(预计每日新增1M-10M条)。
- 最近有个实时查询的需求,未来会有大量类似需求吗?
$ Notes
面向列的数据库
一般采用Google Big Table 数据模型,开源实现有HBase、Cassandra。
适合松散的数据,如果将二维表比作矩阵,那么hbase非常适合存储有大量空洞的矩阵。
因为面向列进行存储,因此空列是不会浪费存储空间的。
真得不适合存储复杂的文档数据。
面向文档的数据库
开源实现有CouchDB、MongoDB 等。
CouchDB 还是有些不稳定…… 不过MongoDB真的非常适用于我的问题,因为我的数据基本上就是一个结构复杂的文档。它提供的Shading 方案,可以将一个表的数据,分散到集群中的不同节点,并可以像在单节点上一样操作它们。
Hive
简而言之,他仅是一个数据挖掘工具,它可以简化ETL,并将HQL 很好的转换成m/r。
亮点在于提高生产力,降低技术门槛。
$ Final
$ if 没有 实时需求:
我会考虑用自己的方式做一个每日数据库(将一天的数据压缩到一个文件中),然后利用Hive 完成临时查询和数据挖掘工作。
$ else
我想MongoDB 是唯一的出路了,不过MongoDB 浪费的哪些磁盘真让我心疼啊……
23:45 打完,收工。