原创 實時數倉構建:Flink+OLAP查詢的一些實踐與思考

今天是一篇架構分享內容。 1.概述 以Flink爲主的計算引擎配合OLAP查詢分析引擎組合進而構建實時數倉,其技術方案的選擇是我們在技術選型過程中最常見的問題之一。也是很多公司和業務支持過程中會實實在在遇到的問題。 很多人一提起實時數倉,就

原创 hive窗口分析函數使用詳解系列二之分組排序窗口函數

1.綜述 我們討論面試中各大廠的SQL算法面試題,往往核心考點就在於窗口函數,所以掌握好了窗口函數,面對SQL算法面試往往事半功倍。 已更新第一類聚合函數類,點擊這裏閱讀 hive窗口函數聚合函數類 本節介紹Hive聚合函數中的第二類聚合函

原创 hive窗口分析函數使用詳解系列一

1.綜述 Hive的聚合函數衍生的窗口函數在我們進行數據處理和數據分析過程中起到了很大的作用 在Hive中,窗口函數允許你在結果集的行上進行計算,這些計算不會影響你查詢的結果集的行數。 Hive提供的窗口和分析函數可以分爲聚合函數類窗口函數

原创 什麼是hive的高級分組聚合,它的用法和注意事項以及性能分析

hive的高級分組聚合是指在聚合時使用GROUPING SETS、CUBE和ROLLUP的分組聚合。 高級分組聚合在很多數據庫類SQL中都有出現,並非hive獨有,這裏只說明hive中的情況。 使用高級分組聚合不僅可以簡化SQL語句,而且通

原创 HiveSQL在使用聚合類函數的時候性能分析和優化詳解

概述 前文我們寫過簡單SQL的性能分析和解讀,簡單SQL被歸類爲select-from-where型SQL語句,其主要特點是隻有map階段的數據處理,相當於直接從hive中取數出來,不需要經過行變化。在非多個節點的操作上,其性能甚至不比Te

原创 Hive常見時間日期函數的使用與問題整理

這裏整理一下Hive常見的時間函數和日期函數和用法,作爲平時數據處理過程的一個檢索和記錄。 平時在數據處理過程中,如果不經常使用時間函數,一時間遇到一些時間上的處理,難免會想不起來。 hive本身提供的時間函數已經很豐富了,基本上能滿足我們

原创 Hive執行計劃之只有map階段SQL性能分析和解讀

目錄 目錄概述1.不帶函數操作的select-from-where型簡單SQL1.1執行示例1.2 運行邏輯分析1.3 僞代碼解釋2.帶普通函數和運行操作符的普通型SQL執行計劃解讀2.1 執行計劃解讀2.2 僞代碼解釋邏輯 概述 可能所有

原创 Hive執行計劃之什麼是hiveSQL向量化模式及優化詳解

Hive開啓向量化模式也是hiveSQL優化方法中的一種,可以提升hive查詢速率,也叫hive矢量化。 問題1:那麼什麼是hive向量化模式呢? 問題2:hive向量化什麼情況下可以被使用,或者說它有哪些使用場景呢? 問題3:如何查看hi

原创 Hive執行計劃之hive依賴及權限查詢和常見使用場景

目錄概述1.explain dependency的查詢與使用2.藉助explain dependency解決一些常見問題2.1.識別看似等價的SQL代碼實際上是不等價的:2.2 通過explain dependency驗證將過濾條件在不同位

原创 HiveSql調優系列之Hive嚴格模式,如何合理使用Hive嚴格模式

目錄綜述1.嚴格模式1.1 參數設置1.2 查看參數1.3 嚴格模式限制內容及對應參數設置2.實際操作2.1 分區表查詢時必須指定分區2.2 order by必須指定limit2.3 限制笛卡爾積3.搭配使用3.1 參數3.2 搭配使用案例

原创 Hive存儲格式之ORC File詳解,什麼是ORC File

目錄概述文件存儲結構StripeIndex DataRow DataStripe Footer兩個補充名詞Row GroupStreamFile Footer條紋信息列統計元數據類型信息複雜數據類型Postscript數據讀取位置指針三層過

原创 什麼是謂詞下推,看這一篇就夠了

目錄1.什麼是謂詞2.什麼是下推3.什麼是謂詞下推4.一些常見的應用4.1傳統數據庫應用4.2Hive中的謂詞下推4.3列式存儲中的謂詞下推 今天有個小夥伴問我,什麼是謂詞下推,然後我就開啓巴拉巴拉模式,說了好長一段時間,結果發現他還是懵的

原创 Hive存儲格式之RCFile詳解,RCFile的過去現在和未來

我在整理Hive的存儲格式和壓縮格式,本來打算一篇發出來,結果其中一小節就有很多內容,於是打算寫成Hive存儲格式和壓縮格式系列。 本節主要講一下Hive存儲格式最早的典型的列式存儲格式RCFile。 綜述 RCFile(Record Co

原创 什麼是hive的靜態分區和動態分區,它們又有什麼區別呢?hive動態分區詳解

面試官問我,什麼是hive的靜態分區和動態分區,這題我會呀。 簡述 分區是hive存放數據的一種方式,將列值作爲目錄來存放數據,就是一個分區,可以有多列。 這樣查詢時使用分區列進行過濾,只需根據列值直接掃描對應目錄下的數據,不掃描不關心的分

原创 關於hive分區,你知道多少呢?

​ 文末查看關鍵字,回覆贈書 一、理論基礎 1.Hive分區背景 在Hive Select查詢中一般會掃描整個表內容,會消耗很多時間做沒必要的工作。有時候只需要掃描表中關心的一部分數據,因此建表時引入了partition概念。 2.Hive