大數據測試總結

總結測試要點:
參考產品文檔,技術文檔梳理以下內容

需求來源

業務方應用場景

數據源,數據格轉,數據產出,數據呈現方式(數據消亡史),數據量級(增量,全量),更新頻率,數據產出時效

數據流轉方式(http接口,GRPC接口,中間表,寬表等)

數據多樣性(不同類型維度的處理數據,例如被標識的維度數據以用戶為例: 客戶,客服,用戶,玩家等)

使用數據的頻次頻率(相對應的查詢服務數據庫的壓力,接口服務器的壓力,評測是否需壓測及調優)

游戲BI報表的測試需以數據準確為核心,結合業務規則驗證、性能壓測、安全審計,并關注用戶體驗。通過自動化工具減少重復工作量,最終確保報表成為業務決策的可靠依據。

針對游戲業務的數據BI報表(如用戶活躍、付費分析、留存率等),測試需覆蓋數據準確性、實時性、多維度分析能力及用戶體驗。以下是核心測試重點:

一、數據準確性驗證

源數據完整性驗證數據采集是否完整(如日志埋點是否覆蓋所有關鍵事件:登錄、付費、任務完成等)。測試方法:比對原始日志(Kafka/RabbitMQ)與數據倉庫(Hive/DW)的記錄數、字段值是否一致。

ETL邏輯正確性確保清洗、轉換規則正確(如去重、異常值處理、時區轉換)。示例測試:驗證“付費金額”是否按匯率轉換為統一貨幣(如USD),過濾測試環境臟數據。

計算指標正確性核心指標公式驗證(如DAU、ARPU、LTV):sql復制-- DAU(日活躍用戶) SELECT COUNT(DISTINCT user_id) FROM user_login WHERE dt='2023-10-01'; -- ARPU(平均每用戶收入) SELECT SUM(revenue)/COUNT(DISTINCT user_id) FROM payment WHERE dt='2023-10-01'; 測試方法:用小規模測試數據集手工計算,比對BI工具輸出結果。

跨表關聯一致性驗證多表JOIN的正確性(如用戶表+付費表+行為表)。典型問題:用戶ID映射錯誤導致數據錯位。

二、實時性測試

數據延遲驗證T+1報表的截止時間(如當日凌晨2點生成昨日數據),實時看板延遲是否≤1分鐘。測試工具:注入帶時間戳的測試事件,監控Kafka→Flink→BI的端到端延遲。

增量更新機制驗證新增數據是否實時刷新(如玩家付費后,看板GMV是否立即更新)。測試場景:模擬玩家在整點前完成付費,檢查整點統計是否包含該訂單。


三、多維度分析能力

維度組合正確性測試按時間(日/周/月)、渠道(iOS/Android)、地區、用戶分層(VIP/普通)等維度的下鉆/上卷結果。示例問題:按“渠道+地區”篩選時,數據聚合錯誤導致iOS用戶數被重復計算。

過濾條件覆蓋性驗證復雜過濾條件(如“付費金額>100且等級≥30的用戶”),結果是否精確。邊界測試:空值(NULL)、極值(0付費用戶)的處理是否符合預期。

時間窗口靈活性支持自定義時間段(如近7天、自然周、活動周期),驗證跨天數據是否連續。典型錯誤:跨自然周查詢時,周累計數據未正確拼接。


四、性能與穩定性

查詢響應時間設定性能基線(如簡單查詢≤3秒,復雜多表JOIN≤30秒),壓測高并發場景(100用戶同時查詢)。優化方向:檢查數據倉庫索引、Presto/Spark資源分配。

大數據量承載能力模擬億級用戶數據,驗證報表加載不超時、不崩潰。測試工具:使用JMeter生成大規模查詢請求。

容錯與恢復斷網或服務宕機后,驗證數據補刷機制是否正常(如補跑Flink作業修復缺失分區)。日志監控:確保ETL失敗時告警及時觸發(如集成Prometheus+Alertmanager)。


