目錄
- 1 - Apache InLong 簡介
- 1.1 專案簡介
- 1.2 適用場景
- 2 - InLong Manager 的作用
- 3 - InLong Manager 的 SPI 實踐
- 3.1 存在的問題
- 3.2 什么是 SPI
- 3.3 我們的實踐
1 - Apache InLong 簡介
1.1 專案簡介
InLong 官網 的介紹:
Apache InLong(應龍)是一個一站式的海量資料集成框架,提供自動、安全、可靠和高性能的資料傳輸能力,方便業務構建基于流式的資料分析、建模和應用,
該專案最初于 2019 年 11 月由騰訊大資料團隊捐獻到 Apache 范訓器,2022 年 6 月正式范訓畢業,成為 Apache 頂級專案(TLP),
https://inlong.apache.org/img/inlong-structure-zh.png
1.2 適用場景
Apache InLong 依托騰訊百萬億級別的資料接入和處理能力,整合了資料采集、匯聚、存盤、分揀資料處理全流程,擁有簡單易用、靈活擴展、穩定可靠等特性,
目前 InLong 正廣泛應用于廣告、支付、社交、游戲、運營商、人工智能等領域,為廣大客戶提供高效、便捷的資料采集、服務,
2 - InLong Manager 的作用
InLong 支持資料的采集、匯聚、快取和分揀功能,用戶只需要簡單的配置就可把資料從源端匯入到實時計算引擎或者寫入離線存盤系統,
從前面的架構圖可以看出,InLong 系統涉及采集、匯聚、快取、分揀 4 個主要流程,如何將這些流程串聯起來?
答案是,我們通過 InLong Manager 來管理系統和任務的元資料,串聯任務的全流程,
這里的元資料主要包括:
InLong 系統中的用戶資訊、審批資訊、集群配置資訊;
用戶創建的資料源端、資料目標端,以及資料 schema 等資訊,
其結構如下:
用戶可在 InLong Dashboard 提供的 Web UI,或 通過 Manager Client 創建資料流任務,任務審批通過后,即可串聯起全部流程,主要包括:
- 創建 MQ 的 Topic 和消費者;
- 創建目標端的庫表結構;
- 啟動 Flink 任務,從 MQ 消費資料,寫入目標端,
3 - InLong Manager 的 SPI 實踐
3.1 存在的問題
InLong 源于騰訊內網業務,在近10年的發展中,主要支持的資料源和資料存盤如下:
以資料存盤為例,由于存盤系統的型別有限,且考慮到不同的存盤型別的引數差異較大,因此我們的配置表是這樣設計的:
由于篇幅所限,沒有列出來狀態、創建者、修改者、是否洗掉的標志,以及相關的時間、版本號等欄位,可以看到,每張表里都有10多個相同的欄位,
在 InLong 上云的程序中,資料源端和目標端的型別急劇增多,而且隨著云上客戶規模的增加,還會繼續擴展更多型別的資料源和目標端,下圖是在上面已有型別的基礎上,新增的型別:
在擴展的程序中,我們很快發現了原有設計的痛點:
1)欄位重復,增加了 DB 的存盤成本(雖然有限)
2)配置管理存在大量的相似代碼(比如修改、洗掉),即使提取出公共方法,也會存在大量的
if-else/switch-case陳述句來分別處理不同的邏輯,比如(還有創建 MQ 資源、創建存盤端庫表結構、下發任務等類似邏輯):
3)【更重要】如果要擴展1個新的存盤型別,不僅要添加一張表(頻繁變更 DDL 是大忌),還要入侵已有的代碼,添加
else/case陳述句并補充特殊邏輯(不符合開閉原則)
3.2 什么是 SPI
在遇到上述問題后,
3.3 我們的實踐
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/502638.html
標籤:其他
上一篇:Postman中的斷言
下一篇:動作捕捉系統用于下肢外骨骼開發

