Flink 實時數倉-思考與總結

1,什麼是Flink實時數倉。

  大家做離線開發是的時候數據存儲在hdfs或者hive,基於此,不管用什麼組件,數據源都是hive,然後定時執行腳本,跑離線任務啥的。

 實時數倉大家可以理解爲數據都存儲在kafka,Flink消費kafka的數據然後進行邏輯處理,然後再下發到kafka,這麼延遲是秒或者分鐘級別的,對於不同的業務效果更好,更實時。

 2,爲什麼要做實時數倉呢?

  我的理解是因爲業務,大家想想,離線數據處理的都是什麼數據,簡單總結之就是流量數據,從大量的數據最後得到幾個需要的維度的值,而實時數倉效果更快,這是技術的進步,更能提高效率

 

3,實時數倉的缺點?

  缺點可能的話還是資源吧,消耗更多。

 與其說是缺點,不如說是難點,痛點。 大概是資料不是很多,坑還需要人來趟。

 

4,之前我在接觸實時數倉的時候,有個想法。

  我之前想整合 Nifi + Flink+Druid的,目前都瞭解了一下之後發現不行。

 首先Nifi 使用有侷限,沒我想象的那麼簡單和容易上手,Druid就不說了,吃資源大戶,類似kylin,而且也是需要時間去設計數據結構,存儲等等,難點不是使用。這兩者都不是很流行,說白了用的人沒那麼多,對於公司來講,成本未知。

 

5,還是聊聊Flink實時數倉吧。

  1)美團實時數倉

    平臺架構:

案例:流量數倉

使用效果:

實踐總結:

傳統數倉:

Flink實時數倉:

準實時數倉:

準實時數倉與實時數倉的對比:

實時數倉平臺架構:

 

  2)美團:

 

ODS層:

保證kafka分區數據有序:

 

DW層的建設:

維度建設:

 

 

維度數據使用:

彙總層的建設:

注意點:去重的時候可能會佔用過大的資源導致程序死掉,我們可以使用一些算法或者辦法,比如布隆過濾器

倉庫的質量保證:

Flink sql校驗怎麼做?

 

一定建立血緣關係,如果任務或者作業修改了,下游要準確的保持一致,所以需要血緣關係。

數據質量驗證:

就是將中間表數據寫入hive,通過離線數據的結果統計比對實時數倉的結果是否正確,驗證差異。

  3)拉鍊表的意思:

https://blog.csdn.net/saqin6255/article/details/80362248

  4)

6,大家可以參考的文章或者視頻瞭解一下

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章