數據,是互聯網公司的核心資產之一。那麼,這些核心資產背後,是哪些人在收集數據、存儲數據、處理數據、管理數據、使用數據、保證數據安全的呢?——是“數據工匠”們!

2020年7月28日~8月6日,雲+社區(騰訊雲官方開發者社區)主辦的線上技術沙龍——數據工匠,已圓滿落幕。10位技術大咖現身分享,與開發者互動交流,深度講解了有贊技術中臺、騰訊雲Elasticsearch、數據安全中臺、ClickHouse、騰訊雲數據庫MySQL 8.0、雲原生消息隊列、數據庫自治服務等多個專題。另有三位嘉賓同臺,就“如何成爲優秀架構師”這一開放命題,展開多維探討。有贊數據中臺成本治理實踐

隨着直播電商行業的興盛,有贊業務高速發展。但同時數據倉庫中存儲資源和計算資源消耗也非常高,甚至一度超過了整個平臺業務的增速,這顯然不是一個可持續發展的態勢。

有贊技術副總裁沈淦首先帶我們一起回顧了去年有贊業務高速發展時遇到的困境,並向大家分享了他們在數據中臺成本治理上的實踐。

針對原數據中臺資源水位低、擴縮容成本高、存儲瓶頸、離線計算浪費、成員缺少成本意識等問題,有贊從五個方面出發進行了成本的綜合治理:

1. 提升資源利用率

首先是制定利用率標準,確認利用率在什麼水位是合理的,根據不同的集羣和環境來設定不同的水位。其次根據水位來決定縮容或者降配,充分利用機器資源。接着對機型進行優化,統一集羣機型。最後是延時啓動,削峯填谷,任務分級,避免在高峯期爭搶資源,在空閒時間做數據重刷。

2. 容器化改造

容器化在很多方面會提供非常好的支撐,首先在擴縮容方面。有贊和騰訊雲合作,把採購的 API 打通,這樣就可以通過調度策略來進行擴縮容,比以前按月的採購方式效率更高、成本更低。另外通過容器化,也可以很方便的實現存儲與計算分離。

3. 存儲優化

冷備數據分離,存儲到騰訊雲COS上,比起獨立集羣存儲,節省80%的成本。啓用Hive數據生命週期管理,90%以上的分區表,可以做歷史分區清理,節省20%以上的存儲空間。同時優化存儲壓縮倍率,依據 hadoop3.x 版本 EC編碼特徵,3備份僅需要 1.5倍的空間。

4. 離線任務優化

從數據下線、任務調優、高轉低頻、數據替換、小文件合併、延遲啓動這六個方面對離線任務進行優化,有贊團隊形象稱之爲“六脈神劍”。

5. 成本運營機制

針對團隊成員資源使用大手大腳、缺乏成本意識等問題,有贊技術團隊創新了成本運營機制。建立成本量化模型,對於不同資源設立不同的成本單價,通過Spark

採集計算資源和運營宣導等方式,讓團隊每個成員切實感受到資源的損耗,下意識開始加強成本意識。

經過此番成本治理實踐,有贊數據中臺不管是在整體資源的利用率還是計算性能上都有很大的提升,同時極大降低了存儲成本,幫助團隊成員提升了成本意識,自主降本比例超過了25%,取得了積極的進展。海量挑戰:騰訊雲Elasticsearch可用性及性能優化實踐

爲了幫助騰訊會議質量團隊快速精準地定位分析問題,需要大量運行時的會議質量數據支撐,如網絡相關的入網類型、碼率、丟包率等。另一方面,藉助多維分析,可以在實時數據中挖掘出異常情況,通過dashboard或數據報表的形式,幫助會議質量團隊及時掌控全局情況,快速發現潛在問題。

但是隨着騰訊會議用戶激增,在高壓力、高吞吐的環境下,基於ES的會議服務質量分析系統承受了極大的壓力,並且寫入性能出現了不足......騰訊雲Elasticsearch技術專家張彬面向廣大在線聽衆,分享了他們在騰訊會議服務質量分析系統上的優化實踐。

