【數智化案例展】StarRocks × 眾安保險:全新實時分析能力開啟數字化經營新局面

語言: CN / TW / HK

StarRocks案例

本專案由StarRocks 投遞並參與 “資料猿行業盤點季大型主題策劃活動 —— 《2022中國企業數智化轉型升級創新服務企業》榜單/獎項”評選

資料智慧產業創新服務媒體

——聚焦數智 · 改變商業

在傳統的保險售賣場景中,保險公司主要通過承保利潤和投資收益兩部分獲得盈利,而保險金融的行業特殊性致使保司對公司整體的資料、安全、風控等持有高度敏感性,因此一款保險產品從市場投放到銷售、核保及理賠,每個環節都需要嚴格監測業務走向和資料變化。

並且隨著時間的沉澱和業務拓展,保司所涉及和積累的相關資料越來越多,其中既包含保司自營的業務資料,也有合作渠道的電商銷售、醫療健康等資料以及第三方的信貸評級、核保風控等資料。在日益激烈的市場競爭和技術變革這兩大背景下,基於大資料、人工智慧等技術的商業模式創新,以及數字化轉型升級已經成為保險機構的必然選擇。

因此在以上背景下誕生了專門針對保險金融行業的相關技術和產品,通過大資料、人工智慧等相關技術加持,保障保司在每個業務環節中做到費用可控資料可經營的目的。常見的例如營銷場景中的渠道投放、使用者觸達、活動監控;信貸場景中的授信、支用、還款、防止逆選擇風險等場景。

當然面對保險金融行業如此大的資料量和業務複雜度,既有挑戰也有機遇,但需要將這些資料進行充分整合並有效利用,才能更好地使其轉換為企業自己的資料資產,從傳統的運營方式過渡到數字化線上經營。讓數字反映出真實的運營狀況,及時控制產品風險和調整策略,以實現保費收入的正向利潤,達到精細化運營。

眾安保險作為一家網際網路保險公司,海量保單規模背後離不開科技能力支撐,在“保險+科技”雙輪驅動下,眾安將自身沉澱的保險科技能力和先進的商業模式向行業和海外輸出。催生出數字化轉型中專門針對業務資料管理和分析的系統產品——集智。

集智是眾安保險的一款視覺化智慧經營分析平臺產品,集成了人工智慧+商業智慧+視覺化資料倉庫技術,智慧整合來自不同場景的資料,規範企業資料池,完成繁雜的資料治理和智慧決策環節。

集智秉著“助力企業實現智慧經營”的願景和“從資料到價值,從看見到預見”的理念,依託豐富的視覺化圖表元件以及底層的大資料處理能力,實現零程式碼拖拽式分析與億級資料的秒級響應,幫助企業戰略規劃⼈員、財務企劃人員、銷售管理人員、業務運營人員及資料人員等全面提升資訊效率、資源效率及決策效率。

實施時間:

開始時間:2022年1月12日

上線完成:2022年3月29日

業務遷移:2022年4月20日

系統整合:2022年5月10日

截止時間:2022年5月30日

客戶的數智化(數字化)轉型升級需求

目前在眾安保險內部,數字生活、健康險、金融、直營、車險各個業務線,以及 HR、運管、風控等中後臺部門,超過3000人都在使用集智平臺,平均日活可達2000+,提升超過50%的資料分析效率,降低了公司40%的人力成本。

一款好的資料分析產品離不開底層的資料引擎,集智平臺的幾大使用場景對底層的資料架構提出了不同的要求:

視覺化分析→需要有豐富的函式庫支援不同型別圖表的資料計算;

互動式分析→需要分析結果的快速響應來保障使用者流暢的分析思路;

多維透視分析→需要大資料量的明細資料來支撐不同維度的篩選和下鑽;

實時資料分析→需要支援資料的實時寫入、實時查詢。

針對上述的幾個需求,眾安保險在平臺建設的初期選用了ClickHouse作為底層統一的OLAP引擎,資料鏈路如下:

離線的資料會通過DataX統一採集到MaxCompute或Hive數倉,在離線數倉內部完成資料ETL的工作,資料加工完成後,再次經由DataX輸出到 ClickHouse中,ClickHouse中的資料直接提供給看板或者第三方系統做資料查詢。

實時的資料會通過Binlog監聽或者日誌採集工具同步到Apache Kafka,再經由Apache Flink完成實時的資料ETL,最終落到ClickHouse中。值得一提的是,這裡為了應對一些業務場景中資料需要實時按主鍵更新需求,眾安保險採用了ClickHouse的Replacing Replicated MergeTree引擎。由於ClickHouse對資料更新操作的支援還不夠成熟,因此在使用Replacing引擎的過程中遇到很多問題,這也是眾安保險尋求新的OLAP技術選型的主要原因。

