個人數倉開發面試題記錄

一.廣州電商公司

1.簡單自我介紹
2.介紹下之前的公司離線數倉項目
3.mysql和hive區別?
4.sql的執行順序?
5.hive的優化
6.說下你之前公司來,你的技能層次在每個公司?你怎么評價你的技能?
7.你的之前業務主要是做什么?我說了項目分工
8.數倉的分層,分幾層?按照數據域分層,問幾層?
9.sql優化一般怎么優化的?
10.非本專業怎么進行后續學習的?
11.系統函數怎么用的?
12.數據遷移怎么做的?
13.數據可視化界面怎么做的?bi你們講解是誰負責
14.有用過dws層直接對接bi嘛?mysql數據庫有用嗎?為啥對接bi?

3.mysql和hive區別?

??? hive不是數據庫,除了sql語法有點像,其他都不一樣
?????????? ? ? ? ? hive??????????????????? ? ? ? ? ???????????? mysql
?存儲位置?? hdfs???????????????????????????????????????? 本地磁盤
?計算引擎?? 分布式mr、tez、spark???????????? 自己的單機的
?計算效率?? 數據量大,快???????????????????????????? 小,快
?數據更新?? 適合分析(select)???? ? ? ? ? ? ? ? 增刪改查

5.hive的優化

group by

1)map端預聚合? (預聚合的配置參數為hive.map.aggr,默認值true)

2)數據傾斜時進行負載均衡處理

通過將參數hive.groupby.skewindata(默認false)設置為true,那么在進行group by時,會啟動兩個MR job。第一個job會將map端數據隨機輸入reducer,每個reducer做部分聚合操作,相同的group by key會分布在不同的reducer中。第二個job再將前面預處理過的數據按key聚合并輸出結果,這樣就起到了均衡的效果。

3)count(distinct)

當數據量大時,效率會很低,尤其是數據傾斜的時候。

可以通過group by代替count(distinct)使用。

4)本地模式

對于處理小數據量的任務,我們不需要通過集群模式進行處理(因為為該任務實際觸發的job執行等開銷可能比實際任務的執行時間還要長),Hive可以通過本地模式在單臺機器上處理所有的任務。

 set hive.exec.mode.local.auto=true;

------------------------------------------------------------
2)map Join:? 大小表join,避免shuffle
3)SMB Join:? sort merge bucket join
??? 大表 join 大表:
??????? 分桶表,分桶字段 = 關聯字段 = 桶排序 字段
??????? 分桶的數量,成比例
4)分區、分桶
??? 分區:避免全表掃描
??? 分桶:做SMB的時候, 抽樣key判斷傾斜
5)壓縮 : snappy
6)存儲格式 : 列式 orc
??? id? name??? age
??? 1??? zs???? 18
??? 2??? ls???? 19
?? ?
??? 行式?? 1??? zs???? 18???? 2??? ls???? 19
??? 列式?? 1??? 2???? zs??? ls??? 18??? 19
??????? 查詢效率高
??????? 存儲結構更緊密,壓縮后更小
??????? select name from A
?? ?
??? 行式: text、sequnencefile
??? 列式: orc、parquet
??????? orc為hive而生的,跟hive性能更強
??????? parquet兼容性更好
7)調整reduce的數量
??? 指定參數 ,默認 -1 表示禁用
??? 估算機制:?? 數據量/ 每個Reducer處理上限(默認256M)
??? 特殊語法: orderby 、 count(distinct )
?? ?
??? 優先級: 特殊語法 > 參數 > 估算機制
8)謂詞下推????? 默認開啟
??? select xx from? A join B? on A.id=B.id and A.id>10
??? select xx from? A join B? on A.id=B.id where A.id>10
??? 經過謂詞下推,第二種也會先 過濾,再join,效果一樣
?? ?
9)并行執行????? 默認開啟
10)開啟cbo????? 默認開啟
11)合并小文件
??? 危害:
??? 解決: ?
??????? JVM重用
??????? CombineHiveInputFormat
??????? merge功能: 結束后,再另外啟動一個job來合并小文件于16m的文件
??????????? 小于 16m ==》 256m
??????????? map-only:默認開啟
??????????? map-reduce:默認關閉,需要開啟
?????????? ?
12)使用多引擎
??? mr??? : 跑 年、月 時間跨度大、數據量大的指標
??? tez?? : 現在沒用
??? spark : 跑日常天指標
?? ?
??? set hive.execution.enginee = mr;
??? sql1;
?? ?
??? set hive.execution.enginee=spark;
??? sql2;

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/719318.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/719318.shtml
英文地址,請注明出處:http://en.pswp.cn/news/719318.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Linux基礎命令[10]-cmp

