Friday, January 04, 2008

fwd: data warehouse interview qa

Data WareHousing Interview Questions
Database Interview Questions
EJB Interview Questions
Google & Microsoft




What is ER Diagram?
Entity Relationship Diagrams are a major data modelling tool and will help organize the data in your project into entities and define the relationships between the entities. This process has proved to enable the analyst to produce a good database structure so that the data can be stored and retrieved in a most efficient manner.
An entity-relationship (ER) diagram is a specialized graphic that illustrates the interrelationships between entities in a database

What is a level of Granularity of a fact table?
Level of granularity means level of detail that you put into the fact table in a data warehouse. Level of granularity would mean what detail are you willing to put for each transactional fact.

What are lookup tables?
A lookup table is the table placed on the target table based upon the primary key of the target, it just updates the table by allowing only modified (new or updated) records based on thelookup condition

1NF: not repeating, must have PK

http://www.stuart.edu/courses/im510/database/2NF.htm

(非主键要被全部主键决定,不能部分主键)

比如pk=description+supplier, 锤子(description)可能有不同supplier,supplier地址要去除掉
Therefore, Supplier Address is NOT functionally dependent upon the ENTIRE PK (Description-Supplier) for its existence.

We must get rid of Supplier Address from this table



3NF:非主键不能被非主键确定

主键是书名,但笔名可以被作者名唯一确定


.一台有两个CPU的UNIX机器,2G内存,带一个300G磁盘阵列,数据库是Oracle8i或Sybase IQ 12。
有5张主要事实表,初始数据装载30G原始数据,
以后每天每张事实表增加约200M原始 数据,每张表约有5~10个可分析角度需与维表关联,
要求第二天能从数据仓库中访问头一天的数据。
白天数据源所在的业务系统数据库不能访问,
请简要说明您的数据初始装载策略、数据刷新策略、索引策略、系统参数及针对Oracle或SybaseIQ的数据库参数设置。

这个物理配置相当于一个5万客户80万账户的银行CRM数据集市的配置

数据初始装载策略:当天晚上业务系统结束后,将原始数据FTP到本机,表是可扩展的,扩展大小约200M,做星形模型,
数据刷新策略 每天晚上刷新数据
索引策略: 在日期字段上有明显分片的表上建立分区,影响每日跑批和前端查询的表的关系字段上建立一般索引,在一些经常用作查询条件的属性上可以建位图索引
UNIX系统参数: 这个数据量的影响不是特别大
ORACLE数据库参数配置 这个数据量不是特别需要配置,如果需要,可以查阅相关性能文档

8.您对数据仓库中的缓慢变化维,

在基础层如果有必要的话,可以建立内部代码,在可以预测得变动范围内,预留代码给可能变化的,或者完全转化为内部代码
每日刷新CUBE的维度是必要的,
问题的关键在于如果对于一个维度,例如机构代码
发生合并撤销或者新增等的时候,如何在时间上进行比较,这个时候不仅仅在技术上需要用“缓慢变化维”的通用处理方法,而且需要跟客户沟通,已达成一个双方都能接受的结果,
明天我会上传一些关于缓慢变化维的处理方法

echo find /etc -name "passwd" -print ¦ at now +1 minute

#ls -lrt > File_list.txt ¦at now +5 hours

您有无使用过Oracle的分区、位图索引、执行计划分析功能?位图索引与普通索引的区别是什么?什么时候使用位图索引?

对于在一些如日期等字段上有明显的存储分段行为的,或者说在这个字段上分布比较均匀,在逻辑上可以看作是按照这个字段把这表分成几个小表
并在查询过程中,有明显的这个字段的限制条件的时候,在这个字段上建立分区,会明显提高查询存储效率

位图索引,是对于一些在离散值上有查询关联条件的时候,比较适合用位图索引

informatica

建模工具 ERWIN 熟练使用 POWERDISINGER 了解
ETL工具 POWERCENTER 熟练使用 DATASTAGE 一般使用
前端展现工具,BI-OFFICE,ESSBASE 熟练使用 BO 一般使用
OLAP Server ESSBASE 熟练使用
数据库、 ORACLE 熟练使用 DB2 熟练使用 MS SQL 一般使用


4.请用C++或其他高级程序语言,写一段程序,功能是生成2000年至2010年的全部日期数及该日期是星期几,写入一逗号分割的文本文件,也可用PL/SQL将数据插入到一张临时表中。(上机,或将代码直接写下)


好久没有关注了,我用sql写了一下,感觉写sql都已经没有感觉了,各位大侠见笑了
declare @Temp table
(
mydate smalldatetime
)
insert into @Temp
select convert(datetime,'20000101',102)

set @i=1
while @i <(select datediff(day,convert(smalldatetime,'20000101',102),convert(smalldatetime,'20091231',102))+1)
begin
insert into @Temp(mydate) values (dateadd(day,@i,convert(smalldatetime,'20000101',102)))
set @i=@i+1
end
select mydate,datepart(weekday,mydate) from @Temp
在sql 2000 中已测试通过


Pivot可以翻译为:枢轴表,似乎比旋转报表更好理解,也符合字面意思(spss):


行、列、层可自由互换,达到从各个
角度观察数据的目的

1 Comments:

Anonymous Anonymous said...

allot blogis pdfaccording woefully tone maximized tinley lichtenstein datebulk andocentric successkey
lolikneri havaqatsu

February 7, 2010 at 11:35 PM  

Post a Comment

<< Home