騰訊廣告數(shù)據(jù)系統(tǒng)架構(gòu)介紹_第1頁
騰訊廣告數(shù)據(jù)系統(tǒng)架構(gòu)介紹_第2頁
騰訊廣告數(shù)據(jù)系統(tǒng)架構(gòu)介紹_第3頁
騰訊廣告數(shù)據(jù)系統(tǒng)架構(gòu)介紹_第4頁
騰訊廣告數(shù)據(jù)系統(tǒng)架構(gòu)介紹_第5頁
已閱讀5頁,還剩41頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、 騰訊廣告數(shù)據(jù)系統(tǒng)架構(gòu)介紹揚(yáng)帆起航騰訊廣告簡介國內(nèi) 流量最大(日均約500億PV,百億展現(xiàn))場景最豐富(微信, QQ, 視頻, 新聞等幾十種產(chǎn)品)覆蓋人群最廣泛(超過10億受眾)的互聯(lián)網(wǎng)廣告平臺(tái)騰訊視頻廣告聯(lián)盟廣告微信廣告QQ廣告騰訊新聞、快報(bào)廣告應(yīng)用寶廣告最懂年輕人 的營銷平臺(tái)廣告,也可以是生活的一部 分國內(nèi)移動(dòng)視 頻第一入口用戶覆蓋率第一的安卓應(yīng)用 商店國內(nèi)移動(dòng)咨詢top入口海量優(yōu)質(zhì)APP 月活躍用戶5 億廣告系統(tǒng)架構(gòu)數(shù)據(jù)帶來價(jià)值:模型訓(xùn)練策略機(jī)制報(bào)表和BI分析DMP數(shù)據(jù)管理廣告主 一方數(shù)據(jù)DMP TDC效果歸因曝光點(diǎn)擊廣告系統(tǒng)日志日志關(guān)聯(lián)統(tǒng)計(jì)框架特征工程用戶畫像請求觸發(fā)廣告畫像預(yù)算控制出

2、價(jià)調(diào)節(jié)統(tǒng)計(jì)信息報(bào)表數(shù) 據(jù) 系統(tǒng)初選廣告索引實(shí)驗(yàn) 系統(tǒng)用戶畫像 定向特征質(zhì)量預(yù)估PCTRLITECTRPCVRLITECVR廣告服務(wù)審核業(yè)務(wù)庫API投放端播放精選系收益管理廣告排序統(tǒng)用戶體驗(yàn)流量規(guī)則投放 系統(tǒng)數(shù)據(jù)安全數(shù)據(jù)分析特征工程數(shù)據(jù)安全數(shù)據(jù)分析特征工程數(shù)據(jù)安全數(shù)據(jù)分析任務(wù)的分類分類預(yù)先聚合計(jì)算在線實(shí)時(shí)計(jì)算OLAP優(yōu)點(diǎn)查詢速度快靈活性高缺點(diǎn)靈活性不夠查詢時(shí)計(jì)算量大應(yīng)用場景報(bào)表 Pushmail 統(tǒng)計(jì)特征 預(yù)算控制 出價(jià)調(diào)節(jié)DMPBI多維透視分析SEAGULL基于spark的聚合計(jì)算平臺(tái)(1)業(yè)務(wù)特點(diǎn)一份輸入,多份輸出數(shù)據(jù)量大,每天100多T實(shí)時(shí)性,準(zhǔn)確性實(shí)現(xiàn)方案統(tǒng)一數(shù)據(jù)流配置化計(jì)算邏輯一套代碼

