大資料數倉高階面試題整理《一》
大家好,球球給大家整理了一下大資料數倉高階面試題,希望大俠們能夠喜歡。
數倉高內聚低耦合是怎麼做的
定義
高內聚:強調模組內部的相對獨立性,要求模組內部的元素儘可能的完成一個功能,不混雜其他功能,從而使模組保持簡潔,易於理解和管理。 低耦合:模組之間的耦合度要儘可能的低,避免模組之間的複雜依賴,使得每個模組都可以獨立存在,從而減少模組間的相互影響,提高系統的可維護性。
做到低耦合、高內聚
一般複雜的公共邏輯可以採用抽象類和抽象方法的方式下沉到共有模組中,然後由相關子類去實現抽象方法,來實現不同的功能。這樣可以將複雜的邏輯拆分成各個子類,使得類之間的耦合度降低,提高程式碼的可維護性。
數倉中多重粒度的作用,以及實現
定義
在資料倉儲中,粒度是指資料的細度。粒度越高,表示資料越細緻,每個資料點所包含的資訊量也就越大。粒度越低,表示資料的概括性越強,每個資料點所包含的資訊量也就越小。
在資料倉儲中,多重粒度指的是將資料按照多個不同的粒度進行儲存,以便在需要時更方便地進行查詢和分析。例如,可以將資料按年、月、日等不同的粒度進行儲存,以便根據需裡對資料進行按年、按月、按日等不同維度的分析。多重粒度資料倉儲在實際應用中非常常見,能夠滿足大多數資料分析的需求。
作用
多重粒度資料倉儲可以讓我們更方便地對資料進行分析和查詢,具體有以下幾點作用:
1.提高查詢效率: 將資料按照多個不同粒度儲存,可以讓我們更快地找到所需的資料。例如,如果我們需要查詢某一天的銷售資料,直接查詢按日粒度儲存的資料即可,而不用掃描整個資料倉儲。
2、減少資料冗餘:在資料倉儲中,將資料按照多個粒度儲存,可以減少資料幾餘,節省空間。例如,如果我們將每一天的銷售資料都單獨儲存,那麼一年的資料就需要儲存 365 天的資料;如果將每一月的銷售資料儲存,則一年的資料只需要儲存 12 個月的資料。
3、方便資料分析:多重粒度資料倉儲可以讓我們更方便地對資料進行分析。例如,如果我們想要對某一天的銷售資料進行分析,可以直接查詢按日粒度儲存的資料;如果想要對某-月的銷售資料進行分析,可以直接查詢按月粒度儲存的。
實現
在資料倉儲中實現多重粒度是指在資料倉儲中設計多種方式來表示和儲存時間相關的資料。這樣就可以在不同的粒度(例如年、月、日、小時等)》上查詢資料,從而滿足不同的分析需求
常用的實現方式有兩種: 1.時間維度表:將時間的不同粒度分別建立為單獨的維度表,並與事實表進行關聯。例如,可以建立年、月、日、小時等維度表,並透過外來鍵關聯到事實表中。
2.時間層級表:將時間的不同粒度儲存在同一個表中,並設計為層級結構。例如,可以將時間表設計為“年-月-日-小時”的層級結構,將每個時間點都儲存在同一個表中。
具體選擇哪種方式,取決於業務需求和資料查詢的頻率。
時間維度表的優勢在於查詢速度快,但維護成本較高,需要單獨維護多個表。
時間層級表的優勢在於維護成本低,但查詢速度可能較慢。
如何提高查詢效率
最佳化資料庫結構,統一管理所有資料,減少查詢的次數;
使用快取技術,將查詢結果儲存到記憶體中,加速查詢;
合理利用索引,提高查詢的效率;
採用分散式系統,將查詢任務分發到多臺機器,提高查詢速度;
採用訊息佇列技術,將批次資料進行拆分,減少查詢時間;
利用資料庫定時備份技術,減少查詢時間;
採用資料庫分片技術,將資料分佈到多個資料庫,提高查詢效率;
採用資料庫檢視技術,將複雜的SQL語句拆分為多個簡單的SQL語句,提高查詢效率;
採用SQL最佳化技術,充分利用資料庫的索引,提高查詢效率;
採用資料庫叢集技術,將資料分佈到多個資料庫伺服器,提高查詢效率;
數倉資料域劃分幾種方式
我們採用四種方式對數倉資料域進行劃分:
按照業務型別劃分:比如銷售、財務、研發、物流等等。
根據需求方劃分:比如需求方為財務部,就可以設定對應的財務主題域,而財務主題域裡面可能就會有員工工資分析,投資回報比分析等主題。
3 按照功能或應用劃分:比如微信中的朋友圈資料域、群聊資料域等,而朋友圈資料域可能就會有使用者動態資訊主題、廣告主題等。
4 按照部門劃分:比如可能會有運營域、技術域等,運營域中可能會有工資支出分析、活動宣傳效果分析等主題.
數倉構建有幾種方式
建模方式
數倉構建方式
說法1:
整合數倉構建:這種方法把各類資料儲存在各自的資料庫中,然後透過資料整合工具將資料整合到一個數倉中,以滿足資料分析的需求。
資料融合數倉構建:這種方法是在源資料層面進行融合,將源資料經過整合、清洗、轉換等操作,構建資料倉儲,以滿足資料分析的需求。
後設資料數倉構建:這種方法是在後設資料層面進行資料整合,建立後設資料的抽象層,以便更好的管理和運算元據,以滿足資料分析的需求。
大資料數倉構建:這種方法是將大資料倉儲採用分散式儲存的方式進行資料儲存,以滿足資料分析的需求。
說法2
1、基於現有系統構建:利用現有系統,如ERP、SCM、CRM等,透過開發定製或者引入第三方軟體,構建數字化倉庫管理系統。
2、新建系統構建:從零開始,根據實際需求,開發建立一套新的數字化倉庫管理系統。
3、整合構建:將現有的傳統倉庫管理系統和新的數字化倉庫管理系統進行整合,構建全新的倉庫管理系統。
說法3
數倉構建有多種方式。這取決於您的需求、技術基礎、資料來源和構建目標。
常用的數倉構建方式包括:
1.基於 ETL的數倉構建:在這種方式中,您可以使用 ETL (提取、轉換、載入)工具來從源系統提取資料,然後在數倉中進行轉換和載入。
2.基於 ELT 的數倉構建:在這種方式中,您可以使用 ELT(提取、載入、轉換)工具來將資料從源系統提取到數倉,然後在數倉中進行轉換。
3、基於事件驅動的數倉構建: 在這種方式中,您可以使用事件驅動的架構,在事件發生時即時地將資料載入到數倉中
4.基於流的數倉構建:在這種方式中,您可以使用流處理框架,以流的方式將資料實時載入到數倉中。
哪種方式最合適,取決於您的業務需求和技術環境。
粒度操作
常用的粒度操作有上卷、下鑽、切片、切塊、旋轉、拉伸、鋸齒等。
上卷:上卷指的是增加粒度,將原來比較細的粒度提升到更大的粒度,從而讓整體更清晰,更容易理解,更容易把握。
下鑽:下鑽指的是減小粒度,將原來比較粗的粒度放低到更細的粒度,從而更加細緻的把握資料的細節,更加清楚的把握資料的特徵。
切片:切片指的是將資料分割成若干個資料片,從而更加方便地進行管理和操作。
切塊:切塊指的是將資料分割成若干個資料塊,從而更加方便地進行管理和操作。
旋轉:旋轉指的是對資料進行旋轉操作,從而讓資料看起來更加美觀,更容易理解。
拉伸:拉伸指的是對資料進行拉伸操作,從而讓資料看起來更加清晰,更容易理解。
鋸齒:鋸齒指的是對資料進行鋸齒操作,從而讓資料看起來更加精細,更容易理解。
SQL實現
SQL實現上卷下鑽切片切塊旋轉通常包括以下步驟:
1、首先使用SELECT語句從資料庫中選擇所需要的表;
2、使用GROUP BY語句將資料按照指定的維度進行分組;
3、使用HAVING語句按照指定條件對分組資料進行篩選;
4、使用ORDER BY語句對分組後的資料進行排序;
5、使用LIMIT和OFFSET語句對資料進行分頁;
6、使用CASE語句對資料進行旋轉以形成報表。
數倉中ODS層命中多少為合理
數倉中ODS層的命中率是指資料在ODS層中的命中率。一般來說,ODS層的命中率應該儘量高,因為這意味著更多的資料是從ODS層獲取的,而不是從原始資料來源獲取,這樣可以減少對原始資料來源的訪問壓力,並提高資料獲取的效率。
不過,ODS層的命中率也不能太高,因為如果ODS層的命中率過高,就意味著ODS層的資料不夠新,這可能會導致ODS層的資料不夠準確。所以,ODS層的命中率應該適中,一般來說,在80%~90%左右是合理的。
當然,ODS層的命中率也受到很多因素的影響,比如ODS層的資料更新頻率、ODS層的資料容量等。因此,具體的合理命中率還需要根據實際情況具體分析。
數倉價值鏈的體現和實現。
數倉價值鏈的體現主要是透過以下幾個方面:
1、資料採集:數倉系統要能夠從各種來源採集資料,包括傳統資料庫、網路日誌、企業應用系統和第三方資料來源等。
2、資料清洗:資料採集後,可能存在髒資料、缺失資料等情況,數倉系統要對資料進行清洗,使其符合分析的要求。
3、資料儲存:將清洗後的資料儲存到數倉系統中,以便後續的分析和查詢。
4、資料分析:使用數倉系統中的資料進行分析,提供對決策者有價值的資訊。
5、資料包告:將分析結果呈現給決策者,幫助他們做出決策。
建立數倉通常需要經過以下步驟
建立資料倉儲通常要經過以下幾個步驟:
1、需求分析:在建立資料倉儲之前,需要先進行需求分析,確定資料倉儲的目的和功能,並規劃資料倉儲的架構和設計。
2、資料清洗和整合:在建立資料倉儲之前,需要對來源資料進行清洗和整合,以確保資料的準確性和完整性。
3、構建資料模型:根據資料倉儲的需求和功能,構建資料倉儲的邏輯資料模型。
4、建立物理資料模型:根據邏輯資料模型,建立物理資料模型,並根據需要設計資料倉儲的儲存結構。
5、資料載入:將來源資料載入到資料倉儲中。
6、資料分析和報告:使用資料倉儲中的資料進行分析和生成報告,為企業決策提供依據。
7、維護和最佳化:對資料倉儲進行定期的維護和最佳化,以確保資料的準確性和完整性。
指標生命週期可以從哪幾個方面來評估
指標從被建立到被廢棄的整個過程。指標生命週期可以從以下幾個方面來評估:
建立時間: 指標被建立的時間點
.更新頻率:指標資料更新的頻率,包括實時更新、每日更新、每週更新等
.使用頻率:指標被使用的頻率,包括每日使用、每週使用、每月使用等。
使用場景:指標被使用的場景,包括決策支援、規劃、監控等。
.相關性: 指標與業務的相關性,即指標能否反映業務狀態
.準確性: 指標資料的準確性,即指標能否反映實際情況
可解釋性: 指標資料的可解釋性,即指標能否被正確理解和解釋
可操作性: 指標能否被有效地操作,即指標資料能否被用於實際的決策或行動。
透過對指標生命週期的評估,可以幫助企業更好地管理和使用指標,提高指標的有效性和價值
資料治理在做什麼
資料治理是一種指導和管理資料生命週期的框架和方法。這包括資料的收集、儲存、處理、使用和保護。資料治理的目的是提高資料質量,並確保資料在組織內被合理使用。資料治理可以幫助組織有效地使用資料,並防止資料洩露或濫用。
做數倉的目的
資料倉儲(Data Warehouse)是一種儲存大量歷史資料的系統,它主要用於資料分析和報告。資料倉儲通常包含來自多個不同來源的資料,並使用ETL(提取,轉換和載入)過程將資料轉換為可以進行分析的形式。
資料倉儲的目的是為管理層提供一個線上的資料分析工具,使他們能夠快速獲取有關公司業務的資訊,並基於這些資訊做出決策。資料倉儲的建立是為了滿足企業決策的需要,為企業的經營決策、規劃決策、計劃決策和控制決策提供依據,即為企業決策供給。
資料倉儲是資料整合的基礎,也是資料探勘的前提。因此,建立資料倉儲的目的不僅僅是為了供給決策,還包括為資料探勘和資料分析提供基礎。
以上僅供參考,有什麼問題可以聯絡我一起學習。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70024923/viewspace-2931881/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 大資料面試題以及答案整理(一)大資料面試題
- 一套高階大資料開發面試題(刷起來!!!)大資料面試題
- 大廠面試經:高頻率JVM面試問題整理!面試JVM
- 大資料面試題整理-好程式設計師大資料面試題程式設計師
- 出一套 iOS 高階面試題iOS面試題
- 上海攜程java高階面試題(一)Java面試題
- 【面試】2018大廠高階前端面試題彙總前端面試題
- 一道高階iOS面試題(runtime方向)iOS面試題
- 高階 Java 面試通關知識點整理Java面試
- Java高頻面試題(2023最新整理)Java面試題
- 大資料面試問題大資料面試
- Java高階面試題及答案Java面試題
- 前端高階面試題@JS篇前端面試題JS
- 大資料面試SQL每日一題系列:最高峰同時線上主播人數。位元組,快手等大廠高頻面試題大資料SQL每日一題面試題
- 高階工程師面試大全- 資料庫篇工程師面試資料庫
- 面試官一道題就把你刷下?21道大廠高階面試題,助力金三銀四!面試題
- 大資料面試題——場景題大資料面試題
- 2020面試必知:中高階工程師面試題集整理(題目+答案)工程師面試題
- PHP 高階工程面試題彙總PHP面試題
- 2019 Android 高階面試題總結Android面試題
- 面試題整理面試題
- 資料庫面試簡答、30道高頻面試題資料庫面試題
- 【秋招】京東_資料分析崗_面試題整理面試題
- 「數倉面試」如何確定主題域?面試
- 雲端計算大資料面試題,雲端計算大資料面試題集錦大資料面試題
- 100道Java高頻面試題(阿里面試官整理)Java面試題阿里
- 大資料面試常見的面試題總結大資料面試題
- 【面試題】大資料開發第1輪面試面試題大資料
- 寶蘭德大資料面試題大資料面試題
- 知道創宇大資料面試題大資料面試題
- 「面試題」20+Vue面試題整理面試題Vue
- 2019 必看 Android 高階面試題總結Android面試題
- 中高階前端開發高頻面試題前端面試題
- (四) BAT面試的20道高頻資料庫面試題BAT資料庫面試題
- 大廠面試iOS真題整理(flutter篇)面試iOSFlutter
- Java高階面試-面經Java面試
- JavaScript面試題整理JavaScript面試題
- CSS面試題整理CSS面試題