面臨挑戰

集智上線後採用的是ClickHouse,並且已經伴隨業務運行了一段時間,但隨著使用平臺的使用者日漸增多,業務方需要查詢的資料量也越來越大,業務場景變複雜後,很多特定場景ClickHouse無法滿足,面對不同人員角色的需求時也遇到一些瓶頸。 同時眾安保險分別從業務使用者的角度,以及平臺運維的角度發現了以下問題:

從使用者角度

一頁分析看板上往往有6-8個圖表,這些圖表的查詢請求都是同時發給ClickHouse的。但是在多併發的場景,ClickHouse的查詢效能下降的很快,平時一個1-2s左右的查詢,在8個併發下就可能把CPU吃滿,平均響應時間退化4倍左右,降到8-10s,對看板的首頁載入時間,以及互動分析的體驗影響都比較大;

平臺支援資料表的關聯查詢,但是ClickHouse的多表關聯查詢效能欠佳,涉及Join的查詢往往都需要10s以上,資料量大的查詢甚至直接超時無法返回結果。

從運維角度

ClickHouse不支援事務性的DDL與DML操作,而且多副本模式的元資料管理強依賴於Apache ZooKeeper,表結構變更時常常出現不同副本之間元資料不一致的問題,往往定位到最後都是 A pac h e   ZooKeeper的原因,排查、運維的成本都比較高;

隨著資料量的增多,叢集需要擴容時,ClickHouse缺少自動的Resharding機制,橫向擴容時需要藉助第三方工具或者手動Reshard,成本比較高。

針對前面提到的實時場景,眾安保險在使用ClickHouse的Replacing引擎中也遇到一些痛點:

查詢慢,Replacing引擎使用的是Merge-On-Read的模式,資料寫入時儲存多個版本,在查詢時需要指定FINAL關鍵字進行去重取出最新版本的資料。這導致對於Replacing引擎表的查詢,SQL中的謂詞無法下推,同時在低版本的ClickHouse中,對於FINAL語義的查詢也不支援多執行緒處理,幾乎每次查詢都需要單執行緒掃描全表資料,涉及Replacing引擎的查詢響應時間往往在10s以上;

Replacing引擎只支援資料的更新,並不支援資料的刪除。對於Delete操作,當前的做法是通過額外欄位來標記當前資料是否已經被刪除,同時藉助TTL 功能來定時清除已經被刪除的資料。這樣一方面需要額外的定製處理,另一方面新增的標記欄位進一步拖慢了查詢的效能;

Replacing引擎只能對同一分片上同一分割槽的資料去重,這意味著眾安保險在設計表分割槽時,以及寫入資料時,都需要做小心的處理,增加了開發的成本。

上面描述的問題中,有一些涉及ClickHouse底層的缺陷,有一些場景利用ClickHouse提供的其他引擎或者Materialized View等特性可以做一些定製的優化,但是掣肘於平臺分析查詢場景的多樣性,眾安保險很難做一些通用性的優化。

實時數倉的場景對OLAP引擎提出了許多挑戰,也是之前眾安保險基於ClickHouse架構遇到的一大難題場景;

業務同學需要根據實時看板隨時調整投放策略,要求看板資料實時更新,快速響應;

實時看板的檢視頻率比離線看板普遍高出3-5倍,並且查詢結果無法做快取處理;

為了聯合查詢不同主題的資料,DWS層的寬表之間往往還需要在OLAP層做關聯操作;

為了滿足多維分析的需求,落在OLAP層的是明細資料,資料量大;

為了保障資料的可維護性與資料快速修正的能力,這些明細資料需要支援按主鍵更新。

本就不擅長多併發與多表關聯查詢的ClickHouse,再疊上Replacing引擎的 Debuff,導致許多實時的看板常常需要十幾秒才能返回查詢結果,不能很好地滿足業務的需求。同時給叢集的CPU負載也造成了不小的壓力,有時會造成叢集整體查詢效能的波動。

資料支援

