告別Kafka Stream,讓輕量級流處理更加簡單

一說到數據孤島,所有技術人都不陌生。在 IT 發展過程中,企業不可避免地搭建了各種業務系統,這些系統獨立運行且所產生的數據彼此獨立封閉,使得企業難以實現數據共享和融合,並形成了”數據孤島”。
 
由於數據散落在不同資料庫、消息隊列中,計算平台直接訪問這些數據時可能遇到可用性、傳輸延遲,甚至系統吞吐問題。如果上升到業務層面,我們會發現這些場景隨時都會遇到:匯總業務交易數據、舊系統數據遷移到新系統中、不同系統數據整合。因此,為了能讓數據更加實時、高效的融合併支援各業務場景,企業通常選擇使用各種 ETL 工具以達到上述目的。
 
因此,我們可以看到企業自行探索的各種解決方案,比如使用自定義腳本,或使用服務匯流排(Enterprise Service Bus,ESB)和消息隊列(Message Queue,MQ),比如使用企業應用集成(Enterprise application integration,EAI)通過底層結構的設計來橫貫企業異構系統、應用、數據源等,實現數據的無縫共享與交換。
 
儘管以上手段都算實現了有效實時處理,但也給企業帶來更難決斷的選擇題:實時,但不可擴展,或可擴展。但批處理。與此同時,隨著數據技術、業務需求的不斷發展,企業對 ETL 的要求也不斷提升:
 

  • 除了支援事務性數據,也需要能夠處理諸如 Log、Metric 等類型越來越豐富的數據源;
  • 批處理速度需要進一步提升;
  • 底層技術架構需要支援實時處理,並向以事件為中心演進。

可以看到,流處理/實時處理平台作為事件驅動交互的基石。它向企業提供了全局化的數據/事件鏈接、即時數據訪問、單一系統統管全域數據以及持續索引/查詢能力。也正是面對以上技術與業務需求,Kafka 提供了一個全新思路:
 

  • 作為實時、可擴展消息匯流排,不再需要企業應用集成;
  • 為所有消息處理目的地提供流數據管道;
  • 作為有狀態流處理微服務的基礎構建塊。

我們以購物網站數據分析場景為例,為了實現精細化運營,運營團隊以及產品經理需要將眾多用戶行為、業務數據以及其他數據數據進行匯總,這其中包括但不限於:
 

  1. 用戶各類點擊、瀏覽、加購、登陸等行為數據;
  2. 基礎日誌數據;
  3. APP 主動上傳數據;
  4. 來自 db 中的數據;
  5. 其他。

這些數據彙集到 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 功能,真的不容錯過!告別繁瑣的腳本,告別組件選型與接入,立即掃碼或點擊鏈接(//www.aliyun.com/product/kafka?utm_content=se_1009650951),體驗更加輕鬆的 ETL 吧!