針對高併發場景的優化方案是服務限流。除了要能控制併發請求數量,還要能精準地控制內存資源,因爲內存資源不足是主要的矛盾。另外通用性要強,能作用於各個層級實現全鏈限流。

具體是基於內存資源的漏桶策略,將節點 JVM 內存作爲漏桶的資源,當內存資源足夠的時候,請求可以正常處理;當內存使用量到達一定閾值的時候分區間階梯式平滑限流。如下圖中淺黃色的區間限制寫入,深黃色的區間限制查詢,底部紅色部分作爲預留 buffer,預留給處理中的請求、merge 等操作,以保證節點內存的安全性。

除此之外,騰訊雲ES還在大聚合查詢、多可用區部署、數據合併策略以及大吞吐寫入方面,結合原生方案和社區調研,做出了獨具一格的優化。除了在高可用和性能方面的調優,騰訊雲ES在低成本解決方案上也給出了自己的答卷。

騰訊雲自身的監控系統也是ES 做的,對於一些特別大的地域集羣,寫入速度高達千萬級每秒,需要承擔1500臺物理機的成本預算。通過冷熱分離、生命週期管理、多盤策略、COS冷備等方式,極大降低了存儲成本,原本需要1500臺機器才能完成的工作優化後僅需要兩三百臺。原生加密:騰訊雲數據安全中臺解決方案

隨着企業上雲和數字化轉型升級的深化,數據正在成爲企業的核心資產之一,在生產過程中發揮的價值越來越大。騰訊安全雲鼎實驗室專家姬生利在直播間爲大家細數了企業數據安全風險以及國內密碼應用現狀,除了業務上的安全挑戰,還有安全合規方面的要求。

企業數據安全面臨着諸多難題:

從數據安全生命週期來看,有着分類、治理和策略方面的難點;從開發運營過程中來看,數據有容易泄露的風險,比如開發意識疏忽,泄露源代碼中包含的敏感憑據和密鑰、測試暴露高風險的測試數據庫訪問端口和弱賬號等。測試:暴露高風險的測試數據庫訪問端口和弱賬號等。

從應用服務的構成來看,數據從產生、傳輸、存儲、處理,到共享展示,每一個環節都存在數據泄露的風險,涉及數據安全保障:

本地敏感數據存儲安全、網絡通道的安全、配置文件和硬編碼敏感信息的安全、密鑰的安全管理、雲上數據的存儲安全、金融支付等敏感應用的安全合規問題、數據的共享、展示脫敏的問題等。此外,雲架構下數據加密及密鑰管理也面臨多種挑戰。

騰訊雲數據安全中臺具備三大能力,全數據生命週期支持、完整的雲產品生態集成、國密與 FIPS 標準的支持。騰訊雲數據安全中臺還能提供極簡的加密 API 和 SDK 服務,讓用戶得以使用最小的工作量,極簡地實現對雲上數據的加密保護。

對於雲上數據安全應用方案,需要保管的核心內容就是密鑰,密鑰存放在硬編碼配置文件裏面,是寫在代碼裏面的,這種情況下配置文件泄漏或者代碼泄漏,密鑰也會隨之泄漏,密鑰的丟失導致數據的密文不再安全,因此使用加密算法需要使用密鑰管理系統(KMS)來對密鑰進行統一管理。

KMS是雲平臺和產品合規的基礎安全組件,海外用戶需要滿足FIPS-140-2標準,國內用戶需要支持國密。KMS能爲用戶提供安全合規的密鑰保障、敏感數據加密、高性能本地數據加密等能力,支持BYOK、白盒密鑰管理,還能無縫集成雲產品,實現雲上數據透明加密。

除了KMS之外,騰訊雲數據安全中臺還集成了憑據管理系統、雲加密機、數據庫加密等能力,爲用戶的數據安全保駕護航。彪悍性能:騰訊雲ClickHouse性能調優及實踐

