導(dǎo)讀: 傳統(tǒng)行業(yè)面對(duì)數(shù)字化轉(zhuǎn)型往往會(huì)遇到很多困難,比如缺乏數(shù)據(jù)管理體系、數(shù)據(jù)需求開(kāi)發(fā)流程冗長(zhǎng)、煙囪式開(kāi)發(fā)、過(guò)于依賴(lài)紙質(zhì)化辦公等,美聯(lián)物業(yè)也有遇到類(lèi)似的問(wèn)題。本文主要介紹美聯(lián)物業(yè)基于 Apache Doris 在數(shù)據(jù)體系方面的建設(shè),以及對(duì)數(shù)據(jù)倉(cāng)庫(kù)搭建經(jīng)驗(yàn)進(jìn)行的分享和介紹,旨在為數(shù)據(jù)量不大的傳統(tǒng)企業(yè)提供一些數(shù)倉(cāng)思路,實(shí)現(xiàn)數(shù)據(jù)驅(qū)動(dòng)業(yè)務(wù),低成本、高效的進(jìn)行數(shù)倉(cāng)改造。
美聯(lián)物業(yè)屬于香港美聯(lián)集團(tuán)成員,于 1973 年成立,并于 1995 年在香港聯(lián)合交易所掛牌上市(香港聯(lián)交所編號(hào):1200),2008 年美聯(lián)工商鋪于主板上市(香港聯(lián)交所編號(hào):459), 成為擁有兩家上市公司的地產(chǎn)代理企業(yè)。擁有 40 余載房地產(chǎn)銷(xiāo)售行業(yè)經(jīng)驗(yàn),業(yè)務(wù)涵蓋中、小型住宅、豪宅及工商鋪,提供移民顧問(wèn)、金融、測(cè)量、按揭轉(zhuǎn)介等服務(wù),業(yè)務(wù)遍布中國(guó)香港地區(qū)、中國(guó)澳門(mén)地區(qū)和中國(guó)內(nèi)地等多個(gè)重要城市。
本文主要介紹關(guān)于美聯(lián)物業(yè)在數(shù)據(jù)體系方面的建設(shè),以及對(duì)數(shù)據(jù)倉(cāng)庫(kù)搭建經(jīng)驗(yàn)進(jìn)行的分享和介紹,旨在為數(shù)據(jù)量不大的傳統(tǒng)企業(yè)提供一些數(shù)倉(cāng)思路,實(shí)現(xiàn)數(shù)據(jù)驅(qū)動(dòng)業(yè)務(wù),低成本、高效的進(jìn)行數(shù)倉(cāng)改造。
考慮隱私政策,本文不涉及公司任何具體業(yè)務(wù)數(shù)據(jù)。
業(yè)務(wù)背景
美聯(lián)物業(yè)早在十多年前就已深入各城市開(kāi)展房地產(chǎn)中介業(yè)務(wù),數(shù)據(jù)體系的建設(shè)和發(fā)展與大多數(shù)傳統(tǒng)服務(wù)型公司類(lèi)似,經(jīng)歷過(guò)幾個(gè)階段時(shí)期,如下圖所示。

