当前位置:首页 » 数据仓库 » 数据仓库技术查询所有数据库
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

数据仓库技术查询所有数据库

发布时间: 2023-03-04 13:26:01

❶ 数据仓库的定义

目前,大家公认的数据仓库创始人W H.Inmon在他所着的《建立数据仓库》一书中对数据仓库所下的定义;数据仓库就是面向主题的、集成的、稳定的、不同时间的数据集合,用以支持经营管理中的决策制定过程。数据仓库中的数据面向主题与传统的数据库面向应用相对应。主题是一个在较高层次将数据归类的标准,每一个主题对应一个宏观的分析领域。数据仓库的集成特性是指在数据进入数据仓库之前,必须进行数据加丁一和集成,这是建立数据仓库的关键步骤,首先要统一原始数据中的矛盾之处,还要将原始数据结构做一个从面向应用向面向主题的转变,数据仓库的稳定性是指数据仓库反映的是历史数据的内容,而不是日常事务处理产生的数据,数据经加工和集成进入数据仓库后是很少修改或根本不修改的;数据仓库是不同时间的数据集合,它要求数据仓库中的数据保存时限能满足进行决策分析的需要,而且数据仓库中的数据都要标明该数据的历史时期。
数据仓库最根本的特点是物理地存放数据,而且这些数据并不是最新的、专有的,而是来源于其他数据库,它要建立在一个较全面和完善的信息应用的基础上,用于支持高层决策分析,而事务处理数据库在企业的信息环境!!,承担的是日常操作性的任务,数据仓库是数据库技术的一种新的应用,到目前为止,数据仓库还是用数据库管理系统来管理其中的数据。

❷ 什么是数据仓库,数据仓库在哪里保存数据。BI项目需要用到哪些技术

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

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

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

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

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

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

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

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

  • 。。。。。。


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


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


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


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


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


  • 我们从下往上看:


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



  • 数据源的种类比较多:


  • 网站日志:


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


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


  • 业务数据库:


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


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


  • 来自于Ftp/Http的数据源:


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


  • 其他数据源:


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



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



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


  • 当然,使用Hadoop框架自然而然也提供了MapRece接口,如果真的很乐意开发Java,或者对SQL不熟,那么也可以使用MapRece来做分析与计算;Spark是这两年非常火的,经过实践,它的性能的确比MapRece要好很多,而且和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开发,然后配置到调度系统就可以了,如果任务异常,会收到告警。这样,可以使更多的资源专注于业务之上。

❸ 什么是数据仓库

数据仓库(DataWareHouse),简称为DW,是为给企业所有级别的决策制定过程,提供所有类型数据支持的战略集合。被认为是商业智能的核心组件,由比尔·恩门于1990年提出。它是信息的中央存储库,出于分析性报告和决策支持目的而创建。

❹ 什么是数据仓库

1、面向主题。操作型数据库的数据组织面向事务处理任务,各个业务系统之间各自分离,而数据仓库中的数据是按照一定的主题域进行组织。主题是一个抽象的概念,是指用户使用数据仓库进行决策时所关心的重点方面,一个主题通常与多个操作型信息系统相关。

2、集成的。面向事务处理的操作型数据库通常与某些特定的应用相关,数据库之间相互独立,并且往往是异构的。而数据仓库中的数据是在对原有分散的数据库数据抽取、清理的基础上经过系统加工、汇总和整理得到的,必须消除源数据中的不一致性,以保证数据仓库内的信息是关于整个企业的一致的全局信息。

3、相对稳定的。操作型数据库中的数据通常实时更新,数据根据需要及时发生变化。数据仓库的数据主要供企业决策分析之用,所涉及的数据操作主要是数据查询,一旦某个数据进入数据仓库以后,一般情况下将被长期保留,也就是数据仓库中一般有大量的查询操作,但修改和删除操作很少,通常只需要定期的加载、刷新。