ClickHouse是俄羅斯開源的OLAP數據庫,以彪悍的性能著稱。開源5年以來,以性能優異、簡單易用的特點,吸引了大量的用戶羣體。騰訊雲ClickHouse研發負責人彭健爲大家帶來騰訊雲ClickHouse在QQ音樂上的應用與調優實踐。

QQ音樂用的就是ClickHouse集羣,集羣的現狀是近萬核的規模、PB 級的存儲,十萬億級別的記錄量,每天過千億級的數據入庫,包括實時流水、中間表的計算等等。

通過使用ClickHouse,一方面帶來了實時性上的價值,絕大部分查詢請求是數秒內完成、部分查詢請求在十秒內完成。另一方面是易用性,利用 Superset 可以自主製作各種報表,降低了產品、運營、市場等非數據人員分析使用的門檻。

那麼,是如何做到的呢?

1. 合理規劃ZooKeeper的集羣配置

ClickHouse 集羣數據量的增長,在併發寫入量較大的情況下,ZooKeeper 的處理能力跟不上,集羣的性能也會急劇下降。所以在整個運維過程中,如果集羣數據規模超過 TB 級別,建議採用具有 SSD 盤的設備。

2. 數據冪等寫入

ClickHouse 的集羣是按 Shard 分佈的,在向 ClickHouse 導入數據的過程中有時會失敗或者超時,就需要重試寫入動作。爲了防止多個 Shard 出現重複寫入,導致數據不一致的情況,在重試的時候需要在相同的 Shard 上進行寫入。

3. 合理規劃表分區數

通常可以將數據按天、按月做分區,根據具體情況來操作。官方建議分區數量不要超過一千,通常這個分區數對大部分業務場景都夠用,過多分區數量會導致查詢性能的降低。

4. 讀寫分離

藉助臨時集羣,預先將準備好的數據在臨時集羣中構建、寫入,等待 Merge 完成後 AB 切換,或者通過數據拷貝的方式將數據複製到在線集羣的服務器上,做到讀寫分離。從而讓數據的寫入不會影響線上的查詢,或者是把影響降到最低。

5. 跨表查詢的本地化

ClickHouse 集羣分佈式查詢通常採用 GLOBAL IN/GLOBAL JOINS 類似的詞語,這些詞句的性能相對比較低,使用後再查詢時會生成臨時表,並跨節點讀取數據,從而降低查詢速度,也會佔用更多的內存,甚至導致查詢失敗。

通過合理組織數據,使用本地化的 IN/JOINS 代替,比如根據數據的 UN、VID 將相同 ID 的數據寫入到相同的 Shard 中,結果是等效的,但可以極大的提升性能,將複雜的操作編程定型化的操作。

除此以外,彭健還對ClickHouse常見的實時分析場景進行了分析,爲大家細緻剖析了ClickHouse的原理,以及騰訊雲ClickHouse是如何在原生的基礎上做出優化的。不久的未來,更加完善、性能也更高的騰訊雲ClickHouse服務也將會上線提供服務,敬請大家期待。極致性能:騰訊雲數據庫MySQL 8.0

“騰訊雲數據庫 MySQL 8.0版本於2020年7月正式發佈,QPS達到70w+。騰訊雲基於官方8.0版本新增什麼特性和功能,這些新能力能爲大家帶來哪些實際的價值和幫助?”,直播間裏,騰訊雲數據庫產品專家黃稚禹爲大家做出了細緻的解析。

騰訊MySQL 8.0 新推出了八大特性:數據加密、SQL審計、線程池、強一致性、新硬件支持、輕量級AP、熱點更新、SQL限流。

MySQL 開源社區版是不支持企業級審計功能的,只有商業版裏才提供。而騰訊雲 MySQL 8.0實現了內核級別的審計功能,並且結合了雲產品進一步提升了 SQL 審計功能,讓用戶擁有更好的體驗。

用戶連接 session 產生的審計記錄,由專門的寫盤線程( Flush thread )將內存中的審計記錄寫入審計文件中( Audit File ),直接落盤。而審計代理( Audit Agent )則會讀取審計文件,將審計記錄發送到審計日誌中心。