我們的數(shù)據(jù)來(lái)源于大大小小的子業(yè)務(wù)系統(tǒng)和部門(mén)手工報(bào)表數(shù)據(jù)等,存在歷史存量數(shù)據(jù)龐大,數(shù)據(jù)結(jié)構(gòu)多樣復(fù)雜,數(shù)據(jù)質(zhì)量差等普遍性問(wèn)題。此外,早期業(yè)務(wù)邏輯處理多數(shù)是使用關(guān)系型數(shù)據(jù)庫(kù) SQL Server 的存儲(chǔ)過(guò)程來(lái)實(shí)現(xiàn),當(dāng)業(yè)務(wù)流程稍作變更,就需要投入大量精力排查存儲(chǔ)過(guò)程并進(jìn)行修改,使用及維護(hù)成本都比較高。
基于此背景,我們面臨的挑戰(zhàn)可以大致歸納為以下幾點(diǎn):
- 缺乏數(shù)據(jù)管理體系,統(tǒng)計(jì)口徑統(tǒng)一,已有數(shù)據(jù)無(wú)法降本復(fù)用。多部門(mén)、多系統(tǒng)、多字段,命名隨意、表違反范式結(jié)構(gòu)混亂;對(duì)同一業(yè)務(wù)來(lái)源數(shù)據(jù)無(wú)法做到多份報(bào)表復(fù)用,反復(fù)在不同報(bào)表編寫(xiě)同一套計(jì)算邏輯。
- 海量數(shù)據(jù)下性能不足,查詢(xún)響應(yīng)慢。歷史大多數(shù)業(yè)務(wù)數(shù)據(jù)存儲(chǔ)在關(guān)系型數(shù)據(jù)庫(kù)中,分表分庫(kù)已無(wú)法做到上億數(shù)據(jù)秒級(jí)分析查詢(xún)。
- 數(shù)據(jù)需求開(kāi)發(fā)流程冗長(zhǎng)、煙囪式開(kāi)發(fā)。每當(dāng)業(yè)務(wù)部門(mén)提出一個(gè)數(shù)據(jù)需求,數(shù)據(jù)開(kāi)發(fā)就需要在多個(gè)系統(tǒng)之間進(jìn)行數(shù)據(jù)兼容編寫(xiě)存儲(chǔ)過(guò)程,從而導(dǎo)致存儲(chǔ)過(guò)程的可移植性和可讀性都非常差。
- 部門(mén)之間嚴(yán)重依賴(lài)文本文檔處理工作,效率低下。由于長(zhǎng)期的手工統(tǒng)計(jì),用戶(hù)已形成習(xí)慣,導(dǎo)致對(duì)信息系統(tǒng)的信任程度也比較低。
早期架構(gòu)
針對(duì)上述的?個(gè)需求,我們?cè)谄脚_(tái)建設(shè)的初期選?了 Hadoop、Hive、Spark 構(gòu)建最初的離線數(shù)倉(cāng)架構(gòu),也是比較普遍、常見(jiàn)的架構(gòu),運(yùn)作原理不進(jìn)行過(guò)多贅述。

