深度解析:數(shù)倉(cāng)分層的重要性和實(shí)施策略

0 評(píng)論 1681 瀏覽 6 收藏 19 分鐘

為了提高數(shù)據(jù)質(zhì)量、數(shù)據(jù)可用性及應(yīng)用價(jià)值,我們需要進(jìn)行數(shù)倉(cāng)分層,那么,怎么理解數(shù)倉(cāng)分層?這篇文章里,作者對(duì)數(shù)倉(cāng)分層的重要性、分層原則、實(shí)施策略等方面進(jìn)行了總結(jié),一起來(lái)看一下。

一、為什么需要數(shù)倉(cāng)分層

假設(shè)將數(shù)倉(cāng)中的表拍平,沒(méi)有分層概念,只進(jìn)行簡(jiǎn)單的數(shù)據(jù)清洗后直接應(yīng)用于數(shù)據(jù)分析,會(huì)出現(xiàn)什么問(wèn)題:

  • 數(shù)據(jù)復(fù)雜性增加:數(shù)倉(cāng)中的數(shù)據(jù)通常來(lái)自不同的源系統(tǒng),具有不同的結(jié)構(gòu)和語(yǔ)義。如果沒(méi)有分層,直接將所有表拍平存儲(chǔ),會(huì)導(dǎo)致數(shù)據(jù)復(fù)雜性增加,難以理解和維護(hù)。分層可以提供邏輯組織和結(jié)構(gòu)化,使數(shù)據(jù)的使用更加可控和可理解。
  • 數(shù)據(jù)一致性下降:在沒(méi)有分層的情況下,數(shù)據(jù)的清洗和整合過(guò)程可能不夠嚴(yán)格和完善,容易導(dǎo)致數(shù)據(jù)的不一致和錯(cuò)誤。分層可以在集成層進(jìn)行統(tǒng)一的數(shù)據(jù)清洗和轉(zhuǎn)換,確保數(shù)據(jù)的一致性和準(zhǔn)確性。
  • 數(shù)據(jù)查詢(xún)效率低下:當(dāng)所有表都被拍平存儲(chǔ)時(shí),數(shù)據(jù)的訪問(wèn)變得復(fù)雜且低效。數(shù)據(jù)分析需要從大量扁平化的表中提取所需的數(shù)據(jù),會(huì)增加查詢(xún)開(kāi)銷(xiāo)和時(shí)間。而通過(guò)分層結(jié)構(gòu),可以按需訪問(wèn)和提取數(shù)據(jù),提高查詢(xún)效率。
  • 業(yè)務(wù)需求定制性差:沒(méi)有分層的數(shù)倉(cāng)往往無(wú)法根據(jù)特定業(yè)務(wù)需求進(jìn)行定制化的數(shù)據(jù)提取和分析。不同業(yè)務(wù)部門(mén)或角色的需求各異,如果沒(méi)有分層,很難滿(mǎn)足不同用戶(hù)對(duì)數(shù)據(jù)的定制化需求。
  • 數(shù)據(jù)安全隱患:沒(méi)有分層可能導(dǎo)致缺乏對(duì)敏感數(shù)據(jù)的有效管理和保護(hù)。數(shù)據(jù)倉(cāng)庫(kù)中可能包含敏感信息,如個(gè)人身份信息等,沒(méi)有分層會(huì)增加數(shù)據(jù)泄露和濫用的風(fēng)險(xiǎn)。