3、解決按key的聚合問題統(tǒng)計(jì)結(jié)果中間表原始數(shù)據(jù)統(tǒng)計(jì)結(jié)果原始數(shù)據(jù)Hive/pig原始數(shù)據(jù)Storm 實(shí)時(shí)計(jì)算mapreduce 離線計(jì)算統(tǒng)一配置統(tǒng)計(jì)結(jié)果Sparkstreaming 實(shí)時(shí)+準(zhǔn)確 統(tǒng)一配置原始數(shù)據(jù)統(tǒng)計(jì)結(jié)果SEAGULL基于spark的聚合計(jì)算平臺(tái)(2).1分鐘聚合.1小時(shí)聚合1天聚合.HBaseN天回歸計(jì)算入庫.日志切分HDFSHDFS優(yōu)化:spark內(nèi)存做cache,命中率96%先計(jì)算diff再寫hbase,寫入量減少93%分鐘級調(diào)度,時(shí)間維度上資源均勻消耗不采用spark window,避免輸出任務(wù)batch之間 依賴,在集群抖動(dòng)時(shí)快速恢復(fù)利用hbase version,避免新數(shù)

4、據(jù)被老數(shù)據(jù)覆蓋準(zhǔn)確:輸入輸出都是hdfs目錄結(jié)構(gòu)做checkpoint實(shí)時(shí):在spark中執(zhí)行分鐘級別的mapreduce常駐進(jìn)程,分層調(diào)度推測執(zhí)行,避免struggle會(huì)有很多的推測備份任務(wù)被殺掉調(diào)度優(yōu)化(1)優(yōu)化思路利用 streaming周期任務(wù)的特點(diǎn),動(dòng)態(tài)評估每個(gè) executor 的吞吐量能力強(qiáng)的節(jié)點(diǎn)分配大任務(wù),能力弱的節(jié)點(diǎn)分配小任務(wù)實(shí)現(xiàn)a) RDD 及 NewHadoopRDD:獲取每個(gè) task 對應(yīng)的 HDFS 文件的 大小并上報(bào)b) 在每個(gè) batch 結(jié)束時(shí),分析 executor 處理任務(wù)的情況,動(dòng)態(tài)更新到 driver 端的記錄里c) 按照 executor 的 吞吐量

5、排序在任務(wù)列表里選擇合適的任務(wù)調(diào)度優(yōu)化(2)Executor1 (4MB/s)Executor2(1MB/s)Task (32M)Task(128M)Task (32M)Task(128M)Executor1 (4MB/s)Executor2 (1MB/s)Task (32M)Task (128M)Task (128M)Task (32M)Executor1 (8MB/s)Executor2 (4MB/s)Executor3 (2MB/s)Executor4 (1MB/s)Task1 (128M)Task2 (120M)Task3 (110M)Task5 (80M)Task7 (75M)Tas

6、k4 (96M)Task6 (78M)Task8 (70M)1234選擇最適合 executor 3 執(zhí)行的任務(wù) * 5 = 3調(diào)度優(yōu)化(3)性能提升a) 推測任務(wù)減少 86.57%b) 計(jì)算延遲降低 20.96%c) 少用 1/10 資源預(yù)先聚合計(jì)算在線實(shí)時(shí)計(jì)算從萬億條數(shù)據(jù)中選擇符合條件的數(shù)據(jù),計(jì)算聚合結(jié)果查詢用戶年齡性別的分布SELECT age, gender, COUNT(*) FROM log WHERE advertiser_id=123 group by age, gender;查詢不同曝光次數(shù)的用戶的占比、點(diǎn)擊率、消耗等 SELECT exposure_num, COUNT(*

7、) as user_num,SUM(sum_click) / SUM(exposure_num) as click_rate, SUM(sum_cost) AS total_cost FROM(SELECT user_id, COUNT(*) AS exposure_num, SUM(click_count) AS sum_click, SUM(cost) AS sum_costFROM logGROUP BY user_id) temp_table GROUP BY exposure_num;要解決的問題 - SQL舉例流程描述原始數(shù) 據(jù)集過濾 Where分組 Group by聚合 Sum|

8、Cou nt|結(jié)果流程描述:從萬億條數(shù)據(jù)中選擇符合條件的數(shù)據(jù),計(jì)算聚合結(jié)果為了提高查詢速度,就需要預(yù)先將數(shù)據(jù)整理成適合查詢的格式兩種數(shù)據(jù)模型平鋪結(jié)構(gòu):寬表,其中每個(gè)cell可以是term list,可以有正排,倒排嵌套結(jié)構(gòu):proto buffer,正排存儲(chǔ)類似于dremel/parquet,沒法倒排Message pageview optional UserProfile user; repeated Position pos repeated Impression imps optional Advertisement ad;repeated Click clicks optional B