我們數(shù)據(jù)體系主要服務(wù)對(duì)象以?xún)?nèi)部員工為主,如房產(chǎn)經(jīng)紀(jì)人、后勤人員、行政人事、計(jì)算機(jī)部門(mén),房產(chǎn)經(jīng)紀(jì)在全國(guó)范圍內(nèi)分布廣泛,也是我們的主要服務(wù)對(duì)象。當(dāng)前數(shù)據(jù)體系還無(wú)需面向 C 端用戶(hù),因此在數(shù)據(jù)計(jì)算和資源方面的壓力并不大,早期基于 Hadoop 的架構(gòu)可以滿(mǎn)足一部分基本的需求。但是隨著業(yè)務(wù)的不斷發(fā)展、內(nèi)部人員對(duì)于數(shù)據(jù)分析的復(fù)雜性、分析的效率也越來(lái)越高,該架構(gòu)的弊端日益越發(fā)的明顯,主要體現(xiàn)為以下幾點(diǎn):
- 過(guò)于笨重:傳統(tǒng)公司的計(jì)算量和數(shù)據(jù)量并不大,使用 Hadoop 過(guò)于浪費(fèi)。
- 效率低下:T+1 的調(diào)度時(shí)效和腳本,動(dòng)輒需要花費(fèi) 1 小時(shí)的計(jì)算時(shí)間導(dǎo)入導(dǎo)出,效率低、影響數(shù)據(jù)的開(kāi)發(fā)工作。
- 維護(hù)成本高:組件過(guò)多,排查故障鏈路過(guò)長(zhǎng),運(yùn)維成本也很高,且部門(mén)同事之間熟悉各個(gè)組件需要大量學(xué)習(xí)和溝通成本。
新數(shù)倉(cāng)架構(gòu)
基于上述業(yè)務(wù)需求及痛點(diǎn),我們開(kāi)始了架構(gòu)升級(jí),并希望在這次升級(jí)中實(shí)現(xiàn)幾個(gè)目標(biāo):
- 初步建立數(shù)據(jù)管理體系,搭建數(shù)據(jù)倉(cāng)庫(kù)。
- 搭建報(bào)表平臺(tái)和報(bào)表快速開(kāi)發(fā)流程體系。
- 實(shí)現(xiàn)數(shù)據(jù)需求能夠快速反應(yīng)和交付(1小時(shí)內(nèi)),查詢(xún)延遲不超過(guò) 10s。
- 最小成本原則構(gòu)建架構(gòu),支持滾動(dòng)擴(kuò)容。
01 技術(shù)選型
經(jīng)過(guò)調(diào)研了解以及朋友推薦,我們了解到了 Apache Doris ,并很快與社區(qū)取得了聯(lián)系,Apache Doris 的幾大優(yōu)勢(shì)吸引了我們:
足夠簡(jiǎn)單
美聯(lián)物業(yè)及大部分傳統(tǒng)公司的數(shù)據(jù)人員除了需要完成數(shù)據(jù)開(kāi)發(fā)工作之外,還需要兼顧運(yùn)維和架構(gòu)規(guī)劃的工作。因此我們選擇數(shù)倉(cāng)組件的第一原則就是"簡(jiǎn)單",簡(jiǎn)單主要包括兩個(gè)方面:
- 使用簡(jiǎn)單:Apache Doris 兼容 MySQL 協(xié)議,支持標(biāo)準(zhǔn) SQL,有利于開(kāi)發(fā)效率和共識(shí)統(tǒng)一,此外,Doris 的 ETL 編寫(xiě)腳本主要使用 SQL進(jìn)行開(kāi)發(fā),使用 MySQL 協(xié)議登陸使用,兼容多數(shù) MySQL 語(yǔ)法,提供豐富的數(shù)據(jù)分析函數(shù),省去了 UDF 開(kāi)發(fā)工作。
- 架構(gòu)簡(jiǎn)單:Doris 的組件架構(gòu)由 FE+BE 兩類(lèi)進(jìn)程組成,不依賴(lài)其他系統(tǒng),升級(jí)擴(kuò)容非常方便,故障排查鏈路非常清晰,有利于運(yùn)維成本的降低。
極速性能
Doris 依托于列式存儲(chǔ)引擎、自動(dòng)分區(qū)分桶、向量計(jì)算、多方面 Join 優(yōu)化和物化視圖等功能的實(shí)現(xiàn),可以覆蓋眾多場(chǎng)景的查詢(xún)優(yōu)化,海量數(shù)據(jù)也能可以保證低延遲查詢(xún),實(shí)現(xiàn)分鐘級(jí)或秒級(jí)響應(yīng)。
極低成本
降本提效已經(jīng)成為現(xiàn)如今企業(yè)發(fā)展的常態(tài),免費(fèi)的開(kāi)源軟件就比較滿(mǎn)足我們的條件,另外基于 Doris 極簡(jiǎn)的架構(gòu)、語(yǔ)言的兼容、豐富的生態(tài)等,為我們節(jié)省了不少的資源和人力的投入。并且 Doris 支持 PB 級(jí)別的存儲(chǔ)和分析,對(duì)于存量歷史數(shù)據(jù)較大、增量數(shù)據(jù)較少的公司來(lái)說(shuō),僅用 5-8 個(gè)節(jié)點(diǎn)就足以支撐上線使用。
社區(qū)活躍
截止目前,Apache Doris 已開(kāi)源數(shù)年,并已支持全國(guó)超 1500 企業(yè)生產(chǎn)使用,其健壯性、穩(wěn)定性不可否認(rèn)。另外社區(qū)非常活躍,SelectDB 為社區(qū)組建了專(zhuān)職的技術(shù)支持團(tuán)隊(duì),任何問(wèn)題均能快速反饋,提供無(wú)償技術(shù)支持,使用起來(lái)沒(méi)有后顧之憂(yōu)。
02 運(yùn)行架構(gòu)

