什么叫数据仓库?(相信inmon的数据仓库概念的四个特色是最基本的吧,固然须要加上本身的理解)
A:
著名的数据仓库专家W.H.Inmon在其
著做《Building the Data Warehouse》 一书中给予以下描述: 数据仓库(Data Warehouse)
是一个面向主题的(Subject Oriented)、
集成的(Integrate)、
相对稳定的(Non-Volatile)、
反映历史变化( Time Variant)的数据集合,用于支持管理决策。
对于数据仓库的概念咱们能够从两个层次予以理解,首先,数据仓库用于支持决策,面
向分析型数据处理,它不一样于企业现有的操做型数据库;其次,数据仓库是对多个异构
的数据源有效集成,集成后按照主题进行了重组,并包含历史数据,并且存放在数据仓
库中的数据通常再也不修改。
Q:数据仓库和数据库有什么区别?(事务性数据库和决策支持数据库的区别,固然包括目标、用途、设计等等)
A:
有两个层面/角度来回答这个有趣的问题:
1,逻辑层面/概念层面:数据库和数据仓库实际上是同样的或者及其类似的,都是经过某个数据库软件,基于某种数据模型来组织、管理数据。可是,数据库一般更关注业务交易处理(OLTP),而数据仓库更关注数据分析层面(OLAP),由此产生的数据库模型上也会有很大的差别。数据库一般追求交易的速度,交易完整性,数据的一致性,等等,在数据库模型上主要听从范式模型(1NF,2NF,3NF,等等),从而尽量减小数据冗余,保证引用完整性;而数据仓库强调数据分析的效率,复杂查询的速度,数据之间的相关性分析,因此在数据库模型上,数据仓库喜欢使用多维模型,从而提升数据分析的效率。
2,产品实现层面:数据库和数据仓库软件是有些不一样的,数据库一般使用行式存储,如SAP ASE,Oracle, Microsoft SQL Server,而数据仓库倾向使用列式存储,如SAP IQ,SAP HANA
做者:明说
连接:https://www.zhihu.com/question/20623931/answer/22191772
Q:什么叫OLAP?用途是什么?(OLAP指多维数据库了,主要用于多维分析了;包括三种实现方式)
A:
OLAP(联机分析处理, On-Line Analytical Processing) :是使分析人员、管理人
员或执行人员可以从多种角度对从原始数据中转化出来的、可以真正为用户所理解的、
并真实反映企业维特性的信息进行快速、一致、交互地存取,从而得到对数据的更深刻
了解的一类软件技术。
OLAP的目标:是知足决策支持或多维环境特定的查询和报表需求,它的技术核心
是“维”这个概念,所以OLAP也能够说是多维数据分析工具的集合。
OLAP的实现方法, 根据存储数据的方式不一样能够分为ROLAP、 MOLAP、 HOLAP:
ROLAP表示基于关系数据库的OLAP实现( Relational OLAP)。以关系数据库为
核心,以关系型结构进行多维数据的表示和存储。 ROLAP将多维数据库的多维结构划分
为两类表:一类是事实表,用来存储数据和维关键字;另外一类是维表,即对每一个维至少
使用一个表来存放维的层次、成员类别等维的描述信息。维表和事实表经过主关键字和
外关键字联系在一块儿,造成了“星型模型”。对于层次复杂的维,为避免冗余数据占用
过大的存储空间,可使用多个表来描述,这种星型模型的扩展称为“雪花模型”。
MOLAP表示基于多维数据组织的OLAP实现( Multidimensional OLAP)。以多维
数据组织方式为核心,也就是说,MOLAP使用多维数组存储数据。多维数据在存储中将
造成“立方块( Cube)”的结构,在MOLAP中对立方块的“旋转”、“切块”、“切
片”是产生多维数据报表的主要技术。
HOLAP表示基于混合数据组织的OLAP实现( Hybrid OLAP)。如低层是关系型
的,高层是多维矩阵型的。这种方式具备更好的灵活性
OLTP与OLAP的不一样点:
OLTP数据 OLAP数据
原始数据 导出数据
细节性数据 综合性和提炼性数据
当前值数据 历史数据
可更新 不可更新,但周期性刷新
一次处理的数据量小 一次处理的数据量大
面向应用,事务驱动 面向分析,分析驱动
面向操做人员,支持平常操做 面向决策人员,支持管理须要
什么叫维度和度量值?(一个是出发点,一个是观察值)
数据仓库的基本架构是什么?
(数据源,ETL,data stage,ODS,data warehouse,datamart,OLAP等等,可能为针对每个结构进行发问啊)
A: 2个流派
目前来讲,数据仓库架构比较成熟并已经造成理论的主要有两个,一个是Corporate
Information Factory, 简称CIF, 中文通常翻译为企业信息工厂, 表明人物是Bill Inmon。
另外一个是Mutildimensional Architecture,简称MD,中文通常翻译为多维体系结构,
表明人物是Ralph Kimball(维度)。
企业信息工厂主要包括集成转换层( Integrated and Transformation Layer)、操做
数据存储( Operational Data Store)、数据仓库( Enterprise Data Warehouse)、数
据集市( Data Mart)、探索仓库( Exploration Warehouse)等部件。
多维体系结构分为后台( Back Room)和前台( Front Room)两部分。后台主要负
责数据准备工做,称为数据准备区( Staging Area),前台主要负责数据展现工做,称
为数据集市( Data Mart)。而数据仓库是一个虚拟的部件,它指的是所有数据集市的
集合。
两个数据仓库架构各有优缺点,一种比较流行的作法是合用两种架构,即创建CIF
的数据仓库和MD的数据集市。
什么叫缓慢维度变化? | 缺实例
(为了表现和记录基础数据变化状况在数据仓库中的记录,包括三大类维度处理方式,缓慢变化维包括三小类)
维度建模的数据仓库中,有一个概念叫Slowly Changing Dimensions,中文通常翻
译成“缓慢变化维”,常常被简写为SCD。缓慢变化维的提出是由于在现实世界中,维
度的属性并非静态的,它会随着时间的流失发生缓慢的变化。这种随时间发生变化的
维度咱们通常称之为缓慢变化维, 而且把处理维度表的历史变化信息的问题称为处理缓
慢变化维的问题,有时也简称为处理SCD的问题。
处理缓慢变化维的方法一般有三种方式:
第一种方式是直接覆盖原值。这样处理,最容易实现,可是没有保留历史数据,无
法分析历史变化信息。第一种方式一般简称为“TYPE 1”。
第二种方式是添加维度行。这样处理,须要代理键的支持。实现方式是当有维度属
性发生变化时,生成一条新的维度记录,主键是新分配的代理键,经过天然键能够和原
维度记录保持关联。第二种方式一般简称为“TYPE 2”。
第三种方式是添加属性列。这种处理的实现方式是对于须要分析历史信息的属性添
加一列,来记录该属性变化前的值,而本属性字段使用TYPE 1来直接覆盖。这种方式
的优势是能够同时分析当前及前一次变化的属性值,缺点是只保留了最后一次变化信
息。第三种方式一般简称为“TYPE 3”。
在实际建模中,咱们能够联合使用三种方式,也能够对一个维度表中的不一样属性使
用不一样的方式,这些,都须要根据实际状况来决定,但目的都是同样的,就是可以支持
方便的分析历史变化状况
?? 什么叫查找表,为何使用替代键? 来源SCD
(其实目的和上面同样,从基础表到缓慢维度表的过程当中的一种实现途径)
如何实现增量抽取?
(主要采用时间戳方式,提供数据抽取和处理的性能)
用过什么ETL工具(informatica,ssis,owb,datastage),以及该工具简单讲述特色。
ETL都包括那些组成部分
(工做流和数据流,数据流包括若干组件处理ETL的各个环节)
用过什么报表工具(bo,hyperion,congo,reporing servce),以及该工具基本特色。
数据仓库项目最重要或须要注意的是什么,以及如何处理?
(通常答数据质量,主要是数据源数据质量分析,数据清洗转换,固然也能够定量分析)
如何进行性能优化,只要能答索引的基本原理以及各类索引的区别就好了
Kimball的多维体系结构( MD)中的三个关键性概念
一致性事实( Conformed Fact)是Kimball的多维体系结构( MD)中的三个关键性
概念之一,另两个是总线架构( Bus Architecture)和一致性维度( Conformed
Dimension)。
在创建多个数据集市时,完成一致性维度的工做就已经完成了一致性的80%- 90%
的工做量。余下的工做就是创建一致性事实。
一致性事实和一致性维度有些不一样, 一致性维度是由专人维护在后台( Back Room),
发生修改时同步复制到每一个数据集市,而事实表通常不会在多个数据集市间复制。须要
查询多个数据集市中的事实时,通常经过交叉探查( drill across)来实现。
其余
关于数据库部分的面试题(不是要DBA的,可是仍是要具有DBA的部分知识结构)
用过什么数据库(SQLServer,Oracle),并可以讲述其物理和逻辑结构,以Oracle为主
可以写基本的SQL语句,分组函数和关联,一般会给几个例子的
事实上数据仓库和DBA或者其余技术不一样,没有什么绝对的答案,只要能表达和描述清楚本身的观点就好了
qa: 索引
惟一索引:
create unique index 索引名 on 表名(列名);
alter table 表名 add unique index 索引名 (列名);
drop index 索引名 on 表名;
alter table 表名 drop index 索引名;
主键索引:
其实主键索引是惟一索引的一种,通常指定主键的表会默认建立主键索引,若是不指定主键,其实DB会默认的生成主键,可是这种主键性能不高,因此在建表的时候仍是指定主键吧。==!
ALTER TABLE `table_name` ADD PRIMARY KEY ( `column` )
全文索引:
就是对Char、Text等结构建索引,只有MyISAM支持,如今应该不多用了,你们都用基于Lucene的索引中间件解决这种Case了,没用过也不过多纠缠。
ALTER TABLE `table_name` ADD FULLTEXT ( `column`)
4.单列索引:
对单个列创建索引,对于常常用来进行检索的字段,作好创建索引,能很大程度的优化查询,可是索引的创建是有必定规则的,一下子会提到这些规则。
ALTER TABLE `table_name` ADD INDEX index_name ( `column` )
5.组合索引:
组合索引是将多个列组合到一块儿创建一个索引,组合索引有很著名的“左前缀规则”,同时也由于这个规则,其实有时候单列索引和组合索引是有重复的。什么是左前缀规则,一下子会交代。
ALTER TABLE `table_name` ADD INDEX index_name ( `column1`, `column2`, `column3` )