眾安保險搭建了包含資料倉庫、資料工具以及前端支援的成熟的資料處理體系, 支撐每日上億資料量的處理。 眾安服務超過5億使用者,累積出具約427億張保單,平均日新單承保近2000萬,平均日批單量60多萬,平均使用者訪問日誌2億多條,使用者訪問請求量每秒30多萬,數倉日處理任務2萬多個。 這些資料既有保單資料、埋點資料,也有來自第三方的資料,經過脫敏、取樣、資料訪問控制,在智慧資源排程平臺進行排程,構建從ODS到EDW再到DM的資料倉庫分層,形成使用者、保單、理賠、產品、檢視等模型,在DM層形成壽險、意外險、健康險、車險、農險、企財險、家財險、信用險、責任險等行業資料模型,依託資料管理體系與資料流通體系,在保證資料質量的同時,快速響應業務需求。

應用技術與實施過程

StarRocks是一款高效能分析型資料倉庫,使用向量化、MPP架構、可實時更新的列式儲存引擎等技術實現多維、實時、高併發的資料分析。 StarRocks既支援從各類實時和離線的資料來源高效匯入資料,也支援直接分析資料湖上各種格式的數 據。 StarRocks相容MySQL協議,可使用MySQL客戶端和常用BI工具對接。 同時StarRocks具備水平擴充套件,高可用,高可靠,易運維等特性。 廣泛應用於實時數倉、OLAP報表、資料湖分析等場景。

眾安保險通過調研發現,對於許多遇到的痛點,StarRocks都提供了對應的解決方案:

1、支援數千使用者同時分析,支援高併發,部分場景每秒可支援高達1萬以上的QPS,TP99可控制在1秒以內;

2、支援Shuffle Join,Colocate Join等多種分散式Join方式,通過CBO優化,可以自動選擇效能最優的查詢計劃,多表關聯效能更優;

3、支援事務性的DDL與DML操作,相容MySQL協議。StarRocks整體對外暴露的是一個MySQL協議介面,支援標準SQL語法。使用者通過已有的MySQL客戶端能夠方便地對StarRocks裡的資料進行查詢和分析;

4、StarRocks的架構簡潔,整個系統的核心只有FE(Frontend)、BE(Backend)兩類程序,不依賴任何外部元件,方便部署與維護。同時,FE和BE模組都可以線上水平擴充套件,元資料和資料都有副本機制,確保整個系統無單點;

5、資料支援多副本機制並且支援自動均衡,叢集隨業務增長水平擴充套件方便,支援線上擴縮容,不影響業務使用。

對於實時的場景,StarRocks在1.19版本釋出了Primary Key模型。對比ClickHouse的Replacing引擎與StarRocks自身的UniqueKey模型,Primary Key模型通過在記憶體中維護主鍵索引,支援頻繁實時更新的同時,保證同一個主鍵下僅存在一條記錄,解決了Merge-on-Read方式讀取時線上合併,並且謂詞無法下推和索引失效的問題。通過犧牲微小的寫入效能和記憶體佔用提升了查詢的效能,非常符合眾安保險實時數倉的場景。

調研之後,眾安保險也對StarRocks和ClickHouse,使用SSB資料集做了相應的效能對比測試。一共使用到四臺8c32g的機器:StarRocks 1FE/4BE混部,ClickHouse兩分片雙副本。StarRocks使用的版本是2.1.0,ClickHouse使用的版本是21.9.5。測試中為了遮蔽掉系統快取的影響,對於無併發的場景,每次查詢前都會通過往drop_cache檔案中寫入來清除快取。

測試的結果驗證了StarRocks在多併發與多表關聯場景下強悍的效能,同時也發現了目前StarRocks不足的一些地方:

單表無併發的場景,除個別SQL外,StarRocks的查詢速度與ClickHouse基本持平,但是StarRocks的CPU負載偏低,是ClickHouse的25%-50%;

單表多併發的場景,除個別SQL外,StarRocks的平均查詢速度比ClickHouse快1.8倍;

多表關聯無併發的場景,StarRocks平均比ClickHouse快1.8倍;

多表關聯多併發的場景,StarRocks平均比ClickHouse快8倍;

資料實時寫入實時查詢的場景,不同的查詢場景下,StarRocks的Primary Key模型查詢速度比ClickHouse的Replacing引擎快3-10倍,且查詢效能較ClickHouse更加穩定(Replacing引擎由於後臺不斷地Merge操作,查詢的效能會隨底表資料量的起伏對應地波動);

資料批量匯入的場景,眾安保險比較了不同批次大小下的寫入效能,StarRocks的寫入速率平均比ClickHouse要慢20%-30%左右。

基於上述的幾點考慮與測試的結果,眾安保險決定在平臺的OLAP架構中引入StarRocks,並優先在實時數倉的場景落地應用。