文章目錄 1. cmp 命令說明2. cmp 命令語法3. cmp 命令示例3.1 不加參數3.2 -b(顯示不同的字節)3.3 -i(跳過字節)3.4 -l(顯示所有不同)3.5 -n(比較n個字節)3.6 -s(不顯示信…

el-select 不能重復選擇

el-select 不能重復選擇&#xff0c;注意&#xff1a;刪除后可以再次重新被選擇 <el-form-item><el-select v-model"attribute.attributeSelect" change"changeSelect()" placeholder"請選擇屬性分組" clearable><el-optionv-fo…

PostgreSQL restartpoint 原理詳解

背景 大部分人對 PG 的 checkpoint 機制會熟悉一點&#xff0c;但是對 restartpoint 卻不太熟悉&#xff0c;網上介紹這方面的文章也比較少。因此&#xff0c;本文將以 PG 14.7 的社區代碼為基礎&#xff0c;介紹 PG 中的 restartpoint 機制。 原理介紹 什么是 restartpoint…

華為OD技術面試案例1-2024年

背景&#xff1a; 學校背景&#xff1a;211本科工作經驗&#xff1a;1年半轉行目標&#xff1a;測試崗位 一、機考 &#xff08;得分&#xff1a;350&#xff09; 二、01.04 hr面 自我介紹選擇東莞的原因對OD&#xff08;華為研發崗位&#xff09;的看法家庭情況簡歷相關問…

信息論筆記:信息量+熵+相對熵+交叉熵+損失函數

信息論 信息量 I(x) -log( P )I為信息量P為x發生的概率 熵 混亂程度的度量&#xff0c;不確定的局面表示很混亂系統里信息量的期望值H(x) -sum( P(i) * log( P(i) ) ) 相對熵(KL散度) 用于度量兩個概率分布間的差異性信息D_KL(S | O) sum( P_S(x) * log_2( 1 / P_O(x)…

Mysql學習之各種鎖

鎖 事務的隔離性由鎖來實現 MySQL并發事務訪問相同記錄 并發事務訪問相同記錄的情況大致可以分為3種&#xff1a; 讀-讀的情況 讀-讀情況&#xff0c;即并發事務相繼讀取相同的記錄。讀取操作本身不會對記錄由有任何的影響&#xff0c;并不會引起什么問題&#xff0c;所以允許…

簡要講解OV7725攝像頭

本文主要包含以下幾部分內容&#xff1a; 1. 通過OV7725分析模塊原理圖。 2. 講解部分寄存器的含義、RGB565格式圖像輸出時序、幀率計算。 3. 講解SCCB協議與I2C協議的區別。 1、OV7725功能 OV7725是一款1/4英寸單芯片圖像傳感器&#xff0c;其感光陣列達到640*480&#xff0c…

LibreOJ 137. 最小瓶頸路(加強版) 題解 Kruscal重構樹 ST表

聲明&#xff1a;本題目是LibreOJ 136. 最小瓶頸路 題解 最小生成樹 倍增加強版&#xff0c;建議先學習簡單版的做法。 題目鏈接&#xff1a;LibreOJ 137. 最小瓶頸路&#xff08;加強版&#xff09; 題目描述&#xff1a; 給定一張無向圖&#xff0c;詢問兩個結點之間的最小瓶…

【MySQL 系列】在 Windows 上安裝 MySQL

在 Windows 平臺上安裝 MySQL 很簡單&#xff0c;并不需要太復雜的步驟。按照本文的步驟操練起來就可以了。 文章目錄 1、下載 MySQL 安裝程序2、安裝 MySQL 數據庫2.1、選擇安裝類型2.2、檢查所需組件2.3、安裝所選產品組件2.4、產品配置2.5、配置高可用性2.6、配置服務器類型…

【leetcode】 劍指 Offer學習計劃(java版本含注釋)(下)

目錄 前言第十六天&#xff08;排序&#xff09;劍指 Offer 45. 把數組排成最小的數&#xff08;中等&#xff09;劍指 Offer 61. 撲克牌中的順子&#xff08;簡單&#xff09; 第十七天&#xff08;排序&#xff09;劍指 Offer 40. 最小的k個數&#xff08;簡單&#xff09; 第…

c++11多線程:call_once

文章目錄 call_once示例一示例二 call_once std::call_once是 C11 標準庫中的一個函數&#xff0c;用于確保某個函數只會被調用一次。 單例設計模式是一種常見的設計模式&#xff0c;用于確保某個類只能創建一個實例。由于單例實例是全局唯一的&#xff0c;因此在多線程環境中…

YOLO系列中的“data.yaml”詳解!

專欄介紹&#xff1a;YOLOv9改進系列 | 包含深度學習最新創新&#xff0c;主力高效漲點&#xff01;&#xff01;&#xff01; 一、data.yaml介紹 YOLO系列中的data.yaml文件包含了YOLO系列模型運行所需要的數據集路徑、數據集中的類別數及標簽。數據集路徑可以用絕對路徑也可以…

Python實現股票信息查詢

目前兩個常用的股票信息CPI&#xff1a; 騰訊行情CTPAPI接口源碼 新浪行情CTPAPI 使用requests模塊爬取股票信息&#xff0c;這里以查詢股票市值為例。 一、根據股票名稱查詢股票代碼 在python文件夾下設置兩個表格GPLIST.xlsx&#xff0c;其中是A股全部代碼和股票名稱&#…

如何在飛書接入ChatGPT并結合內網穿透實現公網遠程訪問智能AI助手

文章目錄 前言環境列表1.飛書設置2.克隆feishu-chatgpt項目3.配置config.yaml文件4.運行feishu-chatgpt項目5.安裝cpolar內網穿透6.固定公網地址7.機器人權限配置8.創建版本9.創建測試企業10. 機器人測試 前言 在飛書中創建chatGPT機器人并且對話&#xff0c;在下面操作步驟中…

MySQL 高可用解決方案(雙主雙從)

1.環境說明 操作系統&#xff1a;centos7.7 主服務器&#xff1a;node2(192.168.1.102) 從服務器&#xff1a;node3(192.168.1.103) keepalived中虛擬ip(VIP):192.168.1.100 2.準備事項 主庫和從庫數據庫的版本一致把主庫的數據同步給從庫一份 #對主庫進行全局讀鎖定 FLUSH…

GEE代碼條帶問題——sentinel-1接縫處理的問題

問題 我有興趣確定 NDVI 損失最大的年份。我創建了一個函數來收集所有陸地衛星圖像并應用預處理。當我導出結果以識別 NDVI 損失最大年份時&#xff0c;生成的數據產品與陸地衛星場景足跡有可怕的接縫線。造成這種情況的原因是什么以及如何調整代碼&#xff1f; sentinel1數據…

flutter之終極報錯

看到這個報錯頭都大了 一開始在網上各種搜搜&#xff0c;然后有人說是flutter版本的問題&#xff0c;改完版本之后還是不對&#xff0c;又是各種搜搜搜 有人說是環境變量的問題&#xff0c;后來改了環境變量&#xff0c;媽的&#xff0c;竟然還不行&#xff0c;想砸電腦的心都…

Xcode :Could not build module ‘WebKit‘ 已驗證解決

問題&#xff1a;Could not build module WebKit 具體報錯如下&#xff1a; error: type argument nw_proxy_config_t (aka struct nw_proxy_config *) is neither an Objective-C object nor a block type property (nullable, nonatomic, copy) NSArray<nw_proxy_config_…

C++學習筆記:set和map

set和map set什么是setset的使用 關聯式容器鍵值對 map什么是mapmap的使用map的插入方式常用功能map[] 的靈活使用 set 什么是set set是STL中一個底層為二叉搜索樹來實現的容器 若要使用set需要包含頭文件 #include<set>set中的元素具有唯一性(因此可以用set去重)若用…

【java-面試題】start和run的區別

【java-面試題】start和run的區別 在run方法內部&#xff0c;只是單純的描述了該線程要執行的內容。run方法是線程的入口。 在start方法內部&#xff0c;會調用到系統api&#xff0c;從而在系統內核中創建出線程&#xff0c;創建線程后&#xff0c;再自動調用run方法。 在代碼…