国产一区二区精品-国产一区二区精品久-国产一区二区精品久久-国产一区二区精品久久91-免费毛片播放-免费毛片基地

千鋒教育-做有情懷、有良心、有品質的職業教育機構

手機站
千鋒教育

千鋒學習站 | 隨時隨地免費學

千鋒教育

掃一掃進入千鋒手機站

領取全套視頻
千鋒教育

關注千鋒學習站小程序
隨時隨地免費學習課程

當前位置:首頁  >  應聘面試  >  大數據面試題  > Flink維表Join方式?

Flink維表Join方式?

來源:千鋒教育
發布人:wjy
時間: 2022-09-02 15:42:14 1662104534

1. 直接加到內存,起一個線程定時更新維表。

# 優點:實現簡單

# 缺點:適用于維表不是太大,維度更新不頻繁場景

# 適用場景:維表小,變更頻率低,對變更及時性要求低

2. 通過Distributed Cache 分發本地維度文件到task manager后加載到內存關聯。

* 通過env.registerCachedFile注冊文件。實現RichFunction,在open()中通過RuntimeContext獲取cache文件。

# 優點:不需要外部數據庫

# 缺點:支持維度數據量比較小,更新需要更改文件并重啟作業

# 適用場景:維度數據是以文件形式,數據量小,更新頻率低。

比如:靜態碼表,配置文件。

Flink維表Join方式?

3. 熱存儲關聯:利用Flink的RichAsyncFunction讀取外部存儲的數據到緩存中,我們在關聯維度表時先去查詢緩存,如果緩存中不存在這條數據,就利用客戶端去查詢外部存儲,然后插入到緩存中, 可以使用 Guava 庫提供的 CacheBuilder 來創建緩存。

外部存儲可以是HBase,Redis等

* 這里需要特別注意的是,我們用到了異步 IO (RichAsyncFunction),這個功能的出現就是為了解決與外部系統交互時網絡延遲成為系統瓶頸的問題。

# 優點:維度數據不受限于內存,支持較多維度數據

# 缺點:需要熱存儲資源,維度更新反饋到結果有延遲(熱存儲導入,cache) # 適用場景:維度數據量大,可接受維度更新有一定的延遲。

4. Broadcast 流 1. 將維度數據發送到Kafka作為流S1。事實數據是流S2。

2. 定義狀態描述符MapStateDescriptor,如descriptor。

3. 結合狀態描述符,將S1廣播出去,如S1.broadcast(descriptor),形成廣播流(BroadcastStream) B1。

4. 事實流S2和廣播流B1連接,形成連接后的流BroadcastConnectedStream BC。

5. 基于BC流,在KeyedBroadcastProcessFunction/BroadcastProcessFunction中實現Join的邏輯處理。

# 優點: 維度變化實時感知

# 缺點: 需要將維度變化數據轉換為Kafka流,維度數據保存在內存中,支持的數據量相對較小

# 使用場景: 維度數據量小,維度變化敏感

5. Flink SQL 實現維表Join

tags:
聲明:本站稿件版權均屬千鋒教育所有,未經許可不得擅自轉載。
10年以上業內強師集結,手把手帶你蛻變精英
請您保持通訊暢通,專屬學習老師24小時內將與您1V1溝通
免費領取
今日已有369人領取成功
劉同學 138****2860 剛剛成功領取
王同學 131****2015 剛剛成功領取
張同學 133****4652 剛剛成功領取
李同學 135****8607 剛剛成功領取
楊同學 132****5667 剛剛成功領取
岳同學 134****6652 剛剛成功領取
梁同學 157****2950 剛剛成功領取
劉同學 189****1015 剛剛成功領取
張同學 155****4678 剛剛成功領取
鄒同學 139****2907 剛剛成功領取
董同學 138****2867 剛剛成功領取
周同學 136****3602 剛剛成功領取
相關推薦HOT