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