在對(duì) Apache Doris 進(jìn)一步測(cè)試驗(yàn)證之后,我們完全摒棄了之前使用 Hadoop、Hive、Spark 體系建立的數(shù)倉(cāng),決定基于 Doris 對(duì)架構(gòu)進(jìn)行重構(gòu),以 Apache Doris 作為數(shù)倉(cāng)主體進(jìn)行開(kāi)發(fā):
- 數(shù)據(jù)集成:利用 DataX、Flink CDC 和 Apache Doris 的 Multi Catalog 功能等進(jìn)行數(shù)據(jù)集成。
- 數(shù)據(jù)管理:利用 Apache Dolphinscheduler 進(jìn)行腳本開(kāi)發(fā)的生命周期管理、多租戶(hù)人員的權(quán)限管理、數(shù)據(jù)質(zhì)量監(jiān)察等。
- 監(jiān)控告警:采用 Grafana + Prometheus + Loki 進(jìn)行監(jiān)控告警,Doris 的各項(xiàng)監(jiān)控指標(biāo)可以在上面運(yùn)行,解決了對(duì)組件資源和日志的監(jiān)控問(wèn)題。
- 數(shù)據(jù)服務(wù):使用帆軟 Report 為用戶(hù)提供數(shù)據(jù)查詢(xún)和分析服務(wù),帆軟支持表單制作和數(shù)據(jù)填報(bào)等功能,支持自助取數(shù)和自助分析。
03 數(shù)據(jù)模型
1)縱向分域
房地產(chǎn)中介行業(yè)的大數(shù)據(jù)主題大致如下,一般會(huì)根據(jù)這些主題進(jìn)行數(shù)倉(cāng)建模。建模主題域核心圍繞"企業(yè)用戶(hù)"、"客戶(hù)"、"房源"、"組織"等幾個(gè)業(yè)務(wù)實(shí)體展開(kāi),進(jìn)行維度表和事實(shí)表的創(chuàng)建。

我們從前線到后勤,對(duì)業(yè)務(wù)數(shù)據(jù)總線進(jìn)行了梳理,旨在整理業(yè)務(wù)實(shí)體和業(yè)務(wù)活動(dòng)相關(guān)數(shù)據(jù),如多個(gè)系統(tǒng)之間存在同一個(gè)業(yè)務(wù)實(shí)體,應(yīng)統(tǒng)一為一個(gè)字段。梳理業(yè)務(wù)總線有助于掌握公司整體數(shù)據(jù)結(jié)構(gòu),便于維度建模等工作。
下圖為我們簡(jiǎn)單的梳理部分房地產(chǎn)中介行業(yè)的業(yè)務(wù)總線:

2)橫向分層
數(shù)據(jù)分層是最常見(jiàn)的 5 層結(jié)構(gòu)主要是利用 Apache Doris + Apache DolphinScheduler 進(jìn)行層級(jí)數(shù)據(jù)之間 DAG 腳本調(diào)度。
存儲(chǔ)策略: 我們?cè)?8 點(diǎn)到 24 點(diǎn)之間采用增量策略,0 點(diǎn)到 8 點(diǎn)執(zhí)行全量策略。采用增量 + 全量的方式是為了在ODS 表因?yàn)橛涗浀臍v史狀態(tài)字段變更或者 CDC 出現(xiàn)數(shù)據(jù)未完全同步的情況下,可以及時(shí)進(jìn)行全量補(bǔ)數(shù)修正。

