使用Doris作為金融數據庫,輕松支持10000個數據看板
一、前言
在金融等數據密集型行業,數據源眾多,數據流向也眾多。這種現狀很容易,幾乎是不可避免地導致數據分析和管理混亂。例如,來自不同業務線的分析師會在數據報告中定義自己的財務指標。當你將這些無數的報告匯集到你的數據架構中時,你會發現許多指標在定義上重疊甚至相互矛盾。結果就是,開發一個簡單的數據報告將需要來回進行大量的澄清溝通工作,使整個過程變得更加復雜和耗時。
隨著業務的發展,數據管理也需要“標準化”的階段。在數據工程方面,這意味著你需要一個數據平臺,可以在其中生成和管理所有指標。這是為提供高效金融服務的架構前提條件。
在這里我們將介紹一個數據庫(在本例中為Apache Doris)中金融指標的生命周期,從它們的生成到它們在數據報告中的有效呈現。你將深入了解那些精美的財務儀表盤背后的內幕。
【Apache Doris】:https://doris.apache.org/
二、定義新指標并將其添加到數據庫中
從根本上說,指標是表中的字段。為了更具體地說明它們,我將用銀行業的一個示例進行解釋。
銀行通過資產管理量(Assets Under Management,AUM)來衡量客戶的資產。在這種情況下,AUM是一個原子指標,通常是源數據表中的一個字段。基于AUM,分析師衍生出一系列衍生指標,例如“年度AUM增長率”、“月度AUM增長率”和“每位客戶的AUM”。
一旦定義了新指標,就可以將它們添加到數據報告中,這需要在Apache Doris中進行一些簡單的配置:
開發者會相應地更新元數據,注冊用于導出指標的基礎表,配置中間表的數據粒度和更新頻率,并輸入指標名稱和定義。一些工程師還會監控指標,根據指標評估系統識別異常情況并刪除冗余指標。
當指標正確放置后,就可以將新數據導入數據庫以獲取數據報告。例如,如果導入CSV文件,我們建議使用Apache Doris的流式加載方法,并且每批次的文件大小為1?10G。最終,這些指標將在數據圖表中可視化。
三、計算指標
正如前面提到的,有些指標是通過組合源表中的多個字段來生成的。在數據工程中,這是一個多表連接查詢。根據Apache Doris用戶的優化經驗,我們建議使用平面表而不是星型/雪花模式。在做出這樣的更改后,該用戶將包含1億行的表上的查詢響應時間從5s縮短到了63ms。
圖片
平面表解決方案還消除了抖動。
圖片
四、啟用SQL緩存以減少資源消耗
分析師經常定期檢查相同指標的數據報告。這些報告由相同的SQL生成,因此進一步提高查詢速度的一種方法是使用SQL緩存。以下是啟用SQL緩存的用例中的效果。
- 所有查詢都在10ms內響應。
- 在同時計算30個指標(超過120個SQL命令)時,可以在600ms內返回結果。
- 達到每秒事務處理量(TPS)為300,CPU、內存、磁盤和I/O使用率均低于80%。
- 在推薦的集群規模下,可以緩存超過10000個指標,這意味著可以節省大量的計算資源。
圖片
五、結論
金融行業數據分析的復雜性在于數據本身而不是工程方面。因此,底層數據架構應著重于促進數據的統一和高效管理。Apache Doris提供了簡單指標注冊的靈活性,以及快速和高效的指標計算能力。在這種情況下,用戶能夠在10000個儀表盤中處理10000個活躍的財務指標,并減少30%的ETL工作量。