因此,進(jìn)行數(shù)據(jù)倉(cāng)庫(kù)分層是為了解決這些問(wèn)題,提高數(shù)據(jù)質(zhì)量、可用性和應(yīng)用價(jià)值。但是也可能存在以下一些不利影響:

  • 增加實(shí)現(xiàn)復(fù)雜度:數(shù)據(jù)倉(cāng)庫(kù)分層需要額外的設(shè)計(jì)和實(shí)現(xiàn)工作。這可能會(huì)增加開(kāi)發(fā)和維護(hù)成本,對(duì)項(xiàng)目進(jìn)度產(chǎn)生影響。
  • 增加存儲(chǔ)和運(yùn)行成本:分層會(huì)增加數(shù)據(jù)存儲(chǔ)的需求和計(jì)算開(kāi)銷(xiāo),因?yàn)槊總€(gè)層級(jí)都需要獨(dú)立的存儲(chǔ)和處理。如果底層數(shù)據(jù)量較大,會(huì)占用更多的存儲(chǔ)空間和計(jì)算資源。
  • 可能會(huì)引入額外的復(fù)雜性:在設(shè)計(jì)分層結(jié)構(gòu)時(shí),需要考慮何時(shí)使用不同的層級(jí),以及如何確保各層之間的數(shù)據(jù)一致性。如果沒(méi)有很好地規(guī)劃和管理,分層可能會(huì)引入更多的復(fù)雜性,導(dǎo)致系統(tǒng)難以理解和管理。
  • 數(shù)據(jù)更新可能產(chǎn)生延遲:在數(shù)據(jù)更新過(guò)程中,由于需要進(jìn)行轉(zhuǎn)換和加載,數(shù)據(jù)的傳遞和同步可能存在延遲。這可能會(huì)影響到數(shù)據(jù)的實(shí)時(shí)性和準(zhǔn)確性。
  • 需要更多的人員和資源參與:分層結(jié)構(gòu)需要更多的人員和資源參與,包括數(shù)據(jù)架構(gòu)師、ETL開(kāi)發(fā)人員、數(shù)據(jù)質(zhì)量專(zhuān)家、分析師等等。如果企業(yè)需要用到多個(gè)數(shù)據(jù)集,這種需求可能會(huì)成為一個(gè)持續(xù)性開(kāi)銷(xiāo)。

二、怎么理解數(shù)倉(cāng)分層

當(dāng)我們處理大量的數(shù)據(jù)時(shí),數(shù)倉(cāng)分層可以幫助我們更好地組織和管理這些數(shù)據(jù)。就像一個(gè)圖書(shū)館一樣,我們把書(shū)籍按照不同的類(lèi)型和主題分到不同的書(shū)架上,這樣方便我們找到需要的書(shū)。

在數(shù)倉(cāng)中,我們也需要對(duì)數(shù)據(jù)進(jìn)行分類(lèi)和整理。分層就像是給數(shù)據(jù)分類(lèi),并將其放在不同的存儲(chǔ)位置。比如,底層是原始數(shù)據(jù),這就相當(dāng)于圖書(shū)館的藏書(shū)庫(kù)房;然后上層是經(jīng)過(guò)清洗和整理后的數(shù)據(jù),就像圖書(shū)館的閱覽室;再往上是加工過(guò)的數(shù)據(jù),比如計(jì)算出的統(tǒng)計(jì)數(shù)據(jù)或者分析結(jié)果,就像圖書(shū)館的參考書(shū)區(qū)。

分層的好處是讓我們更有效地使用數(shù)據(jù)。想象一下,如果所有的書(shū)都亂七八糟地堆在一起,我們要找一本特定的書(shū)會(huì)非常困難。但如果我們按照分類(lèi)放置在不同的書(shū)架上,我們只需去對(duì)應(yīng)的書(shū)架找就可以了。

同樣地,當(dāng)我們需要特定的數(shù)據(jù)時(shí),分層讓我們能夠迅速定位到所需數(shù)據(jù)的位置。如果我們只需要原始數(shù)據(jù),我們就去底層找;如果我們需要經(jīng)過(guò)整理的數(shù)據(jù),我們就去上層找;如果我們對(duì)數(shù)據(jù)做更深入的分析,我們就去更高層找。

總之,數(shù)倉(cāng)分層幫助我們更好地組織和管理數(shù)據(jù),使我們能夠更輕松地找到需要的數(shù)據(jù),而不必浪費(fèi)時(shí)間去查找與我們目標(biāo)無(wú)關(guān)的數(shù)據(jù)。這樣我們可以更高效地進(jìn)行數(shù)據(jù)分析和利用。

三、數(shù)倉(cāng)一般分為哪些層

1. 貼源數(shù)據(jù)層:ODS(Operational Data Store)

ODS 層是位于原始數(shù)據(jù)源和數(shù)據(jù)倉(cāng)庫(kù)中間的一個(gè)層級(jí)。它主要用于接收和存儲(chǔ)來(lái)自多個(gè)源系統(tǒng)的原始操作性數(shù)據(jù)。ODS 層的數(shù)據(jù)通常以粒度較細(xì)的形式存儲(chǔ),以支持實(shí)時(shí)或準(zhǔn)實(shí)時(shí)的數(shù)據(jù)處理需求。數(shù)據(jù)從 ODS 層可以被抽取到 DWD 層進(jìn)行進(jìn)一步的加工和轉(zhuǎn)換。