在集智平臺的實時數倉裡,業務庫的Binlog資料與日誌、事件資料會首先經由採集工具傳送到Apache Kafka裡,中間通過Apache  Flink完成初步的資料清洗、轉換,再次輸出到Apache Kafka作為DWD/DIM層。這一層的資料再次經過Apache Flink處理,完成資料的關聯、聚合,最後在DWS層生成不同主題的多維度明細寬表與指標彙總寬表。DWS層的寬表會同時實時同步在OLAP引擎裡,通過實時看板提供給業務同學查詢。

在上述資料流轉過程中,藉助於StarRocks提供的多種匯入與連線方式,可以很好地滿足資料寫入與查詢的需求。

(1)資料匯入層面:

a.儲存在Apache Kafka中的實時資料,可以通過StarRocks的routine load直接消費Apache Kafka的資料,不依賴Apache Flink/Apache Spark等流式處理系統;

b.儲存在Hadoop或S3中的離線資料,可以通過StarRocks的broker load等方式,大批量的將資料同步拉取到StarRocks中;

c.對於本地資料檔案,或者儲存在記憶體中的資料,可以使用基於HTTP協議的Stream load方式,將資料匯入到StarRocks中;

d.對於DataX、FlinkX、Apache Seatunnel等資料同步工具,StarRocks也開發了一些外掛,可以通過這些同步工具,將其他資料來源的資料,批量通過到StarRocks中。

(2)流式系統相容

a.StarRocks開發了Flink-connector外掛,支援Apache Flink將資料sink到StarRocks中;

b.StarRocks有spark-connector,Apache Spark可以批量讀取寫入StarRocks的資料;

(3)StarRocks還支援MySQL、ElasticSearch、Apache Hive等系統的聯邦查詢,StarRocks遠端讀取這些系統中的資料,在內部再進行Join等內部處理操作;

(4)StarRocks的查詢介面相容MySQL協議,使用MySQL Connector就可以對接查詢StarRocks,因此上層各類BI應用,只要能對接MySQL,基本就可以對接StarRocks。

眾安保險使用 StarRocks的Primary Key模型來替換ClickHouse的Replacing 引擎,針對線上的實時看板,眾安保險模擬了真實的場景,選取了一個4張寬表關聯的複雜查詢,對兩種不同的引擎做了對比測試,結果如下:

從結果中可以看到,在沒有併發的場景下,StarRocks的查詢速度是ClickHouse的2倍左右,在多併發的場景下,StarRocks的查詢速度是ClickHouse的3-3.5倍左右。

除了查詢效能提升之外,Primary Key模型也可以支援資料的刪除,並且不用資料開發額外地維護分片與分割槽的寫入規則,降低了資料開發的成本。

從以上的調研和測試結果來看,StarRocks的單表查詢效能和ClickHouse不相上下,在多併發與多表關聯查詢的場景下效能明顯優於ClickHouse,特別是針對實時數倉的高頻更新場景,StarRocks的Primary Key模型能很好地解決ClickHouse的Replacing引擎遇到的一些痛點。此外,StarRocks DDL/DML和資料匯入具備事務保證,相容MySQL協議,叢集相對ClickHouse也更容易運維,對於研運同學來說更加友好。

基於上述方案,眾安保險在集智平臺引入StarRocks,支撐理賠風險洞察、精細化運營分析、營銷實時效果追蹤等方面的應用,賦能戰略決策人員、財務企劃人員、營銷管理人員、資料運營人員、資料分析人員。

為了提升集智在查詢載入方面的效能,同時將StarRocks極速查詢及高併發相關能力更好地賦能給業務同學,集智在產品側深度集成了StarRocks,使用者可以在平臺上快速完成一站式的實時看板搭建。

在集智平臺中,搭建一個分析看板前需要先建立資料模型,當資料開發同學面對業務方較為複雜或查詢量較大的分析需求時,可在建立資料模型時選擇StarRocks的優化方式,除了基礎的索引欄位、資料分佈欄位以及時間分割槽等欄位外,還可選擇對應的模型引擎以及填寫資料保留的時長。

實時模型建立成功後,使用者可以在模型的詳情頁拿到對應的StarRocks表連線資訊,以及自動生成的Flink SQL Sink語句。

之後,使用者可以在平臺的資料ETL模組新建一個實時Apache Flink任務,往對應的實時模型中寫入資料。

資料寫入模型之後,使用者就可以在搭建看板時使用了,可以在模型上做一些欄位的資料格式調整、欄位編輯、基於原始欄位新增複合字段等操作,以及圖表樣式的調整,滿足業務方不同場景下的業務口徑與展示需求。

