PIPELINE GATES・資料工程關卡・高階・3 題
資料工程高階・索引、分區與回填
這一頁是題幹試閱;登入/註冊後每題可以在瀏覽器裡執行、對答案,第一次交對 +10 XP。
- 01
複合索引最左前綴
困難補充 C 講複合索引的最左前綴原則:查詢條件要從索引的第一欄開始連續命中,索引才用得上。請第一行讀入索引欄位(逗號分隔,例如
stock_id,date,close),第二行讀入查詢筆數 n,接著 n 行各是一個查詢的等值條件欄位(逗號分隔、順序不拘)。對每個查詢印出:- 能用到的前綴長度 ≥ 1:
<條件欄位> -> 用到 <k> 欄:<前綴欄位以逗號串接> - 完全用不到:
<條件欄位> -> 全表掃描
本題在瀏覽器內以 Pyodide 執行,只能用 Python 標準函式庫(json、csv、collections、itertools、datetime、re、math、heapq 等)。
作答登入後可作答 - 能用到的前綴長度 ≥ 1:
- 02
分區剪枝估算
中等BigQuery 按日期分區後,查詢只掃描命中的分區。變數
rows是(stock_id, date)清單;請以 月份(YYYY-MM)為分區鍵分組,再讀入查詢的起訖日期(含),印出:分區數:<n> <YYYY-MM> <筆數> (每個分區一行,依月份排序) 查詢命中分區:<以逗號串接的月份> 掃描列數:<命中分區的筆數總和> / <總筆數>命中的定義:該月份與查詢區間有重疊(也就是月份字串 ≥ 起日的月份且 ≤ 迄日的月份)。
本題在瀏覽器內以 Pyodide 執行,只能用 Python 標準函式庫(json、csv、collections、itertools、datetime、re、math、heapq 等)。
作答登入後可作答 - 03
雲地差異回填
中等補充 L 的 sync 要把地端有、雲端沒有的資料補上去。變數
local_keys與cloud_keys是兩邊已有的(stock_id, date)集合。請印出:需回填:<n> 筆 <stock_id> <date> (每筆一行,依 stock_id、date 排序) 雲端多出:<m> 筆 <stock_id> <date> (同上)「雲端多出」指雲端有但地端沒有的鍵——sync 不會刪它,但要列出來讓人檢查。
本題在瀏覽器內以 Pyodide 執行,只能用 Python 標準函式庫(json、csv、collections、itertools、datetime、re、math、heapq 等)。
作答登入後可作答

送件鴿飛出去了