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