当前位置:首页 > 西部百科 > 正文内容

数据库和数据仓库区别(数据库和数据仓库是一回事吗)

2023-05-06 14:00:06西部百科1

数据库和数据仓库是一回事吗

数据仓库数据中台区别在哪?

我觉得首先要从概念上区分一下,数据中台不单单指系统或者工具,而是一个职能部门,通过一系列平台、工具、数据、流程、规范来为整个组织提供数据资产管理和服务的职能部门。

数据中台负责全域数据采集、数据资产加工和管理、并向前台业务部门和决策部门提供数据服务的所以数 据中台的核心应该是数据资产管理和数据赋能。通俗的讲就是数据弹药库。

把数据开放给前台业务人员直接使用,快速响应,这才是数据中台的核心价值。也是区别系统级数据中台和概念性数据中台的要点。

数据中台从某个意义来说属于数仓的一种,都是要把数据抽进来建立一个数据仓库。但是两者的数据来源和建立数仓的目标以及数据应用的方向都存在很大差异。

先从数据来源上来说,数据中台的数据来源可以是结构化数据或者非结构化的数据。而传统数仓的数据来源主要是业务数据库,数据格式也是以结构化数据为主。

数据中台不仅仅是汇聚企业各种数据,而且让这些数据遵循相同的标准和口径,对事物的标识能统一或者相互关联,并且提供统一的数据服务接口。就像做菜一样,按照标准化的菜名,先把所有可能用到的材料都准备好。

传统的数据仓库不能满足数据分析需求。

企业在数据分析应用方面呈现“五大转变”(从统计分析向预测分析转变、从单领域分析向跨领域转变、从被动分析向主动分析转变、从非实时向实时分析转变、从结构化数据向多元化转变),并且对统一的数据中台平台诉求强烈,对数据中台的运算能力、核心算法、及数据全面性提出了更高的要求。传统的数据仓库主要用来做BI的报表,目的性很单一,只抽取和清洗该相关分析报表用到基础数据,新增一张报表,就要从底层到上层再做一次。

数据库和数据仓库的区别

excel与数据库的不同之处:

1、结构不同:

excel即是电子数据表,显示由一系列行与列构成的网格。。其中的单元格可以用于存放数值、计算式或文本。

数据库是存放数据的仓库。确切地说是一个按数据结构来存储和管理数据的计算机软件系统。

2、功能不同:

excel可以用于制作各种复杂的表格文档,进行繁琐的数据计算,并能对输入的数据进行各种复杂统计运算,也可以制作彩色丰富的商业图表。

数据库功能更强大,除了可以实现excel的基本功能,还可以通过设计和使用各种窗体,进行数据查询并生成相应报表。

3、安全策略不同:

excel通过密码进行保护,系统提供了几种类型的密码保护。

数据库包括了数据库用户管理、数据库操作规范、用户认证、操作系统安全4个部分。

当用于进行功能相对简单的处理表格和进行图形分析,或是处理的数据量不太大的时候选用excel。当用于进行功能比较复杂的数据处理,比如设计、修改、浏览一个记录数据的基本表,对基本记录的数据中进行各种查询,或是设计各种窗体,设计各种报表等,还有就是处理数据量较大时选用数据库。

数据库和数据仓库有什么区别

数据库是“按照数据结构来组织、存储和管理数据的仓库”。

数据结构是指数据的组织形式或数据之间的联系。分为数据的逻辑结构和数据的物理结构。

数据仓库和数据库有何不同

 列式数据库和行式数据库是两种不同的数据库架构方式,它们的主要区别在于数据存储和查询方式。

列式数据库:

列式数据库将数据存储在列中,每个列都包含相同类型的数据。这种方式可以提高存储效率,因为相同类型的数据可以压缩并存储在一起。列式数据库通常用于需要快速查询特定列的数据的应用程序,如数据仓库和商业智能应用程序。

行式数据库:

行式数据库将数据存储在行中,每一行包含一组相关的数据。这种方式使得查询整行数据变得更加容易,因为所有相关数据都存储在同一行中。行式数据库通常用于需要快速查询整行数据的应用程序,如在线交易和网站应用程序。

