数据库管理系统的历史可以解释为达尔文进化过程。
关系数据库的主导地位让位给了数据仓库,它更好地适应了最早的商业智能需求;然后,随着最流行的大数据平台(例如Hadoop或spark)的兴起,出现了NoSQL数据库的时代,其目的是在其他功能(例如,而不是一致性)中优先考虑可伸缩性。
但是,这些年来发生的事情很可能是专业化过程。
实际上,我们正在经历许多DBMS范例的共存,例如列式,键值,文档等。因此,可以选择一个更好地优化以管理特定种类的数据并且更适合体系结构和功能要求的模型,而不是依赖于通用的唯一标准,例如,关系范式仍然是最好的模型之一选择以处理ACID事务,而柱状存储则非常适合数据湖体系结构等。在上述解决方案中,时间序列数据库在最近几年变得非常流行。
顾名思义,时间序列数据库经过设计和优化,可以存储随时间变化的数据(时间序列数据)。换句话说,时间序列是特定度量随时间推移的(可能无界的)点序列。度量标准是对随时间演变的现象的度量。
例如,出于旅游目的而来到一个国家的人数就是衡量指标的有效示例。
该指标可以具有多个维度(例如,原产国,目的地国家),但是每个点都必须有一个时间戳和一个代表度量本身的数值是强制性的。
实时分析中的时间序列数据库
实时分析有很多非常相似的定义,每个定义都同意它具有收集和分析实时数据的能力,即实时数据进入系统后立即可用。
从业务角度来看,实时分析系统必须能够在事件收集到时提供洞察力,以便用户能够以最小的延迟采取行动。与传统的大数据分析(侧重于分析由异构源生成的大量数据的可能性)相反,拥有一种架构(例如数据湖)来允许用户访问更新为以下内容的历史数据将是不可接受的最后一天,但活动持续到最后一个小时。
实时分析所迫切需要的是一种架构,该架构可在从外部世界(应用程序,传感器等)收集到数据后立即对其进行处理,该架构优先考虑增量更新而不是定期进行完整的数据重新计算。换句话说,是流处理架构。而且,这种架构自然适合时间序列数据。实际上,如果数据随时间变化,那么系统会收集许多单个事件,这些事件必须能够单独处理。根据定义,流处理能够轻松管理这种情况。
最受欢迎和最具标志性的流处理体系结构称为 Kappa体系结构。
该体系结构的特点之一是,预计需要两层持久性:
日志存储:大多数情况下,来自外部的原始事件是易变的,因此,出于容错目的,必须可以将其持久化。该存储层只需要快速的写入吞吐量。
服务数据库:客户端应用程序(例如Web或移动仪表板)必须查询数据库,流处理引擎已将原始事件中包含的信息的子集存储在该数据库中。
必须优化服务数据库,以确保在查询随时间变化的数据时具有最佳读取性能。鉴于到目前为止所做的所有假设,不言而喻,时间序列数据库可以完美地充当服务层数据库。
关注 CDA人工智能学院 ,回复“录播”获取更多人工智能精选直播视频!