自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

數(shù)據(jù)湖核心能力解析

大數(shù)據(jù) 數(shù)據(jù)湖
本文將分享數(shù)據(jù)湖的發(fā)展近況。數(shù)據(jù)湖已成為企業(yè)數(shù)據(jù)平臺(tái)架構(gòu)的重要組成部分,傳統(tǒng)的數(shù)據(jù)平臺(tái)架構(gòu)一般由數(shù)據(jù)湖、流式計(jì)算和 OLAP 引擎查詢(xún)?nèi)齻€(gè)部分組成。這三個(gè)平臺(tái)在以往通常是獨(dú)立建設(shè)的,集群也是獨(dú)立部署。

一、數(shù)據(jù)湖發(fā)展趨勢(shì)分析

圖片

當(dāng)下,數(shù)據(jù)湖已成為企業(yè)數(shù)據(jù)平臺(tái)架構(gòu)的重要組成部分。傳統(tǒng)的數(shù)據(jù)平臺(tái)架構(gòu)一般由數(shù)據(jù)湖、流式計(jì)算和 OLAP 引擎查詢(xún)?nèi)齻€(gè)部分組成:

  • 數(shù)據(jù)湖:由 Hadoop 搭建的大數(shù)據(jù)平臺(tái)承載,負(fù)載海量數(shù)據(jù)存儲(chǔ)與批量計(jì)算。
  • 流式計(jì)算:一般由 Flink 組件承載,負(fù)責(zé)實(shí)時(shí)的數(shù)據(jù)流處理。
  • OLAP 數(shù)倉(cāng):可選擇技術(shù)比較多,包括:開(kāi)源的 Doris、StarRocks、Clickhouse 等以及傳統(tǒng)數(shù)倉(cāng),負(fù)責(zé)承載數(shù)據(jù)查詢(xún)業(yè)務(wù)。

這三個(gè)平臺(tái)在以往通常是獨(dú)立建設(shè)的,集群也是獨(dú)立部署。三者之間數(shù)據(jù)互相拉通,采用以下方案:

湖平臺(tái)與流式平臺(tái)的互通:通常采用 Lambda 架構(gòu)搭建實(shí)時(shí)計(jì)算平臺(tái)和離線批量計(jì)算平臺(tái),以實(shí)現(xiàn)流式計(jì)算與數(shù)據(jù)湖之間的協(xié)同。

流式計(jì)算平臺(tái)與 OLAP 倉(cāng)互通:一般實(shí)際與計(jì)算引擎的數(shù)據(jù)源對(duì)接方式拉通,還會(huì)基于 Kappa 架構(gòu)在流式計(jì)算中進(jìn)行實(shí)時(shí)的數(shù)據(jù)加工處理,將計(jì)算結(jié)果寫(xiě)入數(shù)倉(cāng)中,以實(shí)現(xiàn)實(shí)時(shí)的 OLAP 查詢(xún),這也是通常講的實(shí)時(shí)數(shù)倉(cāng)解決方案。

湖平臺(tái)與數(shù)倉(cāng)平臺(tái)互通:一般是通過(guò)數(shù)據(jù)拷貝方式,將數(shù)據(jù)湖的原始數(shù)據(jù)或者批量計(jì)算結(jié)果數(shù)據(jù)復(fù)制一份到數(shù)倉(cāng)當(dāng)中。

以上的解決方案存在一些問(wèn)題。首先,從建設(shè)和維護(hù)的角度來(lái)看,這種架構(gòu)需要分別建設(shè)三個(gè)平臺(tái),導(dǎo)致建設(shè)與維護(hù)成本增大;其次,數(shù)據(jù)共享需要進(jìn)行一定的冗余存儲(chǔ)和數(shù)據(jù)拷貝,導(dǎo)致方案復(fù)雜讀變高。因此大家現(xiàn)在在逐漸嘗試將三個(gè)功能平臺(tái)融合到一起,形成融合數(shù)據(jù)湖。