总的来说,列式数据库适用于大量数据的读取和分析,而行式数据库适用于频繁的数据更新和查询。

数据库和数据仓库是一回事吗?说说你的看法

数据库(Database),简而言之可视为电子化的文件柜——存储电子文件的处所,用户可以对文件中的数据运行新增、截取、更新、删除等操作。 所谓“数据库”系以一定方式储存在一起、能予多个用户共享、具有尽可能小的冗余度、与应用程序彼此独立的数据集合。一个数据库由多个表空间(Tablespace)构成。

数据库处理基础、数据建模、数据库设计、数据库原理和网络数据库处理等基础内容外,重点扩充了数据库系统互连、商务智能、数据仓库及XML深层应用等内容。

数据库与数据仓库有什么不同

数据库是软件,硬盘是硬件。

数据库专业的来说,其实就是一种电子的仓库,是专门储存数据和管理管理数据的一种处所,用户可以对数据库中的数据进行新增和更新或者删除等操作。

硬盘是计算机主要的存储介质,可以存储大量的二进制数据,并且断电后也能保持数据不丢失。早期计算机使用的磁盘是软磁盘(Floppy Disk,简称软盘),如今常用的磁盘是硬磁盘(Hard disk,简称硬盘)。

数据库和数据仓库的关系

如果对关系型数据库比较熟悉,建议用greenplum,这个相当于自动分库分表的postgresql,做olap很好用

数据库和数据仓库有什么不同

什么是数据库?数据库是干嘛的?

1. 什么是数据库?

数据概念

用来描述事物的符号标记,例如:文本、图形、声音、数字等。例子:某个班级人数。

数据库概念。

用来存储数据的仓库简称数据库,数据存储在计划机磁盘系统内,可供大家做各种数据业务分析。例如:可以理解成一个超市,超市的不同商品区域,分别用来存放不同的商品,不同的商品根据商品类型存储,用户要买什么东西可以按照一定的顺序去查找。

那在软件项目中的数据库又是怎样的呢?大家都知道随着科学技术的发展,在没有数据库管理系统之前,大家存储数据的方式是使用纸质单据进行存储,纸质单据容易折旧,甚至要核对数据效率低,不利于查询数据,有了数据库管理系统后,一切数据都存储在服务端的数据中,有利于管理、维护、控制、查询数据、数据共享、冗余度低,实现数据持久化,提升工作效率,降低维护成本。

2. 数据库特点有些?

1.数据库结构:数据库-表-字段、行列等数据,类似Excel表数据。

2.让数据呈现分类与结构化。

3.按照一定的数据结构进行描述和存储可供用户做数据分析、数据独立性与扩展性较高。

4.数据库系统 (DBS):用来管理用户项目数据存储数据的一个数据库系统。

5.数据库系统构成:数据库、数据库管理系统及开发工具、数据库管理员、数据表、数据、应用系统等。

3. 数据库与应用程序间的交互过程?

一般前端用户注册或者下单的数据通过接口传递给服务器,再将保证保存到数据库中去,这样可以达到资源共享的目的。

客户端与服务器的交互过程原理图:

总结:通过以上内容的讲解,我相信大家对什么是数据以及什么是数据库,以及数据库的交互原理有了一个深入的理解,希望大家能够在以后的项目实践中结合应用。

数据库与数据仓库的区别是什么

一直想整理一下这块内容,既然是漫谈,就想起什么说什么吧。我一直是在互联网行业,就以互联网行业来说。先大概列一下互联网行业数据仓库、数据平台的用途:

整合公司所有业务数据,建立统一的数据中心;

提供各种报表,有给高层的,有给各个业务的;

为网站运营提供运营上的数据支持,就是通过数据,让运营及时了解网站和产品的运营效果;

为各个业务提供线上或线下的数据支持,成为公司统一的数据交换与提供平台;

分析用户行为数据,通过数据挖掘来降低投入成本,提高投入效果;比如广告定向精准投放、用户个性化推荐等;

