文档视界 最新最全的文档下载
当前位置:文档视界 › 数据仓库架构师面试题

数据仓库架构师面试题

数据仓库架构师面试题
数据仓库架构师面试题

数据仓库(商业智能)/ETL架构师面试题

1. What is a logical data mapping and what does it mean to the ETL team?

什么是逻辑数据映射?它对ETL项目组的作用是什么?

答:

逻辑数据映射(Logical Data Map)用来描述源系统的数据定义、目标数据仓库的模型以及将源系统的数据转换到数据仓库中需要做操作和处理方式的说明文档,通常以表格或Excel的格式保存如下的信息:

目标表名:

目标列名:

目标表类型:注明是事实表、维度表或支架维度表。

SCD类型:对于维度表而言。

源数据库名:源数据库的实例名,或者连接字符串。

源表名:

源列名:

转换方法:需要对源数据做的操作,如Sum(amount)等。

逻辑数据映射应该贯穿数据迁移项目的始终,在其中说明了数据迁移中的ETL 策略。在进行物理数据映射前进行逻辑数据映射对ETL项目组是重要的,它起着元数据的作用。项目中最好选择能生成逻辑数据映射的数据迁移工具。

2. What are the primary goals of the data discovery phase of the data warehouse project?

在数据仓库项目中,数据探索阶段的主要目的是什么?

答:

在逻辑数据映射进行之前,需要首先对所有的源系统进行分析。对源系统的分析通常包括两个阶段,一个是数据探索阶段(Data Discovery Phase),另一个是异常数据检测阶段。

数据探索阶段包括以下内容:

1.收集所有的源系统的文档、数据字典等内容。

2.收集源系统的使用情况,如谁在用、每天多少人用、占多少存储空间等内容。3.判断出数据的起始来源(System-of-Record)。

4.通过数据概况(Data Profiling)来对源系统的数据关系进行分析。

数据探索阶段的主要目的是理解源系统的情况,为后续的数据建模和逻辑数据映射打下坚实的基础。

3. How is the system-of-record determined?

如何确定起始来源数据?

答:

这个问题的关键是理解什么是System-of-Record。System-of-Record和数据仓库领域内的其他很多概念一样,不同的人对它有不同的定义。在Kimball的体系中,System-of-Record是指最初产生数据的地方,即数据的起始来源。在较大的企业内,数据会被冗余的保存在不同的地方,在数据的迁移过程中,会出现修改、清洗等操作,导致与数据的起始来源产生不同。

起始来源数据对数据仓库的建立有着非常重要的作用,尤其是对产生一致性维度来说。我们从起始来源数据的越下游开始建立数据仓库,我们遇到垃圾数据的风险就会越大。

Architecture

4. What are the four basic Data Flow steps of an ETL process?

在ETL过程中四个基本的过程分别是什么?

答:

Kimball数据仓库构建方法中,ETL的过程和传统的实现方法有一些不同,主要分为四个阶段,分别是抽取(extract)、清洗(clean)、一致性处理(comform)和交付(delivery),简称为ECCD。

1.抽取阶段的主要任务是:

读取源系统的数据模型。

连接并访问源系统的数据。

变化数据捕获。

抽取数据到数据准备区。

2.清洗阶段的主要任务是:

清洗并增补列的属性。

清洗并增补数据结构。

清洗并增补数据规则。

增补复杂的业务规则。

建立元数据库描述数据质量。

将清洗后的数据保存到数据准备区。

3.一致性处理阶段的主要任务是:

一致性处理业务标签,即维度表中的描述属性。

一致性处理业务度量及性能指标,通常是事实表中的事实。去除重复数据。

国际化处理。

将一致性处理后的数据保存到数据准备区。

4.交付阶段的主要任务是:

加载星型的和经过雪花处理的维度表数据。

产生日期维度。

加载退化维度。

加载子维度。

加载1、2、3型的缓慢变化维度。

处理迟到的维度和迟到的事实。

加载多值维度。

加载有复杂层级结构的维度。

加载文本事实到维度表。

处理事实表的代理键。

加载三个基本类型的事实表数据。

加载和更新聚集。

将处理好的数据加载到数据仓库。

从这个任务列表中可以看出,ETL的过程和数据仓库建模的过程结合的非常紧密。换句话说,ETL系统的设计应该和目标表的设计同时开始。通常来说,数据仓库架构师和ETL系统设计师是同一个人。

5. What are the permissible data structures for the data staging area? Briefly desc ribe the pros and cons of each.

在数据准备区中允许使用的数据结构有哪些?各有什么优缺点?

答:

1.固定格式的文本文件。(Flat File)

Flat File指的是一种保存在系统上的一种文本文件格式,它以类似数据库的表的方式用行和列来保存数据。这种文件格式经常用来进行数据交换。用于保存数据不太合适。

2.XML数据集。

多用于数据交换,用户保存数据不太合适。

3.关系数据库的表。

保存数据的较理想选择。

4.独立的数据库表。

独立的数据库表一般指建立的表和其他表没有外键约束关系。这样的表多用于数据处理。

5.三范式或者关系型模型。

6.非关系型数据源。

非关系型数据源一般包括COBOL copy books、VSAM文件、Flat文件、Spreads heets等。

7.维度模型。

8.原子事实表和聚集事实表。

9.代理键查找表。

6. When should data be set to disk for safekeeping during the ETL?

简述ETL过程中哪个步骤应该出于安全的考虑将数据写到磁盘上?

答:

Staging的意思就是将数据写到磁盘上。出于安全及ETL能方便重新开始,在数据准备区(Staging Area)中的每个步骤中都应该将数据写到磁盘上,即生成文本文件或者将建立关系表保存数据,而不应该以数据不落地方式直接进行ETL。例如,在数据抽取阶段,我们需要连接到源系统,为了对源系统的影响尽量小,我们需要将抽取的数据保存成文本文件或者放入数据准备区的表中,这样,当E TL过程出现错误而失败时,我们就可以从这些文本文件开始ETL,而不需要再次影响源系统。

Extract

7. Describe techniques for extracting from heterogeneous data sources.

简述异构数据源中的数据抽取技术。

答:在数据仓库项目中,需要抽取的数据经常来自不同的数据源,它们的逻辑结构和物理结构都可能不同,即称之为异构数据源。

在对异构数据源进行整合抽取时,我们需要做的事情依次是标识出所有的源系统,对源系统进行概况分析,定义数据匹配逻辑,建立筛选规则,生成一致性维度。对于源数据的操作系统平台和数据平台各不相同的情况,我们需要根据实际情况来确定如何进行数据抽取,通常的方法有建立ODBC连接、定义接口文件、建立DBLINK等方法。

8. What is the best approach for handling ERP source data?

从ERP源系统中抽取数据最好的方法是什么?

答:ERP系统的产生是为了解决企业内异构数据的整合。这个问题也是数据仓库系统面临的主要问题。ERP的解决方案是将企业内的各个应用(包括销售、会计、人力资源、库存和产品等)建立在相同的平台和相同的应用框架下,即在应用操作层将企业内的数据进行了一致性处理。而数据仓库是在应用操作层之上建立一致性的规则并进行一致性处理。目前比较流行的ERP系统有SAP、PeopleSoft、Oracle、Baan和J.D.EDwards(大部分没接触过)。

如果企业内只有一套ERP系统,那么数据就已经是一致的了,为数据抽取提供了方便。如果企业内除了ERP外还有其他系统,则数据抽取会变得复杂。因为目前的ERP系统的数据模型都非常复杂,可能有几百几千个表,并且较难理解。直接在ERP系统上建立数据捕获和抽取是非常复杂的。最好的办法是购买能针对ERP系统数据抽取提供功能的ETL工具,将ERP内部的复杂性留给ETL厂商处理。

9. Explain the pros and cons of communicating with databases natively versus O DBC.

简述直接连接数据库和使用ODBC连接数据库进行通讯的优缺点。

答:通常连接数据库的方式分为两类,一类是直接连接,另一类是通过ODBC 连接。