同時採用 JSON 格式對審計日誌進行存儲。記錄的審計內容有時間戳、影響行數、執行時間、主機、來源IP、實例名、用戶名、數據庫名,包括具體的 SQL 語句和類型等。在產品層面上也提供了審計規則的過濾。

針對互聯網高併發業務場景,騰訊雲 MySQL 8.0 進行了線程模式的改進。當客戶端發起連接後,由空閒的線程先對請求進行處理,減少上下文切換的消耗和創建銷燬的消耗。同時引入了多隊列的機制,可以按照業務的訪問走不同的隊列。

在數據加密方面,通過 KMS和 TDE 的深度集成,實現了二者的結合,爲騰訊雲 MySQL 用戶提供了一整套安全解決方案。

KMS 採用的是兩層密鑰體系,海量的業務數據在存儲或通信過程中使用數據密鑰以對稱加密的方式加密,而數據密鑰又通過用戶主密鑰採用非對稱加密方式加密保護。通過兩層密鑰體系,確保數據在在內存和文件中都進行加密。

在直播的最後,黃稚禹爲大家分享了騰訊MySQL 8.0 在電商、遊戲、金融、新零售這四大行業裏的應用,也和大家暢想一番他對數據庫未來的發展趨勢看法。金融級別:新一代消息隊列在騰訊計費的實踐

雲原生場景,多語言、多種協議兼容,任意多的消息 Topic、任意多的消費者,性能的按需快速擴展成爲消息隊列基本的要求。而在金融場景下,對交易數據的強一致性、跨地域數據高可用性、系統的性能方面都有着極高的要求。

騰訊TEG技術委員會專家工程師劉德志爲大家分享了基於 Apache Pulsar 的新一代存儲計算分離設計的消息隊列 TDMQ在騰訊計費上的技術實踐。

騰訊計費是孵化於支撐騰訊內部業務千億級營收的互聯網計費平臺,其核心是幫助用戶與產品,安全、便捷的完成支付和收款。平臺承載了騰訊公司每天數億收入的大盤,爲 180+ 個國家(地區)、100W+ 計算商戶提供服務,託管賬戶總量 300 多億,是一個全方位一站式計費平臺。

1. 存儲分離架構

TDMQ 是基於 Pulsar 內核,同樣採用了計算和存儲分離的 2 層架構:

Broker 提供消息的生產、發送和管理服務,本身並不存儲任何狀態信息和消息內容。Bookie 提供存儲層服務,採用邏輯分片存儲模式,也就是 Ledger,一個 Topic 實際上是一個Ledgers 流,Ledger裏面存儲了具體的消息也就是 entry。

基於存儲分離的架構,可以很友好的支持系統的擴縮容。如果是計算層資源不足,可以非常方便的進行 Broker 擴容,同時 Broker 也可以用相對比較廉價的機器來支撐。如果是存儲層資源不足,添加 bk 節點也是非常簡單的,新加的機器會在後續的 Ledger 寫入使用,基本不需要額外的數據遷移動作。

2. 跨城容災

隨着業務的發展,異地多活成爲必然選擇。TDMQ 提供兩種跨城容災模式:跨地域異步複製、跨地域同步複製。

對於跨地域異步複製,TDMQ 的 geo-repilcation可以實現跨地域複製的能力,通過一些配置化手段實現多中心的數據同步,減少了業務的負擔。

對於跨地域異步複製, 由於TDMQ 採用計算存儲分離的架構,存儲是 bookie 集羣組成,Broker 在寫消息時,首先會從 bookie 中選出一組 bookie 節點,選取的策略可以根據 bookie 部署的機架信息,由同城和跨城節點組成,其中機架信息可以通過配置進行指定。這樣就可以保證副本是在多地存儲,在等待ack策略上,可以根據機架信息保證等待異地的 ack 應答,可以實現真正意義上跨城容災。