為了考慮后續(xù)可能需要追溯數(shù)據(jù)問(wèn)題,因此對(duì)于這一層就不建議做過(guò)多的數(shù)據(jù)清洗工作,原封不動(dòng)地接入原始數(shù)據(jù)即可,至于數(shù)據(jù)的去噪、去重、異常值處理等過(guò)程可以放在后面的DWD層來(lái)做。

落地方法:大多直接用數(shù)據(jù)同步工具直接抽取過(guò)去即可。例如:kettle、DataX、NIFI、阿里DTS、DataPipeline等等。這些工具通常支持增量抽取和全量抽取的方式,并提供數(shù)據(jù)質(zhì)量控制和監(jiān)控的功能。

2. 數(shù)據(jù)明細(xì)層:DWD(Data Warehouse Detail)

DWD 層位于數(shù)據(jù)倉(cāng)庫(kù)架構(gòu)的核心位置。它主要用于存儲(chǔ)經(jīng)過(guò)清洗、標(biāo)準(zhǔn)化和整合的事實(shí)數(shù)據(jù)和維度數(shù)據(jù),以支持多維分析和報(bào)表查詢(xún)等業(yè)務(wù)需求。DWD 層通常包含企業(yè)數(shù)據(jù)模型(Enterprise Data Model,EDM)或主數(shù)據(jù)模型(Master Data Model,MDM)的實(shí)現(xiàn)。DWD 層中的數(shù)據(jù)可以按照不同的業(yè)務(wù)主題進(jìn)行建模,通過(guò)事實(shí)表和維度表的關(guān)聯(lián),構(gòu)建多維查詢(xún)和分析模型。

DWD 層的主要特點(diǎn)包括:

  • 面向主題:DWD 層是面向業(yè)務(wù)主題的,即根據(jù)不同的業(yè)務(wù)領(lǐng)域或主題進(jìn)行建模。每個(gè)主題通常對(duì)應(yīng)一個(gè)或多個(gè)事實(shí)表和一組維度表。
  • 維度建模:DWD 層采用維度建模方法,即將維度屬性和事實(shí)度量分開(kāi)建模,以實(shí)現(xiàn)靈活的查詢(xún)和分析。
  • 數(shù)據(jù)清洗和標(biāo)準(zhǔn)化:DWD 層對(duì)數(shù)據(jù)進(jìn)行清洗、標(biāo)準(zhǔn)化和去重等處理,以確保數(shù)據(jù)的質(zhì)量和一致性。
  • 歷史數(shù)據(jù)保留:DWD 層通常會(huì)保留歷史數(shù)據(jù),以支持時(shí)間序列分析和趨勢(shì)預(yù)測(cè)等業(yè)務(wù)需求。
  • 數(shù)據(jù)集成和處理:DWD 層可以集成來(lái)自不同數(shù)據(jù)源的數(shù)據(jù),并進(jìn)行加工和轉(zhuǎn)換,以滿(mǎn)足業(yè)務(wù)需求。這包括數(shù)據(jù)抽取、轉(zhuǎn)換和加載(ETL)等過(guò)程。

3. 數(shù)據(jù)中間層:DWM(Data Warehouse Master)

DWM 層是在 DWD 層之上的一個(gè)邏輯層級(jí),它主要用于實(shí)現(xiàn)業(yè)務(wù)主題的匯總和聚合。DWM 層的數(shù)據(jù)通常以更高的粒度或經(jīng)過(guò)預(yù)計(jì)算的形式存儲(chǔ),以提供更高效的數(shù)據(jù)查詢(xún)和分析性能。DWM 層可以根據(jù)業(yè)務(wù)需求進(jìn)行靈活的數(shù)據(jù)聚合和匯總,以滿(mǎn)足不同層次和角度的數(shù)據(jù)分析需求。

在實(shí)際計(jì)算中,如果直接從DWD或者ODS計(jì)算出寬表的統(tǒng)計(jì)指標(biāo),會(huì)存在計(jì)算量太大并且維度太少的問(wèn)題,因此一般的做法是,在DWM層先計(jì)算出多個(gè)小的中間表,然后再拼接成一張DWS的寬表。由于寬和窄的界限不易界定,也可以去掉DWM這一層,只留DWS層,將所有的數(shù)據(jù)再放在DWS亦可。