直接连接的方式主要是通过COBOL、PL/SQL、Transact-SQL等方式连接数据库。这种方式的优点是运行性能高,可以使用DBMS提供的一些特殊功能。缺点是通用性差。

ODBC是为windows应用程序访问数据库提供的一组接口。ODBC的优点是灵活性,通过改变驱动和连接方式可以使用不同的数据库。ODBC方式的缺点是性能差。使用ODBC连接方式实现ETL的话,在ETL程序和至少要有两层,分别是ODBC Manager层和ODBC Driver层。另外,使用ODBC方式不能使用DBMS 提供的一些特殊的功能。

10. Describe three change data capture (CDC) practices and the pros and cons o

f each.

简述出三种变化数据捕获技术及其优缺点。

答:

变化数据捕获(CDC)技术是ETL工作中的重点和难点,通常需要在增量抽取时完成。实现变化数据捕获时最理想的是找到源系统的DBA。如果不能找到,就需要ETL项目组自己进行检测数据的变化。下面是一些常用的技术。

1.采用审计列

审计列指表中如“添加日期”、“修改日期”、“修改人”等信息的字段。应用程序在对该表的数据进行操作时,同时更新这些字段,或者建立触发器来更新这些字段。采用这种方式进行变化数据捕获的优点是方便,容易实现。缺点是如果操作型系统没有相应的审计字段,需要改变已有的操作型系统的数据结构,以保证获取过程涉及的每张表都有审计字段。

2.数据库日志

DBMS日志获取是一种通过DBMS提供的日志系统来获得变化的数据。它的优点是对数据库或访问数据库的操作系统的影响最小。缺点是要求DBMS支持,并且对日志记录的格式非常了解。

3.全表扫描

全表扫描或者全表导出文件后进行扫描对比也可以进行变化数据捕获,尤其是捕获删除的数据时。这种方法的优点是,思路清晰,适应面广,缺点是效率比较差。

Data Quality

11. What are the four broad categories of data quality checks? Provide an imple mentation

technique for each.

数据质量检查的四大类是什么?为每类提供一种实现技术。

答:数据质量检查是ETL工作中非常重要的一步,主要关注一下四个方面。1.正确性检查(Corret)

检查数据值及其描述是否真实的反映了客观事务。例如地址的描述是否完全。2.明确性检查(Unambiguous)

检查数据值及其描述是否只有一个意思或者只有一个解释。例如地名相同的两个县需要加区分方法。

3.一致性检查(Consistent)

检查数据值及其描述是否统一的采用固定的约定符号来表示。例如币别中人民币用'CNY'。

4.完全性检查(Complete)

完全性有两个需要检查的地方,一个是检查字段的数据值及其描述是否完全。例如检查是否有空值。另一个是检查记录的合计值是否完全,有没有遗忘某些条件。

12. At which stage of the ETL should data be profiled?

简述应该在ETL的哪个步骤来实现概况分析?

答:数据概况分析是对源数据内容的概况进行分析,应该在项目的开始后尽早完成,它会对设计和实现有很大的影响。在完成需求收集后就应该立即开始数据概况分析。

数据概况分析不光是对源系统的数据概况的定量描述,而且为ETL系统中需要建立的错误事件事实表(Error Event Table)和审计维度表(Audit Dimension)打下基础,为其提供数据。

13. What are the essential deliverables of the data quality portion of ETL?

ETL项目中的数据质量部分核心的交付物有那些?

答:ETL项目中数据质量部分的核心的交付物主要有下面三个:

1.数据概况分析结果

数据概况分析结果是对源系统的数据状况的分析产物,包括如源系统中有多少个表,每个表有多少字段,其中多少为空,表间的外键关系是否存在等反映源系统数据质量的内容。这些内容用来决定数据迁移的设计和实现,并提供给错误事件事实表和审计维度表需要的相关数据。

2.错误事件事实表

错误事件事实表及相关的一系列维度表是数据质量检查部分的一个主要交付物。粒度是每一次数据质量检查中的错误信息。相关维度包括日期维度表、迁移信息维度表、错误事件信息维度表,其中错误事件信息维度表中检查的类型、源系统

的信息、涉及的表信息、检查使用的SQL等内容。错误事件事实表不提供给前台用户。

3.审计维度表

审计维度表是给最终用户提供数据质量说明的一个维度表。它描述了用户使用的事实表的数据来源,数据质量情况等内容。

14. How can data quality be quantified in the data warehouse?

如何来量化数据仓库中的数据质量?

答:在数据仓库项目中,通常通过不规则数据的检测工作(Anomaly Detection)来量化源系统的数据质量。除非成立专门的数据质量调查项目组,否则这个工作应该由ETL项目组完成。通常可以采用分组SQL来检查数据是否符合域的定义规则。

对于数据量小的表,可以直接使用类似下面的SQL完成。

select state, count(*) from order_detail group by state

对于数据量大的表,一般通过采样技术来减少数据量,然后进行不规则数据检测。类似SQL如下。

select a.* from employee a, (select rownum counter, a.* from employee a) B whe re a.emp_id = b.emp_id and mod(b.counter, trunc((select count(*) from employee) /1000,0)) = 0

如果可以采用专门的数据概况分析工具进行的话,可以减少很大的工作量。

Building mappings

15. What are surrogate keys? Explain how the surrogate key pipeline works.

什么是代理键?简述代理键替换管道如何工作。

答:在维度表的迁移过程中,有一种处理方式是使用无意义的整型值分配给维度记录并作为维度记录的主键,这些作为主键的整型值称为代理键(Surrogate Key)。使用代理键有很多好处,如隔离数据仓库与操作环境,历史记录的保存,查询速度快等。

同时,在事实表的迁移过程中,为了保证参照完整性也需要进行代理键的替换工作。为了代理键替换的效率高一些,我们通常在数据准备区中建立代理键查找表(Surrogate Mapping Table or Lookup Table)。代理键查找表中保存最新的代理键和自然键的对应关系。在对事实表进行代理键替换时,为了保证效率高,需要把代理键查找表中的数据加载到内存中,并可以开多线程依次替换同一记录的中的不同代理键,使一条事实记录在所有的代理键都替换完后再写如磁盘中,这样的替换过程称为代理键替换管道(Surrogate Key Pipeline)。

16. Why do dates require special treatment during the ETL process?

为什么在ETL的过程中需要对日期进行特殊处理?

答:在数据仓库的项目中,分析是主导需求,而基于日期和时间的分析更是占了很大的比重。而在操作型源系统中,日期通常都是SQL的DATETIME型的。如

果在分析时,使用SQL对这种类型的字段临时处理会出现一些问题,如效率很差,不同的用户会采用不同的格式化方法导致报表不统一。所以,在数据仓库的建模时都会建立日期维度表和时间维度表,将用到的和日期相关的描述都冗余到该表中。

但是,并不是所有的日期都被转化为日期维度表的外键。日期维度表中的记录是有限的,有些日期如生日等可能会比日期维度表中记录的最小日期还要早,这类字段可以直接在数据仓库中保存SQL的DATETIME型。而像购买日期等与分析的业务紧密相关的通常都需要转化为日期维度表的外键,可以用日期维度表中统一的描述信息进行分析。

17. Explain the three basic delivery steps for conformed dimensions.

简述对一致性维度的三种基本的交付步骤。

答:数据整合的关键就是生成一致性维度,再通过一致性维度将来自不同数据源的事实数据合并到一起,供分析使用。通常来说,生成一致性维度有如下三个步骤:

1.标准化(Standardizing)

标准化的目的是使不同数据源的数据编码方式,数据格式等相同,为下一步数据匹配打下基础。

2.匹配(Matching and Deduplication)

数据匹配的工作有两种,一种是将不同数据源的标识同一事物的不同属性匹配到一起,是数据更完善;另一种是将不同数据源的相同数据标识成重复,为下一步的筛选打下基础。

3.筛选(Surviving)

数据筛选的主要目的是选定一致性维度作为主数据(Master Data),也就是最终交付的一致性维度数据。

18. Name the three fundamental fact grains and describe an ETL approach for e ach.

简述三种基本事实表,并说明ETL的过程中如何处理它们。