在融合數(shù)據(jù)湖中,將通過(guò)流批一體的架構(gòu)實(shí)現(xiàn)實(shí)時(shí)計(jì)算和批量計(jì)算的數(shù)據(jù)共享,解決數(shù)據(jù)冗余和數(shù)據(jù)搬遷的問(wèn)題。通過(guò)湖內(nèi)建倉(cāng)的方式,在數(shù)據(jù)湖實(shí)現(xiàn)數(shù)倉(cāng)的能力,構(gòu)建 OLAP 能力,避免了數(shù)據(jù)的搬遷。這種融合數(shù)據(jù)湖的架構(gòu)不僅可以提高數(shù)據(jù)處理的效率,還可以降低數(shù)據(jù)平臺(tái)的建設(shè)和維護(hù)成本,實(shí)現(xiàn)數(shù)據(jù)的共享和流通。

二、數(shù)據(jù)湖整體架構(gòu)

圖片

上圖是一個(gè)基于開(kāi)源技術(shù)的數(shù)據(jù)湖參考架構(gòu),從數(shù)據(jù)流上分為幾個(gè)環(huán)節(jié):

數(shù)據(jù)源:數(shù)據(jù)流的起點(diǎn),來(lái)源于業(yè)務(wù)系統(tǒng),包括業(yè)務(wù)數(shù)據(jù)庫(kù)、消息流、日志等。

數(shù)據(jù)集成:數(shù)據(jù)湖架構(gòu)中的重要環(huán)節(jié)。數(shù)據(jù)集成是業(yè)務(wù)系統(tǒng)與數(shù)據(jù)湖之間的橋梁,實(shí)現(xiàn)入湖和出湖的能力。通過(guò)批量和實(shí)時(shí)能力,可以實(shí)現(xiàn) T+1 和 T+0 的集成能力。根據(jù)業(yè)務(wù)訴求和具體業(yè)務(wù)架構(gòu)選擇不同的集成方式。

數(shù)據(jù)存儲(chǔ):采用開(kāi)源的 Lakehouse 技術(shù)進(jìn)行數(shù)據(jù)存儲(chǔ)管理。底層的存儲(chǔ)引擎可以采用 Hadoop 的 HDFS 組件也可以采用對(duì)象存儲(chǔ)引擎。存儲(chǔ)格式采 Parquet 和 ORC 格式,這些格式提供了高效的壓縮和編碼方式,有助于提升數(shù)據(jù)的存儲(chǔ)和處理效率?;?Lakehouse 技術(shù),構(gòu)建數(shù)倉(cāng)能力,例如:ACID 能力、Update 能力、Schema 的演進(jìn),以及查詢(xún)加速的緩存和索引技術(shù)。

數(shù)據(jù)計(jì)算:采用支持流批一體的計(jì)算引擎,如 Spark 和 Flink,也可以基于 Hive 引擎進(jìn)行批量計(jì)算。

湖內(nèi)交互式分析:通過(guò)交互式查詢(xún)引擎 Presto、Trino 等,實(shí)現(xiàn)對(duì)湖內(nèi)數(shù)據(jù)進(jìn)行查詢(xún)分析,通過(guò)湖存儲(chǔ)的加速技術(shù)加持,查詢(xún)性能也可以實(shí)現(xiàn)秒級(jí)時(shí)延。

OLAP 層:在湖內(nèi)進(jìn)行數(shù)據(jù)加工處理完成后,需要更快速的查詢(xún)能力,通過(guò)數(shù)據(jù)集成同步到 OLAP 組件,根據(jù)具體業(yè)務(wù)需求,我們可以選擇不同的組件,如 CK 大寬表的快速查詢(xún)和 HBase KV 查詢(xún)等。當(dāng)前部分 OLAP 組件也可以直接查詢(xún)湖內(nèi)數(shù)據(jù),避免了數(shù)據(jù)搬遷。

以上環(huán)節(jié)組合形成完整數(shù)據(jù)平臺(tái)架構(gòu),滿(mǎn)足多種業(yè)務(wù)場(chǎng)景的技術(shù)訴求。

三、數(shù)據(jù)集成

圖片

數(shù)據(jù)集成是業(yè)務(wù)系統(tǒng)與數(shù)據(jù)湖之間的橋梁,要面對(duì)多種不同的數(shù)據(jù)源。在流批一體的數(shù)據(jù)湖平臺(tái)中,數(shù)據(jù)集成主要分為批量集成和實(shí)時(shí)集成兩種方式。

