原创 淺談軟件工程中的Shim

什麼是Shim Shim一詞的原本含義是“墊片”或者“楔子”,而首先將這個詞應用到軟件工程領域的似乎是微軟。根據Wikipedia的總結: A shim is a library that transparently intercepts

原创 Flink RichFunction題目一則

前言 祝廣大女性節日快樂~ 快問快答 Flink DataStream API中的RichFunction有哪些用途/特點? RichFunction中獲取到的RuntimeContext是幹什麼用的? 所有Function都有對應的R

原创 「Daylight -デイライト-」(日光)

又到了一年一度揭曉冠軍單曲的時間~ 2022的Top 1與前幾年的風格完全不同,但卻是這一年最好的註解,是來自蝶團Morfonica的「Daylight -デイライト-」。 希望2023年一切順遂。 「Daylight -デイライト-」

原创 2022。

2022年的最後一天,照例來寫幾筆。凌晨0點回來揭曉年度最佳單曲。 健康 新冠疫情第三年的結尾,解封了,陽過了,也痊癒了(咳嗽和味覺減退還在緩慢恢復中)。 雖然從統計角度看,Omicron的重症率和致死率都很低,但當自己的朋友圈裏出現年輕人

原创 淺談Flink批模式Adaptive Hash Join

Flink批Hash Join遞歸超限問題 隨着Flink流批一體能力的迅速發展以及Flink SQL易用性的提升,越來越多的廠商開始將Flink作爲離線批處理引擎使用。在我們使用Flink進行大規模join操作時,也許會發生如下的異常,導

原创 Flink RocksDB託管內存機制的幕後——Cache & Write Buffer Manager

前言 爲了解決Flink作業使用RocksDB狀態後端時的內存超用問題,Flink早在1.10版本就實現了RocksDB的託管內存(managed memory)機制。用戶只需啓用state.backend.rocksdb.memory.m

原创 淺談Flink對象重用(object reuse)

前言 今天是大年初一,祝各位虎年大吉大利~ 近期受工作變動影響,博客又荒廢了許久。今天難得有空,就前段時間內部技術分享裏提到的一個小知識點來寫幾筆。 對象重用(object reuse)在Flink文檔的Execution Configu

原创 從一例狀態引發的性能問題談Flink狀態序列化

前言 好久不見(鞠躬 最近處在轉型期,每天忙到飛起,關注具體技術細節的精力自然就比較少了(上一篇許下的周更承諾也食言了 = =)。上週幫助他人快速解決了一個因誤用Flink狀態類型引發的性能問題,在這裏做個quick notes,並簡要介紹

原创 「snowdrop」(雪花蓮)

情人節快樂呀~ 最近帝都剛下過一場大雪。一曲兩用,太應景了( 2013年7月動畫《物語系列第二季 戀物語》片尾曲 https://y.qq.com/n/ryqq/songDetail/003U77P14d9aLv 「snowdrop」

原创 流批一體隨想

前言 好久不見(鞠躬 今年以來的主要工作方向之一就是部門內流批一體能力的建設與落地。雖然這個概念早已成爲老生常談,並且筆者現在還沒什麼fancy的成果(慚愧),但今天還是想隨便寫幾句來聊聊。 Why? 考慮經典的Lambda Archite

原创 Hudi Timeline簡析

前言 Long time no see(鞠躬 最近終於開始嘗試推廣Hudi在部門內部的應用,作爲流批一體計劃的最後一塊拼圖,順便復活許久未更的博客,希望今後至少能保持周更的節奏吧。 在Hudi官方文檔的開頭列舉了四大核心概念,分別是: T

原创 Flink新特性之網絡緩存消脹(Network Buffer Debloating)機制

前言 最近正在準備關於Flink 1.13 / 1.14版本新特性的內部分享,順便做點記錄。 又見網絡緩存 很久沒有聊過Flink的網絡棧了,但相信大家對網絡緩存(Network Buffer)這個概念不會陌生。它是Flink網絡層數據交換

原创 無鎖併發快照在Flink MySQL CDC 2.0中的實現

前言 本文是兩個月前參加黑馬比賽時寫了一半的,爲了避免爛尾,今天補全發出來。 Flink CDC經過長時間的發展,目前無疑是實現數據源端Pipeline的最簡單直接的方式。而在1.0時代,因爲存在一些主要的缺點,它還不能稱得上是produc

原创 淺談Flink SQL代碼生成與UDF重複調用的優化

前言 之前講解Flink SQL執行流程時留下了代碼生成的坑,在百忙之中抽時間補一補。 代碼生成簡介 代碼生成(code generation)是當今各種數據庫和數據處理引擎廣泛採用的物理執行層技術之一。通過代碼生成,可以將原本需要解釋執行

原创 基於Calcite解析Flink SQL列級數據血緣

數據血緣 數據血緣(data lineage)是數據治理(data governance)的重要組成部分,也是元數據管理、數據質量管理的有力工具。通俗地講,數據血緣就是數據在產生、加工、流轉到最終消費過程中形成的有層次的、可溯源的聯繫。成熟