【简介】数据仓库技术实现

article/2025/9/30 19:48:05

数据仓库建设方案有两种,一种是传统架构的数据仓库,一种是大数据架构的数据仓库。

传统数据仓库

传统数据仓库是由单机数据库发展而来的。业务数据库一般是关系型数据库(RDBMS),那数据仓库在建设初期,也会选用关系型数据库,因为数据迁移起来方便,而且业务系统的改造成本也较小。

但历史数据较为庞大,单个 RDBMS 节点即使增加了大容量硬盘,也无法满足存储需求怎么办?那就多个 RDBMS 节点组成 MPP(大规模并行处理)集群进行存储。每个节点负责一部分数据的存储、计算任务,数据通过提前调度,分配到各个节点中进行存储;各个节点产生的部分结果,也会汇总成最终结果进行返回。

传统数仓的优点

传统数仓的优点在于 SQL 支持率高;且在一定数据规模下,性能很出色。

因为是单机关系型数据库改造而来,所以完全兼容原有的 SQL 语法,这样的话,业务迁移起来比较方便。在之后的使用上,也不需要增加很多额外的学习成本。

传统数据仓库在数据量没有达到某个量级时,是很优秀的解决方案,且继承了单机数据库优异的性能。但数据量一旦超过某个数量级时,它的问题就暴露出来了。

存在的问题

传统数据仓库存在的问题如下。

1. 扩展性有限

因为传统数据仓库的架构是由单机发展来的,在单机数据库上进行功能的扩展,或者增加中间件,从而形成 MPP(大规模并行处理)集群。

但这种 MPP 数据仓库,每个节点本质上还是一个数据库,需要考虑精细的内存管理;且独立进行计算,如果需要交换数据,则通过高速网络连接其它所有节点进行。这种连接所有节点的高速网络拓扑,直接限制了它节点的上限。

其次,它在数据存储时,采用的是分库分表策略(架构所限),将一个数据库中的表拆分到各个节点中进行存储,每张表存储的数据如果足够多的话,再将表进行拆分。

但分库分表也存在上限,因为分库分表的粒度越细,数据仓库在处理数据时,性能越差。所以为了保证性能,分库分表也不能无限进行。

2. 热点问题

传统数据仓库因为在存储时,会进行分库分表,所以一张表的会被拆分成多份,交由不同数据库节点进行保存。假设一张表有 100W 行数据,它在存储时被拆分成 10 份,一份有 10W 行。但恰巧,前 10W 行的数据是热点数据,在数据处理时被访问的频率是其它数据的两倍,且这一份数据被存储到了某个节点中。

那可想而知,这个节点承受的压力也是其它节点的两倍。那这个节点就容易出现宕机,或者超时的情况。而单节点瓶颈会导致整个系统短板。节点越多,节点出错频率就越高,整个集群的可用性就越低;这也限制了它的扩展性。

当然热点问题,可以通过数据加盐的方式进行解决,将表中的数据通过增加前缀打散,从而随机分布到各个节点中。但数据加盐本身会增加一些额外操作,并带来一些额外的问题。这个需要留意。

大数据数据仓库

大数据数据仓库是依托于大数据技术的一种新型数据仓库技术。

它是基于大数据天然的分布式存储、计算,并添加了 SQL 的支持而形成的一种架构。与传统数据仓库的架构是截然不同的。

大数据技术是为海量数据的存储、计算服务的,所以它有天生的分布式架构来解决数据存储问题,且有极强的扩展性。在数据处理方面,为了避免海量数据的移动造成的 IO、网络开销,使用了移动计算而非移动数据的架构,将计算任务分发到数据节点进行计算;因为一份数据是被拆分,并存放在多个节点的,所以每个节点的收到计算任务后,是并发执行的,计算得到的结果一定是部分结果。最后再将部分结果进行汇总,得到最终结果。

但大数据初期存在一个问题,易用性差。因为大数据处理,是有自己的特定语法的。而企业中大部分数据都是存储在数据库中的结构化数据,使用 SQL 进行处理。所以要使用大数据平台,就必须要做大量的业务迁移工作,即将 SQL 转化成大数据处理语法。

之后,基于大数据的数据仓库产品应运而生,这些产品完成了 SQL 对大数据处理语法的转化,且借助大数据分布式架构带来的天然的海量数据存储、处理能力,解决了传统数据仓库的痛点,成为将来数据仓库的一个发展趋势。

优势

1. 解决了扩展性问题

