数据源的可变性是什么?
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
Datomic数据库的设计哲学是将所有过去发生的事情(或事件)认为是一个“fact(事实)”,基于事实不能篡改的本质,则数据库中存储的数据也当是不变的。无论是添加、删除还是修改,在数据库层面都是增加一条记录,而非直接更改。
然而,多数数据库并未添加这种不变性的约束,虽然这种不变性带来的好处是明显的,不过也会给业务系统的设计与实现带来不必要的复杂度。然而,作为大数据平台的数据源而言,情况则相反,若数据允许更改,数据采集过程就会变得更复杂。
一种简单的应对办法是采用直连的形式。由于数据分析可能会基于不同的数据场景对数据存储提出不同的要求,直连的数据源未必满足这种要求。例如,假设我们的分析场景是要做基于关键字的全文本搜索,在大数据量高性能的要求下,选择ElasticSearch或者Solr会表现更好,若直连的数据源是MySQL,事情就会变得较为棘手。