答:事实表从粒度的角色来划分可以分为三类,分别是交易粒度事实表(Transa ction Grain)、周期快照粒度事实表(Periodic Snapshot)和累计快照粒度事实表(Accumulating Snapshot)。在事实表的设计时,一定要注意一个事实表只能有一个粒度,不能将不同粒度的事实建立在同一张事实表中。

交易粒度事实表的来源伴随交易事件成生的数据,例如销售单。在ETL过程中,以原子粒度直接进行迁移。

周期快照事实表是用来记录有规律的,固定时间间隔的业务累计数据,例如库存日快照。在ETL过程中,以固定的时间间隔生成累计数据。

累积快照事实表用来记录具有时间跨度的业务处理过程的整个过程的信息。在E TL过程中,随着业务处理过程的步骤逐步完善该表中的记录。

19. How are bridge tables delivered to classify groups of dimension records assoc iated to a singlefact?

简述桥接表是如何将维度表和事实表进行关联的?

答:桥接表(Bridge Table)是维度建模中的一类比较特殊的表。

在数据仓库的建模时,会遇到具有层次结构的维度表,对于这样的表有一种建模方式是建立父子表,即每条记录上包括一个指向其父记录的字段。这种父子表的建立在层级深度可变时尤其有用,是一个紧凑而有效的建模方式。但是这种建模方式也有缺点,就是用标准SQL很难对递归结构进行操作。

与这种递归结构的父子表不同,桥接表采用不同的建模方式也可以表示这种层级结构。桥接表是建立在维度表和事实表中间的一个具有较多冗余信息的表,其中的记录包含层级结构中节点到其下面每个节点的路径。表结构如下所示:

父关键字

子关键字

父层数

层名

底端标识

顶端标识

在桥接表中,节点与其下面的任意一个节点都建立一个关联记录保存在表中,即父子关系不再局限在相邻层,如第一层与第三层同样有父子关系,通过父层数可以区分相隔了几层。这样,可以通过父层数和父子关系来进行层级结构的查询。当然,桥接表也不是一个完备的解决方案,它只能是在某些情况下是查询变得容易。

20. How does late arriving data affect dimensions and facts? Share techniques for handling each.

迟到的数据对事实表和维度表有什么影响?怎样来处理这个问题?

答:迟到的数据分为两种,一种是迟到的事实表数据,另一种是迟到的维度表数据。

对于迟到的事实记录,我们可以插入到相应的事实表中。在插入的同时,还需要做一些处理。首先,对于具有SCD TYPE 2型维度的事实记录需要在插入前判断该事实记录的发生日期到目前为止,维度记录是否发生过变化,如果有变化,该事实记录需要对应到事实发生时的维度记录上。其次,在事实记录插入完成后,与该事实表相关的聚集事实表和合并事实表需要做相应的处理。

对于迟到的维度记录,我们需要做的处理要复杂一些。首先,如果迟到的维度记录是第一次进入数据仓库中,那么需要在维度表中生成一条维度记录,并将与该维度记录对应的事实记录的外键进行更新。其次,如果迟到的维度记录是对原维度进行的修改,那么我们在维度表中生成一条新记录的同时,还需要找到维度本次变化到下次变化间的事实行,并将其维度外键更新为新加维度的代理关键字。

Metadata

21. Describe the different types of ETL metadata and provide examples of each.

举例说明各种ETL过程中的元数据。

答:元数据是ETL项目组面对的一个非常重要的主题,对于整个数据仓库项目也是非常重要的一部分。对于元数据的分类和使用没有很确定的定义。

通常来说,我们可以把元数据分为三类,分别为业务元数据(Business Metadata),技术元数据(Technical Metadata)和过程处理元数据(Process Execution Metada ta)。

业务元数据,是从业务的角度对数据的描述。通常是用来给报表工具和前端用户对数据进行分析和使用提供帮助。

技术元数据,是从技术的角度对数据的描述。通常包括数据的一些属性,如数据类型、长度、或者数据概况分析后一些结果。

过程处理元数据,是ETL处理过程中的一些统计数据,通常包括有多少条记录被加载,多少条记录被拒绝接受等数据

22. Share acceptable mechanisms for capturing operational metadata.

简述获取操作型元数据的方法。

答:操作型元数据(Operational Metadata),也就是过程处理元数据,记录的是ETL过程中数据迁移情况,如上次迁移日期,加载的记录数等信息。这部分元数据在ETL加载失败时会非常重要。

一般来说,对于使用ETL工具的数据加载,像迁移调度时间、迁移调度顺序,失败处理等内容都可以在由在迁移工具中定义生成。像上次迁移日期等数据可以建表保存。

如果是手工编写ETL程序的话,操作型元数据的处理会麻烦一些,需要自己来获取和存储。获取的方式,不同的编程方式会不尽相同。

23. Offer techniques for sharing business and technical metadata.

Optimization/Operations

简述共享业务元数据和技术元数据的方法。

答:为了能共享各种元数据,在数据仓库的构建过程中必须要有一些元数据标准,并在实际开发中遵守这些标准。这些标准包括元数据命名规则、存储规则及共享规则等内容。有关元数据标准的内容可以参看公共仓库元模型(Common Wareh ouse Metamodel,CWM)的相关资料。

在最基本的层面上,企业应该在下面三个方面制定好标准。

1.命名规则

命名规则应该在ETL组开始编码前制定好,范围包括表、列、约束、索引等等数据库对象以及其他一些编码规则。如果企业有自己的命名规则,ETL组应该遵守企业的命名规则。当企业的命名规则不能完全满足需求时,ETL组可以制定补充规则或者新的规则。对企业命名规则的改变需要有详细的文档记录,并提交企业相关部门审核。

2.架构

在ETL组开始工作前,架构应该先被设计好。例如ETL引擎是和数据仓库放在同一台服务器上还是单独设立服务器;数据准备区是建立成临时的还是持久的;

数据仓库是基于维度建模的还是3NF建模的。并且这些内容应该有详细的文档记录。

3.基础结构

系统的基础结构也应该先确定好。例如解决方案是基于Windows的还是基于UN IX的。这些企业基础结构元数据应该在ETL组开始工作前制定好。这些内容也应该有详细的文档记录。

在ETL的开发中,制定好元数据标准并能很好的遵守,那么建立好的数据仓库的元数据就可以很好的完成共享功能。

24. State the primary types of tables found in a data warehouse and the order w hich they must be loaded to enforce referential integrity.

简述数据仓库中的表的基本类型,以及为了保证引用完整性该以什么样的顺序对它们进行加载。

答:数据仓库中的表的基本类型有维度表、事实表、子维度表、桥接表等几类。其中子维度表即雪花模型由支架维度技术处理,桥接表用来处理多值维度或层级结构。

数据仓库中需要加载的各类表之间有相互依赖的关系,所以加载时需要以一定的顺序进行加载。下面是一些加载的基本原则:

子维度表加载成功后,再加载维度表。

维度表加载成功后,再加载桥接表。

子维度表、维度表和桥接表都加载成功后,再加载事实表。

最新运维中心笔试题答案

数据库运维中心笔试题答案 一、单项选择 1、T-SQL语句是由哪一家公司设计出的:(A) A Microsoft B IBM C SUN 2、 SQL-Server 的数据库类型属于哪一类型:(A) A 关系型数据库 B 网络型数据库 C 层次型数据库 3、要启动SQL-Server 的服务器,在命令提示符下键入以下什么命令可以启动SQL-Server服务器:(B) A net send B net start mssqlerver C net help 4、输入和调试T-SQL语句的工具是:(B) A 企业管理器 B 查询分析器 C 服务器网络使用工具 D 联机丛书 5、创建数据库的关键字是: (B) A delete B Create C from D talbe 6、数据库的日志文件的扩展名是:(B) A mdf B ldf C ndf D log 7、创建表的主约束使用哪个关键字:(B) A check B primary C foreign D rull 8、datetime属于什么数据类型:(A) A 日期型 B 时间型 C 字符串型 D 整数型 9、下列数据类型中不能属于sql_variant 型的是:(C) A varchar B int C image D datetime 10、存储过程sp_bindrule的作用是什么:(A) A 绑定规则 B 查看表结构 C 绑定默认值 D 查看过程 11、insert 表示的含义:(A) A 添加 B 删除 C 查询 D 更改 12、SQL-Server 中外键约束关键字为:(C) A primary key B unique C foreign key D check 13、alter view 表示:(B) A 创建视图 B 更改视图 C 检索视图 D 删除视图