看板搭建完成後可以進行釋出操作生成一個固定連結,就可以提供給業務同學使用。

商業變化

眾安保險集智平臺通過引入StarRocks解決了極速查詢和高併發等資料問題,提升了集智平臺整體的資料支援能力和市場競爭力,全面升級數字化經營能力。

以保險產品中線上渠道投放場景為例,當保險產品開始對外發售前後,市場人員會將產品投放到多個渠道進行推廣曝光,通過經營的核心報表實時核算每個渠道的投放成本以及其對應的ROI,根據資料表現情況實時調整投放策略,控制渠道營銷流程中的獲客單價和投放費用。

因此資料反饋的快慢也會決定業務人員在定位問題、調整策略等事件上是否佔據最佳時機。

而集智使用StarRocks的模型作為實時報表的底層資料支撐後,在業務場景中的資料查詢表現會怎麼樣,以下為真實場景測試結果:

(1)在報表資料載入速度方面:過去業務方開啟報表需要載入10s+,常常因為開啟速度過慢致使業務偶爾在關鍵節點上無法及時得到事故反饋,導致投放成本難以控制,嚴重影響後續的投放策略;

而使用StarRocks後加載速度只需3s左右,這樣的響應速度讓業務同學可以很快抓準業務實時的變動節點,及時對活動策略做出調整優化。

(2)在查詢資料量支援方面:過去使用ClickHouse的實時更新模型只能支援較為有限的資料量,更大資料量的實時更新+查詢常常超時,嚴重影響業務進展,也會因此錯過一些關鍵時機;

而使用StarRocks後可支援近億級資料量,能夠適配更多大資料量下的業務場景,同時也能更好地維持業務穩定性,增加了業務同學對平臺的信任和粘性,大大地提高了生產效率。

關於企業

· StarRocks

StarRocks創立兩年多來,一直專注打造世界級的新一代極速全場景MPP資料庫,幫助企業建立“極速統一”的資料分析新正規化,助力企業全面數字化經營。

當前已經幫助騰訊、攜程、順豐、Airbnb 、滴滴、京東、眾安保險等超過 110 家大型使用者構建了全新的資料分析能力,生產環境中穩定執行的StarRocks伺服器數目達數千臺。

2021 年 9 月,StarRocks原始碼開放,在Github上的星數已超過3000個。StarRocks的全球社群飛速成長,至今已有超百位貢獻者,社群使用者突破5000人,吸引幾十家國內外行業頭部企業參與共建。

·眾安保險

眾安保險作為一家網際網路保險公司,秉持“科技驅動金融,做有溫度的保險”的使命,從使用者的網際網路生活切入,滿足使用者多元化的保障需求,為使用者創造價值。區別於傳統保險公司的運營模式,眾安保險業務流程全程線上,不設任何分支機構,通過互聯⽹進⾏承保 和理賠服務。

眾安線上財產保險股份有限公司(以下簡稱“眾安”)是中國首家網際網路保險公司,於2013年11月6日揭牌開業,2017年9月28日在香港聯交所主機板上市,股票程式碼為6060。

眾安總部位於上海,不設任何分支機構,完全通過網際網路展業。由“保險+科技”雙引擎驅動,眾安專注於應用新技術重塑保險價值鏈,圍繞健康、數字生活、消費金融、汽車四大生態,以科技服務新生代,為其提供個性化、定製化、智慧化的新保險。

網上保險買眾安,5億使用者的選擇。截至2021年底,眾安服務超過5億使用者,累計出具約427億張保單。

在科技賦能保險的同時,眾安將經過業務驗證的科技對外輸出。2016年11月,眾安成立全資子公司眾安資訊科技服務有限公司(以下簡稱“眾安科技”),將技術方案產品化,向海內外市場輸出科技產品和行業解決方案。截至2021年底,眾安的科技輸出累計服務企業客戶數超過600家,海外合作伙伴包括日本財產保險公司SOMPO、東南亞領先的O2O平臺Grab、新加坡綜合保險機構Income等知名企業。

以“科技驅動金融 做有溫度的保險”為使命,秉承“簡單、快速、突破、共贏”的價值觀,眾安將繼續乘風破浪,砥礪前行,開啟真正的新保險時代。

創新服務企業榜

創新服務產品榜

最具投資價值榜

創新技術突破榜

條漫:《看過大佬們發的朋友圈之後,我相信:明天會更好!》

聯絡資料猿

「其他文章」