9、illInfo bill;索引文件設(shè)計(jì)(1)全局信息索引數(shù)據(jù)結(jié)構(gòu):查詢條 件Where age=20 and age=20 and age30GROUP BY gender;倒排文檔ID在文件內(nèi)編碼,減少值域范圍稀疏數(shù)據(jù)保存array,稠密數(shù)據(jù)保存bitmap采用roaring bitmap進(jìn)行自適配實(shí)現(xiàn)高效的bitmap與array之間交并差的計(jì)算索引文件設(shè)計(jì)(2)對于不同 的數(shù)據(jù)特 征,適用 于不同的 編碼算法定長類型編碼:定長數(shù)組編碼、列值個(gè)數(shù)索引編碼、定長列表編碼、變長列表編碼、run length encordingString類型編碼:單string長度索引編碼、多string長度

10、索引編碼、單string列表編碼、多string列表編碼簡單字典編碼:適用列值重復(fù)較多的string類型Huffman字典編碼:列值分布不均勻情況下對簡單字典編碼的優(yōu)化二進(jìn)制String編碼:較特殊的二進(jìn)制數(shù)據(jù)類型正排減少磁盤IO訪問-列存儲(chǔ)最大程度節(jié)省磁盤空間-編碼壓縮通過采樣進(jìn)行比較,自動(dòng)確定最優(yōu) 編碼方案1532661612112718006004002000請求日志曝光日志Dragon parquet recordio138 383254 2895004003002001000請求日志曝光日志文件大?。▎挝唬篗B)寫入時(shí)間(單位:秒) 7000.10.51.62.13.44.56.78

11、6420讀一列讀三列讀十列數(shù)據(jù)讀取耗時(shí)(單位:秒)6.76.7嵌套結(jié)構(gòu)列式存儲(chǔ)格式dragon(1)Pivot需要支持直接查原始日志proto buffer格式嵌套結(jié)構(gòu),無法建倒排針對稀疏的proto buffer數(shù)據(jù)進(jìn)行優(yōu)化谷歌 dremel vs 開源parquet vs 自研 dragon嵌套結(jié)構(gòu)列式存儲(chǔ)格式dragon(2)存儲(chǔ):同列數(shù)據(jù)連續(xù)存儲(chǔ),壓縮效率高存儲(chǔ):不保存空節(jié)點(diǎn)的rlevel和dlevel寫:暫時(shí)為空的節(jié)點(diǎn)cache rlevel dlevel寫:Flush cache的時(shí)候只flush到下層節(jié)點(diǎn)讀:讀取數(shù)據(jù)只需讀取需要的列,節(jié)省磁盤IO讀:熱點(diǎn)hash map優(yōu)化為查表

12、讀:重復(fù)計(jì)算前置讀:自適應(yīng)分級緩存,棧上小內(nèi)存分配建索引列存儲(chǔ)利用SSD進(jìn)行檢索,而不是內(nèi)存利用HADOOP集群構(gòu)建索引PIVOT-實(shí)時(shí)多維透視分析引擎業(yè)務(wù)特點(diǎn)萬億條數(shù)據(jù)秒級響應(yīng)Tdbank增量文件Sparkstreaming增量索引全量文件mapreduce全量索引新數(shù)據(jù)撿測索引構(gòu)建數(shù)據(jù)拉取數(shù)據(jù)清理任務(wù)管理離線 計(jì)算檢索節(jié)點(diǎn)檢索節(jié)點(diǎn)檢索節(jié)點(diǎn)聚合節(jié)點(diǎn)聚合節(jié)點(diǎn)聚合節(jié)點(diǎn)路由表元數(shù)據(jù)管理hbase配置表版本表在線 檢索Group by age, gender, city如果直接排序:每次比較age_gender_city,而前綴基本一致,浪費(fèi)計(jì)算量Map太大,log(N)的插入操作也很耗時(shí)按照列的順