2012下半年系统架构设计师下午试题Ⅱ分析与解答

2012年下半年系统架构设计师下午试题Ⅱ分析与解答 (总分75, 考试时间120分钟) 试题一论基于架构的软件设计方法及应用 基于架构的软件设计(Architecture-Based Software Design,ABSD)方法以构成软件架构的商业、质量和功能需求等要素来驱动整个软件开发过程。ABSD是一个自顶向下,递归细化的软件开发方法,它以软件系统功能的分解为基础,通过选择架构风格实现质量和商业需求,并强调在架构设计过程中使用软件架构模板。采用ABSD方法,设计活动可以从项目总体功能框架明确后就开始,因此该方法特别适用于开发一些不能预先决定所有需求的软件系统,如软件产品线系统或长生命周期系统等,也可为需求不能在短时间内明确的软件项目提供指导。 请围绕“基于架构的软件开发方法及应用”论题,依次从以下三个方面进行论述。 1.概要叙述你参与开发的、采用ABSD方法的软件项目以及你在其中所承担的主要工作。 2.结合项目实际,详细说明采用ABSD方法进行软件开发时,需要经历哪些开发阶段?每个阶段包括哪些主要活动? 3.阐述你在软件开发的过程中都遇到了哪些实际问题及解决方法。 试题一写作要点 一、论文中要具体介绍项目的背景与总体需求、系统所采用的技术路线以及你所承担的实际工作。 二、采用ABSD方法进行软件开发时,需要经历架构需求、架构设计、架构文档化、架构复审、架构实现和架构演化六个阶段。 1.架构需求阶段需要明确用户对目标软件系统在功能、行为、性能、设计约束等方面的期望。其主要活动包括需求获取、标识构件和架构评审。 (1)需求获取活动需要定义开发人员必须实现的软件功能,使得用户能够完成他们的任务,从而满足功能需求。与此同时,还要获得软件质量属性,满足一些非功能性需求。 (2)标识构件活动首先需要获得系统的基本结构,然后对基本结构进行分组,最后将基本结构进行打包成构件。 (3)架构需求评审活动组织一个由系统涉众(用户、系统分析师、架构师、设计实现人员等)组成的小组,对架构需求及相关构件进行审查。审查的主要内容包括所获取的需求是否真实反映了用户需求,构件合并是否合理等。 2.架构设计阶段是一个迭代过程,利用架构需求生成并调整架构决策。主要活动包括提出架构模型、将己标识的构件映射到架构中、分析构件之间的相互作用、产生系统架构和架构设计评审。 3.架构文档化的主要活动是对架构设计进行分析与整理,生成架构规格说明书和测试架构需求的质量设计说明书。 4.在一个主版本的软件架构分析之后,需要安排一次由外部人员(客户代表和领域专家)参加的架构复审。架构复审需要评价架构是否能够满足需求,质量属性需求是否

bi etl 数据仓库面试培训题

面试培训题 1.BI(business intelligence)模型有哪些? 答:星星模型和雪花模型, 雪花模型一般不用,星星模型就是一个事实表和多个维表相关联。 2.维度建模的数据仓库中,有一个概念叫Slowly Changing Dimensions,中文一般翻译成“缓慢变化维”,经常被简写为SCD。 缓慢变化维的提出是因为在现实世界中,维度的属性并不是静态的,它会随着时间的流失发生缓慢的变化。这种随时间发生变化的维度我们一般称之为缓慢变化维,并且把处理维度表的历史变化信息的问题称为处理缓慢变化维的问题,有时也简称为处理SCD的问题。 例如:员工维表,这个员工在某段时间在这个部门,然后过段时间换了部门换了工作地,需要多行数据来记录这种变化,人员的属性是变化的,就叫缓慢变化维。 3oracle的存储单位是什么?结构是什么样的?有什么组成? 物理存储结构:多种物理文件,如数据文件,日志文件,参数文件,控制文件 逻辑存储结构:表空间,段,区,数据块组成 4工作中用到哪些ETL软件? E-extract 抽取T-transform 转换L-load 加载 IBM公司的datastage(DS) 5实例=内存+进程 Instance:SGA,PGA SGA:shared pool(library cache,dictionary data cache ),database buffer cache ,redo log buffer, BWN:数据文件CKPT:控制文件LGWR:在线日志

六.对SQL优化的认识? QL三段分拆法,SQL可以分为3段 1.SELECT 部分,重点关注SELECT 部分有没有标量子查询,有没有自定义函数 2.FROM 后面,重点关注有没有内联视图,有没有视图套视图,看有没有进行视图合并、谓词推入 3.WHERE 条件部分,看有没有IN,NOT IN,EXISTS,NOT EXISTS 子查询,将in/exist都改成WITH AS 最好有没有外连接,有没有在列上面有函数导致不能走索引,减少表关联,看表设计是1:1还是1:N的关系 4看统计信息是否过期,过期的进行收集 5关注大表,大表才有新问题,是否是小表当驱动表,大表当被驱动表 6看执行计划是hash还是nl(嵌套循环)用hint来改变执行计划 (nl和hash就是两种执行计划,就是说你选择的是哪种路径,坐公交还是地铁,让sql跑的块,到达目的地。sql查出来的数据是不会变的,对应目的地是不会变的。公交方式有多种,对应执行计划有多种)

2011年软考系统架构设计师(高级)学习笔记

2011年软考系统架构设计师学习笔记第一章 1.1.1 系统架构师的概念 现代信息系统“架构”三要素:构件、模式、规划;规划是架构的基石,也是这三个贡献中最重要的。 架构本质上存在两个层次:概念层,物理层。 1.2.1 系统架构师的定义 负责理解、管理并最终确认和评估非功能性系统需求,给出开发规范,搭建系统实现的核心架构,对整个软件架构、关键构建、接口进行总体设计并澄清关键技术细节。 主要着眼于系统的“技术实现”,同时还要考虑系统的“组织协调”。 要对所属的开发团队有足够的了解,能够评估该开发团队实现特定的功能需求目标和资源代价。 1.2.2 系统架构师技术素质 对软件工程标准规范有良好的把握。 1.2.3 系统架构师管理素质 系统架构师是一个高效工作团队的创建者,必须尽可能使所有团队成员的想法一致,为一个项目订制清晰的、强制性的、有元件的目标作为整个团队的动力; 必须提供特定的方法和模型作为理想的技术解决方案; 必须避免犹豫,必须具备及时解决技术问题的紧迫感和自信心。 1.2.4 系统架构师与其他团队角色的协调 系统分析师,需求分析,技术实现 系统架构师,系统设计,基于环境和资源的系统技术实现 项目管理师,资源组织,资源实现 由于职位角度出发产生冲突制约,不可能很好地给出开发规范,搭建系统实现的核心架构,并澄清技术细节,扫清主要难点。 所以把架构师定位在项目管理师与系统分析师之间,为团队规划清晰的目标。 对于大型企业或项目,如果一人承担多个角色,往往容易发生顾此失彼的现象。 1.3 系统架构师知识结构 需要从大量互相冲突的系统方法和工具中区分出哪些是有效的,那些是无效的。 1.4 从开发人员到架构师 总结自己的架构模式,深入行业总结规律。 几天的培训不太可能培养出合格的软件架构师,厂商的培训和认证,最终目的是培养自己的市场,培养一批忠诚的用户或产品代言人,而不是为中国培养软件架构师。

数据库表结构设计参考

数据库表结构设计参考

