2019年,國家相關(guān)部委提出,要“兩年內(nèi)取消高速公路省界收費(fèi)站”實(shí)現(xiàn)不停車快捷收費(fèi),減少擁堵、便利群眾。面對政策變更,云南省高速中心清分結(jié)算系統(tǒng)需要進(jìn)行全方位升級改造以達(dá)到全國聯(lián)網(wǎng)收費(fèi)要求。
在清分結(jié)算項(xiàng)目升級改造的過程中,數(shù)據(jù)庫建設(shè)主要面臨兩個(gè)方面的壓力:
一是時(shí)間短,工作任務(wù)重。政策上,云南公路聯(lián)網(wǎng)收費(fèi)管理有限公司須盡快實(shí)現(xiàn)聯(lián)網(wǎng)收費(fèi)計(jì)費(fèi)、車道數(shù)據(jù)和現(xiàn)有清分結(jié)算系統(tǒng)的設(shè)計(jì)做好整改配合工作,力爭四個(gè)月內(nèi)全省聯(lián)網(wǎng)收費(fèi)和清分結(jié)算系統(tǒng)整改完畢。
二是數(shù)據(jù)量大,選型難。自2019年5月起云南省全省逐步取消高速公路省界收費(fèi)站,逐步推廣ETC收費(fèi)以來,云南省高速公路建成里程突破8000公里,全省發(fā)行ETC用戶累計(jì)超過600萬,客車ETC使用率超70%,貨車ETC使用率超60%,選用技術(shù)領(lǐng)先的數(shù)據(jù)庫支持云南省全省清分結(jié)算業(yè)務(wù)迫在眉睫。
項(xiàng)目建設(shè)三大難點(diǎn)
各類清分結(jié)算業(yè)務(wù)要基于數(shù)據(jù)統(tǒng)一平臺(tái)提供的數(shù)據(jù)源正常高效進(jìn)行,實(shí)現(xiàn)ETC和CPC交易數(shù)據(jù)的擬合算費(fèi),為云南高速路段業(yè)主提供更完整的交易數(shù)據(jù),減少通行費(fèi)損失提供支持:完成ETC通行交易清分結(jié)算、其他交易清分結(jié)算、退費(fèi)補(bǔ)交清分結(jié)算和拓展應(yīng)用交易清分結(jié)算以及省內(nèi)爭議處理、發(fā)票數(shù)據(jù)上傳、交易對賬核心功能等。
在這種背景下,項(xiàng)目的困難點(diǎn)主要集中在三個(gè)方面:
一、業(yè)務(wù)量訪問巨大,數(shù)據(jù)庫需要支持讀寫分離,否則會(huì)出現(xiàn)數(shù)據(jù)積壓和低查詢效率。
二、省中心清分結(jié)算系統(tǒng)與各流程環(huán)節(jié)交互較多,數(shù)據(jù)庫連接數(shù)較多,存在程序直接連庫寫表造成進(jìn)程間鎖等待的問題。
三、各個(gè)收費(fèi)站上傳給清分系統(tǒng)省中心的數(shù)據(jù)無法集中,只能分散多個(gè)數(shù)據(jù)庫存儲(chǔ),無法高效快速對數(shù)據(jù)進(jìn)行訪問、統(tǒng)計(jì),影響正常的清分結(jié)算業(yè)務(wù)的及時(shí)完成。
本次清分結(jié)算系統(tǒng)數(shù)據(jù)庫全部采用國產(chǎn)數(shù)據(jù)庫AntDB,實(shí)現(xiàn)高速核心業(yè)務(wù)系統(tǒng)數(shù)據(jù)庫全面自主可控。
清分結(jié)算系統(tǒng)負(fù)責(zé)處理并存儲(chǔ)收費(fèi)系統(tǒng)下發(fā)的出口交易流水、門架交易流水、部中心下發(fā)的記賬信息等數(shù)據(jù),并產(chǎn)生各種清分結(jié)算數(shù)據(jù)的系統(tǒng),每日處理數(shù)據(jù)量超過5000萬條,同時(shí)各類交易處理具有較強(qiáng)的時(shí)效性。
通過引入分布式關(guān)系型數(shù)據(jù)庫 AntDB,清分結(jié)算系統(tǒng)不僅滿足了各類數(shù)據(jù)實(shí)時(shí)及批量入庫的需求,還對外提供在線查詢功能,同時(shí)兼顧了各類定期報(bào)表功能需求,實(shí)現(xiàn)了數(shù)據(jù)庫層面的統(tǒng)一,其整體功能架構(gòu)如下圖所示:

AntDB特性滿足清分結(jié)算業(yè)務(wù)特點(diǎn)
AntDB可以高效支撐清分結(jié)算系統(tǒng)的超高并發(fā)業(yè)務(wù),保證交易流水等數(shù)據(jù)處理“一條不漏,一條不錯(cuò)”。 AntDB具備內(nèi)存計(jì)算引擎,提供極致數(shù)據(jù)處理性能、基于SQL的數(shù)據(jù)訪問服務(wù)以及可插拔的擴(kuò)展服務(wù);原生分布式設(shè)計(jì),對應(yīng)用完全透明,兼顧性能與可擴(kuò)展性;有超強(qiáng)scale up能力,對CPU、內(nèi)存、連接數(shù)不做限制;用戶可以在線進(jìn)行擴(kuò)容操作,擴(kuò)容過程不影響用戶的線上業(yè)務(wù),隨著業(yè)務(wù)的快速增長數(shù)據(jù)庫可以橫向在線擴(kuò)展。
AntDB數(shù)據(jù)庫可以處理HTAP即交易加實(shí)時(shí)分析的融合場景,滿足清分結(jié)算業(yè)務(wù)包括在線交易、數(shù)據(jù)分析、報(bào)表輸出等場景需求。 AntDB數(shù)據(jù)庫具備實(shí)時(shí)強(qiáng)一致的分布式事務(wù)控制能力,確保數(shù)據(jù)零丟失和事務(wù)一致性,保證拆分?jǐn)?shù)據(jù)和報(bào)表數(shù)據(jù)的準(zhǔn)確性;在分布式場景下提供規(guī)范的數(shù)據(jù)訪問控制,全局?jǐn)?shù)據(jù)可實(shí)現(xiàn)一致性備份和恢復(fù),并提供嚴(yán)格的數(shù)據(jù)訪問控制和數(shù)據(jù)防傾斜設(shè)計(jì),保證業(yè)務(wù)數(shù)據(jù)安全可靠;支持異地容災(zāi),具備高可用,出現(xiàn)故障時(shí)可以自動(dòng)剔除故障節(jié)點(diǎn),保障業(yè)務(wù)持續(xù)可用,保證數(shù)據(jù)庫系統(tǒng)達(dá)到99.999%的服務(wù)等級;具備動(dòng)態(tài)高效的SQL執(zhí)行引擎,提供異構(gòu)索引,內(nèi)置reduce數(shù)據(jù)處理引擎,數(shù)據(jù)節(jié)點(diǎn)間可以進(jìn)行通信,提高數(shù)據(jù)處理效率,尤其是復(fù)雜查詢場景的數(shù)據(jù)處理效率。