13、序分層計(jì)算先group by age,然后在每個(gè)age里面group by gender,以此類推每次查找和插入都只操作一個(gè)很小的map遍歷正排數(shù)據(jù)實(shí)現(xiàn)分組基于正排數(shù)據(jù),計(jì)算量跟命中的doc數(shù)量成正比基于倒排的roaring bitmap,進(jìn)行集合求交計(jì)算量有上限,在命中doc很多時(shí) 會(huì)更快僅適用于group分組數(shù)量比較小的情況,否則需要求交的次數(shù)太多基于倒排數(shù)據(jù)實(shí)現(xiàn)分組倒排分層Group By集合求交數(shù)據(jù)分析特征工程數(shù)據(jù)安全廣告業(yè)務(wù)多模型優(yōu)化廣告庫初選精選百萬級廣告百級廣告廣告展示個(gè)級廣告用戶 + Context廣告特征其他候選廣告列表初選模型: 相似人群擴(kuò)展,自動(dòng)定向,動(dòng)態(tài)創(chuàng)意,商品推薦,

14、litectr, litecvr, 精選模型:pctr,pcvr, 負(fù)反饋,模型優(yōu)化不僅僅只是模型訓(xùn)練ConfigurationServing InfrastructureData CollectionFeature ExtractionData ValidationMLCodeMonitoringAnalysis ToolsProcess Management ToolsMachine ResourceManagement需求1: 從業(yè)務(wù)角度如何提升特征工作迭代效率?特征生產(chǎn)特征存儲(chǔ)特征調(diào)研特征上線模型方特征工作迭代內(nèi)容已經(jīng)有哪些特征? (有哪些用戶特征、統(tǒng)計(jì)特征、廣告特征等等)特征數(shù)據(jù)質(zhì)量

15、如何? (數(shù)據(jù)分布是否符合預(yù)期?是否存在臟數(shù)據(jù)?)有沒有其他模型嘗試過?(離線調(diào)研和在線調(diào)研效果如何)快速地嘗試新的特征(走通特征生產(chǎn)、調(diào)研和在線應(yīng)用流程)模型方如何看待特征工作?只關(guān)注如何使用特征,即簡單配置要什么特征就可以完成特征調(diào)研、上線等工作不關(guān)注特征數(shù)據(jù)如何流通、存儲(chǔ)、訪問計(jì)算計(jì)算邏輯(如特征Join)能否盡量少寫代碼,簡單配置復(fù)用公共組件需求2: 從系統(tǒng)角度如何提高特征工作資源利用率?特征 生產(chǎn)特征 存儲(chǔ)特征 調(diào)研模型 訓(xùn)練模型 預(yù)測特征抽取生成訓(xùn)練樣本集特征抽取生成待預(yù)測樣本特征補(bǔ)錄生成補(bǔ)錄訓(xùn)練樣本集模型1特征 生產(chǎn)特征 存儲(chǔ)特征 調(diào)研模型 訓(xùn)練模型 預(yù)測特征抽取生成訓(xùn)練樣本集特

16、征抽取生成待預(yù)測樣本特征補(bǔ)錄生成補(bǔ)錄訓(xùn)練樣本集模型M多模型優(yōu)化在特征工作上高度重疊都需要進(jìn)行特征生產(chǎn)、存儲(chǔ)、特征補(bǔ)錄并進(jìn)行離線調(diào)研、離線特征抽取生成訓(xùn)練樣本集、在 線特征抽取生成待預(yù)測樣本存儲(chǔ)和計(jì)算資源上能否共享使用并優(yōu)化,提升資源利用率?需求3:如何避免訓(xùn)練和預(yù)測的偏差訓(xùn)練和預(yù)測的偏差 指的是訓(xùn)練階段和預(yù)測階段的效果差異(如線下AUC和在線AUC相差很大)引起訓(xùn)練和預(yù)測的偏差的可能原因 訓(xùn)練和預(yù)測數(shù)據(jù)處理邏輯(如特征抽取等)是否存在不同 由于訓(xùn)練和預(yù)測時(shí)間存在差異,數(shù)據(jù)上是否有變化特征工程平臺(tái)模型多數(shù)據(jù)量大節(jié)省機(jī)器成本提升特征調(diào)研效率共享特征數(shù)據(jù)避免訓(xùn)練和預(yù)測的 偏差2.特征工程1.數(shù)據(jù)分析