表名外部单位表(DeptOut) 列名数据类型(精度范围)空/非空约束条件 外部单位ID 变长字符串(50) N 主键 类型变长字符串(50) N 单位名称变长字符串(255) N 单位简称变长字符串(50) 单位全称变长字符串(255) 交换类型变长字符串(50) N 交换、市机、直送、邮局单位邮编变长字符串(6) 单位标识(英文) 变长字符串(50) 排序号整型(4) 交换号变长字符串(50) 单位领导变长字符串(50) 单位电话变长字符串(50) 所属城市变长字符串(50) 单位地址变长字符串(255) 备注变长字符串(255) 补充说明该表记录数约3000条左右,一般不做修改。初始化记录。 表名外部单位子表(DeptOutSub) 列名数据类型(精度范围)空/非空约束条件 外部子单位ID 变长字符串(50) N 父ID 变长字符串(50) N 外键 单位名称变长字符串(255) N 单位编码变长字符串(50) 补充说明该表记录数一般很少 表名内部单位表(DeptIn) 列名数据类型(精度范围)空/非空约束条件 内部单位ID 变长字符串(50) N 主键 类型变长字符串(50) N 单位名称变长字符串(255) N 单位简称变长字符串(50) 单位全称变长字符串(255) 工作职责 排序号整型(4) 单位领导变长字符串(50) 单位电话(分机)变长字符串(50) 备注变长字符串(255)

补充说明该表记录数较小(100条以内),一般不做修改。维护一次后很少修改 表名内部单位子表(DeptInSub) 列名数据类型(精度范围)空/非空约束条件内部子单位ID 变长字符串(50) N 父ID 变长字符串(50) N 外键 单位名称变长字符串(255) N 单位编码变长字符串(50) 单位类型变长字符串(50) 领导、部门 排序号Int 补充说明该表记录数一般很少 表名省、直辖市表(Province) 列名数据类型(精度范围)空/非空约束条件ID 变长字符串(50) N 名称变长字符串(50) N 外键 投递号变长字符串(255) N 补充说明该表记录数固定 表名急件电话语音记录表(TelCall) 列名数据类型(精度范围)空/非空约束条件ID 变长字符串(50) N 发送部门变长字符串(50) N 接收部门变长字符串(50) N 拨打电话号码变长字符串(50) 拨打内容变长字符串(50) 呼叫次数Int 呼叫时间Datetime 补充说明该表对应功能不完善,最后考虑此表 表名摄像头图像记录表(ScreenShot) 列名数据类型(精度范围)空/非空约束条件ID 变长字符串(50) N 拍照时间Datetime N 取件人所属部门变长字符串(50) N 取件人用户名变长字符串(50) 取件人卡号变长字符串(50) 图片文件BLOB/Image

数据仓库模型的设计

2.5数据仓库模型的设计 数据仓库模型的设计大体上可以分为以下三个层面的设计151: .概念模型设计; .逻辑模型设计; .物理模型设计; 下面就从这三个层面分别介绍数据仓库模型的设计。 2.5.1概念模型设计 进行概念模型设计所要完成的工作是: <1>界定系统边界 <2>确定主要的主题域及其内容 概念模型设计的成果是,在原有的数据库的基础上建立了一个较为稳固的概念模型。因为数据仓库是对原有数据库系统中的数据进行集成和重组而形成的数据集合,所以数据仓库的概念模型设计,首先要对原有数据库系统加以分析理解,看在原有的数据库系统中“有什么”、“怎样组织的”和“如何分布的”等,然后再来考虑应当如何建立数据仓库系统的概念模型。一方面,通过原有的数据库的设计文档以及在数据字典中的数据库关系模式,可以对企业现有的数据库中的内容有一个完整而清晰的认识;另一方面,数据仓库的概念模型是面向企业全局建立的,它为集成来自各个面向应用的数据库的数据提供了统一的概念视图。 概念模型的设计是在较高的抽象层次上的设计,因此建立概念模型时不用考虑具体技术条件的限制。 1.界定系统的边界 数据仓库是面向决策分析的数据库,我们无法在数据仓库设计的最初就得到详细而明确的需求,但是一些基本的方向性的需求还是摆在了设计人员的面前: . 要做的决策类型有哪些? . 决策者感兴趣的是什么问题? . 这些问题需要什么样的信息? . 要得到这些信息需要包含原有数据库系统的哪些部分的数据? 这样,我们可以划定一个当前的大致的系统边界,集中精力进行最需要的部分的开发。因而,从某种意义上讲,界定系统边界的工作也可以看作是数据仓库系统设计的需求分析,因为它将决策者的数据分析的需求用系统边界的定义形式反映出来。 2,确定主要的主题域 在这一步中,要确定系统所包含的主题域,然后对每个主题域的内

数据仓库面试题

数据仓库及BI工程师面试题集锦 前言 1、介绍一下项目经验、项目中的角色。 一、数据库 1、Oracle数据库,视图与表的区别?普通视图与物化视图的区别?物化视图的作 用? i.视图与表的区别 1. 1、视图是已经编译好的sql语句。而表不是 2. 视图没有实际的物理记录。而表有。 3. 表是内容,视图是窗口 4. 表只用物理空间而视图不占用物理空间,视图只是逻辑概念的存在, 表可以及时四对它进行修改,但视图只能有创建的语句来修改ii. 物化视图与视图区别 1.物化视图和视图差别非常大,不是几句能说清物化视图是自动刷新或者 手动刷新的,视图不用刷新物化视图也可以直接update,但是不影响b ase table,对视图的update反映到base table上物化视图主要用于 远程数据访问,物化视图中的数据需要占用磁盘空间,视图中不保存数据。 2、Oracle数据库,有哪几类索引,分别有什么特点? a) 1.单列索引与复合索引 一个索引可以由一个或多个列组成,用来创建索引的列被称为“索引列”。 单列索引是基于单列所创建的索引,复合索引是基于两列或者多列所创建的索引。 2.唯一索引与非唯一索引 唯一索引是索引列值不能重复的索引,非唯一索引是索引列可以重复的索引。

无论是唯一索引还是非唯一索引,索引列都允许取NULL值。默认情况下,Oracle 创建的索引是不唯一索引。 3.B树索引 B树索引是按B树算法组织并存放索引数据的,所以B树索引主要依赖其组织并存放索引数据的算法来实现快速检索功能。 4.位图索引 位图索引在多列查询时,可以对两个列上的位图进行AND和OR操作,达到更好的查询效果。 5.函数索引 Oracle中不仅能够直接对表中的列创建索引,还可以对包含列的函数或表达式创建索引,这种索引称为“位图索引”。 3、Union与Union All的区别? a)Union会对查询结果进行排序去重,效率比union all 低,union all只是两个查 询集的合并操作。建议使用Union all,查询出来后再对数据进行去重操作。 4、对游标的理解?游标的分类?使用方法? 游标是映射在结果集中一行数据的位置实体,有了游标,用户就可以访问结果集中的任何一条数据。游标分为静态游标和REF游标,静态游标分为显示游标和隐式游标,显示游标使用步骤是声明游标,打开游标,获取记录,关闭游标。所有的DML语句为隐式游标,可以从游标的属性获得sql语句的信息。REF游标是动态关联结果集的临时对象,使用步骤也是先要进行声明游标,然后打开游标,获取记录,关闭游标。 5、如何查找和删除表中的重复数据?给出方法或SQL。 查询表中重复数据。 Select * from people where id in (Select id from people group by id having count(id)>1); Delete from people where id in(select id from people group by id having count(id)>1) and rowid not in (select min(rowid) from people group by id hacing count(id)>1);

数据仓库团队面试题-答案

