原创 Presto源碼分析(和hive執行計劃的比較)

聚合操作比較 1 presto groupby 2 hive groupby 排序操作比較 1 presto排序 2 hive排序 join 1 presto 2 hive 1 聚合操作比較 1.1 pres

原创 sparksql源碼解析(執行計劃)

[TOC] 1.group by查詢 select count(*),sum(o_totalprice),o_orderpriority from default.orders where o_orderkey>100 group

原创 presot中的code generation

簡介 源碼解析 1 主流程代碼 2 cursor processer編譯 3 動態加載類名的構造 4 在類ClassDefinition中使用各種visit方法構造類的成員變量和方法 1 簡介 presto中使用

原创 Presto源碼解析(HashAggregationOperator)

GroupByHashAggregationBuilder 重要成員 重要方法 1.GroupByHashAggregationBuilder 1.重要成員 private final GroupBy

原创 presto對orc文件的讀取

1- orc文件格式概述 2- 讀取流程 2-1 構造orc data source 2-2 構造orc data reader 2-3 構造stripe reader presto對orc文件和parquet文件的

原创 presto源碼分析(PartitionedOutputOperator)

addInput方法 1 addInput方法 requireNonNull(page, "page is null"); checkState(isBlocked().isDone(),

原创 lucene5.1 fst源碼分析(fst接口方法寫入和讀取測試)

1 fst基本概念 1-1 節點node和弧arc 2 lucene中的fst測試代碼 3 源碼分析 3-1 util的get方法分析 3-2 FST的findTargetArc方法 3-2-1 類成員變量介紹 3-2-2

原创 presto源碼解析(function)

function構造 求平均 2-1 求平均的調用棧 2-2求平均的過程 2-2-1 partial階段 1 function構造 然後使用這些function構造一個AggregationNode 但是這些

原创 lucene5.1 fst源碼分析(嵌入到lucene中的寫入過程)

1 說明 2 寫入數據 2-1 調用棧 2-2 源碼分析 2-2-1 write方法 2-2-2 BlockTreeTermWriter的write方法 2-2-3 BlockTreeTermWriter的pushterm方法

原创 Presto源碼分析(hive-rcfile)

hive數據源構造 數據迭代讀取 project操作 壓縮 1 hive數據源構造 先來看hive record cursor的構造棧 從圖中可以看到,讀取hive的數據時,會構造一個ColumnBinaryHiv

原创 lucene5.1 fst源碼分析(BooleanQuery分析)

1 測試代碼 1-1 寫入代碼 1-2 讀取代碼 2 源碼分析 2-1createweight 2-1-1 TermQuery構造weight 2-1-2 MultiTermQueryConstantScoreWrappe

原创 presto源碼分析(結果獲取)

結果獲取入口 1.結果獲取入口 結果獲取的入口是在StatementResource中,客戶端發送http請求,由getQueryResult方法響應,代碼如下: @GET @Path("{queryId}/{

原创 Presto源碼分析(ScanFilterAndProjectOperator)

構造函數 createSourceIfNecessary方法 getOutput方法 RecordPageSource的處理過濾和投影 其他pagesource的處理具體參見orc和parquet的分析 1.構造函數 p

原创 presto源碼分析(join中的謂詞下推)

presto中的join 1 PredicatePushDown 舉例分析 1 tpch connector 2 hive connector 1 presto中的join preto在進行兩表連接查詢時,有時會下