用乙個接地氣的案例來介紹如何實時計算 uv 資料。大家都知道,在 toc 的網際網路公司,uv 是乙個很重要的指標,對於老闆、商務、運營的及時決策會產生很大的影響,筆者在電商公司,目前主要的工作就是計算 uv、銷售等各類實時資料,體驗就特別深刻, 因此就用乙個簡單demo 演示如何用 flink sql 消費 kafka 中的 pv 資料,實時計算出 uv 指標後寫入 hbase。
kafka 源資料解析輸入標題
pv 資料**於埋點資料經 filebeat 上報清洗後,以 protobuffer 格式寫入下游 kafka,消費時第一步要先反序列化 pb 格式的資料為 flink 能識別的 row 型別,因此也就需要自定義實現 deserializationschema 介面,具體如下**, 這裡只抽取計算用到的 pv 的 mid、事件時間 time_local,並從其解析得到 log_date 字段:
public class pageviewdeserializationschema implements deserializationschema
@override
public row deserialize(byte message) throws ioexception catch (exception e), pageview error is {}", message.tostring(), mobilepageerror, e);
}return null;
}
編寫 flink job 主程式輸入標題
將 pv 資料解析為 flink 的 row 型別後,接下來就很簡單了,編寫主函式,寫 sql 就能統計 uv 指標了,**如下:
public class realtimeuv
}
以上就是乙個簡單的使用 flink sql 統計 uv 的 case, **非常簡單,只需要理清楚如何解析 kafka 中資料,如何初始化 table schema,以及如何將表註冊到 flink中,即可使用 flink sql 完成各種複雜的實時資料統計類的業務需求,學習成本比api 的方式低很多。說明一下,筆者這個 demo 是基於目前業務場景而開發的,在生產環境中可以真實執行起來,可能不能拆箱即用,你需要結合自己的業務場景自定義相應的 kafka 資料解析類。 Spark Streaming實時計算框架介紹
隨著大資料的發展,人們對大資料的處理要求也越來越高,原有的批處理框架mapreduce適合離線計算,卻無法滿足實時性要求較高的業務,如實時推薦 使用者行為分析等。spark streaming是建立在spark上的實時計算框架,通過它提供的豐富的api 基於記憶體的高速執行引擎,使用者可以結合流式 ...
Spark Streaming實時計算框架介紹
隨著大資料的發展,人們對大資料的處理要求也越來越高,原有的批處理框架mapreduce適合離線計算,卻無法滿足實時性要求較高的業務,如實時推薦 使用者行為分析等。spark streaming是建立在spark上的實時計算框架,通過它提供的豐富的api 基於記憶體的高速執行引擎,使用者可以結合流式 ...
Spark Streaming及實時計算介紹
spark streaming其實就是spark提供對於大資料進行實時計算的一種框架。它的底層,其實也是基於spark core。基本的計算模型還是基於記憶體的大資料實時計算模型。而且它的底層的元件或者叫做概念其實還是最核心的rdd。只不過針對實時計算的特點,在rdd之上進行了一層封裝,叫做dstr...