與此同時,在保障數據高一致方面,劉德志也爲直播間的聽衆詳細剖析了TDMQ 的一致性模型,在DB數據同步上也有很多創新的實踐。目前TDMQ還處在騰訊雲的內測階段,主要應用於騰訊計費等場景下,未來也將開放到更多應用場景下使用。前沿探索:騰訊雲數據庫自治服務最佳實踐

騰訊雲數據庫高級產品經理劉迪爲大家分享了騰訊雲在數據庫自治方面的最新實踐。他先從數據庫自治的演進開始講起,爲大家娓娓道來數據庫運維各個發展階段的面貌和特點。

從數據庫技術誕生伊始,數據庫運維經歷了從石器時代、工具時代、專家時代,再到如今智能時代這四個階段。從依靠純手工運維到沉澱腳本和工具提升人工效率,再到出現統一的數據庫自動化運維管理平臺。

在雲數據庫時代,雖然可以便利使用雲上的各種託管能力,但是上雲之後也相應產生了黑盒現象。在資源評估、故障診斷恢復、數據庫性能優化等方面對數據庫運維同學提出了新的挑戰。

有沒有一種技術能夠將數據庫能力和專家經驗的共享,把之前已經積累好、沉澱好的數據庫處理經驗自動化,能夠讓數據庫自己處理一些簡單的問題,不需要人工干預。面對複雜問題的時候能夠提供非常充足的建議,通過專家的干預進行最後的處理呢?數據庫自治由此誕生。

經過多年的技術打磨,去年騰訊對外發布的一款強大的數據庫自治產品 —— 數據庫智能管家DBbrain。DBbrain 提供的自治服務涵蓋三個方面:

1.性能優化

利用機器學習、大數據手段快速複製資深數據庫管理員的成熟經驗,將大 量數據庫問題的診斷優化工作自動化,服務於雲上和雲下企業。

2.安全防護

提供從用戶行爲安全、SQL 安全到數據存儲加密安全等多項數據安全服務, 公安部認證的等保合規性安全產品。

3.數據庫管理

提供免安裝、免運維、即開即用、多種數據庫類型與多種環境統一的 web 數據庫管理終端。

DBbrain 提供了宏觀用戶級別的監控和告警,讓用戶第一時間內能夠發現故障、發現異常。監控頁面的易讀性非常高,用戶不需要從幾百個監控指標中找出哪個有問題,DBbrain 會幫助用戶篩選、聚合出相同問題觸發的監控指標。

DBbrain還提供了7*24小時異常診斷、異常框架診斷、SQL優化、數據庫審計與分析、數據庫健康評估策略解讀、自動性能優化系統 CDBTune等能力。同時提供基於 cost 的分析引擎,能夠在用戶沒有執行優化建議之前就把優化的結果告訴大家,從而在優化前就可以清楚的看到預期的優化效果。

對於容易被運維同學忽略的數據庫安全防護問題,DBbrain 也提供了合規審計、安全治理、數據脫敏三大功能,爲用戶提供更穩定安全的數據庫服務。

劉迪還結合了行業客戶的案例爲大家分享DBbrain在實際生產場景下的應用。談到數據庫自治的未來展望,劉迪表示:“數據庫自治在未來應該會朝着自愈、自優化的方向發展,不僅能自主調節索引建議,還可以自主創建索引,自動進行識別、添加和刪除,並且在未來還應該可以自動對執行計劃進行迴歸修正,優化策略下沉與引擎融合,讓用戶需要干預的越來越少,提供的優化服務越來越多”。如何成爲一名優秀數據工匠?

本期沙龍的壓軸專場請來了三位大咖,雲和恩墨首席架構師 & 騰訊雲最具價值專家TVP蓋國強、Elastic中文社區深圳負責人 & 騰訊雲最具價值專家TVP楊振濤、騰訊數據庫負責人丁奇,他們就「如何成爲一名優秀數據工匠」這一話題延伸出發,展開了熱烈的探討。

三位大咖先從自身成長經歷出發,表達了他們自身對數據工匠的感受和理解,雖然在專長領域和成長經歷上有所差別,但是源自相同的熱帶和堅持,他們最後也都達到了各自領域內的高點。