批量集成:采用定時(shí)周期性的搬遷方式,將上游數(shù)據(jù)一次性搬遷到數(shù)據(jù)湖,或者將數(shù)據(jù)湖的數(shù)據(jù)搬遷到 OLAP 組件,例如 Sqoop、DataX 等開(kāi)源組件,通過(guò) JDBC 連接到源數(shù)據(jù)庫(kù),將數(shù)據(jù)抽取出來(lái)并寫(xiě)入數(shù)據(jù)湖中。這種方式適用于對(duì)時(shí)效性要求不高的場(chǎng)景,面臨的挑戰(zhàn)主要是大數(shù)據(jù)量的集成帶來(lái)的吞吐壓力。

實(shí)時(shí)集成:采用上游數(shù)據(jù)變更觸發(fā)的數(shù)據(jù)搬遷方式,通常采用實(shí)時(shí)增量技術(shù)采集上游數(shù)據(jù)。通常會(huì)利用開(kāi)源技術(shù)如 Flink CDC(Change Data Capture)來(lái)實(shí)現(xiàn)數(shù)據(jù)庫(kù)的實(shí)時(shí)數(shù)據(jù)捕獲,將這些變化的數(shù)據(jù)采集到Kafka 等消息隊(duì)列中或者直接入湖實(shí)現(xiàn)實(shí)時(shí)入湖。采用增量讀取的方式將數(shù)據(jù)湖新變更數(shù)據(jù)同步到 OLAP 組件層,例如:采用 Flink 實(shí)時(shí)讀取 Hudi 的新增數(shù)據(jù)寫(xiě)入 Doris。這種實(shí)時(shí)集成方式極大地提高了數(shù)據(jù)的時(shí)效性。

在實(shí)時(shí)集成中挑戰(zhàn):

  • 完整性保證:區(qū)別于批量集成,實(shí)時(shí)集成是實(shí)時(shí)采集每一條變更的新數(shù)據(jù),在異常場(chǎng)景要保證數(shù)據(jù)不丟。
  • 有序性保證:在流式計(jì)算中數(shù)據(jù)流有更新操作,數(shù)據(jù)是否保序會(huì)影響到計(jì)算結(jié)果的準(zhǔn)確性,例如:上游數(shù)據(jù)庫(kù)對(duì)同一主鍵記錄更新多次,數(shù)據(jù)集成會(huì)采集到多條記錄,如果亂序那計(jì)算結(jié)果就會(huì)錯(cuò)誤。
  • 穩(wěn)定性保證:日常的業(yè)務(wù)通常會(huì)有波峰波谷的出現(xiàn),在實(shí)時(shí)集成通道要有能力保證流量增大也能保證任務(wù)運(yùn)行的穩(wěn)定性,可以通過(guò)加強(qiáng)監(jiān)控的方式發(fā)現(xiàn)問(wèn)題,通過(guò)彈性伸縮能力或者上線前壓測(cè),保證任務(wù)的資源分配到位,或者通過(guò)限流措施犧牲波峰的時(shí)效性來(lái)保證穩(wěn)定性。

隨著技術(shù)的發(fā)展,一些開(kāi)源工具已經(jīng)能夠?qū)崿F(xiàn)流批一體的實(shí)時(shí)數(shù)據(jù)集成,這些工具不僅可以降低建設(shè)成本,還能夠減少技術(shù)復(fù)雜度。

四、Lakehouse 核心能力

圖片

