告别Kafka Stream,让轻量级流处理更加简单
作者|白玙
一說到數據孤島,所有技術人都不陌生。在 IT 發展過程中,企業不可避免地搭建了各種業務系統,這些系統獨立運行且所產生的數據彼此獨立封閉,使得企業難以實現數據共享和融合,并形成了"數據孤島"。
由于數據散落在不同數據庫、消息隊列中,計算平臺直接訪問這些數據時可能遇到可用性、傳輸延遲,甚至系統吞吐問題。如果上升到業務層面,我們會發現這些場景隨時都會遇到:匯總業務交易數據、舊系統數據遷移到新系統中、不同系統數據整合。因此,為了能讓數據更加實時、高效的融合并支持各業務場景,企業通常選擇使用各種 ETL 工具以達到上述目的。
因此,我們可以看到企業自行探索的各種解決方案,比如使用自定義腳本,或使用服務總線(Enterprise Service Bus,ESB)和消息隊列(Message Queue,MQ),比如使用企業應用集成(Enterprise application integration,EAI)通過底層結構的設計來橫貫企業異構系統、應用、數據源等,實現數據的無縫共享與交換。
盡管以上手段都算實現了有效實時處理,但也給企業帶來更難決斷的選擇題:實時,但不可擴展,或可擴展。但批處理。與此同時,隨著數據技術、業務需求的不斷發展,企業對 ETL 的要求也不斷提升:
- 除了支持事務性數據,也需要能夠處理諸如 Log、Metric 等類型越來越豐富的數據源;
- 批處理速度需要進一步提升;
- 底層技術架構需要支持實時處理,并向以事件為中心演進。
可以看到,流處理/實時處理平臺作為事件驅動交互的基石。它向企業提供了全局化的數據/事件鏈接、即時數據訪問、單一系統統管全域數據以及持續索引/查詢能力。也正是面對以上技術與業務需求,Kafka 提供了一個全新思路:
- 作為實時、可擴展消息總線,不再需要企業應用集成;
- 為所有消息處理目的地提供流數據管道;
- 作為有狀態流處理微服務的基礎構建塊。
我們以購物網站數據分析場景為例,為了實現精細化運營,運營團隊以及產品經理需要將眾多用戶行為、業務數據以及其他數據數據進行匯總,這其中包括但不限于:
這些數據匯集到 Kafka,然后數據分析工具統一從 Kafka 中獲取所需的數據進行分析計算。由于 Kafka 采集的數據源非常多且格式也各種各樣。在數據進入下游數據分析工具之前,需要進行數據清洗,例如過濾、格式化。在這里研發團隊有兩個選擇:(1)寫代碼去消費 Kafka 中的消息,清洗完成后發送到目標 Kafka Topic。(2)使用組件進行數據清洗轉換,例如:Logstash、Kafka Stream、Kafka Connector、Flink等。
看在這里,大家肯定會有疑問:Kafka Stream 作為流式處理類庫,直接提供具體的類給開發者調用,整個應用的運行方式主要由開發者控制,方便使用和調試。這有什么問題嗎?雖然以上方法確實能夠很快解決問題,但其問題也顯而易見。
- 研發團隊需要自行編寫代碼,且需要后期持續維護,運維成本較大;
- 對于很多輕量或簡單計算需求,引入一個全新組件的技術成本過高,需要進行技術選型;
- 在某組件選定后,需要研發團隊進行學習并持續維護,這就帶來了不可預期的學習成本、維護成本。
為了解決問題,我們提供了一個更加輕量的解決方案:Kafka ETL 功能。
使用 Kafka ETL 功能后,只需通過 Kafka 控制臺進行簡單配置,在線寫一段清洗代碼,即可實現 ETL 的目的。可能存在的高可用、維護等問題,完全交由 Kafka。
那么接下來,我們為大家展示如何快速的創建數據 ETL 任務,僅需 3 步即可。
Step 1 : 創建任務
選擇 Kafka 來源實例、來源 Topic,以及對應的選擇 Kafka 目標實例、目標 Topic。并配置消息初始位置、失敗處理以及創建資源方式。
Step 2:編寫ETL主邏輯
我們可以選擇 Python3 作為函數語言。
與此同時,這里提供了多種數據清洗、數據轉化模板,比如規則過濾、字符串替換、添加前/后綴等常用函數。
Step 3:設置任務運行、異常參數配置,并執行
可以看到,無需額外的組件接入或者復雜的配置,更輕量、更低成本的 Kafka ETL 僅需 3-5 步的可視化配置,即可開始 ETL 任務。對于數據 ETL 要求相對簡單的團隊而言,Kafka ETL 成為最佳選擇,可以將更多精力放在業務研發上。
如此輕松便捷的 ETL 功能,真的不容錯過!告別繁瑣的腳本,告別組件選型與接入,立即掃碼或點擊鏈接(https://www.aliyun.com/product/kafka?utm_content=se_1009650951),體驗更加輕松的 ETL 吧!
《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀總結
以上是生活随笔為你收集整理的告别Kafka Stream,让轻量级流处理更加简单的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: OpenKruise v0.10.0 新
- 下一篇: Dubbo3.0|阿里巴巴服务框架三位一