4. 維度層:DIM(Dimension)

DIM 層是獨(dú)立于事實(shí)表的維度信息存儲(chǔ)層。它用于存儲(chǔ)描述性數(shù)據(jù)或分類(lèi)信息,如客戶(hù)、產(chǎn)品、時(shí)間、地點(diǎn)等。DIM 層中的維度表可以與事實(shí)表進(jìn)行關(guān)聯(lián),以支持多維查詢(xún)和分析。DIM 層的數(shù)據(jù)通常比較穩(wěn)定且經(jīng)常被查詢(xún),可以作為 DWD 和 DWM 層的共享維度表。

5. 數(shù)據(jù)服務(wù)層:DWS(Data Warehouse Service)

DWS 層是位于數(shù)據(jù)倉(cāng)庫(kù)頂層的服務(wù)層,它主要用于向上層應(yīng)用提供數(shù)據(jù)訪問(wèn)接口和服務(wù)。DWS層會(huì)基于DWD層上的基礎(chǔ)數(shù)據(jù)整合,匯總,分析成某一主題域的服務(wù)數(shù)據(jù),一般是寬表。

DWS 層可以提供數(shù)據(jù)抽取、報(bào)表查詢(xún)、數(shù)據(jù)可視化、數(shù)據(jù)挖掘、數(shù)據(jù)科學(xué)模型服務(wù)等。DWS 層通常通過(guò)提供標(biāo)準(zhǔn)化的數(shù)據(jù)接口和服務(wù),將數(shù)據(jù)倉(cāng)庫(kù)的功能和價(jià)值最大程度地展示給用戶(hù)和應(yīng)用系統(tǒng)。

6. 數(shù)據(jù)應(yīng)用層:ADS(Application Data Store)

存放數(shù)據(jù)產(chǎn)品個(gè)性化的統(tǒng)計(jì)指標(biāo),根據(jù)明細(xì)層、匯總層及維表數(shù)據(jù)加工生成。

四、數(shù)據(jù)分層原則

為了提高數(shù)據(jù)倉(cāng)庫(kù)的可維護(hù)性、可擴(kuò)展性和數(shù)據(jù)一致性,同時(shí)也能為分析人員提供更簡(jiǎn)單、完整、集成的數(shù)據(jù),優(yōu)化數(shù)據(jù)分析的效率和準(zhǔn)確性。數(shù)據(jù)分層應(yīng)遵循以下原則:

  • 最小化底層業(yè)務(wù)變動(dòng)與上層需求變動(dòng)的沖擊:通過(guò)使用自上而下的建設(shè)方法,將獨(dú)立于具體業(yè)務(wù)系統(tǒng)的通用模型和邏輯引入到基礎(chǔ)數(shù)據(jù)層中。這樣,在底層業(yè)務(wù)系統(tǒng)發(fā)生變動(dòng)時(shí),對(duì)上層數(shù)據(jù)模型和分析過(guò)程的影響將被最小化,因?yàn)檫@些變動(dòng)只需在基礎(chǔ)數(shù)據(jù)層進(jìn)行相應(yīng)的調(diào)整和維護(hù)。
  • 高內(nèi)聚松耦合:在數(shù)據(jù)倉(cāng)庫(kù)中,主題內(nèi)部的數(shù)據(jù)應(yīng)該高度內(nèi)聚,即具有明確的業(yè)務(wù)含義和相關(guān)性。同時(shí),各個(gè)主題之間的數(shù)據(jù)應(yīng)該松耦合,即它們之間的關(guān)聯(lián)應(yīng)該基于清晰的維度關(guān)系而不是直接的表結(jié)構(gòu)依賴(lài)。這樣可以提高數(shù)據(jù)模型的靈活性和可擴(kuò)展性,方便根據(jù)需要進(jìn)行數(shù)據(jù)調(diào)整和變動(dòng)。
  • 構(gòu)建倉(cāng)庫(kù)基礎(chǔ)數(shù)據(jù)層:基礎(chǔ)數(shù)據(jù)層是數(shù)據(jù)倉(cāng)庫(kù)的核心,負(fù)責(zé)整合和存儲(chǔ)底層業(yè)務(wù)數(shù)據(jù),并為上層應(yīng)用程序提供統(tǒng)一的數(shù)據(jù)接口。通過(guò)將基礎(chǔ)數(shù)據(jù)層與上層應(yīng)用開(kāi)發(fā)分離,可以實(shí)現(xiàn)并行的大規(guī)模倉(cāng)庫(kù)開(kāi)發(fā),并保持倉(cāng)庫(kù)層次的清晰性和數(shù)據(jù)一致性。