目录 1简答题 (1) 1.1SQL Server与Oracle、DB2三种数据库比较 (1) 1.2以下三种数据库语言都包含哪些细项 (2) 1.3UNION 和UNION ALL的区别 (2) 2实例题................................................................................................................... 错误!未定义书签。3逻辑推理题 (5) 答案............................................................................................................................... 错误!未定义书签。1简答题 1.1 SQL Server与Oracle、DB2三种数据库比较 SQL Server与Oracle、DB2三种数据库进行比较,有何区别?请从开放性,可伸缩性,并行性,安全性三个方面叙述。 答案: 开放性 SQL Server 只能在Windows 上运行,没有丝毫的开放性,操作系统的系统的稳定对数据库是十分重要的。Windows9X系列产品是偏重于桌面应用,NT server只适合中小型企业。而且Windows平台的可靠性,安全性和伸缩性是非常有限的。它不象Unix那样久经考验,尤其是在处理大数据量的关键业务时。 Oracle 能在所有主流平台上运行(包括 Windows)。完全支持所有的工业标准。采用完全开放策略。可以使客户选择最适合的解决方案。对开发商全力支持。 DBz 能在所有主流平台上运行(包括Windows)。最适于海量数据。DB2在企业级的应用最为广泛,在全球的500家最大的企业中,几乎85%以上用DB2数据库服务器,而国内到97年约占5%。 可伸缩性,并行性 SQL Server 并行实施和共存模型并不成熟。很难处理日益增多的用户数和数据卷。伸缩性有限。Oracle平行服务器通过使一组结点共享同一簇中的工作来扩展Window NT的能力,提供高可用性和高伸缩性的簇的解决方案。如果WindowsNT不能满足需要, 用户可以把数据库移到UNIX中。 DB2 DB2具有很好的并行性。DB2把数据库管理扩充到了并行的、多节点的环境。数据库分区是数据库的一部分,包含自己的数据、索引、配置文件、和事务日志。数据库分区有时被称为节点或数据库节点。

十大架构师谈服务器选型 ——证券行业篇

十大架构师谈服务器选型——证券行业篇 证券企业一般在全国范围内经营业务,网络庞大、结构复杂,典型业务模式有柜台交易、自助委托、电话委托、网上委托等。各证券营业部和总部通过网络将交易所、证券公司与交易者三方连接在一起,共同完成证券交易,并实现行情、交易、结算、办公等各环节的自动化。证券企业网络一般由四部分组成:总部网络、营业部网络、银证交易系统和网站系统。 证券集中业务体系解决方案 作为支撑业务运转的基础平台,证券公司总部、区域总部成为证券营业业务的处理核心,证券营业部、服务部、支持部等分支机构成为业务服务单位。 营业部、服务部等分支机构实现了各分支机构的基本工作职能,它侧重于本地IT系统建设,其通信服务功能模块只起到辅助作用。 利用集中式交易系统, 具有相当规模的证券公司将远距离控制多个分支机构和为远程 大户提供服务,相应业务范围和工作模式都会有很大改变,因此需要一个强有力的IT体系解决方案来支撑证券业务集中业务和其他相关增值业 证券集中系统解决方案 采用集中交易模式,券商总部就成为整个交易体系的核心,所有分支机构的交易请求等业务均由券商总部中心进行处理,各分支机构只保留行情服务系统、客户服务接入平台、通讯中间层等前端处理平台;这样有利于统一公司对外服务形象和服务品牌,符合数据仓库、CRM的建设发展趋势,还可以大大降低运营成本。实行集中交易后,总部的重要性显而易见,在使用集中式交易模式,在建设的同时建立至少一个灾难备份中心,起到数据备份和灾难恢复的重要作用。 采取集中交易模式后,整个网络体系结构由两个中心(数据中心和灾备中心)、分支机构等构成,所有分支机构直接接入总部中心。 证券集中交易解决方案 根据券商集中交易的规模(营业部数量、股民数量等),数据中心和灾备中心的主机和数据库系统选型:

数据仓库建模详解和建模技巧

一、构建企业级数据仓库五步法 (一)、确定主题 即确定数据分析或前端展现的主题。例如:我们希望分析某年某月某一地区的啤酒销售情况,这就是一个主题。主题要体现出某一方面的各分析角度(维度)和统计数值型数据(量度)之间的关系,确定主题时要综合考虑。 我们可以形象的将一个主题想象为一颗星星:统计数值型数据(量度)存在于星星中间的事实表;分析角度(维度)是星星的各个角;我们将通过维度的组合,来考察量度。那么,“某年某月某一地区的啤酒销售情况”这样一个主题,就要求我们通过时间和地区两个维度的组合,来考察销售情况这个量度。从而,不同的主题来源于数据仓库中的不同子集,我们可以称之为数据集市。数据集市体现了数据仓库某一方面的信息,多个数据集市构成了数据仓库。 (二)、确定量度 在确定了主题以后,我们将考虑要分析的技术指标,诸如年销售额之类。它们一般为数值型数据。我们或者将该数据汇总,或者将该数据取次数、独立次数或取最大最小值等,这样的数据称为量度。 量度是要统计的指标,必须事先选择恰当,基于不同的量度可以进行复杂关键性能指标(KPI)等的设计和计算。

(三)、确定事实数据粒度 在确定了量度之后,我们要考虑到该量度的汇总情况和不同维度下量度的聚合情况。考虑到量度的聚合程度不同,我们将采用“最小粒度原则”,即将量度的粒度设置到最小。 例如:假设目前的数据最小记录到秒,即数据库中记录了每一秒的交易额。那么,如果我们可以确认,在将来的分析需求中,时间只需要精确到天就可以的话,我们就可以在ETL处理过程中,按天来汇总数据,此时,数据仓库中量度的粒度就是“天”;反过来,如果我们不能确认将来的分析需求在时间上是否需要精确到秒,那么,我们就需要遵循“最小粒度原则”,在数据仓库的事实表中保留每一秒的数据,以便日后对“秒”进行分析。 在采用“最小粒度原则”的同时,我们不必担心海量数据所带来的汇总分析效率问题,因为在后续建立多维分析模型(CUBE)的时候,我们会对数据提前进行汇总,从而保障产生分析结果的效率。关于建立多维分析模型(CUBE)的相关问题,我们将在下期栏目中予以阐述。 (四)、确定维度 维度是指分析的各个角度。例如我们希望按照时间,或者按照地区,或者按照产品进行分析,那么这里的时间、地区、产品就是相应的维度。基于不同的维度,我们可以看到各量度的汇总情况,也可以基于所有的维度进行交叉分析。

ETL 面试资料

题目 1.ETL部分 1.什么是数据准备区?在数据准备区中允许使用的数据结构有哪些?各有什么优缺点? 答: 2.简述异构数据源中的数据抽取技术。 答: 3.数据质量检查的四大类是什么?为每类提供一种实现技术。 答: 4.简述数据仓库中的表的基本类型,以及为了保证引用完整性该以什么样的顺序对它们进行加载。答: 5.在ETL过程中四个基本的过程分别是什么? 答:

6.从ERP源系统中抽取数据最好的方法是什么? 答: 7.简述直接连接数据库和使用ODBC连接数据库进行通讯的优缺点。 答: 8.什么是代理键?简述代理键替换管道如何工作。 答: 9.什么叫缓慢维度变化?请分别阐述三大类维度处理方式。 答: 10.如何实现增量抽取,分别阐述各种增量抽取方式,并且比较各种方式的优劣,及你推荐的做法?答: 11.用过什么ETL工具,以及该工具简单讲述特点。 答:

12. ETL工具一般有哪些组成部分,其中数据流中常用的控件有? 答: 13.简述你在以前项目中的ETL架构思想。 答: 2.数据库部分 1. 比较truncate和delete 命令 答: 2. 视图与表有何区别? 答: 3.请说明ORACLE数据库中实例与数据库的关系,表空间和数据文件的关系。答:

4.ORACLE中varchar2,char两种数据类型有什么区别,如果库表某字段输入“ABC”后储存,该字段数据类型分别为varchar2(10),char(10)存储字节长度以及内容有何区别? 答: 5.找出"作者"库表中没有出现在"获奖名单"库表中的所有作者信息的SQL语句,(提示:使用NOT I N,NOT EXISTS,以及外部连接三种方法),并说明那种方法是不优化的。 出版社: 出版社代码 char(2),出版社名称 varchar2(32) 图书: 图书编号 char(8),图书名称 varchar2(128),出版社代码 char(2),作者代号char(4),图书简介 varchar2(128) 作者: 作者代号 char(4),作者名称 varchar2(10),性别 char(1),年龄 number(3),文学方向 var char2(64) 获奖名单: 获奖日期 date,获奖人员 char(4) 答: 6.有下列两表 Table1 Col1 INT Col2 CHAR (30) Table2 Col1 INT Col2 CHAR (30) 请问下列哪条语句会将table2的全部列插入到table1?() A. INSERT INTO table1(table2.col1,table2.col2) B. INSERT INTO table1SELECT col1, col2 FROM table2 C. INSERT INTO table1 VALUES(SELECT col1,col2FROM table2) D. INSERT INTO table1 (col1, col2) VALUES (SELECT col1, col2 FROM table2) 7.有下列两表 TAB1 TAB2 C1 C2 CX CY ---- ----- ------ ----- A 11 A 21 B 12 C 22 C 13 D 23