大数据平台的分布式架构的扩展性极强,海量数据的存储、运算,不再成为问题。

大数据平台负责存储的分布式文件系统,将数据库中的结构化数据统一视为文件进行存储,将文件自动进行拆分,分发到各节点进行存储。不用再顾虑分库分表的问题。在进行数据处理时,才在上层引擎中使用元数据对文件还原成表结构。

2. 解决了热点问题

底层分布式文件系统进行数据存储时,为了保证数据的安全性,会将数据进行备份,默认为 3 份。在进行计算时,会将任务分发到数据节点,因为 3 个副本的数据时一致的,所以可以选择一个最空闲的数据节点,将任务分发过去。在任务执行时,是可选择节点的,所以极大的降低了出现热点的可能性。

存在的问题

1. SQL 支持率低

因为大数据数据仓库架构是将 SQL 转换为大数据分布式处理语法,不是原生的 SQL 处理逻辑,所以 SQL 支持率没有传统数仓那么高。但随着技术的发展,现有大数据产品的 SQL 支持率也越来越高。

2. 缺少事务支持

当前大数据数据仓库因为是分布式架构,所以相对于单机数据库来说,事务的实现较难;大多数产品事务支持不全。但因为数据仓库主要是面向数据分析,对事务的要求并没有那么严格,所以也不存在什么问题。

3. 数据量较少时,计算速度慢

因为大数据架构是完全分布式的,为海量数据运算而设计的;在运行时,会对任务进行拆分、调度,最后对结果进行合并;所以在数据没有达到一定规模的时候,调度过程会花费大量的时间。但一旦数据量超过某个量级,调度时间远远小于计算时间,大数据架构的优势就体现出来了。

小结

总的来说,在数据量没有达到一定量级时,使用传统数据仓库方案是最优的,它性能好、SQL 支持率高、易用性好。但一旦企业数据达到某个量级,传统数据仓库运行效率就会变差,只能寻求大数据数据仓库的解决方案。

虽然大数据数据仓库的 SQL 支持库低、缺少事务支持,但综合它的使用场景,且随着技术的发展,这些问题都会被解决。长远来看,大数据数据仓库,一定会是将来的趋势所在。


http://chatgpt.dhexx.cn/article/rnehUPIn.shtml

相关文章

数据仓库需要的技术

数据仓库和技术 首先对于数仓我们应该知道,相比较于传统数据库来说,它需要的操作要相对简单一些,在数仓中没有联机更新数据的需要,只有一些非常少的锁定需要 然后了解一下数据仓库都有什么需求 1、管理大量的数据 对于数仓而言…

使用fprobe生成Netflow

可以在https://sourceforge.net/projects/fprobe/下载fprobe ubuntu deb下载地址 http://ftp.uni-bayreuth.de/debian/pool/main/f/fprobe/ centos rpm下载地址,可以使用以下地址搜索fprobe http://rpm.pbone.net/index.php3 fprobe的使用 假设eth2为流量镜像口&am…

Netflow、Netstream、sflow

理论性概念自行百度即可。 Netflow是cisco搞出来的,Netstream是HW搞出来的。不一定的点:netflow只能进行入方向的分析,Netstream可以进行出入方向的分析。Sflow是基于芯片的,降低了设备的CUP的压力。 NetFlow更多的是在路由器上得…

NetFlow网络流量分析

NetFlow是思科开发的协议。它用于记录有关穿越网络设备(如路由器,交换机或主机)的IP流量的元数据。启用NetFlow的设备会在接口级别生成元数据,并将此信息发送到流收集器,在流收集器中存储流记录以启用网络流量分析。网…

NetFlow学习总结

NetFlow学习总结 标签: netflow 由于工作需要,对NetFlow做了一些学习和调研,并总结成文档以供学习分享。 背景:随着系统的升级与漏洞的修补,入侵主机进而进行破坏的病毒攻击方式在攻击中所占比例逐渐减少,…

CentOS 7部署nfsen监控netflow

转载来源 :部署nfsen监控netflow : https://www.jianshu.com/p/011258907081 介绍 netflow和sflow可以帮助我们分析网络中的流量构成,抓取实施带宽使用情况,帮我们找出"hog"。作为collector的软件一般都是收费的&…

【NetFlow】NetFlow V9协议详细分析

无意中发现了一个巨牛的人工智能教程,忍不住分享一下给大家。教程不仅是零基础,通俗易懂,而且非常风趣幽默,像看小说一样!觉得太牛了,所以分享给大家。点这里可以跳转到教程。 摘自百度百科 Netflow技术最…