3)增量策略
- where >= "業(yè)務(wù)時(shí)間-1天或-1小時(shí)"
增量的 SQL 語(yǔ)句不使用 where="業(yè)務(wù)時(shí)間當(dāng)天"的原因是為了避免數(shù)據(jù)漂移情況發(fā)生,換言之,調(diào)度腳本之間存在時(shí)間差,如 23:58:00 執(zhí)行了腳本,腳本的執(zhí)行周期是 10 分鐘/次,但是源庫(kù)最后一條數(shù)據(jù) 23:59:00 才進(jìn)來(lái),這時(shí)候 where="業(yè)務(wù)時(shí)間當(dāng)天" 就會(huì)將該數(shù)據(jù)漏掉。
- 每次跑增量腳本前獲取表中最大的主鍵 ID 存入輔助表,
where >= "輔助表記錄ID"
如果 Doris 表使用的是 Unique Key 模型,且恰好為組合主鍵,當(dāng)主鍵組合在源表發(fā)生了變化,這時(shí)候 where >=" 業(yè)務(wù)時(shí)間-1天"會(huì)記錄該變化,把主鍵發(fā)生變化的數(shù)據(jù) Load 進(jìn)來(lái),從而造成數(shù)據(jù)重復(fù)。而使用這種自增策略可有效避免該情況發(fā)生,且自增策略只適用于源表自帶業(yè)務(wù)自增主鍵的情況。
- 表分區(qū)
如面對(duì)日志表等基于時(shí)間的自增數(shù)據(jù),且歷史數(shù)據(jù)和狀態(tài)基本不會(huì)變更,數(shù)據(jù)量非常大,全量或快照計(jì)算壓力非常大的場(chǎng)景,這種場(chǎng)景需要對(duì) Doris 表進(jìn)行建表分區(qū),每次增量進(jìn)行分區(qū)替換操作即可,同時(shí)需要注意數(shù)據(jù)漂移情況。
4)全量策略
- Truncate Table 清空表插入
先清空表格后再把源表數(shù)據(jù)全量導(dǎo)入,該方式適用于數(shù)據(jù)量較小的表格和凌晨沒(méi)有用戶(hù)使用系統(tǒng)的場(chǎng)景。
ALTER TABLE tbl1 REPLACE WITH TABLE tbl2表替換
這種方式是一種原子操作,適合數(shù)據(jù)量大的全量表。每次執(zhí)行腳本前先 Create 一張數(shù)據(jù)結(jié)構(gòu)相同的臨時(shí)表,把全量數(shù)據(jù) Load 到臨時(shí)表,再執(zhí)行表替換操作,可以進(jìn)行無(wú)縫銜接。
應(yīng)用實(shí)踐
01 業(yè)務(wù)模型

- 業(yè)務(wù)模型是分鐘級(jí)調(diào)度 ETL
- 初次部署建議配置:8 節(jié)點(diǎn) 2FE * 8BE 混合部署
- 節(jié)點(diǎn)配置:32C * 60GB * 2TB SSD
- 對(duì)于存量數(shù)據(jù) TB 級(jí)、增量數(shù)據(jù) GB 級(jí)的場(chǎng)景完全夠用,如有需要可以進(jìn)行滾動(dòng)擴(kuò)容。
02 具體應(yīng)用
- 離線數(shù)據(jù)和日志數(shù)據(jù)集成利用 DataX 進(jìn)行增量和全量調(diào)度,Datax 支持 CSV 格式和多種關(guān)系型數(shù)據(jù)庫(kù)的Redear,而 Doris 在很早之前就提供了 DataX Doris writer 連接器。

- 實(shí)時(shí)統(tǒng)計(jì)部分借助了 Flink CDC 對(duì)源表進(jìn)行實(shí)時(shí)同步,利用 Doris 的物化視圖或者 Aggregate 模型表進(jìn)行實(shí)時(shí)指標(biāo)的匯總處理,因我們只有部分指標(biāo)需要實(shí)時(shí)處理,不希望產(chǎn)生過(guò)多的數(shù)據(jù)庫(kù)連接和 Flink Job,因此我們使用 Dinky 的多源合并和整庫(kù)同步功能,也可以自己簡(jiǎn)單實(shí)現(xiàn)一個(gè)Flink DataStream 多源合并任務(wù),只通過(guò)一個(gè) Job 可對(duì)多個(gè) CDC 源表進(jìn)行維護(hù)。值得一提的是, Flink CDC 和 Apache Doris 新版本支持 Schema Change 實(shí)時(shí)同步,在成本允許的前提下,可完全使用 CDC 的方式對(duì) ODS 層進(jìn)行改造。
EXECUTE CDCSOURCE demo_doris WITH (
'connector' = 'mysql-cdc',
'hostname' = '127.0.0.1',
'port' = '3306',
'username' = 'root',
'password' = '123456',
'checkpoint' = '10000',
'scan.startup.mode' = 'initial',
'parallelism' = '1',
'table-name' = 'ods.ods_*,ods.ods_*',
'sink.connector' = 'doris',
'sink.fenodes' = '127.0.0.1:8030',
'sink.username' = 'root',
'sink.password' = '123456',
'sink.doris.batch.size' = '1000',
'sink.sink.max-retries' = '1',
'sink.sink.batch.interval' = '60000',
'sink.sink.db' = 'test',
'sink.sink.properties.format' ='json',
'sink.sink.properties.read_json_by_line' ='true',
'sink.table.identifier' = '${schemaName}.${tableName}',
'sink.sink.label-prefix' = '${schemaName}_${tableName}_1'
);
- 腳本語(yǔ)言采用 Shell + SQL 或純 SQL 的形式,我們?cè)?Apache DolphinScheduler 上進(jìn)行腳本生命周期管理和發(fā)布,如 ODS 層,可以編寫(xiě)通用的 DataX Job 文件,通過(guò)傳參的方式將 DataX Job 文件傳參執(zhí)行源表導(dǎo)入,無(wú)需在每一個(gè)源表編寫(xiě)不同的DataX Job ,支持統(tǒng)一配置參數(shù)和代碼內(nèi)容,維護(hù)起來(lái)非常方便。另外我們?cè)?DolphinsSheduler 上對(duì) Doris 的 ETL 腳本進(jìn)行管理,還可以進(jìn)行版本控制,能有效控制生產(chǎn)環(huán)境錯(cuò)誤的發(fā)生,進(jìn)行及時(shí)回滾。