数据架构师岗位职责

数据架构师岗位职责 篇一:数据仓库架构师的岗位职责和岗位要求】 数据仓库架构师的岗位职责和岗位要求 根据网络招聘的资料合成的,不过好像听起来好像和项目经理的角色区别不大,呵呵!而且好像都是要全能的上将![@more@] 岗位职责 1. 制定数据仓库建设方案 2. 数据仓库的设计和开发 3. 数据仓库应用方案设计和推广 岗位要求 1 、熟悉大型企业商业智能整体运作模式和系统框架,深刻理解商业智能对业务运营的杠杆作用,能够应用bi 工具指导和帮助业务过程的改进。 2、5 年以上oracle 或者sqlserver 数据库管理经验,熟练使用unix 和linux ,深刻理解数据仓库应用设计原理和实践; 3 、精通数据库索引和sql 语句的优化,和服务器的性能参数调整,有perl, 4 、熟练一种以上主流etl 工具和bi 工具,如informatica,owb,dts 5 、能根据业务需求设计数据仓库模型,有3 年以上数据仓库开发实施经验,掌握多种数据仓库开发,多维分析相关技术和olap 前端展现工具; 6 、有相关行业数据分析经验者及互联网点击流数据分析经验者优先;有数据挖掘应用和开发经验优先; 7 、强烈责任心,开放的性格,良好的沟通能力;较强的分析问题、解决问题能力,良好的沟通能力、团队精神。 8 、熟悉erwin 或powerdesigner 建模工具; 9 、有一个以上企业级数据仓库项目设计经验,精通数据仓库架构,熟悉数据仓库项目的实施流程; 【篇二:数据架构师岗位职责】 1. 制定面向产品的数据设计规范和流程,制定数据设计所需的各种文档模板; 2. 负责数据仓库建模、数据库优化、数据部署,数据抽取等etl 的设计,编写专业的系统设计文档; 3. 对于it 系统应对大数据量和大并发所要求的性能指标从数据模型和部署等方面给出设计和持续的优化支持; 4. 参与产品架构设计文档和详细设计文档的评审; 5. 完成上级领导安排的其他任务。

用友T数据库表结构表

用友软件T3 用友通数据库表结构、表名 fa_Control 30_ 记录互斥fa_Departments 07_ 部门fa_Depreciations 11_ 折旧方法 fa_DeprList 34_ 折旧日志fa_DeprTransactions 19_ 折旧fa_DeprVoucherMain 23_ 折旧分配凭证主表fa_DeprVouchers 24_ 折旧分配凭证 fa_DeprVouchers_pre 24_ 折旧分配凭证_准备fa_Dictionary 12_ 常用参照字典 fa_EvaluateMain 21_ 评估单主表 fa_EvaluateVouchers 22_ 评估单fa_Items 12_ 项目fa_ItemsManual 32_ 自定义项目 fa_ItemsOfModel 14_ 对应各样式的项目 fa_ItemsOfQuery 35_ 查询项目fa_Log 33_ 日志fa_Models 13_ 样式fa_Msg 29_ 信息 fa_Objects 03_ 对象表fa_Operators 02_ 操作员fa_Origins 09_ 增减方式fa_QueryFilters 05_ 查询条件fa_Querys 04_ 查询 fa_ReportTemp fa_Status 10_ 使用状况 fa_Total 31_ 汇总表Accessaries 成套件表AccInformation 账套参数表Ap_AlarmSet 单位报警分类设置表Ap_BillAge 账龄区间表 Ap_Cancel 核销情况表Ap_CancelNo 生成自动序号Ap_CloseBill 收付款结算表Ap_CtrlCode 控制科目设置表Ap_Detail 应收/ 付明细账 AP_DispSet 查询显示列设置表Ap_InputCode 入账科目表Ap_InvCode 存货科目设置表 Ap_Lock 操作互斥表 Ap_MyTableSet 查询条件存储表 Ap_Note 票据登记簿 Ap_Note_Sub 票据登记簿结算表 Ap_SStyleCode 结算方式科目表 Ap_Sum应收/ 付总账表 Ap_Vouch 应付/ 收单主表 Ap_Vouchs 应付/ 收单主表的关联表 Ap_VouchType 单据类型表 Ar_BadAge 坏账计提账龄期间表 Ar_BadPara 坏账计提参数表 ArrivalVouch 到货单、质检单主表ArrivalVouchs 到货单、质检单子表AssemVouch 组装、拆卸、形态转换单主表

数据仓库工程师面试题(笔试1)

数据仓库工程师面试题 姓名:____张小核______ 开始时间:_____:______ 结束时间:_____:_____ 一、数据库 1.使用过哪些数据库?试说出它们的异同。 答:使用过SQL SERVER和ORACLE 它们的区别是:1.sql server 是中小型企业用的,oracle是中大型企业用的;oracle跨平台能在linux上运行,sqlserver只能在windows运行,而linux平台比windows平台稳定,所以安全性高;sqlserver操作简便,oracle比较复杂;oracle能把数据存在不同的硬盘上sqlserver不能;oracle能够回滚表空间查询sqlserver不能;oracle支持label security,sqlserver不能;oracle扩展性比较强。 2.事务有多个性质,其中不包括( B ) A.一致性 B.唯一性 C.原子性 D.隔离性 3.CHAR类型和V ARCHAR类型有何区别? 答:char的长度是固定的,最长2000个字符,当输入的字符小于你定义的字符数目时,它会自动补空值,所以它占用空间较大但是效率高;varchar的长度是可变的,用它可以节省存储空间,但是效率没有char高。 4.视图与表有何区别? 表是实际存在的,视图是一个或多个表结果的映射,实际不存在,所以视图不占用实际的物理空间,但删除时不影响数据,而表影响 5.数据库中常见的约束有哪些? 答:1.非空值约束,是not null;2。唯一性约束,不能重复造成冗余;3.检查约束,能够保证数据完整性;还有主键不能为空,应该是唯一的,字段属性要不能再分 6.有一个空表t_empty,结构是: create table t_empty ( a integer ) 请问以下各语句的输出分别是什么? (A) select sum(a) from t_empty 什么都不输出 (B) select NullToZero(a) from t_empty *假定NullToZero是一个将Null值转成0的标函数 (C) select count(*) from t_empty 7.有下列两表 Table1 Col1 INT

数据库表结构

数据库表结构: Admin(管理员表) 字段名描述类型约束备注ID唯一标示int Primary Key自增AdminType管理员类型int NOT NULL AdminName管理员姓名Char(12)NOT NULL LoginName管理员登录名CHAR(12)NOT NULL LoginPwd管理员登录密 码 CHAR(12)NOT NULL cart(购物车基本信息表) 字段名描述类型约束备注 ID唯一标示int Primary Key 自增 Member会员号int NOT NULL Money消费金额decimal(9,2)NOT NULL CartStatus购物车状态int NOT NULL 0代表商品放入购物车还未下单,1代表商品放入购物车且已下单 cartselectedmer 字段名描述类型约束备注ID唯一标示int Primary自增

Key Cart购物车int NOT NULL Merchandise商品int NOT NULL Number数量int NOT NULL Price商品市场价decimal(8,2)NOT NULL Money消费总额demical(9,2)NOT NULL category(商品类别表) 字段名描述类型约束备注 自增ID唯一标示int Primary Key CateName商品类别Char(40)NOT NULL CateDesc商品描述tex NOT NULL Leaveword(顾客留言表) 字段名描述类型约束备注 自增ID唯一标示int Primary Key Member会员号int NOT NULL Admin管理员int NOT NULL Number数量int NOT NULL Price商品单价decimal(8,2)NOT NULL Money消费总额demical(9,2)NOT NULL