五、數(shù)倉(cāng)分層的價(jià)值

1. 減少重復(fù)建設(shè),提升數(shù)據(jù)應(yīng)用效率

數(shù)據(jù)倉(cāng)庫(kù)的不同層次可以根據(jù)需要提供不同粒度的數(shù)據(jù),這樣在開(kāi)發(fā)應(yīng)用時(shí)就不必重復(fù)構(gòu)建相同的數(shù)據(jù)表??梢怨?jié)省時(shí)間和資源,提高數(shù)據(jù)應(yīng)用的效率。

eg:公司有多個(gè)部門(mén)需要使用相同的銷(xiāo)售數(shù)據(jù)進(jìn)行報(bào)告和分析。

如果沒(méi)有數(shù)據(jù)倉(cāng)庫(kù)的分層架構(gòu),每個(gè)部門(mén)可能會(huì)獨(dú)立地從原始數(shù)據(jù)中構(gòu)建自己的報(bào)表和分析表。而有了分層架構(gòu),可以在底層的數(shù)據(jù)層構(gòu)建一次報(bào)表,然后其他部門(mén)只需在上層的應(yīng)用層基礎(chǔ)上構(gòu)建自己的應(yīng)用表,避免了重復(fù)建設(shè)。

2. 方便數(shù)據(jù)血緣追蹤

通過(guò)分層架構(gòu),數(shù)據(jù)在不同層次間有清晰的關(guān)系,當(dāng)應(yīng)用層數(shù)據(jù)出現(xiàn)問(wèn)題時(shí),我們可以追蹤到它所關(guān)聯(lián)的底層數(shù)據(jù)表,這樣可以快速定位問(wèn)題,避免像查找蜘蛛網(wǎng)一樣費(fèi)時(shí)費(fèi)力。

eg:一個(gè)數(shù)據(jù)科學(xué)團(tuán)隊(duì)正在分析一家電商公司的用戶(hù)購(gòu)買(mǎi)行為數(shù)據(jù)。他們發(fā)現(xiàn)在數(shù)據(jù)倉(cāng)庫(kù)的應(yīng)用層表中有一些異常數(shù)據(jù),需要找到這些異常數(shù)據(jù)的來(lái)源。

通過(guò)數(shù)據(jù)倉(cāng)庫(kù)的分層架構(gòu),他們可以追溯到底層的原始數(shù)據(jù)表,查看數(shù)據(jù)的采集、轉(zhuǎn)換和加載過(guò)程,最終可以快速確定異常數(shù)據(jù)的來(lái)源,并快準(zhǔn)確決問(wèn)題。

3. 確保數(shù)據(jù)一致性和準(zhǔn)確性

通過(guò)分層架構(gòu),數(shù)據(jù)倉(cāng)庫(kù)會(huì)對(duì)數(shù)據(jù)進(jìn)行清洗、整合和匯總,確保數(shù)據(jù)的一致性和準(zhǔn)確性。這樣我們就可以放心地使用這些數(shù)據(jù)進(jìn)行分析和決策。

eg:企業(yè)有多個(gè)分銷(xiāo)渠道,每個(gè)渠道都會(huì)收集銷(xiāo)售數(shù)據(jù)并報(bào)送給總部。

如果沒(méi)有數(shù)據(jù)倉(cāng)庫(kù)的分層架構(gòu),總部可能會(huì)面臨來(lái)自不同渠道的沖突或重復(fù)的數(shù)據(jù)。有了分層架構(gòu),可以在底層的數(shù)據(jù)層進(jìn)行數(shù)據(jù)清洗和整合,確保每個(gè)渠道報(bào)送的數(shù)據(jù)經(jīng)過(guò)驗(yàn)證和校準(zhǔn)后才進(jìn)入上層的匯總表或應(yīng)用表,從而保證了數(shù)據(jù)的一致性和準(zhǔn)確性。

4. 提供更好的性能和響應(yīng)時(shí)間

