购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

2.8 数据分布

数据分布从逻辑上或者物理上代表着数据存储的具体位置,在不同的视角下,数据分布有着不同的内涵。从业务视角来看,数据分布意味着数据所在的不同业务系统;从技术视角来看,数据分布意味着数据所在的基于不同技术的存储设备或者组件;从数据的存储方式来看,数据分布可以理解为关系型数据库或者非关系型数据库;从数据的访问方式来看,数据分布可以理解为离线数据或者实时数据。

2.8.1 数据存储

关系型数据库与非关系型数据库(NoSQL)主要存在以下三方面的区别。

❑数据存储方式不同:关系型数据库为表格形式,非关系型数据库为文档或图结构。

❑扩展方式不同:关系型数据库可纵向扩展,可提高处理能力;非关系型数据库为天然分布式,通过更多的数据服务器来分担负载。

❑事务处理支持不同:关系型数据库支持事务,具有原子性且支持细粒度的控制,方便事务回滚;非关系型数据库侧重于处理大数据(现在一些非关系型数据库也逐步支持事务,但是在粒度的控制上,与关系型数据库仍有较大差距)。

关系型数据库主要以Oracle为代表,而非关系型数据库则包括Elasticsearch、HBase、Hive、Impla等。但是随着技术的发展,且大数据技术的基础就是分布式计算,部分关系型数据库厂商提出分布式数据库的概念来提高数据库整体的性能,例如GreenPlum。

2.8.2 数据访问

从数据的时效性来看,数据访问主要是指离线数据及实时数据的访问。离线数据以及实时数据的时效性主要是由两者不同的数据处理方式决定的。

离线数据处理在数据领域往往代表批处理数据。例如在数据仓库中往往需要每天定时批处理以满足第二天的业务要求,如今天凌晨3点,需要完成昨天的ETL作业以及业务指标的计算。这些数据只要企业在第二天营业之前计算完毕即可,不要求实时统计。例如很多理财产品的实际收益往往在第二天更新。所以从访问的时效性来看,我们是无法实时看到上游系统数据的变化的。

批处理任务可以接受分钟甚至小时级别的延迟,但是并非所有的场景都可以接受批处理。例如银行转账,我们需要立刻知道是否到账,否则就可能进行投诉,所以这个过程就需要实时处理。

实时数据处理,也是最近比较火的实时计算或者流式计算等。它依赖于某些实时计算组件并且通过消息队列完成,例如Storm或者Flink利用消息中间件Kafka或者MQ(Message Queue,消息队列)等。通过实时数据处理架构,我们可以立刻看到上游系统数据的变化。


Tips 最近市面上非常流行“流批一体化”的概念,它其实就是将批处理与实时处理融合在一起提供对外的服务,该架构会在2.9.1节中介绍。


企业数据如此复杂,有什么手段可以保证数据正常有序地提供服务呢? 1tz0sbMcEetgETCeROUVuCDCZUI5/4kTaO4rxSZvRszxENgchw8Ti9kqEJXomgiS

点击中间区域
呼出菜单
上一章
目录
下一章
×

打开