在談到當前數據技術的發展現狀和趨勢這一話題時,蓋國強老師首先談了自己的看法。

他首先認爲國產數據庫必將崛起,因爲分佈式數據庫已然成爲趨勢,加上中國擁有龐大的用戶市場,所以國產數據庫實現彎道超車獲得領先優勢不是沒有可能;第二,雲數據庫成爲新的潮流;第三,數據庫自治也是大勢所趨,數據庫未來一定是會更加自動化和智能化。最後不由感嘆道:“很不幸,未來可能不太需要傳統意義上的DBA了”。

對於延伸出來的這個話題,丁奇顯然來了興趣。他首先對國強老師的這一觀點表示了認同,但同時也有新的理解。他認爲未來DBA仍然還會存在,但是形態會發生改變。在數據庫發展的早期階段,DBA其實對業務有很強的主導性,因爲他們瞭解數據庫的業務架構。隨着雲化和自治化的發展,將DBA從基礎的運維中解放出來,重新回到原始的價值層面,也即瞭解和主導業務架構。

對於數據庫發展趨勢的問題,楊振濤保持着樸素的觀點,他認爲數據庫的發展暗含着合久必分,分久必合的態勢。從最早期一個數據庫搞定業務系統對數據的讀寫需求,到現在基於不同業務對數據讀取的差異化要求,採用多種產品組合。同時,不同數據庫產品也在不斷演化,進入了百家爭鳴的階段。包括國產數據庫的崛起,更加促進了這個數據時代的多元化。從系統論來說,多元化越強系統蘊含的熵、進化的能力也是越大的。 如果市場上永遠是三巨頭,就可能不是一個很健康的發展趨勢。

對於如何成爲一名數據工匠這一話題,三位老師也給出了自己的答案。

蓋國強結合自己20年來的工作學習經驗,提煉出來8字真言:興趣、勤奮、堅持、方法。興趣是你克服苦難,堅持下去的源頭;勤奮是要保持對自身的高要求,付出更多的時間精力來做這件事;堅持是不輕易調整方向,學透了某一點再拓展不遲;方法是要靈活借鑑他人的成功經驗補足自身。堅持這四點,相信每個人都能做出優秀的成績。

丁奇也同樣分享了他自己的觀點,他認爲學習數據技術最好從點到線,這樣更能獲得點滴的成就感,在閱讀繁複浩大的技術圖書或者手冊的時候,應當先把骨架弄清楚,然後有針對性地學習。對於想要在數據技術更進一步的同學,丁奇建議大家應該有意識的增強自己的成本意識、性能意識,以及安全意識。

楊振濤認爲在成長爲數據工匠的路上,我們需要一直貫徹專業主義,對於認爲正確的事情一定要堅定不移的做下去,專業度決定了你最終能走到哪一步。另外楊振濤也鼓勵技術人員應該具有利他心理,多多分享自己的知識和經驗。在成就他人的同時,往往也能完善自身知識體系,甚至還能收穫新的認知,是一件非常值得投入的事情。

在直播的後半段,三位老師同樣解答了直播間彈幕提出的諸多問題。

此次技術沙龍涵蓋8場深受大家喜愛的數據專題,邀請到10位行業一線大咖分享實踐乾貨。沙龍活動期間不斷收到來自直播間觀衆、技術社羣中傳遞的熱烈討論和提問,收穫了一片稱讚。

正是源於同樣的熱愛,讓我們在這段時間相約在雲+社區沙龍直播間,一齊成長進步。國內外數據技術日新月異,每天都在發生巨大的變革,但無論什麼時代,先進的知識始終是優質生產力,堅持、熱愛的開發者們永遠是推動技術發展、維持技術生態繁榮的最根本因素。感謝國內的開發者,也感謝騰訊云云 + 社區能爲廣大開發者提供這樣一個交流協作的平臺。騰訊雲願積極擁抱開發者,願與開發者攜手一起,共建屬於數據技術更先進的未來。

相關文章