在數(shù)據(jù)湖的存儲(chǔ)層,Lakehouse 技術(shù)的應(yīng)用為數(shù)據(jù)處理和分析帶來(lái)了革命性的變革。Lakehouse 不僅繼承了數(shù)據(jù)湖的靈活性和可擴(kuò)展性,還引入了數(shù)據(jù)倉(cāng)庫(kù)的關(guān)鍵特性,如 ACID 事務(wù)、強(qiáng)一致性 Schema 管理、SQL 查詢(xún)等。以下是Lakehouse 技術(shù)應(yīng)具備的關(guān)鍵能力:

  • 增強(qiáng)的 DML SQL 能力:Lakehouse 新增了 update、upsert 和 merge into 等操作,數(shù)據(jù)湖也具備了更新能力。
  • Schema Evolution:業(yè)務(wù)系統(tǒng)不斷演進(jìn)過(guò)程中,會(huì)帶來(lái)表結(jié)構(gòu)的變更,傳統(tǒng)大數(shù)據(jù)在該場(chǎng)景通常采用的是重新建表的方式。Lakehouse 支持 Alter table 能力,保證數(shù)據(jù)湖表可以更加靈活的適配業(yè)務(wù)的演進(jìn)發(fā)展。
  • ACID 事務(wù)和多版本支持:為了確保數(shù)據(jù)的一致性和完整性,Lakehouse 應(yīng)提供 ACID 事務(wù)支持,并在異常情況下提供數(shù)據(jù)的回滾能力。多版本支持則允許訪問(wèn)歷史數(shù)據(jù),為數(shù)據(jù)的時(shí)間旅行提供可能。
  • 并發(fā)控制:在多用戶(hù)環(huán)境中,Lakehouse 應(yīng)能夠處理并發(fā)讀寫(xiě)操作,確保數(shù)據(jù)的一致性和準(zhǔn)確性。這包括對(duì)同一張表的并發(fā)寫(xiě)入以及在讀寫(xiě)操作中的嚴(yán)格一致性保證。
  • 時(shí)間旅行:Lakehouse 應(yīng)支持時(shí)間旅行功能,使用戶(hù)能夠訪問(wèn)任意時(shí)間點(diǎn)的數(shù)據(jù)快照。這不僅為數(shù)據(jù)回溯和歷史分析提供了便利,還支持了流式的增量讀取能力。
  • 文件存儲(chǔ)優(yōu)化:為了支持高效的 OLAP 查詢(xún),Lakehouse 應(yīng)優(yōu)化數(shù)據(jù)存儲(chǔ)格式,以便在特定場(chǎng)景下能夠快速檢索數(shù)據(jù)。
  • 流批一體處理:Lakehouse 應(yīng)同時(shí)支持流式和批量的數(shù)據(jù)讀寫(xiě),實(shí)現(xiàn)數(shù)據(jù)的一體化存儲(chǔ)和處理,滿(mǎn)足多樣化的數(shù)據(jù)處理需求。
  • 索引構(gòu)建:為了加速 OLAP 查詢(xún),Lakehouse 提供了索引構(gòu)建能力,以滿(mǎn)足業(yè)務(wù)對(duì)查詢(xún)時(shí)延的要求。
  • 自動(dòng)化管理:Lakehouse 具備自動(dòng)化管理能力,包括數(shù)據(jù)的合并、歷史數(shù)據(jù)的清理、索引的構(gòu)建等,以減輕用戶(hù)的維護(hù)負(fù)擔(dān),并提高數(shù)據(jù)平臺(tái)的可靠性和穩(wěn)定性。

五、Lakehouse 開(kāi)放性設(shè)計(jì)

圖片

在現(xiàn)代數(shù)據(jù)湖的 Lakehouse 架構(gòu)中,保持開(kāi)放性的設(shè)計(jì)原則是至關(guān)重要的。這種開(kāi)放性體現(xiàn)在幾個(gè)關(guān)鍵方面:

  • 數(shù)據(jù)格式的開(kāi)放性:Lakehouse 架構(gòu)應(yīng)確保其支持的數(shù)據(jù)格式具有開(kāi)放性。這意味著使用標(biāo)準(zhǔn)化的、與開(kāi)源社區(qū)廣泛兼容的數(shù)據(jù)格式,如 Parquet 和 ORC。這種開(kāi)放的數(shù)據(jù)格式允許 Lakehouse 與各種數(shù)據(jù)處理工具和計(jì)算引擎無(wú)縫對(duì)接,無(wú)論是開(kāi)源的還是商業(yè)的。例如,Apache Spark、Presto 和 Flink 等流行的開(kāi)源計(jì)算引擎都能夠高效地讀取和寫(xiě)入這些開(kāi)放格式的數(shù)據(jù)。
  • 計(jì)算引擎的開(kāi)放性:Lakehouse 架構(gòu)還應(yīng)支持多種開(kāi)源和商業(yè)計(jì)算引擎的接入。這種開(kāi)放性確保了企業(yè)可以根據(jù)具體的業(yè)務(wù)需求和數(shù)據(jù)處理的場(chǎng)景,選擇最合適的計(jì)算引擎。無(wú)論是實(shí)時(shí)數(shù)據(jù)處理、批處理還是交互式查詢(xún),Lakehouse 都能夠與各種計(jì)算引擎協(xié)同工作,提供高效的數(shù)據(jù)處理能力。
  • 元數(shù)據(jù)與數(shù)據(jù)權(quán)限的集成:在 Lakehouse 中,元數(shù)據(jù)和數(shù)據(jù)權(quán)限管理是數(shù)據(jù)管理的基本能力要求。這種能力不僅確保了數(shù)據(jù)的組織和管理效率,還提供了精細(xì)的數(shù)據(jù)訪問(wèn)控制,保障了數(shù)據(jù)的安全性和合規(guī)性。
  • 多云部署能力:Lakehouse 架構(gòu)應(yīng)支持多云部署策略,包括在私有云和公共云環(huán)境中的部署。這種靈活性確保了企業(yè)可以根據(jù)自身的業(yè)務(wù)需求和資源狀況,選擇最合適的部署環(huán)境,同時(shí)保證了平臺(tái)的持續(xù)穩(wěn)定演進(jìn)。