- 發(fā)布 ETL 腳本后導(dǎo)入數(shù)據(jù),可直接在帆軟 Report 進(jìn)行頁(yè)面制作,基于登陸賬號(hào)來(lái)控制頁(yè)面權(quán)限,如需控制行級(jí)別、字段級(jí)別權(quán)限,可以制作全局字典,利用 SQL 方式進(jìn)行控制。Doris 完全支持對(duì)賬號(hào)的庫(kù)表權(quán)限控制,這一點(diǎn)和 MySQL 的設(shè)置完全一樣,使用起來(lái)非常便捷。

除以上之外,在容災(zāi)恢復(fù)、集群監(jiān)控、數(shù)據(jù)安全等方面也有應(yīng)用,比如利用 Doris 備份實(shí)現(xiàn)容災(zāi)恢復(fù)、Grafana+Loki 對(duì)集群進(jìn)行指標(biāo)規(guī)則告警、Supervisor 對(duì)節(jié)點(diǎn)組件進(jìn)行守護(hù)進(jìn)程監(jiān)控,開(kāi)啟 Doris 審計(jì)日志對(duì)執(zhí)行 SQL 效率進(jìn)行監(jiān)控等,因篇幅限制,此處不進(jìn)行詳細(xì)說(shuō)明。
03 優(yōu)化經(jīng)驗(yàn)
- 數(shù)據(jù)導(dǎo)入
我們使用 DataX 進(jìn)行離線數(shù)據(jù)導(dǎo)入,DataX 采用的是 Stream Load 方式導(dǎo)入,該方式可以通過(guò)參數(shù)控制導(dǎo)入批次流量,DataX 導(dǎo)入不需要借助計(jì)算引擎,開(kāi)箱即用的特點(diǎn)非常方便。另外,Stream Load 導(dǎo)入是同步返回結(jié)果的,其他導(dǎo)入方式一般是異步返回結(jié)果,針對(duì)我們的架構(gòu)來(lái)說(shuō),在 Dolphinscheduler上執(zhí)行異步導(dǎo)入數(shù)據(jù)會(huì)誤以為該腳本已經(jīng)執(zhí)行成功,影響其正常運(yùn)行。如采用其他異步導(dǎo)入方式,建議在 Shell 腳本中 執(zhí)行 show load 再利用正則過(guò)濾狀態(tài)進(jìn)行判斷。
- 數(shù)據(jù)模型
我們所有層級(jí)的表模型大部分采用 Unique Key 模型,該模型可有效保證數(shù)據(jù)腳本的結(jié)果冪等性,Unique Key 模型可以完美解決上游數(shù)據(jù)重復(fù)的問(wèn)題,大家可以根據(jù)業(yè)務(wù)模式來(lái)選擇不同的模型建表。
- 外部數(shù)據(jù)源讀取
Catalog 方式可以使用 JDBC 外表連接,還可以對(duì) Doris 生產(chǎn)集群數(shù)據(jù)進(jìn)行讀取,便于生產(chǎn)數(shù)據(jù)直接 Load 進(jìn)測(cè)試服務(wù)器進(jìn)行測(cè)試。另外,新版支持多數(shù)據(jù)源的 Catalog,可以基于 Catalog 對(duì) ODS 層進(jìn)行改造,無(wú)需使用 DataX 對(duì)ODS 層進(jìn)行導(dǎo)入。
- 查詢(xún)優(yōu)化
盡量把非字符類(lèi)型(如 int 類(lèi)型、where 條件)中最常用的字段放在前排 36 個(gè)字節(jié)內(nèi),在點(diǎn)查表過(guò)程中可以快速過(guò)濾這些字段(毫秒級(jí)別),可以充分利用該特性進(jìn)行數(shù)據(jù)表輸出。
- 數(shù)據(jù)字典
利用 Doris 自帶的 information_schema 元數(shù)據(jù)制作簡(jiǎn)單的數(shù)據(jù)字典,這在還未建立數(shù)據(jù)治理體系前非常重要,當(dāng)部門(mén)人數(shù)較多的時(shí)候,溝通成本成為發(fā)展過(guò)程中最大的“攔路虎”,利用數(shù)據(jù)字典可快速對(duì)表格和字段的全局查找和釋義,最低成本形成數(shù)倉(cāng)人員的數(shù)據(jù)規(guī)范,減少人員溝通成本,提高開(kāi)發(fā)效率。
架構(gòu)收益
- 自動(dòng)取數(shù)導(dǎo)數(shù):數(shù)據(jù)倉(cāng)庫(kù)的明細(xì)表可以定時(shí)進(jìn)行取數(shù)、導(dǎo)數(shù),自助組合維度進(jìn)行分析。
- 效率提升:T+1 的離線時(shí)效從小時(shí)計(jì)降低至分鐘級(jí)
- 查詢(xún)延遲降低:面對(duì)上億行數(shù)據(jù)的表,利用 Doris 在索引和點(diǎn)查方面的能力,實(shí)現(xiàn)即席查詢(xún) 1 秒內(nèi)響應(yīng),復(fù)雜查詢(xún) 5 秒內(nèi)響應(yīng)。
- 運(yùn)維成本降低:從數(shù)據(jù)集成到數(shù)據(jù)服務(wù),只需維護(hù)少數(shù)組件就可以實(shí)現(xiàn)整體鏈路高效管理。
- 數(shù)據(jù)管理體系:Doris 數(shù)倉(cāng)的搭建,使得數(shù)據(jù)管理體系初步形成,數(shù)據(jù)資產(chǎn)得以規(guī)范化的沉淀。
- 資源節(jié)省:只用了少數(shù)服務(wù)器,快速搭建起一套數(shù)據(jù)倉(cāng)庫(kù),成功實(shí)現(xiàn)降本賦能。同時(shí) Doris 超高的壓縮比,將數(shù)據(jù)壓縮了 70%,相較于 Hadoop 來(lái)說(shuō),存儲(chǔ)資源的消耗大幅降低。
總結(jié)與規(guī)劃
目前我們已經(jīng)完成數(shù)倉(cāng)建設(shè)的初期目標(biāo),未來(lái)我們有計(jì)劃基于 Apache Doris 進(jìn)行中臺(tái)化的改造,同時(shí) Apache Doris在用戶(hù)畫(huà)像和人群圈選場(chǎng)景的能力十分強(qiáng)悍,支持 Bitmap 等格式進(jìn)行導(dǎo)入和轉(zhuǎn)換,提供了豐富的 Bitmap 分析函數(shù)等,后續(xù)我們也將利用這部分能力進(jìn)行客戶(hù)群體分析,加快數(shù)字化轉(zhuǎn)型。
最后,感謝 Apache Doris 社區(qū)和 SelectDB 團(tuán)隊(duì)對(duì)美聯(lián)物業(yè)的快速響應(yīng)和無(wú)償支持,希望 Doris 發(fā)展越來(lái)越好,也希望更多的企業(yè)可以嘗試使用 Apache Doris。