五、安全與權限控制

數據權限隔離驗證不同角色(運營、策劃、客服)僅能訪問授權數據(如分區限制、字段脫敏)。測試案例:客服賬號查詢報表時,隱藏“用戶手機號”等敏感字段。

SQL注入防護模擬惡意輸入(如' OR 1=1 --),驗證BI前端是否過濾異常參數。


六、用戶體驗與展示

可視化準確性圖表與數據表的數值一致性(如折線圖峰值對應表格中的最大值)。常見問題:前端四舍五入導致總計數值與明細求和不等。

交互友好性測試篩選、排序、導出功能是否正常,頁面加載無卡頓。移動端適配:報表在手機/Pad上的顯示效果(如表格自適應、圖表可縮放)。

什么是hive

Hive的核心特點,比如使用HQL,底層是MapReduce或Tez,數據存儲在HDFS。還要提到Hive的優缺點,比如適合批處理,延遲高,不適合實時查詢。

Hive 的核心特點

基于Hadoop數據存儲在HDFS(Hadoop分布式文件系統)中,計算依賴MapReduce、Tez或Spark引擎。適合處理批量數據(如日志、歷史記錄),但延遲較高(分鐘級響應),不適用于實時場景。

類SQL接口(HiveQL)支持SELECTJOINGROUP BY等SQL操作,但對復雜事務支持有限(如不支持行級更新)。示例HQL語句:sql復制CREATE TABLE user_behavior ( user_id INT, action STRING, timestamp BIGINT ) STORED AS ORC;

元數據管理使用Metastore(通常基于MySQL或PostgreSQL)存儲表結構、分區等信息,與數據文件分離。

數據存儲優化支持分區(按日期、地區等分割數據)和分桶(哈希分桶加速查詢),提升查詢效率。文件格式優化:如ORC(列式存儲)、Parquet(高效壓縮)。


Hive 的架構

用戶接口Hive CLI、Beeline(JDBC客戶端)、Hue(Web UI)。

驅動引擎解析HQL為MapReduce/Tez/Spark任務,提交到Hadoop集群執行。

元存儲(Metastore)存儲表結構、字段類型、分區信息等元數據。

執行引擎默認使用MapReduce,可替換為Tez(DAG優化)或Spark(內存計算)提升性能。


Hive 的應用場景

離線數據分析如日志分析、用戶行為統計(例如:統計每日活躍用戶數)。

ETL(數據清洗轉換)將原始數據轉換為結構化數據,供下游BI工具(如Tableau)使用。

數據倉庫構建企業級數據倉庫(如分層存儲:ODS層→DWD層→DWS層)。


Hive vs 傳統關系型數據庫

特性

Hive

傳統數據庫(如MySQL)

數據規模

PB級

TB級以下

延遲

高(分鐘~小時級)

低(毫秒~秒級)

事務支持

有限(Hive 3.0后支持ACID)

完整支持

存儲與計算

分離(數據在HDFS,計算在集群)

緊耦合(本地存儲+計算)

適用場景

批處理、歷史數據分析

實時事務、高頻更新

什么是Spark

一、Spark 任務的核心概念

任務(Task)定義:一個 Task 對應一個數據分區的計算邏輯(例如 mapfilterreduce 等操作)。并行度:任務數量由數據的分區數決定。例如,一個 RDD 有 100 個分區,則會生成 100 個 Task。執行位置:由 Executor 進程在集群節點上運行。

任務層級關系Application:用戶編寫的完整 Spark 程序(如一個 ETL 作業)。Job:一個 Action 操作觸發一個 Job(例如 collect()saveAsTextFile())。Stage:Job 按 Shuffle 依賴劃分為多個 Stage(例如 Stage 0Stage 1)。Task:Stage 內的并行計算單元,每個 Stage 對應一組 Task。復制Application → Jobs → Stages → Tasks


二、Spark 任務的生命周期

任務生成Driver 程序根據 RDD 的血緣關系(Lineage)生成邏輯執行計劃。DAGScheduler 將邏輯計劃按 Shuffle 邊界切分為 Stage,并為每個 Stage 生成 TaskSet。

任務調度TaskScheduler 將 Task 分配到 Executor 的空閑核心(Core)上。本地性優先:優先將 Task 調度到數據所在的節點(HDFS 數據本地性)。

任務執行Executor 加載 Task 代碼(閉包序列化)并處理數據分區。結果返回 Driver 或寫入存儲系統(如 HDFS、S3)。

容錯機制失敗 Task 自動重試(默認重試 4 次)。Stage 重算:若某個 Task 失敗且重試無效,則重新計算整個 Stage。


三、任務的關鍵特性

內存計算Task 優先在內存中處理數據,減少磁盤 I/O(相比 MapReduce 快 10~100 倍)。

閉包序列化Task 的代碼和變量會被序列化后發送到 Executor(需確保閉包中的對象可序列化)。

Shuffle 機制Stage 之間的數據交換(如 groupByKeyjoin)會觸發 Shuffle,產生磁盤和網絡開銷。


四、Spark 任務的調度機制

調度模式FIFO(默認):先進先出,適合批處理。FAIR:公平調度,支持多任務資源均衡。

資源分配每個 Task 占用一個 Core,內存由 spark.executor.memoryspark.memory.fraction 配置。

動態分配啟用 spark.dynamicAllocation.enabled 后,根據任務負載自動增減 Executor。


五、測試工程師的關注點

任務正確性驗證數據斷言:驗證 Task 處理后的數據是否符合預期(例如:使用 assert(df.count() == 1000))。血緣關系檢查:確認 RDD/DataFrame 的血緣關系是否合理(避免冗余計算)。

任務性能測試執行時間:監控單個 Task 的耗時(通過 Spark UI 的 Task Duration 指標)。數據傾斜檢測:識別某些 Task 處理時間遠高于其他 Task(例如:某 Task 處理 90% 的數據)。scala復制// 查看各分區數據量 df.rdd.mapPartitionsWithIndex{ case (i, rows) => Iterator((i, rows.size)) }.collect()

容錯性測試模擬故障:強制終止 Executor 進程,觀察 Task 是否自動重新調度。重試策略驗證:修改 spark.task.maxFailures 參數,測試重試機制是否生效。

資源利用監控內存溢出:檢查是否因 Executor 內存不足導致 Task 失敗(OutOfMemoryError)。GC 調優:通過 -XX:+UseG1GC 優化垃圾回收,減少 Task 暫停時間。

任務依賴測試窄依賴 vs 寬依賴:驗證 Stage 劃分是否符合預期(寬依賴會觸發 Shuffle)。


六、實戰示例

場景:測試一個 Spark 聚合任務

任務描述輸入:用戶行為日志(1 億條數據,100 個分區)。處理:按用戶 ID 分組統計點擊次數。輸出:寫入 HDFS。

測試步驟步驟 1:數據正確性用小數據集(如 1000 條)運行任務,比對結果與手工計算結果。步驟 2:性能基準測試記錄任務總耗時,監控各 Stage 的 Task 執行時間分布。步驟 3:數據傾斜注入插入一個超級用戶(占 50% 數據量),觀察 Task 執行時間是否顯著增加。步驟 4:容錯測試手動 Kill 一個 Executor,驗證任務是否自動恢復并完成。


七、總結

Spark 任務是分布式計算的基石,理解其生成、調度和執行機制是優化和測試的關鍵。

測試重點:數據正確性、性能(尤其是傾斜問題)、容錯性、資源利用率。

工具輔助:利用 Spark UI、History Server 和日志分析任務行為,結合 JVM Profiler 進行深度調優。

什么是presto引擎

Presto 是一款 開源的分布式 SQL 查詢引擎,由 Facebook(現 Meta)開發并開源,專為交互式分析跨數據源查詢設計。它能夠高效查詢從 GB 到 PB 級的數據,支持多種數據源(如 Hive、MySQL、Kafka、S3 等),且不依賴 MapReduce,直接通過內存計算實現快速響應(秒級到分鐘級)。以下是 Presto 的詳細解析:


一、Presto 的核心特性

分布式 MPP 架構基于 Massively Parallel Processing(大規模并行處理) 架構,將查詢拆分為多個任務在集群節點中并行執行。適合低延遲的交互式查詢(如 BI 工具直接連接 Presto)。

多數據源聯邦查詢通過 Connector 機制支持異構數據源(如同時 JOIN Hive 表和 MySQL 表)。示例:從 Hive 查詢用戶行為日志,從 MySQL 拉取用戶畫像,直接進行關聯分析。

內存計算與流水線執行數據在處理時通過流水線(Pipeline)在內存中傳遞,減少磁盤 I/O。相比 Hive(依賴 MapReduce 的磁盤讀寫),性能提升 5~10 倍。

ANSI SQL 兼容支持標準 SQL 語法和復雜查詢(窗口函數、CTE、子查詢等),學習成本低。

彈性擴展可動態增加或減少 Worker 節點,適應查詢負載變化。


二、Presto 的架構

Coordinator(協調節點)負責接收 SQL 請求,解析查詢,生成執行計劃,調度任務到 Worker。維護元數據(通過 Connector 獲取數據源的表結構)。

Worker(工作節點)執行 Coordinator 分配的任務(如數據掃描、過濾、聚合)。每個 Worker 處理數據的一個分片(Split)。

Connector(連接器)對接不同數據源(如 Hive Connector 讀取 HDFS,JDBC Connector 連接 MySQL)。關鍵接口:getSplits()(定義數據分片)、getPageSource()(讀取數據)。

Discovery Service(服務發現)Worker 節點啟動時向 Discovery Service 注冊,Coordinator 通過它感知 Worker 狀態。


三、Presto 的應用場景

交互式 BI 分析連接 Tableau、Superset 等工具,支持實時數據探索。示例:分析師直接查詢 PB 級數據湖(如 AWS S3)生成報表。

跨數據源聯合查詢無需數據遷移,直接 JOIN 不同存儲系統的數據(如 Hive + Kafka + PostgreSQL)。

數據湖查詢引擎查詢存儲在 HDFS/S3 上的開放格式數據(Parquet、ORC、JSON)。

實時數倉補充對 ClickHouse/Druid 等實時引擎無法處理的復雜 SQL 進行補充查詢。


四、Presto 與其他引擎的對比

特性

Presto

Hive

Spark SQL

計算模型

MPP(內存優先)

MapReduce(磁盤優先)

微批處理(內存+磁盤)

延遲

秒級~分鐘級

分鐘級~小時級

秒級~小時級(依賴場景)

數據源支持

多數據源聯邦查詢

主要 HDFS/Hive

多數據源,但需通過 DataFrame API

適用場景

交互式分析、即席查詢

離線批處理

ETL、批處理、流處理(Structured Streaming)


五、測試工程師的關注點

查詢正確性驗證比對 Presto 與其他引擎(如 Hive、Spark SQL)的查詢結果是否一致。驗證跨數據源 JOIN 的數據準確性(如 Hive 表與 MySQL 表關聯結果)。

性能測試并發查詢能力:模擬多用戶同時發起查詢,監控吞吐量和延遲。大表 JOIN 優化:測試是否因數據傾斜導致某些 Worker 負載過高。資源監控:觀察 CPU/內存使用率,避免 OOM(通過 presto-memory 配置堆外內存)。

容錯性測試模擬 Worker 節點宕機,驗證查詢是否自動重試或失敗處理。測試查詢超時(query.max-run-time)和重試策略。

多數據源兼容性驗證不同 Connector 的兼容性(如 Hive 分區表、Kafka 實時 Topic)。測試權限控制(如 Kerberos 認證的 Hive 數據源訪問)。

SQL 語法覆蓋覆蓋復雜 SQL 場景(如窗口函數、嵌套子查詢、JSON 解析)。


六、實戰示例

場景:測試 Presto 跨數據源查詢

數據準備Hive 表:user_behavior(用戶行為日志,存儲在 HDFS)。MySQL 表:user_profile(用戶畫像數據,含性別、年齡)。

查詢語句sql復制SELECT p.gender, COUNT(b.user_id) AS click_count FROM hive.test.user_behavior b JOIN mysql.profile.user_profile p ON b.user_id = p.user_id GROUP BY p.gender;

測試步驟正確性測試:比對 Presto 結果與 Hive+MySQL 手動 JOIN 的結果。性能測試:監控查詢耗時,檢查是否因數據傾斜導致個別 Worker 處理緩慢。故障注入:在查詢過程中關閉一個 Worker 節點,觀察查詢是否自動恢復。


七、總結

Presto 是 交互式分析的核心工具,適合需要快速響應和跨數據源查詢的場景。

測試重點:正確性(尤其跨源查詢)、性能優化(內存/并發控制)、容錯性

工具推薦:使用 Presto Web UI 監控查詢執行詳情,結合 JMeter 模擬并發負載。

什么是Flink

一、Flink 的核心作用

實時數據處理毫秒級延遲:處理無界數據流(如 IoT 傳感器數據、用戶點擊事件),支持事件時間(Event Time)和亂序數據處理。典型場景:實時監控、實時推薦、欺詐檢測。

復雜事件處理(CEP)通過 CEP Library 檢測數據流中的模式(如連續登錄失敗觸發告警)。

批流一體統一 API 處理批數據和流數據(DataStream APIDataSet API 融合為 Table API/SQL)。

有狀態計算精確管理計算狀態(如窗口聚合結果),支持容錯(通過 Checkpoint 和 Savepoint 機制)。

事件時間語義基于事件實際發生時間處理數據,避免因網絡延遲導致結果偏差。


二、Flink 的架構設計

運行時架構JobManager:接收作業,生成執行圖,調度 Task 到 TaskManager。TaskManager:執行具體 Task(包含多個 Slot,每個 Slot 運行一個線程)。高可用模式:依賴 ZooKeeper 實現 JobManager 故障切換。

數據流模型邏輯流圖(DAG):由 Source、Transformation、Sink 組成。物理執行:自動優化為并行子任務(如 Map 任務并行度為 4)。

狀態管理狀態類型:Keyed State(鍵控狀態)、Operator State(算子狀態)。狀態后端:支持 RocksDB(磁盤+內存)、MemoryStateBackend(純內存)等。

容錯機制Checkpoint:定期將狀態快照持久化到存儲系統(如 HDFS、S3)。Exactly-Once 語義:通過 Barrier 對齊機制保證精確一次處理。


三、Flink 的典型應用場景

場景

說明

示例

實時數據管道

將數據從消息隊列(如 Kafka)處理后寫入數據庫或數據湖。

Kafka → Flink(過濾/清洗) → HBase

實時指標聚合

按時間窗口統計用戶行為(如每分鐘 PV/UV)。

用戶點擊流 → 滾動窗口(1分鐘) → 統計結果輸出

復雜事件檢測

識別連續異常事件(如 10 秒內 3 次支付失敗)。

交易流 → CEP 規則匹配 → 觸發風控告警

數據流與靜態表關聯

實時流數據與維度表(如 MySQL 中的商品信息)關聯。

訂單流 → JOIN 商品維表 → 實時看板

機器學習模型推理

將實時數據輸入預訓練模型進行預測(如用戶畫像實時更新)。

用戶行為流 → 模型推理 → 實時推薦結果


四、Flink 與其他流處理框架的對比

特性

Flink

Spark Streaming

Kafka Streams

處理模型

原生流處理(逐事件處理)

微批處理(按時間片劃分)

基于 Kafka 分區流處理

延遲

毫秒級

秒級

毫秒級

狀態管理

內置強大狀態管理

需結合外部存儲(如 Redis)

內置狀態存儲(Kafka Topic)

Exactly-Once

支持(端到端)

支持(需配置)

支持

適用場景

復雜實時計算、高吞吐低延遲場景

準實時ETL、簡單聚合

輕量級 Kafka 生態流處理


五、測試工程師的關注點

數據正確性驗證端到端一致性:測試 Source 到 Sink 的數據是否完整(如比對 Kafka 輸入與數據庫輸出)。事件時間處理:注入亂序數據,驗證窗口結果是否符合預期(如水位線機制是否生效)。

容錯性測試Checkpoint 恢復:手動觸發 TaskManager 宕機,驗證作業是否從最近 Checkpoint 恢復。Exactly-Once 驗證:模擬故障后,檢查 Sink 是否重復寫入(如數據庫主鍵沖突檢測)。

性能測試吞吐量:測試單 TaskManager 每秒處理記錄數(如 10萬條/秒)。背壓(Backpressure):監控反壓指標,調整并行度或資源分配。

狀態管理測試狀態膨脹:模擬長時間運行作業,檢查 RocksDB 狀態存儲是否穩定(如磁盤占用率)。狀態遷移:驗證 Savepoint 的兼容性(如升級 Flink 版本后從舊 Savepoint 恢復)。

資源與監控內存泄漏:通過 Heap Dump 分析長時間運行后的內存占用。指標監控:集成 Prometheus + Grafana 監控 Flink 的吞吐、延遲、Checkpoint 耗時。


六、實戰測試場景示例

場景:測試實時風控規則的準確性

需求:用戶連續 3 次登錄失敗后觸發告警。

測試步驟步驟 1:正常邏輯驗證
輸入序列:失敗 → 失敗 → 失敗,驗證是否觸發告警。步驟 2:亂序數據處理
輸入序列(事件時間):[t1:失敗, t3:失敗, t2:失敗],驗證窗口是否識別為連續 3 次。步驟 3:容錯測試
在第二個事件處理時 Kill TaskManager,恢復后檢查告警是否正常觸發。步驟 4:性能壓測
模擬 10萬/秒的登錄事件流,監控反壓和 CPU 使用率。


七、總結

Flink 是 實時計算領域的核心引擎,其作用涵蓋低延遲流處理、復雜事件檢測、批流統一計算等場景。測試工程師需重點關注:

數據一致性(端到端 Exactly-Once),

容錯能力(Checkpoint/Savepoint 機制),

性能瓶頸(反壓、狀態存儲優化),

事件時間語義的正確性(水位線、窗口處理)。
通過結合混沌工程(故障注入)和自動化斷言,可構建高可靠的實時系統測試體系。

文章拓展:

ClickHouse、Kudu和HBase對比https://blog.csdn.net/u011487470/article/details/120879665

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/71320.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/71320.shtml
英文地址,請注明出處:http://en.pswp.cn/web/71320.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

React封裝通用Table組件,支持搜索(多條件)、篩選、自動序號、數據量統計等功能。未采用二次封裝調整靈活,包含使用文檔

封裝通用組件 一、封裝思想二、react代碼三、css代碼四、實現效果五、使用文檔 BasicTableModal 表格模態框組件1.組件簡介2.功能特點3.使用方法基礎用法寬度控制示例帶篩選功能搜索功能示例自定義單元格渲染 4.API 說明PropsColumn 配置項Filter 配置項 5.注意事項 一、封裝思…

React 中 useState 的 基礎使用

概念:useState 是一個React Hook(函數),它允許我們向組件添加狀態變量,從而影響組件的渲染結果。 本質:和普通JS變量不同的是,狀態變量一旦發生變化,組件的視圖UI也會跟著變化&…

Html5學習教程,從入門到精通,HTML `<div>` 和 `<span>` 標簽:語法知識點與案例代碼(12)

HTML <div> 和 <span> 標簽&#xff1a;語法知識點與案例代碼 一、語法知識點 1. <div> 標簽 定義: <div> 是一個塊級元素&#xff0c;用于將文檔內容劃分為獨立的、可樣式化的部分。它本身沒有特定的語義&#xff0c;主要用于布局和分組。特點: 塊…

Hbase偽分布安裝教程,詳細版

注意Hbase版本與Hadoop版本的兼容&#xff0c;還有與JDK版本的兼容 本次用到的Hbase為2.4.6版本&#xff0c;Hadoop為3.1.3版本&#xff0c;JDK為JDK8 打開下面的網址查看兼容問題 Apache HBase Reference Guidehttps://hbase.apache.org/book.html#configuration 點擊基礎先…

Python項目】基于Python的圖像去霧算法研究和系統實現

Python項目】基于Python的圖像去霧算法研究和系統實現 技術簡介&#xff1a;采用Python技術、MYSQL數據庫等實現。 系統簡介&#xff1a;圖像去霧系統主要是基于暗通道先驗和逆深度估計技術的去霧算法&#xff0c;系統功能模塊分為&#xff08;1&#xff09;圖像上傳模塊&…

Stable Diffusion Prompt編寫規范詳解

Stable Diffusion Prompt編寫規范詳解 一、語法結構規范 &#xff08;一&#xff09;基礎模板框架 [質量強化] [主體特征] [環境氛圍] [風格控制] [鏡頭參數]質量強化&#xff1a;best quality, ultra detailed, 8k resolution?主體特征&#xff1a;(1girl:1.3), long …

勿以危小而為之勿以避率而不為

《故事匯之&#xff1a;所見/所聞/所歷/所想》&#xff1a;《公園散步與小雨遇記》&#xff08;二&#xff09; 就差一點到山頂了&#xff0c;路上碰到一阿姨&#xff0c;她說等會兒要下大雨了&#xff0c;讓我不要往上走了&#xff0c;我猶豫了一會兒&#xff0c;還是聽勸地返…

wheel_legged_genesis 開源項目復現與問題記錄

Reinforcement learning of wheel-legged robots based on Genesis System Requirements Ubuntu 20.04/22.04/24.04 python > 3.10 開始配置環境&#xff01; 點擊releases后進入&#xff0c;下載對應最新版本的代碼&#xff1a; 將下載后的代碼包解壓到你的自定義路徑下&…

Gin框架從入門到實戰:核心用法與最佳實踐

為什么選擇Gin框架&#xff1f; Gin 是一個基于 Go 語言的高性能 Web 框架&#xff0c;具備以下優勢&#xff1a; 輕量高效&#xff1a;底層依賴 net/http&#xff0c;性能接近原生。簡潔優雅&#xff1a;API 設計友好&#xff0c;支持路由分組、中間件鏈、參數綁定等特性。生…

Leetcode 3468. Find the Number of Copy Arrays

Leetcode 3468. Find the Number of Copy Arrays 1. 解題思路2. 代碼實現 題目鏈接&#xff1a;3468. Find the Number of Copy Arrays 1. 解題思路 這一題的話思路上就是一個范圍考察&#xff0c;顯然&#xff0c;對于指定的copy方式&#xff0c;只要我們確定了第一個元素&…

VirtualBox虛擬機MacOS從Big Sur升級到Sequoia(失敗)

VirtualBox虛擬機里安裝好Big Sur版本&#xff0c;嘗試升級到Sequoia&#xff0c;但是最終失敗了。 軟件升級 直接在系統偏好-軟件更新里可以看到提示&#xff0c;提示可以升級到15版本Sequoia 點擊同意&#xff0c;看能不能升級到Sequoia吧。升級前先用時光做了備份。 升級…

[雜學筆記]HTTP1.0和HTTP1.1區別、socket系列接口與TCP協議、傳輸長數據的時候考慮網絡問題、慢查詢如何優化、C++的垃圾回收機制

目錄 1.HTTP1.0和HTTP1.1區別 2.socket系列接口與TCP協議 3.傳輸長數據的時候考慮網絡問題 4.慢查詢如何優化 5.C的垃圾回收機制 1.HTTP1.0和HTTP1.1區別 在連接方式上&#xff0c;HTTP1.0默認采用的是短鏈接的方式&#xff0c;就建立一次通信&#xff0c;也就是說即使在…

ANI AGI ASI的區別

??ANI、?AGI、?ASI的區別主要體現在定義、特點和應用場景上?&#xff1a; 1. ANI&#xff08;狹義人工智能 Artificial narrow intelligence&#xff09;?&#xff1a; ?定義?&#xff1a;ANI&#xff0c;也被稱為弱人工智能&#xff0c;是指專門設計用于執行特定任務…

用OpenCV寫個視頻播放器可還行?(Python版)

引言 提到OpenCV&#xff0c;大家首先想到的可能是圖像處理、目標檢測&#xff0c;但你是否想過——用OpenCV實現一個帶進度條、倍速播放、暫停功能的視頻播放器&#xff1f;本文將通過一個實戰項目&#xff0c;帶你深入掌握OpenCV的視頻處理能力&#xff0c;并解鎖以下功能&a…

leetcode日記(77)子集Ⅱ

不知道為什么看到這道題就很頭痛…… 其實只要掌握nums不包含重復元素的情況下的代碼就行了。 若nums不能包含重復元素&#xff0c;那么使用回溯很容易就能寫出來&#xff1a; class Solution {void hs(vector<int> v,int x,vector<int> r,vector<vector<…

通俗版解釋:分布式和微服務就像開餐廳

一、分布式系統&#xff1a;把大廚房拆成多個小廚房 想象你開了一家超火爆的餐廳&#xff0c;但原來的廚房太小了&#xff1a; 問題&#xff1a;一個廚師要同時切菜、炒菜、烤面包&#xff0c;手忙腳亂還容易出錯。 解決方案&#xff1a; 拆分成多個小廚房&#xff08;分布式…

StarRocks-fe工程在Cursor中不能識別為Java項目

SR簡介 StarRocks 是一款高性能分析型數據庫&#xff0c;支持實時、多維度、高并發的數據分析。本指南旨在解決在使用 VSCode 或 Cursor 開發 StarRocks 后端項目時遇到的模塊識別問題。 問題描述 使用 Cursor 或 VSCode 打開 StarRocks 的后端工程 fe 時&#xff0c;spark-…

第五節:基于Winform框架的串口助手小項目---串口收發《C#編程》

“路漫漫其修遠兮&#xff0c;吾將上下而求索” &#xff0c; -----------------------WHAPPY 目標任務&#xff1a; 1 從本地設備列表獲取串口。 RegistryKey keyCom Registry.LocalMachine.OpenSubKey("Hardware\DeviceMap\SerialComm"); RegistryKey 是.NET 框…

專題二最大連續1的個數|||

1.題目 題目分析&#xff1a; 給一個數字k&#xff0c;可以把數組里的0改成1&#xff0c;但是只能改k次&#xff0c;然后該變得到的數組能找到最長的子串且都是1。 2.算法原理 這里不用真的把0變成1&#xff0c;因為改了比較麻煩&#xff0c;下次用就要改回成1&#xff0c;這…

25年第四本【認知覺醒】

《認知覺醒》&#xff1a;一場與大腦的深度談判 在信息爆炸的焦慮時代&#xff0c;我們像被拋入湍流的溺水者&#xff0c;拼命抓取各種自我提升的浮木&#xff0c;卻在知識的漩渦中越陷越深。這不是一本簡單的成功學指南&#xff0c;而是一場關于人類認知系統的深度對話&#…