六、流批一體

圖片

流批一體架構(gòu)是現(xiàn)代數(shù)據(jù)處理平臺(tái)的核心特征之一,它實(shí)現(xiàn)了數(shù)據(jù)存儲(chǔ)、計(jì)算的深度融合。流批一體通常包含三種解釋?zhuān)?/span>

  • 數(shù)據(jù)存儲(chǔ)的流批一體:同一份數(shù)據(jù)既支持流式讀取也支持批量讀取。物理上數(shù)據(jù)存儲(chǔ)是一份。這種存儲(chǔ)模式確保了數(shù)據(jù)的一致性,并減少了數(shù)據(jù)冗余。
  • 計(jì)算引擎的流批一體:指流式計(jì)算和批量計(jì)算可以由同一個(gè)計(jì)算引擎完成。例如,Apache Flink 和 Apache Spark 都支持流批一體的數(shù)據(jù)處理。這種方式可以降低架構(gòu)復(fù)雜度,降低開(kāi)發(fā)者的使用門(mén)檻。
  • 數(shù)據(jù)處理代碼的流批一體化:指數(shù)據(jù)處理的代碼可以同時(shí)適用于流式和批量的方式執(zhí)行。這樣可以降低開(kāi)發(fā)成本,同時(shí)保證流批的任務(wù)代碼邏輯一致性。
    在流批一體架構(gòu)中,全鏈路支持批量和實(shí)時(shí) ETL 計(jì)算。在數(shù)據(jù)倉(cāng)庫(kù)的各分層中,企業(yè)可以采用批量計(jì)算來(lái)保證小時(shí)級(jí)和天級(jí)的處理能力,同時(shí)利用實(shí)時(shí)計(jì)算來(lái)保證分鐘級(jí)的數(shù)據(jù)處理能力。通過(guò)數(shù)據(jù)的統(tǒng)一處理,企業(yè)可以實(shí)現(xiàn)分鐘級(jí)的數(shù)據(jù)可見(jiàn)性,并確保數(shù)據(jù)的一致性,避免批處理和流處理數(shù)據(jù)結(jié)果的不一致性。

七、實(shí)時(shí) OLAP

圖片

OLAP 能力是實(shí)現(xiàn)快速數(shù)據(jù)分析和決策支持的關(guān)鍵。為了滿(mǎn)足業(yè)務(wù)對(duì)快速響應(yīng)和高效處理的需求,需要提供秒級(jí)的查詢(xún)時(shí)延和數(shù)百級(jí)別的并發(fā)查詢(xún)能力。隨著業(yè)務(wù)的發(fā)展具體的能力會(huì)有所變動(dòng),在面對(duì)業(yè)務(wù)量的大幅波動(dòng)時(shí),基于數(shù)據(jù)湖架構(gòu)能夠迅速擴(kuò)展計(jì)算能力,以應(yīng)對(duì)高業(yè)務(wù)壓力的挑戰(zhàn)。

此外,基于容器化的部署能力,數(shù)據(jù)湖可以實(shí)現(xiàn)根據(jù)業(yè)務(wù)量的彈性伸縮。這種靈活性不僅提高了資源利用率,還確保了在高峰時(shí)段能夠提供足夠的計(jì)算資源,以滿(mǎn)足業(yè)務(wù)需求。在業(yè)務(wù)量減少時(shí),資源可以相應(yīng)地縮減,以?xún)?yōu)化成本效率。

