一說到資料孤島,所有技術人都不陌生。在 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 功能,真的不容錯過!告别繁瑣的腳本,告别元件選型與接入,立即掃碼或點選原文連結,體驗更加輕松的 ETL 吧!
原文連結:
https://www.aliyun.com/product/kafka?utm_content=se_1009650951