大資料常見面試題之資料倉儲

2021-10-08 18:26:24 字數 3217 閱讀 6167

三.數倉和普通資料庫區別

四.星型模型和雪花模型的區別

五.拉鍊表

一般情況下,將資料模型分為3層:

資料庫與資料長褲的區別實際講的是oltp和olap的區別

oltp特點如下

olap特點如下

簡單來說:

oltp

olap

使用者操作人員,底層管理人員

決策人員,高階管理人員

功能日常操作處理

分析決策

db設計

面向應用

面向主題

資料當前的,最新的細節的,二維的分立的

歷史的,聚集的,多維的,整合的,統一的

訪問讀寫數十條記錄

讀上百萬條記錄

工作單位

簡單的事務

複雜的查詢

使用者數上千個

上百萬個

db大小

100mb-gb

100gb-tb

時間要求

具有實時性

對時間的要求不嚴格

主要應用

資料庫資料倉儲

常用的etl工具:datastage,informatica,kettle

1.拉鍊表的使用場景

2.使用拉鍊表的原因

註冊日期

使用者編號

手機號碼

t_start_date

t_end_date

2017-01-01

001111111

2017-01-01

9999-12-31

2017-01-01

002222222

2017-01-01

2017-01-01

2017-01-01

002233333

2017-01-02

9999-12-31

2017-01-01

003333333

2017-01-01

9999-12-31

2017-01-01

004444444

2017-01-01

2017-01-01

2017-01-01

004432432

2017-01-02

2017-01-02

2017-01-01

004432432

2017-01-03

9999-12-31

2017-01-02

005555555

2017-01-02

2017-01-02

2017-01-02

005115115

2017-01-03

9999-12-31

2017-01-03

006666666

2017-01-03

9999-12-31

相關**如下

-- 我見青山多嫵媚,料青山見我應如是

-- 建立使用者拉鍊表

create

table

ifnot

exists user_his(

userid string,

username string,

phone string,

start_date string,

end_date string

)stored as textfile;

-- 建立使用者的更新表

create

table

ifnot

exists user_update(

userid string,

username string,

phone string

)stored as textfile;

-- 插入資料

insert

into

table user_his values

('1001'

,'zhangsan'

,'13066668888'

,'2020-09-01'

,'9999-12-31'),

('1002'

,'lisi'

,'13066669999'

,'2020-09-01'

,'9999-12-31'),

('1003'

,'wangwu'

,'13066667777'

,'2020-09-01'

,'9999-12-31');

insert

into

table user_update values

('1001'

,'zhangsan'

,'13056874895'),

('1002'

,'lisi'

,'13058478694');

truncate

table user_his;

-- 拉鍊表更新操作

insert overwrite table user_his

select

*from

(select*,

'2020-09-14' start_date,

'9999-12-31' end_date from user_update

union

allselect

uh.userid,uh.username,uh.phone,uh.start_date,

case

when uu.userid is

notnull

and uh.end_date=

'9999-12-31'

then

'2020-09-13'

else uh.end_date end end_date

from user_his uh

left

join user_update uu

on uh.userid=uu.userid) t;

大資料常見面試題之spark core

二.driver的功能 三.hadoop和spark都是平行計算,他們有什麼相同點和不同點 四.rdd 五.簡述寬依賴和窄依賴概念,groupbykey,reducebykey,map,filter,union都是什麼依賴?六.spark如何防止記憶體溢位 七.stage task 和 job的區別...

大資料常見面試題之kafka

四.kafka到sparkstreaming怎麼保證資料完整性,怎麼保證資料不重複消費?五.kafka的消費者高階和低階api區別 六.kafka怎麼保證資料消費一次且僅消費一次 七.kafka保證資料一致性和可靠性 八.spark實時作業宕掉,kafka指定的topic資料堆積怎麼辦 九.kafk...

大資料常見面試題之HBase

三.hbase的優化 四.hbase讀寫流程 五.rowkey如何設計避免熱點問題 六.hbase的最小儲存單位 七.hbase如何進行預分割槽以及作用 八.hbase中的hfile什麼時候需要合併成大檔案,什麼時候拆分成小檔案 九.為什麼hbase查詢比較快 1.表設計 2.寫表 3.讀表 hba...