八、湖內(nèi)建倉(cāng)

圖片

在數(shù)據(jù)湖架構(gòu)中,湖內(nèi)建倉(cāng)的概念是將數(shù)據(jù)倉(cāng)庫(kù)的能力集成到數(shù)據(jù)湖內(nèi)部,以實(shí)現(xiàn)數(shù)據(jù)的高效管理和分析。這一過(guò)程涉及多層的存儲(chǔ)優(yōu)化和數(shù)據(jù)組織。

首先,在數(shù)據(jù)文件層,我們實(shí)施存儲(chǔ)優(yōu)化技術(shù),如排序存儲(chǔ)和哈希分布,以提高數(shù)據(jù)文件的訪問(wèn)效率。此外,我們還進(jìn)行數(shù)據(jù)打散和內(nèi)容組織優(yōu)化,以進(jìn)一步加速 OLAP 查詢(xún)。

接下來(lái)是索引層的構(gòu)建。為了加速計(jì)算過(guò)程,采用與數(shù)據(jù)倉(cāng)庫(kù)類(lèi)似的技術(shù),包括數(shù)據(jù)裁剪、下推和緩沖等,以?xún)?yōu)化計(jì)算性能。同時(shí),提供統(tǒng)一的元數(shù)據(jù)服務(wù),確保數(shù)據(jù)資產(chǎn)的統(tǒng)一視圖,并統(tǒng)一數(shù)據(jù)開(kāi)發(fā)中的數(shù)據(jù)庫(kù)管理。

在數(shù)倉(cāng)模型方面,繼續(xù)使用傳統(tǒng)的數(shù)倉(cāng)分層存儲(chǔ)模型,如 ODS、DWS 和ADS,同時(shí)根據(jù)業(yè)務(wù)需求對(duì)數(shù)據(jù)進(jìn)行主題域劃分,以實(shí)現(xiàn)更精細(xì)的數(shù)據(jù)管理。

在表模型方面,采用常見(jiàn)的快照表模型和拉鏈表模型進(jìn)行數(shù)據(jù)存儲(chǔ),并根據(jù)需要采用其他模型。通過(guò)這些方式,我們能夠在數(shù)據(jù)湖內(nèi)部實(shí)現(xiàn)數(shù)倉(cāng)的數(shù)據(jù)管理能力和數(shù)據(jù)處理能力。

責(zé)任編輯:姜華 來(lái)源: DataFunTalk
相關(guān)推薦

2013-03-01 10:46:50

大數(shù)據(jù)核心海量數(shù)據(jù)

2020-08-04 14:20:20

數(shù)據(jù)湖Hadoop數(shù)據(jù)倉(cāng)庫(kù)

2020-09-15 12:56:00

數(shù)據(jù)湖架構(gòu)

2019-08-14 17:13:23

大數(shù)據(jù)MapReduce框架

2023-08-30 07:14:27

MaxCompute湖倉(cāng)一體

2017-04-06 13:58:42

數(shù)據(jù)湖大數(shù)據(jù)數(shù)據(jù)管理

2015-10-26 11:50:11

數(shù)據(jù)湖大數(shù)據(jù)

2015-08-31 13:29:31

大數(shù)據(jù)能力華為

2017-03-20 09:33:21

數(shù)據(jù)湖智能

2023-12-21 11:44:11

數(shù)據(jù)湖數(shù)據(jù)管理數(shù)據(jù)存儲(chǔ)庫(kù)

2016-07-29 15:59:31

2013-09-03 09:14:12

2024-11-13 08:43:47

2017-07-06 15:40:19

DevOps核心能力

2023-08-14 07:28:02

2025-03-24 12:18:25

數(shù)據(jù)庫(kù)數(shù)據(jù)倉(cāng)庫(kù)存儲(chǔ)

2022-11-29 17:16:57

2022-03-08 13:14:32

數(shù)據(jù)湖大數(shù)據(jù)

2016-09-07 15:13:54

數(shù)據(jù)湖Hadoop大數(shù)據(jù)

2020-03-25 09:39:03

數(shù)據(jù)數(shù)據(jù)湖數(shù)據(jù)倉(cāng)庫(kù)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)