开发数据产品,直接或间接为公司盈利;

建设开放数据平台,开放公司数据;

。。。。。。

上面列出的内容看上去和传统行业数据仓库用途差不多,并且都要求数据仓库/数据平台有很好的稳定性、可靠性;但在互联网行业,除了数据量大之外,越来越多的业务要求时效性,甚至很多是要求实时的 ,另外,互联网行业的业务变化非常快,不可能像传统行业一样,可以使用自顶向下的方法建立数据仓库,一劳永逸,它要求新的业务很快能融入数据仓库中来,老的下线的业务,能很方便的从现有的数据仓库中下线;

其实,互联网行业的数据仓库就是所谓的敏捷数据仓库,不但要求能快速的响应数据,也要求能快速的响应业务;

建设敏捷数据仓库,除了对架构技术上的要求之外,还有一个很重要的方面,就是数据建模,如果一上来就想着建立一套能兼容所有数据和业务的数据模型,那就又回到传统数据仓库的建设上了,很难满足对业务变化的快速响应。应对这种情况,一般是先将核心的持久化的业务进行深度建模(比如:基于网站日志建立的网站统计分析模型和用户浏览轨迹模型;基于公司核心用户数据建立的用户模型),其它的业务一般都采用维度+宽表的方式来建立数据模型。这块是后话。

整体架构下面的图是我们目前使用的数据平台架构图,其实大多公司应该都差不多:

逻辑上,一般都有数据采集层、数据存储与分析层、数据共享层、数据应用层。可能叫法有所不同,本质上的角色都大同小异。

我们从下往上看:

数据采集数据采集层的任务就是把数据从各种数据源中采集和存储到数据存储上,期间有可能会做一些简单的清洗。

数据源的种类比较多:

网站日志:

作为互联网行业,网站日志占的份额最大,网站日志存储在多台网站日志服务器上,

一般是在每台网站日志服务器上部署flume agent,实时的收集网站日志并存储到HDFS上;

业务数据库:

业务数据库的种类也是多种多样,有Mysql、Oracle、SqlServer等,这时候,我们迫切的需要一种能从各种数据库中将数据同步到HDFS上的工具,Sqoop是一种,但是Sqoop太过繁重,而且不管数据量大小,都需要启动MapReduce来执行,而且需要Hadoop集群的每台机器都能访问业务数据库;应对此场景,淘宝开源的DataX,是一个很好的解决方案(可参考文章 《异构数据源海量数据交换工具-Taobao DataX 下载和使用》),有资源的话,可以基于DataX之上做二次开发,就能非常好的解决,我们目前使用的DataHub也是。

当然,Flume通过配置与开发,也可以实时的从数据库中同步数据到HDFS

来自于Ftp/Http的数据源:

有可能一些合作伙伴提供的数据,需要通过Ftp/Http等定时获取,DataX也可以满足该需求;

其他数据源:

比如一些手工录入的数据,只需要提供一个接口或小程序,即可完成

数据存储与分析毋庸置疑,HDFS是大数据环境下数据仓库/数据平台最完美的数据存储解决方案。

离线数据分析与计算,也就是对实时性要求不高的部分,在我看来,Hive还是首当其冲的选择,丰富的数据类型、内置函数;压缩比非常高的ORC文件存储格式;非常方便的SQL支持,使得Hive在基于结构化数据上的统计分析远远比MapReduce要高效的多,一句SQL可以完成的需求,开发MR可能需要上百行代码;

当然,使用Hadoop框架自然而然也提供了MapReduce接口,如果真的很乐意开发Java,或者对SQL不熟,那么也可以使用MapReduce来做分析与计算;Spark是这两年非常火的,经过实践,它的性能的确比MapReduce要好很多,而且和Hive、Yarn结合的越来越好,因此,必须支持使用Spark和SparkSQL来做分析和计算。因为已经有Hadoop Yarn,使用Spark其实是非常容易的,不用单独部署Spark集群,关于Spark On Yarn的相关文章,可参考:《Spark On Yarn系列文章》

实时计算部分,后面单独说。