4、反映历史变化。操作型数据库主要关心当前某一个时间段内的数据,而数据仓库中的数据通常包含历史信息,系统记录了企业从过去某一时点(如开始应用数据仓库的时点)到目前的各个阶段的信息,通过这些信息,可以对企业的发展历程和未来趋势做出定量分析和预测。


企业数据仓库的建设,是以现有企业业务系统和大量业务数据的积累为基础。数据仓库不是静态的概念,只有把信息及时交给需要这些信息的使用者,供他们做出改善其业务经营的决策,信息才能发挥作用,信息才有意义。而把信息加以整理归纳和重组,并及时提供给相应的管理决策人员,是数据仓库的根本任务。因此,从产业界的角度看,数据仓库建设是一个工程,是一个过程。

❺ 数据仓库的特点

1、数据仓库是面向主题的;操作型数据库的数据组织面向事务处理任务,而数据仓库中的数据是按照一定的主题域进行组织。主题是指用户使用数据仓库进行决策时所关心的重点方面,一个主题通常与多个操作型信息系统相关。
2、数据仓库是集成的,数据仓库的数据有来自于分散的操作型数据,将所需数据从原来的数据中抽取出来,进行加工与集成,统一与综合之后才能进入数据仓库;
数据仓库中的数据是在对原有分散的数据库数据抽取、清理的基础上经过系统加工、汇总和整理得到的,必须消除源数据中的不一致性,以保证数据仓库内的信息是关于整个企业的一致的全局信息。
数据仓库的数据主要供企业决策分析之用,所涉及的数据操作主要是数据查询,一旦某个数据进入数据仓库以后,一般情况下将被长期保留,也就是数据仓库中一般有大量的查询操作,但修改和删除操作很少,通常只需要定期的加载、刷新。
数据仓库中的数据通常包含历史信息,系统记录了企业从过去某一时点(如开始应用数据仓库的时点)到当前的各个阶段的信息,通过这些信息,可以对企业的发展历程和未来趋势做出定量分析和预测。
3、数据仓库是不可更新的,数据仓库主要是为决策分析提供数据,所涉及的操作主要是数据的查询;
4、数据仓库是随时间而变化的,传统的关系数据库系统比较适合处理格式化的数据,能够较好的满足商业商务处理的需求。稳定的数据以只读格式保存,且不随时间改变。
5、汇总的。操作性数据映射成决策可用的格式。
6、大容量。时间序列数据集合通常都非常大。
7、非规范化的。Dw数据可以是而且经常是冗余的。
8、元数据。将描述数据的数据保存起来。
9、数据源。数据来自内部的和外部的非集成操作系统。
数据仓库,是在数据库已经大量存在的情况下,为了进一步挖掘数据资源、为了决策需要而产生的,它并不是所谓的“大型数据库”。数据仓库的方案建设的目的,是为前端查询和分析作为基础,由于有较大的冗余,所以需要的存储也较大。为了更好地为前端应用服务,数据仓库往往有如下几点特点:
1.效率足够高。数据仓库的分析数据一般分为日、周、月、季、年等,可以看出,日为周期的数据要求的效率最高,要求24小时甚至12小时内,客户能看到昨天的数据分析。由于有的企业每日的数据量很大,设计不好的数据仓库经常会出问题,延迟1-3日才能给出数据,显然不行的。
2.数据质量。数据仓库所提供的各种信息,肯定要准确的数据,但由于数据仓库流程通常分为多个步骤,包括数据清洗,装载,查询,展现等等,复杂的架构会更多层次,那么由于数据源有脏数据或者代码不严谨,都可以导致数据失真,客户看到错误的信息就可能导致分析出错误的决策,造成损失,而不是效益。
3.扩展性。之所以有的大型数据仓库系统架构设计复杂,是因为考虑到了未来3-5年的扩展性,这样的话,未来不用太快花钱去重建数据仓库系统,就能很稳定运行。主要体现在数据建模的合理性,数据仓库方案中多出一些中间层,使海量数据流有足够的缓冲,不至于数据量大很多,就运行不起来了。
从上面的介绍中可以看出,数据仓库技术可以将企业多年积累的数据唤醒,不仅为企业管理好这些海量数据,而且挖掘数据潜在的价值,从而成为通信企业运营维护系统的亮点之一。正因为如此,
广义的说,基于数据仓库的决策支持系统由三个部件组成:数据仓库技术,联机分析处理技术和数据挖掘技术,其中数据仓库技术是系统的核心,在这个系列后面的文章里,将围绕数据仓库技术,介绍现代数据仓库的主要技术和数据处理的主要步骤,讨论在通信运营维护系统中如何使用这些技术为运营维护带来帮助。
4.面向主题
操作型数据库的数据组织面向事务处理任务,各个业务系统之间各自分离,而数据仓库中的数据是按照一定的主题域进行组织的。主题是与传统数据库的面向应用相对应的,是一个抽象概念,是在较高层次上将企业信息系统中的数据综合、归类并进行分析利用的抽象。每一个主题对应一个宏观的分析领域。数据仓库排除对于决策无用的数据,提供特定主题的简明视图。