NETFLOW 与 SNMP两种不同的网络监控方法

SNMP(简单网络管理协议)和Netflow都是管理员常用的协议,因其能够提供网络可见性以及在某些情况下识别网络性能问题、网络瓶颈、系统资源分配问题等的原因而备受赞誉。在Netflow方面,像ManageEngine这样的第三方软件供应商可以极大…

NetFlow Analyzer无线网络管理

无线网络在机构中变得更加重要,因为它们越来越多地采用自带设备 (BYOD) 文化。机构环境中设备数量的增加使得保持最佳互联网性能变得困难。虽然有线网络监控很重要,但也有必要监控无线网络,因为它们更重要。 无论是处理安全问题还是网络性能…

网络协议之Netflow与sFlow协议

《NetFlow 与sFlow理解及比较》 (注:本文是个人对两种协议的理解,没有太多概念性的东西,适合对两种协议有一些基本了解的同学阅读。当然,本人知识有限,文章中的内容不保证没有知识错误,如若发现…

linux下netflow软件,NetFlow Analyzer下载

NetFlow Analyzer官方版是一款高效实用的网站流量监控软件,NetFlow Analyzer最新版功能强悍,为用户带来了强大的流量构成、协议分布和用户活动分析功能,NetFlow Analyzer软件支持多种Flow格式,可解析多达100K Flow/秒的大流量数据…

Netflow相关技术

数据包和数据流 数据包是网络中传输的数据单位,每个数据段经过网络层层封装成为-个可以在网络中流动的包, 从源头到达目的地之后,被目标设备层层解析出来,获得里面的数据。 数据流是一个有序的数据包系列,它需要用一定的顺序进行读取。可以认为,数据流是…

Netflow及其及配置案例

NetFlow 是Cisco发布的一款用于分析网络数据包信息的工具包; 根据不同的需要定制不同的方案; 典型的是对网络数据的源地址、目的地址的分析,对流量各种应用的分析或者路由器上各个端口的负载等; addr、dstaddr、port、dstport、pr…

路由器安全-NetFlow

1、NetFlow介绍 提供高层次的诊断,分类和识别网络异常。使用NetFlow来检查哪些行为改变明显的攻击是非常有效的。就像Wiretap一样捕获数据包。NetFlow像电话账单。(谁和谁在通话,通过什么协议和端口,多长时间,速度如何…

NetFlow学习笔记

NetFlow是一种数据交换方式。Netflow提供网络流量的会话级视图,记录下每个TCP/IP事务的信息。也许它不能象tcpdump那样提供网络流量的完整记录,但是当汇集起来时,它更加易于管理和易读。Netflow由Cisco创造。 工作原理:NetFlow利用…

Tableau基础操作——连接数据源

Tableau基础操作——连接数据源 Tableau基础操作——连接数据源 前言 随着大数据时代的到来,借助于数据分析工具深入分析并可视化呈现变得越来越重要。而Tableau以其低功能强大且学习成本低被越来越多的企业所使用 一、Tableau是什么 Tableau可以方便用户实现快速…

BW系列之数据源

SAP BI 的数据源不局限于SAP 系统,所有向SAP BI 传输数据的系统都称为源系统。几乎任何来源的数据可被用来在SAP BI 中进行数据抽取。如下图所示, 1. 源系统的类型 源系统的主要类型包括以下几种: 1) SAP 系统,如SAP R/3, SAP ERP, SAP CRM, …

SpringBoot动态切换数据源

1、配置文件中配置多个数据库连接 # mysql配置 spring.datasource.local.jdbc-urljdbc:mysql://192.168.1.115:3308/cq_njdd?useUnicodetrue&characterEncodingutf-8&useSSLfalse&serverTimezoneAsia/Shanghai spring.datasource.local.usernameroot spring.data…

springboot jpa 多数据源配置

1.yml多数据源配置 amdb,josdb,josdbqy,分别为自定义数据源名称,type指定数据源使用的连接池。 2.新建类DataSourceProperties用于读取yml文件中的自定义数据源属性 Component public class DataSourceProperties {Value("${spring.datasource.am…

Spring Boot使用动态数据源

文章目录 前言一、什么是动态数据源二、动态数据源实现1.实现原理2.实现过程 前言 有这样一个场景,现在要开发一个数据API功能,用户自己编写数据源脚本,在界面任意选择一个数据源,可选择的数据源列表中数据源类型是多样的&#x…