0

Happy weekend

Blah blah blah … 周五喝的有点大,导致一直到周六晚上,胃还是叽里咕噜的,古某、刘某过于能喝,下次得回避了……

差不多一整天的时间吧,把Hadoop 下面的项目过完了,又去看了看Cassandra(休息时间看了三集生活大爆炸,以降低我对英文文档的厌恶感)。

时间仓促,先把只言片语列在这里,有空再整理个Matrix。

下面的内容很凌乱,仅作笔记,若你有什么想说的,欢迎留言或者给我发邮件!

$ 带着问题阅读

  1. 我需要处理的数据非常复杂,类似于:
    book: {
    	title : '',
    	isbn : '',
    	chapters: {
    		'chapter 1': {
    			'title' : 'c1',
    			'breif' : 'c b 1'
    		},
    		'chapter 1': {
    			'title' : 'c1',
    			'breif' : 'c b 1'
    		}
    	}
    }
    
  2. 我需要执行临时查询,可能要根据chapter.title 找到book
  3. 我需要执行数据挖掘
  4. 单个数据条目的体积非常大(约100k),条目的数量非常多(预计每日新增1M-10M条)。
  5. 最近有个实时查询的需求,未来会有大量类似需求吗?

$ 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 打完,收工。

- 相关文章:

login with sina weibo