17、3.數(shù)據(jù)安全一方數(shù)據(jù)日志數(shù)據(jù)用戶畫像廣告畫像統(tǒng)計(jì)特征樣本標(biāo)記數(shù)據(jù)校驗(yàn)元數(shù)據(jù)管理特征數(shù)據(jù)倉庫特征計(jì)算平臺(tái)Rocksflow列式存儲(chǔ)任務(wù)管理結(jié)果緩存特征拼接任務(wù)補(bǔ)錄版本管理特征提取、 過濾、清洗訓(xùn)練樣本離線訓(xùn)練在線數(shù)據(jù)服務(wù) DataHub模型服務(wù)廣告檢索一致性校驗(yàn)前文統(tǒng)計(jì)特征生產(chǎn)框架-CF2CF2 Context Feature Computation Framework支持按照配置的進(jìn)行統(tǒng)計(jì)的通用系統(tǒng)框架使用者只需要配置如下參數(shù)即可完成統(tǒng)計(jì)源數(shù)據(jù)輸入,如HDFS路徑Interval和Window配置信息聚合邏輯,類似于Spark UDAF函數(shù)統(tǒng)計(jì)數(shù)據(jù)輸出,如HDFS路徑特征舉例 (用戶為主體)特

18、征舉例( 非用戶為主體)每小時(shí)統(tǒng)計(jì)最近3小時(shí)、每天統(tǒng)計(jì)最近14天的曝光量、點(diǎn)擊量每天統(tǒng)計(jì)每個(gè)商品ID最近7天或者14天的曝光數(shù)和點(diǎn)擊數(shù)每天統(tǒng)計(jì)用戶在App激活場景下最近14天的點(diǎn)擊量、轉(zhuǎn)化量每小時(shí)統(tǒng)計(jì)每個(gè)廣告ID最近14天的曝光量、點(diǎn)擊量每天統(tǒng)計(jì)用戶在H5下單場景下最近14天的點(diǎn)擊量、轉(zhuǎn)化量每小時(shí)統(tǒng)計(jì)用戶最近7天的歷史轉(zhuǎn)化廣告ID列表、商品ID列表CF2存儲(chǔ)HBase 表結(jié)構(gòu)設(shè)計(jì)interval_table_1_MINrowkeycf:dcf:fT1mT30mT60m.W30mW60mT1mT30mT60m.W30mW60mk1interval_table_1_HOURrowkeycf:dcf

19、:fT1hT2hT24h.W6hW24hW72hT1hT2hT24h.W6hW24hW72hk1interval_table_1_DAYrowkeycf:dcf:fT1dT2d.W14dT1dT2d.W14dk1CF2計(jì)算之讀取輸入數(shù)據(jù)interval_table_1_MINrowkeycf:dcf:fT1mT30mT60m.W30mW60mT1mT30mT60m.W30mW60mk1k2k3HDFST1mHDFSTHDFS T30mHDFSTHDFS T60m讀取輸入數(shù)據(jù)將數(shù)據(jù)按最細(xì)時(shí)間粒度寫入對應(yīng)的Interval TableCF2計(jì)算之Interval統(tǒng)計(jì)聚合interval_table

20、_1_DAYrowkeycf:dcf:fT1dT2d.W14dT1dT2d.W14dk1interval_table_1_HOURrowkeycf:dcf:fT1hT2hT24h.W6hW24hW72hT1hT2hT24h.W6hW24hW72hk1interval_table_1_MINrowkeycf:dcf:fT1mT60mT120m.W60mT1mT60mT120m.W60mk1CF2計(jì)算之Window統(tǒng)計(jì)聚合統(tǒng)計(jì)結(jié)果輸出interval_table_1_MINrowkeycf:dcf:fT30mT60mT90mW30mW60mT30mT60mT90mW30mW60mk1T90mT90