AntDB中數(shù)據(jù)分片和分區(qū)對上層應(yīng)用均是透明的,外部應(yīng)用程序或接口無需關(guān)注底層數(shù)據(jù)分布,只需要關(guān)注上層業(yè)務(wù)邏輯。
AntDB對于OLTP場景下的數(shù)據(jù)處理做了大量優(yōu)化工作,例如針對保證事務(wù)一致性的2PC協(xié)議做了優(yōu)化,如果事務(wù)操作的數(shù)據(jù)僅涉及單個(gè)數(shù)據(jù)節(jié)點(diǎn),那么計(jì)算節(jié)點(diǎn)僅進(jìn)行一階段提交,只需要確認(rèn)對應(yīng)的數(shù)據(jù)節(jié)點(diǎn)已經(jīng)完成提交就任務(wù)事務(wù)提交已完成。只有當(dāng)事務(wù)操作的數(shù)據(jù)涉及兩個(gè)或以上數(shù)據(jù)節(jié)點(diǎn)時(shí),計(jì)算節(jié)點(diǎn)才會(huì)啟動(dòng)兩階段提交,大大提升了處理性能。
清分結(jié)算系統(tǒng)中的AntDB數(shù)據(jù)庫分布式架構(gòu)中包含5個(gè)計(jì)算節(jié)點(diǎn),計(jì)算節(jié)點(diǎn)為無狀態(tài)節(jié)點(diǎn),無主備狀態(tài),均可以對外提供服務(wù),可根據(jù)業(yè)務(wù)發(fā)展情況進(jìn)行彈性伸縮,大大提升了AntDB對于高并發(fā)業(yè)務(wù)的支撐能力和靈活度,目前數(shù)據(jù)庫所有計(jì)算節(jié)點(diǎn)承載活躍連接數(shù)在1000左右,后續(xù)業(yè)務(wù)并發(fā)如果持續(xù)增加,可以對計(jì)算節(jié)點(diǎn)進(jìn)行在線擴(kuò)容,滿足客戶快速增長的業(yè)務(wù)需求。
同時(shí),在AntDB中統(tǒng)一進(jìn)行存儲(chǔ)于處理的各類數(shù)據(jù),可通過同步機(jī)制增量提供給副本集群(只讀訪問),實(shí)現(xiàn)數(shù)據(jù)的集中統(tǒng)一、資源隔離。 通過一套數(shù)據(jù)庫滿足清分結(jié)算、車道收費(fèi)、接口上傳業(yè)務(wù)開發(fā)支撐能力。統(tǒng)一數(shù)據(jù)入口,各系統(tǒng)采集的數(shù)據(jù)由清分結(jié)算統(tǒng)一處理存放到數(shù)據(jù)庫中,實(shí)現(xiàn)統(tǒng)一接入。
清分結(jié)算系統(tǒng)存在大量報(bào)表需求,需要提供對清分結(jié)算結(jié)果各種維度的報(bào)表數(shù)據(jù)查詢以及下載,按照時(shí)間粒度可以分為日報(bào)表、月報(bào)表等。按照業(yè)務(wù)類型分類包括通行費(fèi)收入劃賬報(bào)表、通行費(fèi)收入劃賬明細(xì)報(bào)表、ETC通行交易省內(nèi)/外通行費(fèi)收費(fèi)分賬報(bào)表、現(xiàn)金交易省內(nèi)/外通行費(fèi)收費(fèi)分賬報(bào)表、移動(dòng)支付交易省內(nèi)/外通行費(fèi)收費(fèi)分賬報(bào)表等。報(bào)表系統(tǒng)日處理源數(shù)據(jù)量達(dá)到2000萬以上,所生成報(bào)表數(shù)據(jù)量達(dá)到70萬以上,數(shù)據(jù)量巨大。
大數(shù)據(jù)量的報(bào)表生成和查詢場景對AntDB在分析場景下的數(shù)據(jù)處理性能提出了很高的要求。 大表查詢場景下,查詢SQL中的where條件若有分片鍵,這個(gè)查詢會(huì)精確路由到具體的節(jié)點(diǎn)中,以提高查詢效率。如果SQL的where條件中沒有分片鍵,就會(huì)進(jìn)行一次全節(jié)點(diǎn)掃描可能會(huì)造成資源的浪費(fèi),增加鎖沖突的概率,并且拖慢性能等。
針對該場景,AntDB內(nèi)部支持異構(gòu)索引,異構(gòu)索引采用空間換時(shí)間的方式來解決全量掃描的問題,內(nèi)核自動(dòng)維護(hù)分片鍵和索引鍵之間的映射關(guān)系建立異構(gòu)索引,使用異構(gòu)索引將避免全節(jié)點(diǎn)掃描,可以解決業(yè)務(wù)使用中存在多個(gè)查詢維度時(shí)不帶分片鍵造成的查詢性能下降的問題。AntDB內(nèi)置分布式并行執(zhí)行引擎,在分析場景下當(dāng)系統(tǒng)執(zhí)行一個(gè)查詢語句時(shí),需要掃描表的內(nèi)容,然后經(jīng)過一系列計(jì)算,最后將結(jié)果返回給用戶。AntDB內(nèi)置的分布式并行執(zhí)行引擎,在多個(gè)數(shù)據(jù)節(jié)點(diǎn)之間組網(wǎng)傳輸數(shù)據(jù),利用多節(jié)點(diǎn)并發(fā)處理數(shù)據(jù),可以使聚集、排序、關(guān)聯(lián)等操作獲得倍數(shù)級的性能提升,隨著節(jié)點(diǎn)數(shù)的增加,性能提升線性增長。
AntDB啟用多進(jìn)程掃描,使用多個(gè)后臺(tái)worker進(jìn)程利用CPU多個(gè)核心、動(dòng)態(tài)共享內(nèi)存、工作進(jìn)程間通信和消息傳遞來實(shí)現(xiàn)并行的數(shù)據(jù)掃描;
AntDB啟用并行Hash Join,使用多個(gè)worker進(jìn)程,每個(gè)worker節(jié)點(diǎn)執(zhí)行相同的任務(wù),在數(shù)據(jù)節(jié)點(diǎn)使用一個(gè)數(shù)據(jù)量小的表作為驅(qū)動(dòng)表,用作Hash表,均分后的大表數(shù)據(jù)和Hash表做數(shù)據(jù)Join,最終在計(jì)算節(jié)點(diǎn)匯總數(shù)據(jù);
AntDB啟用并行排序,使用多個(gè)worker進(jìn)程,每個(gè)worker節(jié)點(diǎn)在數(shù)據(jù)節(jié)點(diǎn)將獲取的結(jié)果集數(shù)據(jù)進(jìn)行排序,最終提交數(shù)據(jù)到計(jì)算節(jié)點(diǎn)并匯總排序數(shù)據(jù);
AntDB啟用并行創(chuàng)建索引,使用多個(gè)worker進(jìn)程,在數(shù)據(jù)節(jié)點(diǎn)并行創(chuàng)建btree索引,提升索引創(chuàng)建效率;
AntDB啟用并行Union,使用多個(gè)worker進(jìn)程,每個(gè)worker節(jié)點(diǎn)執(zhí)行相同的任務(wù),掃描的數(shù)據(jù)在每個(gè)數(shù)據(jù)節(jié)點(diǎn)進(jìn)行Union操作,最終將所有節(jié)點(diǎn)Union后的數(shù)據(jù)匯總至計(jì)算節(jié)點(diǎn)最終執(zhí)行一次Union操作。
如上幾大特性提升了AntDB在OLAP場景下的數(shù)據(jù)處理性能,AntDB數(shù)據(jù)庫的上線提高了清分結(jié)算系統(tǒng)報(bào)表數(shù)據(jù)的生成效率和準(zhǔn)確度。
AntDB應(yīng)用實(shí)效
通過前文的描述可以看出清分結(jié)算系統(tǒng)的業(yè)務(wù)特點(diǎn)是典型的HTAP場景,AntDB是具備HTAP特性的分布式數(shù)據(jù)庫,一套數(shù)據(jù)庫可以同時(shí)支撐OLTP和OLAP業(yè)務(wù)場景,按照業(yè)務(wù)要求提供各類綜合業(yè)務(wù)處理和報(bào)表服務(wù)。此外AntDB可以啟用讀寫分離,將讀流量分擔(dān)到備節(jié)點(diǎn),降低主節(jié)點(diǎn)讀寫壓力,從而提高數(shù)據(jù)庫的整體性能。
AntDB上線后清分結(jié)算系統(tǒng)ETC拆分業(yè)務(wù)效率提升90%,ETC清分記賬效率提升60%,報(bào)表生成時(shí)間縮短接近90%。AntDB采用特有的copy命令進(jìn)行數(shù)據(jù)加載,每個(gè)節(jié)點(diǎn)每秒可完成17.5萬條數(shù)據(jù)的入庫,5節(jié)點(diǎn)按照80%的效率預(yù)估,入庫效率可達(dá)到每秒80萬記錄。數(shù)據(jù)導(dǎo)出方面,也使用特有的copy命令,性能與數(shù)據(jù)加載在同等規(guī)模水平,大大提高了客戶清分結(jié)算系統(tǒng)的各項(xiàng)業(yè)務(wù)的處理效率。
高可用方面,清分結(jié)算系統(tǒng)中AntDB數(shù)據(jù)庫的數(shù)據(jù)節(jié)點(diǎn)一主兩備部署保證高可用,AntDB部署架構(gòu)示意圖如下:

為了最大化利用資源,生產(chǎn)數(shù)據(jù)庫數(shù)據(jù)節(jié)點(diǎn)從一主兩備調(diào)整為一主一備,原來生產(chǎn)庫中的異步從庫下架作為歷史數(shù)據(jù)庫使用,歷史數(shù)據(jù)庫同樣采用一主一備架構(gòu),保證高可用,歷史數(shù)據(jù)庫承擔(dān)歷史數(shù)據(jù)備份和歷史數(shù)據(jù)查詢業(yè)務(wù),由于歷史數(shù)據(jù)查詢頻率較低,故服務(wù)器采用成本更低的HDD硬盤。調(diào)整后數(shù)據(jù)庫集群如下圖所示。

歷史數(shù)據(jù)庫上線后,主庫運(yùn)行壓力大幅下降,數(shù)據(jù)處理性能得到提升。該方案在保證客戶生產(chǎn)庫高可用的同時(shí)降低了生產(chǎn)庫運(yùn)行壓力,而且最大化利用了客戶現(xiàn)有資源,降低了客戶成本。此次生產(chǎn)庫集群調(diào)整和歷史庫上線充分展示了AntDB分布式數(shù)據(jù)庫的彈性伸縮能力和靈活性,可以根據(jù)客戶需求及業(yè)務(wù)發(fā)展情況進(jìn)行調(diào)整。