数据共享这里的数据共享,其实指的是前面数据分析与计算后的结果存放的地方,其实就是关系型数据库和NOSQL数据库;

前面使用Hive、MR、Spark、SparkSQL分析和计算的结果,还是在HDFS上,但大多业务和应用不可能直接从HDFS上获取数据,那么就需要一个数据共享的地方,使得各业务和产品能方便的获取数据; 和数据采集层到HDFS刚好相反,这里需要一个从HDFS将数据同步至其他目标数据源的工具,同样,DataX也可以满足。

另外,一些实时计算的结果数据可能由实时计算模块直接写入数据共享。

数据应用

业务产品

业务产品所使用的数据,已经存在于数据共享层,他们直接从数据共享层访问即可;

报表

同业务产品,报表所使用的数据,一般也是已经统计汇总好的,存放于数据共享层;

即席查询

即席查询的用户有很多,有可能是数据开发人员、网站和产品运营人员、数据分析人员、甚至是部门老大,他们都有即席查询数据的需求;

这种即席查询通常是现有的报表和数据共享层的数据并不能满足他们的需求,需要从数据存储层直接查询。

即席查询一般是通过SQL完成,最大的难度在于响应速度上,使用Hive有点慢,目前我的解决方案是SparkSQL,它的响应速度较Hive快很多,而且能很好的与Hive兼容。

当然,你也可以使用Impala,如果不在乎平台中再多一个框架的话。

OLAP

目前,很多的OLAP工具不能很好的支持从HDFS上直接获取数据,都是通过将需要的数据同步到关系型数据库中做OLAP,但如果数据量巨大的话,关系型数据库显然不行;

这时候,需要做相应的开发,从HDFS或者HBase中获取数据,完成OLAP的功能;

比如:根据用户在界面上选择的不定的维度和指标,通过开发接口,从HBase中获取数据来展示。

其它数据接口

这种接口有通用的,有定制的。比如:一个从Redis中获取用户属性的接口是通用的,所有的业务都可以调用这个接口来获取用户属性。

实时计算现在业务对数据仓库实时性的需求越来越多,比如:实时的了解网站的整体流量;实时的获取一个广告的曝光和点击;在海量数据下,依靠传统数据库和传统实现方法基本完成不了,需要的是一种分布式的、高吞吐量的、延时低的、高可靠的实时计算框架;Storm在这块是比较成熟了,但我选择Spark Streaming,原因很简单,不想多引入一个框架到平台中,另外,Spark Streaming比Storm延时性高那么一点点,那对于我们的需要可以忽略。

我们目前使用Spark Streaming实现了实时的网站流量统计、实时的广告效果统计两块功能。

做法也很简单,由Flume在前端日志服务器上收集网站日志和广告日志,实时的发送给Spark Streaming,由Spark Streaming完成统计,将数据存储至Redis,业务通过访问Redis实时获取。

任务调度与监控在数据仓库/数据平台中,有各种各样非常多的程序和任务,比如:数据采集任务、数据同步任务、数据分析任务等;

这些任务除了定时调度,还存在非常复杂的任务依赖关系,比如:数据分析任务必须等相应的数据采集任务完成后才能开始;数据同步任务需要等数据分析任务完成后才能开始; 这就需要一个非常完善的任务调度与监控系统,它作为数据仓库/数据平台的中枢,负责调度和监控所有任务的分配与运行。

前面有写过文章,《大数据平台中的任务调度与监控》,这里不再累赘。

总结在我看来架构并不是技术越多越新越好,而是在可以满足需求的情况下,越简单越稳定越好。目前在我们的数据平台中,开发更多的是关注业务,而不是技术,他们把业务和需求搞清楚了,基本上只需要做简单的SQL开发,然后配置到调度系统就可以了,如果任务异常,会收到告警。这样,可以使更多的资源专注于业务之上。

本网站文章仅供交流学习 ,不作为商用, 版权归属原作者,部分文章推送时未能及时与原作者取得联系,若来源标注错误或侵犯到您的权益烦请告知,我们将立即删除.

本文链接:https://www.xibujisuan.cn/98818914.html