不同層次的數(shù)據(jù)倉(cāng)庫(kù)可根據(jù)需求進(jìn)行性能調(diào)優(yōu)。底層原始數(shù)據(jù)層可以容納大量數(shù)據(jù)并提供更低的延遲,而上層的匯總層和應(yīng)用層可以提供更高的性能和更快的查詢(xún)響應(yīng)時(shí)間。

eg:金融機(jī)構(gòu)需要對(duì)大量的交易數(shù)據(jù)進(jìn)行實(shí)時(shí)風(fēng)險(xiǎn)監(jiān)控和決策支持。

如果使用單一的大型數(shù)據(jù)表存儲(chǔ)所有交易數(shù)據(jù),查詢(xún)可能變得非常耗時(shí)。而通過(guò)數(shù)據(jù)倉(cāng)庫(kù)的分層架構(gòu),可以將原始交易數(shù)據(jù)存儲(chǔ)在底層的數(shù)據(jù)層,然后在上層的應(yīng)用層構(gòu)建針對(duì)風(fēng)險(xiǎn)監(jiān)控和決策支持的匯總表。這樣可以提高查詢(xún)的性能和響應(yīng)時(shí)間,使得風(fēng)險(xiǎn)監(jiān)控和決策支持能夠更加及時(shí)有效地進(jìn)行。

5. 支持多維分析和決策支持

通過(guò)分層架構(gòu),我們可以進(jìn)行多維分析、數(shù)據(jù)挖掘和決策支持。應(yīng)用層的表提供更高級(jí)別和精細(xì)化的數(shù)據(jù)指標(biāo)和度量標(biāo)準(zhǔn),幫助我們深入分析數(shù)據(jù)并做出明智的決策。

eg:零售企業(yè)需要分析銷(xiāo)售數(shù)據(jù)以了解不同產(chǎn)品在不同地區(qū)和不同時(shí)間段的銷(xiāo)售情況。

通過(guò)數(shù)據(jù)倉(cāng)庫(kù)的分層架構(gòu),可以在底層的原始數(shù)據(jù)層存儲(chǔ)每個(gè)銷(xiāo)售事務(wù)的細(xì)節(jié),然后在上層的應(yīng)用層構(gòu)建多維聚合表,以便進(jìn)行跨產(chǎn)品、地區(qū)和時(shí)間的分析。這樣企業(yè)可以更好地了解銷(xiāo)售趨勢(shì),優(yōu)化供應(yīng)鏈和銷(xiāo)售策略。

6. 提高數(shù)據(jù)共享和協(xié)作

數(shù)據(jù)倉(cāng)庫(kù)的分層結(jié)構(gòu)使得不同團(tuán)隊(duì)和部門(mén)可以共享數(shù)據(jù)和結(jié)果。不同團(tuán)隊(duì)可以基于相同數(shù)據(jù)建立自己的應(yīng)用表,方便數(shù)據(jù)共享和協(xié)作,避免了重復(fù)工作和獨(dú)立運(yùn)營(yíng)的情況。

eg:醫(yī)療機(jī)構(gòu)需要在臨床、科研和管理等多個(gè)部門(mén)之間共享病例數(shù)據(jù)。

通過(guò)數(shù)據(jù)倉(cāng)庫(kù)的分層架構(gòu),可以在底層的數(shù)據(jù)層存儲(chǔ)原始病例數(shù)據(jù),然后在每個(gè)部門(mén)的應(yīng)用層構(gòu)建特定的分析表。這樣不同部門(mén)可以共享數(shù)據(jù),并且可以根據(jù)自己的需求定制應(yīng)用表,促進(jìn)部門(mén)間的數(shù)據(jù)共享和協(xié)作。

本文由 @數(shù)據(jù)產(chǎn)品探索家 原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理,未經(jīng)授權(quán),禁止轉(zhuǎn)載

題圖來(lái)自Unsplash,基于CC0協(xié)議

該文觀點(diǎn)僅代表作者本人,人人都是產(chǎn)品經(jīng)理平臺(tái)僅提供信息存儲(chǔ)空間服務(wù)。

更多精彩內(nèi)容,請(qǐng)關(guān)注人人都是產(chǎn)品經(jīng)理微信公眾號(hào)或下載App
評(píng)論
評(píng)論請(qǐng)登錄
  1. 目前還沒(méi)評(píng)論,等你發(fā)揮!