優(yōu)勢總結(jié)和推廣價(jià)值
在該項(xiàng)目中的國產(chǎn)自主可控?cái)?shù)據(jù)庫AntDB的應(yīng)用,提供了省中心數(shù)據(jù)統(tǒng)一服務(wù)能力以及“全流程+多協(xié)議+高性能+全業(yè)務(wù)數(shù)據(jù)”的處理能力,滿足海量交易數(shù)據(jù)的集中采集、處理、查詢要求,為取消省界收費(fèi)后部-省兩級架構(gòu)支撐系統(tǒng)提供新動(dòng)力。
一、 技術(shù)架構(gòu)優(yōu)勢總結(jié)
(一)分布式特性克服傳統(tǒng)數(shù)據(jù)庫弊端:分布式數(shù)據(jù)庫是當(dāng)代數(shù)據(jù)庫系統(tǒng)的主要特性之一,AntDB數(shù)據(jù)庫的部署,使用5臺(tái)SSD+10臺(tái)HDD主機(jī)資源,集群節(jié)點(diǎn)采用一主兩從部署架構(gòu)保證集群高可靠性,面向應(yīng)用,支持國產(chǎn)服務(wù)器的在線擴(kuò)展、在線擴(kuò)容,應(yīng)用無須關(guān)心數(shù)據(jù)量的突發(fā)增長及物理服務(wù)器的具體位置,完美地解決了這一難題。
(二)技術(shù)架構(gòu)的高可用特性提供可靠業(yè)務(wù)保障:網(wǎng)絡(luò)應(yīng)具備混合架構(gòu)及服務(wù)高可用的能力。項(xiàng)目中AntDB具備集群自愈、兩地三中心容災(zāi)架構(gòu),保證秒級自動(dòng)鼓掌切換實(shí)現(xiàn)業(yè)務(wù)的連續(xù)性,并且能確保數(shù)據(jù)的完整性和強(qiáng)一致性。從傳統(tǒng)IOE架構(gòu)轉(zhuǎn)為AntDB的分布式架構(gòu)后,數(shù)據(jù)庫依然可以獲得99.999%的SLA服務(wù)保障。
二、 效果優(yōu)勢體現(xiàn)總結(jié)
AntDB使用分布式并行執(zhí)行引擎,充分使用硬件資源,使得處理效率大幅提升,F(xiàn)今的AntDB正高效完成業(yè)務(wù)報(bào)表的輸出,支撐處理云南高速每天1000萬條門架流水、200萬條車道流水。當(dāng)前數(shù)據(jù)量存儲(chǔ)累計(jì)超100TB,已穩(wěn)定運(yùn)行近兩年,獲得了業(yè)務(wù)團(tuán)隊(duì)和業(yè)界的認(rèn)可。AntDB作為自主可控的國產(chǎn)數(shù)據(jù)庫,成功運(yùn)用于該“清分結(jié)算”類大數(shù)據(jù)庫平臺(tái)業(yè)務(wù),具有廣泛的社會(huì)意義:
高速交通行業(yè)示范作用 :通過我省清分結(jié)算國產(chǎn)數(shù)據(jù)庫的成功應(yīng)用,為高速行業(yè)內(nèi)應(yīng)用國產(chǎn)數(shù)據(jù)庫樹立典范,增強(qiáng)行業(yè)內(nèi)應(yīng)用國產(chǎn)技術(shù)的信心。
信創(chuàng)產(chǎn)業(yè)示范效應(yīng) :既響應(yīng)國家號召、破解核心軟件“卡脖子”風(fēng)險(xiǎn),又落實(shí)云南省交通投資建設(shè)集團(tuán)有限公司要求,助力公司實(shí)現(xiàn)自主可控創(chuàng)新引領(lǐng),提升業(yè)務(wù)連續(xù)性,規(guī)避供應(yīng)鏈安全風(fēng)險(xiǎn)。
(新媒體責(zé)編:wan123)
聲明:
1、凡本網(wǎng)注明“人民交通雜志”/人民交通網(wǎng),所有自采新聞(含圖片),如需授權(quán)轉(zhuǎn)載應(yīng)在授權(quán)范圍內(nèi)使用,并注明來源。
2、部分內(nèi)容轉(zhuǎn)自其他媒體,轉(zhuǎn)載目的在于傳遞更多信息,并不代表本網(wǎng)贊同其觀點(diǎn)和對其真實(shí)性負(fù)責(zé)。
3、如因作品內(nèi)容、版權(quán)和其他問題需要同本網(wǎng)聯(lián)系的,請?jiān)?0日內(nèi)進(jìn)行。電話:010-67683008
人民交通24小時(shí)值班手機(jī):17801261553 商務(wù)合作:010-67683008轉(zhuǎn)602 E-mail:zzs@rmjtzz.com
Copyright 人民交通雜志 All Rights Reserved 版權(quán)所有 復(fù)制必究 百度統(tǒng)計(jì) 地址:北京市豐臺(tái)區(qū)南三環(huán)東路6號A座四層
增值電信業(yè)務(wù)經(jīng)營許可證號:京B2-20201704 本刊法律顧問:北京京師(蘭州)律師事務(wù)所 李大偉
京公網(wǎng)安備 11010602130064號 京ICP備18014261號-2 廣播電視節(jié)目制作經(jīng)營許可證:(京)字第16597號