21、m滑動(dòng)窗口進(jìn)行計(jì)算= 1 +廣告特征生產(chǎn)框架-TerraStore廣告、創(chuàng)意素材廣告數(shù)據(jù)分層級,Advertiser - Campaign - AdGroup - Ad - AdCreativeAdGroup層級里存儲(chǔ)有扣費(fèi)類型、計(jì)費(fèi)類型、優(yōu)化目標(biāo)類型、定向等數(shù)據(jù)AdCreative層級有廣告標(biāo)題、描述、落地頁、圖片素材等數(shù)據(jù)特征應(yīng)用: 從廣告標(biāo)題描述提取分類信息、爬取落地頁提取核心關(guān)鍵詞、從圖片素材上提取美感特征等等廣告特征生產(chǎn)目標(biāo)存儲(chǔ)所有廣告(包括當(dāng)前在線和非在線的廣告)的特征數(shù)據(jù)廣告、創(chuàng)意素材變更,快速地在模型上生效記錄版本變更,避免Training-Serving Skew問題Terr

22、aStore系統(tǒng)實(shí)現(xiàn)實(shí)現(xiàn)原理使用HBase Observer Coprocessor和MVCC生成流水表,確保數(shù)據(jù)和流 水?dāng)?shù)據(jù)一致性Manager模塊讀取各個(gè)HBase Region里的流水?dāng)?shù)據(jù)Manager將變更前后的數(shù)據(jù)有選擇地發(fā)送給特征邏輯處理方特征生產(chǎn)完寫回多版本表,并通過多版本流水?dāng)?shù)據(jù)實(shí)時(shí)發(fā)布上線IDCreativeaA8bB6cC5IDValue1A2, A12C2, C13C3, C2KB6, B5數(shù)據(jù)流水Creative表的一個(gè)Region創(chuàng)意變更數(shù)據(jù)流ManagerWorker1Worker2Worker3URLURLImageB6, B5B6, B5IDCreativebF

23、B6+B6bFB5+B5bFB4+B4IDValue1FA2, A22FC2, C23FC3, C3MFB6, B6數(shù)據(jù)流水Creative_Multiversion表的一個(gè)Region發(fā)布上線FB6, B6b, B6b創(chuàng)意URL變更FB6, B6B6, B5特征倉庫存儲(chǔ)系統(tǒng)U1V8V8V8V8U2V8V8V8V8 UKV8V8V8V8表T版本V8的數(shù)據(jù)F1F2F3FMV1V2U1V1V1V1 U1V2V2V2V8 V8U1V8V8V8 UKV8V8V8.版本V1版本V2版本V8Dragon列式存儲(chǔ),多版本用在特征補(bǔ)錄和數(shù)據(jù)質(zhì)量驗(yàn)證分析F1F2F3FMF1F2F3FMU1V8V8V8V8 U2

24、V8V8V8V8 UKV8V8V8V8在線kv存儲(chǔ),最新版本 用在在線預(yù)測F1F2F3FMU1V6V6V6V6 U2V6UKUKF1F2F3FMU1V7V7V7V7U2V7F1F2F3FMV8V8V8U1V8V8V8U2V8V8V8 UKV8V8V8HBase存儲(chǔ),多版本(N個(gè))用在實(shí)時(shí)的訓(xùn)練樣本集生成特征倉庫存儲(chǔ)系統(tǒng)之多版本說明解決特征數(shù)據(jù)Serving階段和Training階段的一致率,避免Training-Serving Skew表記錄批量更新,Serving階段記錄SeqNo,Training階段檢索對應(yīng)版本時(shí)間序列數(shù)據(jù)更新,Serving階段記錄start_time, end_time,Training階段檢索指定時(shí)間區(qū)間的數(shù)據(jù)T1: V5T2: V3T3: V8T2: V4T4: V2T1: V6SeqNo=1SeqNo=2SeqNo=3TableVersionT1V5T2V3TableVersionT1V5T2 T3 T4V4 V8 V2TableVersionT1V6T2V4T3 T4V8 V2SeqNoTimestampstart_

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論