❻ 数据仓库的技术发展

从数据库到数据仓库
企业的数据处理大致分为两类:一类是操作型处理,也称为联机事务处理,它是针对具体业务在数据库联机的日常操作,通常对少数记录进行查询、修改。另一类是分析型处理,一般针对某些主题的历史数据进行分析,支持管理决策。
两者具有不同的特征,主要体现在以下几个方面。
1、处理性能
日常业务涉及频繁、简单的数据存取,因此对操作型处理的性能要求是比较高的,需要数据库能够在很短时间内做出反应。
2、数据集成
企业的操作型处理通常较为分散,传统数据库面向应用的特性使数据集成困难。
3、数据更新
操作型处理主要由原子事务组成,数据更新频繁,需要并行控制和恢复机制。
4、数据时限
操作型处理主要服务于日常的业务操作。
5、数据综合
操作型处理系统通常只具有简单的统计功能。
数据库已经在信息技术领域有了广泛的应用,我们社会生活的各个部门,几乎都有各种各样的数据库保存着与我们的生活息息相关的各种数据。作为数据库的一个分支,数据仓库概念的提出,相对于数据库从时间上就近得多。美国着名信息工程专家WilliamInmON博士在90年代初提出了数据仓库概念的一个表述,认为:“一个数据仓库通常是一个面向主题的、集成的、随时间变化的、但信息本身相对稳定的数据集合,它用于对管理决策过程的支持。”
这里的主题,是指用户使用数据仓库进行决策时所关心的重点方面,如:收入、客户、销售渠道等;所谓面向主题,是指数据仓库内的信息是按主题进行组织的,而不是像业务支撑系统那样是按照业务功能进行组织的。
集成,是指数据仓库中的信息不是从各个业务系统中简单抽取出来的,而是经过一系列加工、整理和汇总的过程,因此数据仓库中的信息是关于整个企业的一致的全局信息。
随时间变化,是指数据仓库内的信息并不只是反映企业当前的状态,而是记录了从过去某一时点到当前各个阶段的信息。
数据库安全
计算机攻击、内部人员违法行为,以及各种监管要求,正促使组织寻求新的途径来保护其在商业数据库系统中的企业和客户数据。
您可以采取八个步骤保护数据仓库并实现对关键法规的遵从。
1. 发现
使用发现工具发现敏感数据的变化。
2.漏洞和配置评估
评估数据库配置,确保它们不存在安全漏洞。这包括验证在操作系统上安装数据库的方式(比如检查数据库配置文件和可执行程序的文件权限),以及验证数据库自身内部的配置选项(比如多少次登录失败之后锁定帐户,或者为关键表分配何种权限)。
3. 加强保护
通过漏洞评估,删除不使用的所有功能和选项。
4. 变更审计
通过变更审计工具加强安全保护配置,这些工具能够比较配置的快照(在操作系统和数据库两个级别上),并在发生可能影响数据库安全的变更时,立即发出警告。
5. 数据库活动监控(DAM)
通过及时检测入侵和误用来限制信息暴露,实时监控数据库活动。
6. 审计
必须为影响安全性状态、数据完整性或敏感数据查看的所有数据库活动生成和维护安全、防否认的审计线索。
7.身份验证、访问控制和授权管理
必须对用户进行身份验证,确保每个用户拥有完整的责任,并通过管理特权来限制对数据的访问。
8. 加密
使用加密来以不可读的方式呈现敏感数据,这样攻击者就无法从数据库外部对数据进行未授权访问。
如何应对监控需求
数据,作为企业核心资产,越来越受到企业的关注,一旦发生非法访问、数据篡改、数据盗取,将给企业带来巨大损失。数据库作为数据的核心载体,其安全性就更加重要。
面对数据库的安全问题,企业常常遇到以下主要挑战:数据库被恶意访问、攻击、甚至遭到数据偷窃,而您不能及时地发现这些恶意的操作; 不了解数据使用者对数据库的访问细节,从而不能保证您对数据安全的管理;
信息安全同样会带来审计问题,当今全球对合规/ 审计要求越来越严格,由于不满足合规要求而导致处罚的事件屡见不鲜。美国《萨班斯法案》的强制性要求曾导致2007年7月5日中国第一家海外上市公司—华晨中国汽车控股有限公司从美国纽约证券交易所退市。
有关信息安全的合规/审计要求,中国政府也进行了大量的强化工作,例如,为了加强商业银行信息科技风险管理,银监会出台了《商业银行信息科技风险管理指引》规则,中国政府——财政部、证监会、银监会、保监会及审计署等五部委会联合发布“中国版萨班尼斯-奥克斯利法案(以下简称‘C-SOX法案’)”——《企业内部控制基本规范》。
面对合规/审计要求,企业往往面临以下挑战:
·不能做到持续性审计
用户审计主要是针对数据库、应用系统日志做审计,这些日志内容非常庞大,DBA(数
据库管理员)和信息安全审计人员的审计工作就只能做事后分析,分析时间也长。不能做到持续性审计。
·审计并不规范
用户审计的内容和表格主要是根据外部审计人员要求和内部安全管理要素来考虑,这些
审计工作的好坏基本上取决于DBA和信息安全审计人员的经验和技能,这些不能有效成为公司规范和满足外部审计要求。
·数据库管理员权责没有完全区分开,导致审计效果问题
数据库管理和审计原始数据的收集实际上都是由DBA来做的,这就导致了DBA的权责不明确,DBA没办法客观审计自己所做的工作,尽管用户设置了信息安全审计人员,但该角色的审计工作的部分证据建立在DBA初步审计基础上,因此审计效果与可靠性存问题。
·审计并不完整
人工审计需要面对海量的日志,不可能对所有数据进行细致审计;审计报告就未必能满足
100%可见性。
为了满足企业的信息安全、合规、审计等需求,IBM公司推出了“CARS”企业信息架构,该架构主要从“法规遵从”(Compliance)、“信息可用”(Availability)、“信息保留”(Retention)、“信息安全”(Security) 四个方面进行了全面的满足和保护。不仅如此,IBM Guardium数据库安全、合规、审计、监控解决方案的推出,针对了“法规遵从”和“信息安全”进行了专项治理和加强。
Guardium数据库安全、合规、审计、监控解决方案,以软硬件一体服务器的方式,大大增强数据库安全性,满足并方便审计工作,提升性能,并简化了安装部署工作。可以防止对数据库的破坏、恶意访问、偷窃数据,可帮助判断客户关键敏感的数据在什么地方;谁在使用这些数据;控制对数据库中数据的访问,并可监控特权用户;帮助企业强制执行安全规范;检查薄弱环节、漏洞,防止对数据库配置的改动;满足合规/审计的要求,并可简化内部和外部审计、合规的过程并使其自动化,增强运作效率;管理安全的复杂性。