AI & Data Dreamers練功房
寶箱片場規則
PIPELINE GATES・資料工程關卡・高階・3 題

資料工程高階・索引、分區與回填

這一頁是題幹試閱;登入/註冊後每題可以在瀏覽器裡執行、對答案,第一次交對 +10 XP。

  1. 01

    複合索引最左前綴

    困難

    補充 C 講複合索引的最左前綴原則:查詢條件要從索引的第一欄開始連續命中,索引才用得上。請第一行讀入索引欄位(逗號分隔,例如 stock_id,date,close),第二行讀入查詢筆數 n,接著 n 行各是一個查詢的等值條件欄位(逗號分隔、順序不拘)。對每個查詢印出:

    • 能用到的前綴長度 ≥ 1:<條件欄位> -> 用到 <k> 欄:<前綴欄位以逗號串接>
    • 完全用不到:<條件欄位> -> 全表掃描

    本題在瀏覽器內以 Pyodide 執行,只能用 Python 標準函式庫(json、csv、collections、itertools、datetime、re、math、heapq 等)。

    作答登入後可作答
  2. 02

    分區剪枝估算

    中等

    BigQuery 按日期分區後,查詢只掃描命中的分區。變數 rows 是 (stock_id, date) 清單;請以 月份(YYYY-MM)為分區鍵分組,再讀入查詢的起訖日期(含),印出:

    分區數:<n>
    <YYYY-MM> <筆數>   (每個分區一行,依月份排序)
    查詢命中分區:<以逗號串接的月份>
    掃描列數:<命中分區的筆數總和> / <總筆數>

    命中的定義:該月份與查詢區間有重疊(也就是月份字串 ≥ 起日的月份且 ≤ 迄日的月份)。

    本題在瀏覽器內以 Pyodide 執行,只能用 Python 標準函式庫(json、csv、collections、itertools、datetime、re、math、heapq 等)。

    作答登入後可作答
  3. 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 等)。

    作答登入後可作答