数据仓库建模

背景介绍 熟悉社保行业的读者可以知道,目前我们国家的社保主要分为养老,失业,工伤,生育,医疗保险和劳动力市场这6 大块主要业务领域。在这6 大业务领域中,目前的状况养老和事业的系统已经基本完善,已经有一部分数据开始联网检测。而,对于工伤,生育,医疗和劳动力市场这一块业务,有些地方发展的比较成熟,而有些地方还不够成熟。 1.业务建模阶段 基于以上的背景介绍,我们在业务建模阶段,就很容易来划分相应的业务。因此,在业务建模阶段,我们基本上确定我们本次数据仓库建设的目标,建设的方法,以及长远规划等。如下图: 图8. 业务建模阶段 在这里,我们将整个业务很清楚地划分成了几个大的业务主线,例如:养老,失业,工伤,生育,医疗,劳动力等着几个大的部分,然后我们可以根据这些大的模块,在每个业务主线内,考虑具体的业务主线内需要分析的业务主题。 因此,业务建模阶段其实是一次和业务人员梳理业务的过程,在这个过程中,不仅能帮助我们技术人员更好的理解业务,另一方面,也能够发现业务流程中的一些不合理的环节,加以改善和改进。 同时,业务建模阶段的另一个重要工作就是确定我们数据建模的范围,例如:在某些数据准备不够充分的业务模块内,我们可以考虑先不建设相应的数据模型。等到条件充分成熟的情况下,我们可以再来考虑数据建模的问题。 2.领域概念建模阶段领域概念建模阶段是数据仓库数据建模的一个重要阶段,由于我们在业务建模阶段已经完全理清相应的业务范围和流程,因此,我们在这个领域概念建模阶段的最主要的工作就是进行概念的抽象,整个领域概念建模的工作层次如下图所示:

图9. 领域概念建模阶段 从上图我们可以清楚地看到,领域概念建模就是运用了实体建模法,从纷繁的业务表象背后通过实体建模法,抽象出实体,事件,说明等抽象的实体,从而找出业务表象后抽象实体间的相互的关联性,保证了我们数据仓库数据按照数据模型所能达到的一致性和关联性。 从图上看,我们可以把整个抽象过程分为四个层次,分别为: ?抽象方法层,整个数据模型的核心方法,领域概念建模的实体的划分通过这种抽象方法来实现。 ?领域概念层,这是我们整个数据模型的核心部分,因为不同程度的抽象方法,决定了我们领域概念的不同。例如:在这里,我们可以使用“参与方”这个概念,同时,你也可以把他分成三个概念:“个人”,“公司”,和“经办机构”这三个概念。而我们在构建自己的模型的时候,可以参考业务的状况以及我们自己模型的需要,选择抽象程度高的概念或者是抽象程度低的概念。相对来说,抽象程度高的概念,理解起来较为复杂,需要专业的建模专家才能理解,而抽象程度低的概念,较适合于一般业务人员的理解,使用起来比较方便。笔者在这里建议读者可以选用抽象概念较低的实体,以方便业务人员和技术人员之间的交流和沟通。 ?具体业务层,主要是解决具体的业务问题,从这张图我们可以看出,具体的业务层,其实只是领域概念模型中实体之间的一些不同组合而已。因此,完整的数据仓库的数据模型应该能够相应灵活多变的前端业务的需求,而其本身的模型架构具有很强的灵活性。这也是数据仓库模型所具备的功能之一。 ?业务主线层,这个层次主要划分大的业务领域,一般在业务建模阶段即已经完成这方面的划分。 我们一般通过这种大的业务主线来划分整个业务模型大的框架。 通过领域概念建模,数据仓库的模型已经被抽象成一个个的实体,模型的框架已经搭建完毕,下面的工作就是给这些框架注入有效的肌体。

Oracle数据库DBA面试题

数据库。热备份的优点在于当备份时,数据库仍旧可以被使用并且可以将数据库恢复到任意一个时间点。冷备份的优点在于它的备份和恢复 操作相当简单,并且由于冷备份的数据库可以工作在非归档模式下,数据库性能会比归档模式稍好。(因为不必将archive log写入硬盘) 2. 你必须利用备份恢复数据库,但是你没有控制文件,该如何解决问题呢 解答:重建控制文件,用带backup control file 子句的recover 命令恢复数据库。 3. 如何转换到spfile 解答:使用create spfile from pfile 命令 . 4. 解释data block , extent 和segment的区别(这里建议用英文术语) 解答:data block是数据库中最小的逻辑存储单元。当数据库的对象需要更多的物理存储空间时,连续的data block就组成了extent . 一 个数据库对象拥有的所有extents被称为该对象的segment. 5. 给出两个检查表结构的方法 解答:1、DESCRIBE命令 2、包 6. 怎样查看数据库引擎的报错 解答:alert log. 7. 比较truncate和delete 命令 解答:两者都可以用来删除表中所有的记录。区别在于:truncate是DDL操作,它移动HWK,不需要rollback segment .而Delete是DML操作 , 需要rollback segment 且花费较长时间. 8. 使用索引的理由 解答:快速访问表中的data block 9. 给出在STAR SCHEMA中的两种表及它们分别含有的数据 解答:Fact tables 和dimension tables. fact table 包含大量的主要的信息而dimension tables 存放对fact table 某些属性描述的

2016年下半年软件水平考试(高级)系统架构师《案例分析》下午真题及答案

2016年下半年软件水平考试(高级)系统架构师 《案例分析》下午真题 (总分000, 考试时间90分钟) 1. 阅读以下关于软件架构设计的叙述,在答题纸上回答问题1至问题3。 [说明]某软件公司为某品牌手机厂商开发一套手机应用程序集成开发环境,以提高开发手机应用程序的质量和效率。在项目之初,公司的系统分析师对该集成开发环境的需求进行了调研和分析,具体描述如下:1.需要同时支持该厂商自行定义的应用编程语言的编辑、界面可视化设计、编译、调试等模块,这些模块产生的模型或数据格式差异较大,集成环境应提供数据集成能力。集成开发环境还要支持以适配方式集成公司现有的应用模拟器工具。2.经过调研,手机应用开发人员更倾向于使用Windows系统,因此集成开发环境的界面需要与Windows平台上的主流开发工具的界面风格保持一致。3.支持相关开发数据在云端存储,需要保证在云端存储数据的机密性和完整性。4.支持用户通过配置界面依据自己的喜好修改界面风格,包括颜色、布局、代码高亮方式等,配置完成后无须重启环境。5.支持不同模型的自动转换。在初始需求中定义的机器性能条件下,对于一个包含50个对象的设计模型,将其转换为相应代码框架时所消耗时间不超过5秒。6.能够连续运行的时间不小于240小时,意外退出后能够在10秒之内自动重启。7.集成开发环境具有模块化结构,支持以模块为单位进行 调试、测试与发布。8.支持应用开发过程中的代码调试功能:开发人员可以设置断点,启动调试,编辑器可以自动卷屏并命中断点,能通过变量监视器查看当前变量取值。在对需求进行分析后,公司的架构师小张查阅了相关的资料,认为该集成开发环境应该采用管道一过滤器(Pipe-Filter)的架构风格,公司的资深架构师王工在仔细分析后,认为应该采用数据仓储(Data Repository)的架构风格。公司经过评审,最终采用了王工的方案。 1.[问题1]识别软件架构质量属性是进行架构设计的重要步骤。请分析题干中的需求描述, 填写表1—1中(1)~(5)处的空白。 该问题分值: 2 答案:正确答案:(1)f(2)性能(3)d(4)g(5)b 2.[问题2]请在阅读题干需求描述的基础上,从交互方式、数据结构、控制结构和扩展方法4 个方面对两种架构风格进行比较,填写表1—2中(1)~(4)处的空白。 该问题分值: 2 答案:正确答案:(1)工具之间无直接交互,通过数据仓储间接交互(2)流式数据(3)数据驱动(4)

相关文档
相关文档 最新文档