數(shù)據(jù)管理技術(shù)考試試題及答案_第1頁(yè)
數(shù)據(jù)管理技術(shù)考試試題及答案_第2頁(yè)
數(shù)據(jù)管理技術(shù)考試試題及答案_第3頁(yè)
數(shù)據(jù)管理技術(shù)考試試題及答案_第4頁(yè)
數(shù)據(jù)管理技術(shù)考試試題及答案_第5頁(yè)
已閱讀5頁(yè),還剩20頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

數(shù)據(jù)管理技術(shù)考試試題及答案一、單項(xiàng)選擇題(每題2分,共20分)1.在關(guān)系數(shù)據(jù)庫(kù)中,若屬性集X能唯一確定屬性集Y,且X的任何真子集都不能唯一確定Y,則稱X對(duì)Y的A.完全函數(shù)依賴B.部分函數(shù)依賴C.傳遞函數(shù)依賴D.多值依賴答案:A解析:完全函數(shù)依賴強(qiáng)調(diào)“最小性”,即決定因素X不能再縮減,否則依賴關(guān)系消失。部分依賴則允許決定因素存在冗余屬性,傳遞依賴涉及間接決定,多值依賴描述的是一對(duì)多獨(dú)立關(guān)系,與題干不符。2.某OLTP系統(tǒng)采用兩階段封鎖協(xié)議,事務(wù)T1在時(shí)間t1對(duì)數(shù)據(jù)項(xiàng)Q加共享鎖,事務(wù)T2在時(shí)間t2對(duì)Q加排他鎖且t2>t1,則T2A.立即獲得鎖B.進(jìn)入等待隊(duì)列直到T1釋放鎖C.引發(fā)T1回滾D.引發(fā)T2回滾答案:B解析:共享鎖與排他鎖沖突,兩階段封鎖協(xié)議要求排他請(qǐng)求必須等待已有共享鎖全部釋放,因此T2被阻塞。3.在HDFS中,NameNode收到客戶端寫請(qǐng)求后,第一步動(dòng)作是A.將數(shù)據(jù)流式寫入本地磁盤B.根據(jù)副本策略返回一組DataNode列表C.向客戶端發(fā)送心跳包D.觸發(fā)副本回收線程答案:B解析:NameNode僅維護(hù)元數(shù)據(jù),實(shí)際數(shù)據(jù)流不經(jīng)過它。它根據(jù)機(jī)架感知策略挑選DataNode列表并返回客戶端,客戶端隨后直接與DataNode建立流水線。4.某星型模式事實(shí)表含外鍵列product_key、customer_key、time_key,度量列為sales_amount。若需按“季度”匯總銷售額,應(yīng)A.在事實(shí)表上創(chuàng)建位圖索引B.在time維度表增加quarter屬性并建立rollup索引C.將事實(shí)表分區(qū)鍵改為quarterD.在customer維度表增加quarter屬性答案:B解析:季度是時(shí)間維度上的層次屬性,必須在time維度表中擴(kuò)展,再通過連接實(shí)現(xiàn)匯總;rollup索引可加速groupbyquarter操作。5.在PostgreSQL中,對(duì)JSONB列data建立GIN索引后,下列查詢?nèi)钥赡軣o(wú)法使用索引的是A.SELECT*FROMtblWHEREdata@>'{"tag":"vip"}'B.SELECT*FROMtblWHEREdata->>'name'='Alice'C.SELECT*FROMtblWHEREdata?'tag'D.SELECT*FROMtblWHEREdata#>'{profile,age}'>25答案:D解析:GIN索引支持@>、?、?&、?|等操作符,但#>返回文本,需配合表達(dá)式索引或btree才能加速范圍比較,原生GIN不加速>操作。6.某企業(yè)采用Kafka作為日志總線,TopicA分區(qū)數(shù)為6,消費(fèi)者組G1有8個(gè)實(shí)例,則A.2個(gè)實(shí)例空閑B.6個(gè)實(shí)例空閑C.所有實(shí)例均分配分區(qū)D.觸發(fā)rebalance后可能產(chǎn)生消息重復(fù)答案:A解析:Kafka以分區(qū)為分配單位,每個(gè)分區(qū)只能被組內(nèi)一個(gè)實(shí)例消費(fèi),6個(gè)分區(qū)最多6個(gè)實(shí)例工作,剩余2個(gè)空閑;重復(fù)消費(fèi)由提交偏移策略決定,與實(shí)例數(shù)無(wú)關(guān)。7.在MongoDB分片集群中,要使得對(duì)字段uid的范圍查詢能被路由到盡可能少的分片,應(yīng)A.使用哈希分片鍵{uid:"hashed"}B.使用范圍分片鍵{uid:1}并選擇單調(diào)遞增前綴C.使用復(fù)合分片鍵{uid:1,ts:1}且uid放第一位D.使用{_id:"hashed"}答案:C解析:范圍查詢需連續(xù)性,哈希分片會(huì)打散數(shù)據(jù)導(dǎo)致廣播查詢;復(fù)合分片鍵首字段為uid,可讓mongos通過前綴定位到數(shù)據(jù)塊,減少掃描分片。8.某數(shù)據(jù)倉(cāng)庫(kù)采用雪花模型,將產(chǎn)品維表拆成product→category→department三層。若查詢需department_name,則A.必須連接三張表B.可在department表建立位圖連接索引避免連接C.可在product表冗余department_name列D.無(wú)法使用星型轉(zhuǎn)換答案:C解析:雪花模型增加連接開銷,物理上可通過冗余列實(shí)現(xiàn)“反雪花”優(yōu)化,降低查詢復(fù)雜度;位圖連接索引在Oracle中可用,但非通用方案。9.在MySQL8.0中,對(duì)InnoDB表執(zhí)行ALTERTABLE…ALGORITHM=INPLACE,LOCK=NONE,下列操作允許的是A.將列類型從VARCHAR(30)改為VARCHAR(50)B.增加一個(gè)全文索引C.改變列順序D.將字符集從utf8改為utf8mb4答案:A解析:同寬度擴(kuò)展VARCHAR允許在線DDL;全文索引、列順序變更、字符集轉(zhuǎn)換均需重建表,無(wú)法完全避免鎖。10.在數(shù)據(jù)治理元模型中,屬于“業(yè)務(wù)元數(shù)據(jù)”的是A.字段加密算法B.表在HDFS上的存儲(chǔ)路徑C.指標(biāo)“活躍用戶數(shù)”的計(jì)算口徑D.字段壓縮編碼答案:C解析:業(yè)務(wù)元數(shù)據(jù)面向用戶,描述業(yè)務(wù)含義、規(guī)則與質(zhì)量要求;技術(shù)元數(shù)據(jù)涉及存儲(chǔ)、加密、壓縮等實(shí)現(xiàn)細(xì)節(jié)。二、多項(xiàng)選擇題(每題3分,共15分,多選少選均不得分)11.關(guān)于CAP理論,下列說法正確的是A.分區(qū)容錯(cuò)性在分布式系統(tǒng)中必須保證B.放棄一致性意味著系統(tǒng)一定返回臟數(shù)據(jù)C.在分區(qū)發(fā)生時(shí),HBase選擇一致性而犧牲可用性D.Cassandra在QUORUM讀寫時(shí)可視為最終一致E.單機(jī)MySQL不涉及CAP權(quán)衡答案:ACDE解析:B錯(cuò)誤,放棄一致性僅表示可能返回舊數(shù)據(jù)而非一定臟數(shù)據(jù);分區(qū)發(fā)生時(shí)HBase依賴Zookeeper阻塞寫操作保證一致性;CassandraQUORUM滿足R+W>N時(shí)為強(qiáng)一致;單機(jī)系統(tǒng)無(wú)網(wǎng)絡(luò)分區(qū)故不涉CAP。12.下列技術(shù)組合可實(shí)現(xiàn)“exactly-once”語(yǔ)義的是A.Kafka冪等生產(chǎn)者+事務(wù)型生產(chǎn)者B.SparkStreaming+手動(dòng)維護(hù)偏移到ZookeeperC.FlinkKafkaSink+兩階段提交D.Storm1.x+至少一次處理+去重表E.PulsarFunctions+共享訂閱+ackTimeout答案:ACD解析:A通過PID與序列號(hào)實(shí)現(xiàn)端到端冪等;C通過預(yù)提交與Kafka事務(wù)保證;D通過外部去重表實(shí)現(xiàn)等效精確一次;B與E仍可能重復(fù)。13.在數(shù)據(jù)湖場(chǎng)景下,下列做法能夠提升查詢性能的是A.將小文件定期合并為Parquet大文件B.對(duì)分區(qū)列采用yyyy-mm-dd-hh格式過度細(xì)化C.在Iceberg中建立隱藏分桶分區(qū)D.對(duì)冷數(shù)據(jù)采用ZSTD壓縮E.使用HiveLLAP緩存熱數(shù)據(jù)答案:ACDE解析:B過度細(xì)化導(dǎo)致元數(shù)據(jù)爆炸;A減少文件數(shù)量降低NN壓力;C通過分桶裁剪減少掃描;D提高壓縮率減少IO;E內(nèi)存緩存加速。14.關(guān)于數(shù)據(jù)血緣,下列描述正確的是A.SQL解析可靜態(tài)提取列級(jí)血緣B.SparkRDD的map操作無(wú)法自動(dòng)捕獲血緣C.AirflowDAG可表達(dá)任務(wù)級(jí)血緣D.數(shù)據(jù)血緣可用于影響分析E.數(shù)據(jù)血緣一定包含運(yùn)行時(shí)行數(shù)答案:ABCD解析:靜態(tài)SQL解析可獲得列級(jí)依賴;RDD為黑盒算子;AirflowDAG描述任務(wù)依賴;血緣用于下游影響評(píng)估;運(yùn)行時(shí)行數(shù)屬于統(tǒng)計(jì)信息,非血緣必須。15.在GDPR合規(guī)要求下,數(shù)據(jù)控制者必須A.支持?jǐn)?shù)據(jù)可攜帶權(quán)B.72小時(shí)內(nèi)向監(jiān)管方報(bào)告泄露C.任命數(shù)據(jù)保護(hù)官DPOD.默認(rèn)采用假名化技術(shù)E.在兒童數(shù)據(jù)處理時(shí)驗(yàn)證父母同意答案:ABE解析:C僅在特定規(guī)模或敏感數(shù)據(jù)處理時(shí)強(qiáng)制;D假名化為推薦非強(qiáng)制;ABE為明確條款。三、判斷題(每題1分,共10分,正確打“√”,錯(cuò)誤打“×”)16.在RedisCluster模式下,客戶端緩存slots映射可降低MOVED重定向次數(shù)。答案:√解析:客戶端本地緩存clusterslots信息,可直接定位目標(biāo)節(jié)點(diǎn),減少一次RTT。17.使用HiveonTez時(shí),開啟vectorizedquery可提升ORC文件讀取性能。答案:√解析:向量化執(zhí)行批量處理列數(shù)據(jù),減少虛函數(shù)調(diào)用,提高CPU緩存命中率。18.在Oracle中,位圖索引適合高并發(fā)OLTP系統(tǒng)的主鍵列。答案:×解析:位圖索引鎖粒度大,高并發(fā)DML下易產(chǎn)生阻塞,不適合OLTP主鍵。19.數(shù)據(jù)倉(cāng)庫(kù)采用第三范式建??赏耆哂?,因此查詢性能一定優(yōu)于星型模型。答案:×解析:3NF減少冗余但增加連接開銷,分析型查詢往往反范式化提升性能。20.在Kafka中,Producer的acks=all設(shè)置可保證消息不丟失,即使Leader剛寫入就宕機(jī)。答案:√解析:acks=all要求所有ISR副本確認(rèn),Leader宕機(jī)后新Leader擁有完整數(shù)據(jù),消息不丟失。21.在SparkSQL中,使用cache()默認(rèn)存儲(chǔ)級(jí)別為MEMORY_ONLY,若內(nèi)存不足則丟棄分區(qū)。答案:√解析:MEMORY_ONLY不spill到磁盤,內(nèi)存不足時(shí)按LRU丟棄,下次需重新計(jì)算。22.數(shù)據(jù)湖僅支持schema-on-read,無(wú)法實(shí)施schema約束。答案:×解析:現(xiàn)代表格式如Delta、Iceberg支持schema約束與演化,兼具schema-on-read靈活與治理。23.在MongoDB中,對(duì)數(shù)組字段建立多鍵索引后,索引大小與數(shù)組平均長(zhǎng)度成正比。答案:√解析:多鍵索引為數(shù)組每個(gè)元素創(chuàng)建索引條目,長(zhǎng)度越大條目越多,空間線性增長(zhǎng)。24.使用HBase協(xié)處理器Observer可在RegionServer端過濾數(shù)據(jù),減少網(wǎng)絡(luò)傳輸。答案:√解析:Observer鉤子運(yùn)行在服務(wù)端,可提前過濾,返回結(jié)果集更小。25.數(shù)據(jù)治理成熟度模型中,達(dá)到“已管理”級(jí)別即代表數(shù)據(jù)質(zhì)量無(wú)需再改進(jìn)。答案:×解析:已管理級(jí)表明流程可度量,但持續(xù)改進(jìn)為更高優(yōu)化級(jí)要求,非終點(diǎn)。四、填空題(每空2分,共20分)26.在MySQLInnoDB中,實(shí)現(xiàn)可重復(fù)讀隔離級(jí)別依賴________與________兩種鎖。答案:Next-KeyLock、GapLock解析:Next-KeyLock為索引記錄鎖+間隙鎖,防止幻讀。27.數(shù)據(jù)倉(cāng)庫(kù)中,緩慢變化維類型2通過________列追蹤歷史版本。答案:代理鍵+時(shí)間戳范圍(或版本號(hào))解析:類型2新增行并標(biāo)記有效期,代理鍵區(qū)分不同版本。28.在Flink中,實(shí)現(xiàn)全局窗口TopN需使用________函數(shù)與________狀態(tài)。答案:ProcessWindowFunction、MapState解析:ProcessWindowFunction可訪問窗口元數(shù)據(jù),MapState存儲(chǔ)中間TopN列表。29.當(dāng)Hive表存儲(chǔ)格式為Parquet時(shí),可通過________參數(shù)開啟字典編碼,減少________占用。答案:parquet.enable.dictionary、存儲(chǔ)空間解析:字典編碼對(duì)低基數(shù)列高效,壓縮重復(fù)字符串。30.在數(shù)據(jù)資產(chǎn)目錄中,采用________標(biāo)識(shí)符可跨系統(tǒng)唯一標(biāo)識(shí)一張表。答案:URN(UniformResourceName)解析:URN包含系統(tǒng)、庫(kù)、表等命名空間,保證全局唯一。31.在Elasticsearch中,對(duì)text字段排序需開啟________子字段,否則會(huì)導(dǎo)致________異常。答案:keyword、Fielddata解析:text默認(rèn)分詞,排序需keyword子字段;開啟fielddata耗內(nèi)存且官方不推薦。32.數(shù)據(jù)湖housekeeping任務(wù)中,________策略可自動(dòng)刪除超過保留期限的快照,________策略可合并小文件。答案:expire_snapshots、rewrite_files解析:Iceberg提供兩種內(nèi)置過程,分別清理歷史與合并數(shù)據(jù)。33.在OracleRAC環(huán)境下,為保證序列全局唯一且性能高,應(yīng)創(chuàng)建________序列。答案:CACHE+NOORDER解析:CACHE減少全局爭(zhēng)用,NOORDER避免節(jié)點(diǎn)間排序開銷。34.使用Spark動(dòng)態(tài)資源分配時(shí),可通過________參數(shù)設(shè)置Executor空閑超時(shí)時(shí)間,單位為________。答案:spark.dynamicAllocation.executorIdleTimeout、秒解析:超時(shí)后Executor被回收,節(jié)省集群資源。35.數(shù)據(jù)質(zhì)量維度中,________指數(shù)據(jù)值與真實(shí)世界一致程度,________指同一數(shù)據(jù)在不同位置含義相同。答案:準(zhǔn)確性、一致性解析:準(zhǔn)確性強(qiáng)調(diào)與真實(shí)值偏差,一致性強(qiáng)調(diào)跨系統(tǒng)語(yǔ)義一致。五、簡(jiǎn)答題(每題10分,共30分)36.描述一次完整的MySQL主從復(fù)制延遲排查與優(yōu)化過程,要求包含指標(biāo)采集、根因定位、優(yōu)化方案、驗(yàn)證方法。答案:1)指標(biāo)采集:a.在從庫(kù)執(zhí)行showslavestatus\G,記錄Seconds_Behind_Master趨勢(shì);b.通過pt-heartbeat工具獲取真實(shí)延遲,避免依賴系統(tǒng)時(shí)鐘;c.采集io_thread、sql_thread狀態(tài),確認(rèn)瓶頸環(huán)節(jié);d.使用mysqld_exporter收集全局指標(biāo):Innodb_rows_updated、Binlog_cache_disk_use、diskioutil%;e.采集從庫(kù)慢查詢,分析是否存在大事務(wù)或鎖等待。2)根因定位:a.若io_thread落后,檢查網(wǎng)絡(luò)帶寬、主庫(kù)binlogdump線程負(fù)載;b.若sql_thread落后,查看relay_log執(zhí)行速度,定位是否存在無(wú)索引更新、大事務(wù)、頻繁全表掃描;c.通過binlog解析工具mysqlbinlog查看主庫(kù)事務(wù)大小,發(fā)現(xiàn)單事務(wù)更新200萬(wàn)行;d.對(duì)比主從硬件,發(fā)現(xiàn)從庫(kù)使用SATA盤,iowait達(dá)35%;e.檢查從庫(kù)是否開啟log_slave_updates、binlog_group_commit,確認(rèn)額外刷盤壓力。3)優(yōu)化方案:a.業(yè)務(wù)側(cè)將大事務(wù)拆分為1萬(wàn)行批量提交,降低單事務(wù)執(zhí)行時(shí)間;b.在從庫(kù)添加復(fù)合索引,將updatewhere條件列納入索引,減少行掃描;c.從庫(kù)磁盤升級(jí)為SSD,iowait降至5%;d.設(shè)置slave_parallel_type=LOGICAL_CLOCK、slave_parallel_workers=8,開啟并行復(fù)制;e.調(diào)整innodb_flush_log_at_trx_commit=2,降低刷盤頻率;f.主庫(kù)開啟binlog_row_image=minimal,減少網(wǎng)絡(luò)傳輸。4)驗(yàn)證方法:a.持續(xù)運(yùn)行pt-heartbeat24h,延遲從峰值850s降至30s以內(nèi);b.通過grafana監(jiān)控從庫(kù)SQL線程lag曲線,確認(rèn)平穩(wěn);c.使用sysbench在主庫(kù)壓測(cè),QPS2萬(wàn)場(chǎng)景下從庫(kù)延遲<1s;d.業(yè)務(wù)端全鏈路對(duì)賬,主從數(shù)據(jù)零差異。37.說明數(shù)據(jù)湖格式ApacheIceberg的“隱藏分區(qū)”與“分區(qū)演化”特性,并給出電商訂單表實(shí)戰(zhàn)案例,展示如何在不重寫歷史數(shù)據(jù)的情況下將分區(qū)由天演化為小時(shí)。答案:1)隱藏分區(qū):Iceberg將分區(qū)列邏輯定義與物理布局解耦,用戶寫入時(shí)無(wú)需顯式指定分區(qū)值,系統(tǒng)自動(dòng)提取分區(qū)值并生成manifest;查詢時(shí)where子句中的列條件自動(dòng)下推,無(wú)需匹配物理目錄結(jié)構(gòu),避免Hive式“錯(cuò)列查詢?nèi)頀呙琛眴栴}。2)分區(qū)演化:允許表在不同階段使用不同分區(qū)策略,歷史數(shù)據(jù)保持舊分區(qū),新數(shù)據(jù)使用新分區(qū);元數(shù)據(jù)層面通過snapshot記錄分區(qū)規(guī)范版本,讀取時(shí)自動(dòng)合并多版本分區(qū),無(wú)需重寫存量文件。3)實(shí)戰(zhàn)案例:a.初始建表:CREATETABLEorder_dl(order_idbigint,user_idbigint,amountdecimal(10,2),order_timetimestamp)PARTITIONEDBYdays(order_time);寫入2023-01-01至2023-03-31共3個(gè)月數(shù)據(jù),物理目錄結(jié)構(gòu)為/order_dl/order_date=2023-01-01/xxx.parquet。b.業(yè)務(wù)需求:4月起需將分區(qū)粒度改為小時(shí),以減少下游小時(shí)級(jí)任務(wù)掃描數(shù)據(jù)量。ALTERTABLEorder_dlSETPARTITIONSPEC(hours(order_time));該命令僅更新元數(shù)據(jù),歷史數(shù)據(jù)仍按天分區(qū)存在。c.寫入4月1日10點(diǎn)數(shù)據(jù),系統(tǒng)生成新目錄/order_dl/order_time_hour=2023-04-01-10/xxx.parquet;查詢4月1日10點(diǎn)至12點(diǎn)訂單:SELECT*FROMorder_dlWHEREorder_timeBETWEEN'2023-04-0110:00:00'AND'2023-04-0112:00:00';Iceberg自動(dòng)識(shí)別新分區(qū)規(guī)范,僅掃描對(duì)應(yīng)小時(shí)目錄,歷史數(shù)據(jù)按天目錄過濾。d.性能對(duì)比:演化為小時(shí)后,Trino掃描數(shù)據(jù)量從900GB降至38GB,查詢耗時(shí)由220s降至18s;歷史數(shù)據(jù)無(wú)需重寫,節(jié)省計(jì)算成本約70%。38.闡述數(shù)據(jù)網(wǎng)格(DataMesh)的核心原則,并對(duì)比傳統(tǒng)數(shù)據(jù)湖架構(gòu),說明如何在金融風(fēng)控領(lǐng)域落地領(lǐng)域驅(qū)動(dòng)的數(shù)據(jù)所有權(quán)模式。答案:1)核心原則:a.領(lǐng)域所有權(quán):數(shù)據(jù)由產(chǎn)生數(shù)據(jù)的領(lǐng)域團(tuán)隊(duì)負(fù)責(zé),而非集中數(shù)據(jù)團(tuán)隊(duì);b.數(shù)據(jù)即產(chǎn)品:把數(shù)據(jù)集視為產(chǎn)品,提供SLA、文檔、支持渠道;c.自助平臺(tái):提供領(lǐng)域無(wú)關(guān)的自動(dòng)化基礎(chǔ)設(shè)施,降低數(shù)據(jù)產(chǎn)品構(gòu)建門檻;d.聯(lián)合治理:全局標(biāo)準(zhǔn)化通過聯(lián)邦治理委員會(huì)與領(lǐng)域團(tuán)隊(duì)協(xié)作制定,避免中央瓶頸。2)對(duì)比傳統(tǒng)數(shù)據(jù)湖:傳統(tǒng)模式采用集中存儲(chǔ)、集中團(tuán)隊(duì)、ETL驅(qū)動(dòng),易出現(xiàn)溝通壁壘、需求響應(yīng)慢、數(shù)據(jù)質(zhì)量責(zé)任不清;數(shù)據(jù)網(wǎng)格將存儲(chǔ)與計(jì)算下沉到領(lǐng)域,消除單點(diǎn)瓶頸,提升敏捷性,但要求領(lǐng)域團(tuán)隊(duì)具備數(shù)據(jù)工程能力。3)金融風(fēng)控落地:a.劃分領(lǐng)域:按業(yè)務(wù)線劃分“信貸審批”、“交易反欺詐”、“客戶行為”、“征信外部數(shù)據(jù)”四個(gè)領(lǐng)域;b.任命數(shù)據(jù)產(chǎn)品負(fù)責(zé)人:每個(gè)領(lǐng)域設(shè)立數(shù)據(jù)產(chǎn)品經(jīng)理,負(fù)責(zé)數(shù)據(jù)資產(chǎn)目錄、質(zhì)量SLA(如T+0更新、準(zhǔn)確率99.5%);c.自助平臺(tái)搭建:統(tǒng)一數(shù)據(jù)湖倉(cāng)底座(Iceberg+Trino+Atlas),提供自動(dòng)CI/CD流水線,領(lǐng)域團(tuán)隊(duì)通過YAML聲明表結(jié)構(gòu)、分區(qū)、Retention;提供數(shù)據(jù)質(zhì)量模板(GreatExpectations),領(lǐng)域團(tuán)隊(duì)可拖拽生成規(guī)則;提供事件門戶(Kafka+SchemaRegistry),領(lǐng)域團(tuán)隊(duì)自助注冊(cè)事件流;d.治理機(jī)制:成立聯(lián)邦數(shù)據(jù)委員會(huì),制定全局標(biāo)識(shí)符(客戶IDURN)、敏感數(shù)據(jù)分類(PII4級(jí))、元數(shù)據(jù)標(biāo)準(zhǔn);每季度評(píng)審數(shù)據(jù)產(chǎn)品成熟度,未達(dá)基礎(chǔ)級(jí)(文檔、質(zhì)量評(píng)分<80)的領(lǐng)域限制發(fā)布新表;e.成效:需求交付周期由3個(gè)月縮短至3周;數(shù)據(jù)質(zhì)量問題責(zé)任追溯時(shí)間從5天降至1天;領(lǐng)域團(tuán)隊(duì)復(fù)用率提升,征信數(shù)據(jù)產(chǎn)品被3個(gè)下游領(lǐng)域訂閱,減少重復(fù)采集費(fèi)用200萬(wàn)/年。六、綜合設(shè)計(jì)題(25分)39.某短視頻公司日活1億,用戶行為日志峰值500萬(wàn)QPS,平均每條日志0.8KB。公司需構(gòu)建實(shí)時(shí)數(shù)倉(cāng),支持實(shí)時(shí)指標(biāo):1)5分鐘內(nèi)統(tǒng)計(jì)各視頻最新播放次數(shù);2)1分鐘內(nèi)檢測(cè)異常流量(某IP請(qǐng)求量突增>100倍);3)T+0日級(jí)報(bào)表,按視頻類別、地域、時(shí)段匯總播放時(shí)長(zhǎng)、完播率;4)數(shù)據(jù)保留30天,冷數(shù)據(jù)壓縮歸檔。請(qǐng)?jiān)O(shè)計(jì)端到端架構(gòu),說明技術(shù)選型、數(shù)據(jù)模型、分區(qū)策略、Exactly-once保證、資源估算,并給出Flink核心作業(yè)偽代碼與指標(biāo)計(jì)算SQL。答案:1)技術(shù)選型:采集層:日志通過OpenResty本地寫文件,F(xiàn)ilebeat采集→Kafka(3集群,每集群30broker,Topicbehavior,分區(qū)600,RF=3,min.insync.replicas=2);流計(jì)算:Flink1.17onYARN,checkpoint到HDFS,狀態(tài)后端RocksDB,啟用增量checkpoint;存儲(chǔ)層:實(shí)時(shí)指標(biāo):RedisCluster,keyTTL1h,使用hash結(jié)構(gòu)存<video_id,hour_play>;明細(xì)數(shù)據(jù):Kafka→Flink→Iceberg表behavior_dl,bucket(視頻ID,64)分區(qū),文件格式ParquetZSTD;匯總數(shù)據(jù):Iceberg表behavior_agg,按(category,province,hour)分區(qū);查詢層:Trino對(duì)接Iceberg,Superset可視化;歸檔:Spark批任務(wù)每日把>7天數(shù)據(jù)轉(zhuǎn)為ORCZSTD并移至OSS,Iceberg元數(shù)據(jù)保留。2)數(shù)據(jù)模型:明細(xì)表behavior_dl(event_timetimestamp,user_idstring,video_idstring,categorystring,provincestring,play_durationint,is_finishboolean,ipstring,event_typestring-play/start/finish)匯總表behavior_agg(categorystring,provincestring,hour_begintimestamp,play_cntbigint,total_durationbigint,finish_cntbigint)3)分區(qū)策略:明細(xì)表采用Iceberg隱藏分區(qū)bucket(video_id,64)+事件時(shí)間小時(shí)分區(qū),保證視頻維度均勻,避免熱點(diǎn);匯總表采用(category,province,hour)組合分區(qū),滿足查詢裁剪。4)Exactly-once:Flink啟用checkpoint,兩階段提交Sink到Iceberg,預(yù)提交生成snapshot,checkpoint成功后才commit;Kafkaproducer冪等+事務(wù),保證端到端不丟不重;Redis更新采用checkpointedmapstate,重啟后重放kafka位點(diǎn),覆蓋寫入,保證冪等。5)資源估算:峰值500萬(wàn)QPS×0.8KB≈4GB/s,Kafka單broker100MB/s,需40broker,考慮RF×1.5,120broker,三集群每集群40broker;Flink并行度:source600分區(qū)→600slot,計(jì)算CPU1:1,內(nèi)存4GB/slot,共2.4TB內(nèi)存,需80臺(tái)32GBNodeManager;Iceberg日增量4GB/s×86400≈345TB,壓縮后約120TB,30天3.6PB,OSS冷存單價(jià)0.03元/GB/月,月成本約11萬(wàn)。6)Flink作業(yè)偽代碼:StreamExecutionEnvironmentenv=…env.enableCheckpointing(60000).setCheckpointStorage("hdfs://ns1/flink/checkpoints").setRestartStrategy(RestartStrategies.fixedDelayRestart(3,10000))FlinkKafkaConsumer<String>source=newFlinkKafkaConsumer<>("behavior",…).setStartFromLatest()DataStream<Event>even

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論