范圍分區(qū)-思考

  • 按月分區(qū)
    之前的模型設計師及架構師留下的表分區(qū)為STRING型的etl_time:20181222153000(年月日時分秒)


    image.png

業(yè)務人員使用時經常用時間取數,導致需要截取etl_time,效率比直接查詢分區(qū)字段原始值慢兩倍。


image.png

思考: 若是重新分區(qū),基于現在的業(yè)務場景及數據使用方便層面,我更傾向于年月-日-時

  • 同樣是按月分區(qū),這樣會在年月目錄中存儲單月30天的目錄數據;


    image.png
  • 天目錄下有時目錄( 甚至可以天時一層目錄,因為一天只保留一份當天全量數據)

后續(xù): 若是需要批量修改底層表的分區(qū)字段及分區(qū)字段值
思路:

  • 將類似etl_time:20181222153000的字段分兩列: etl_date: 20181222 etl_time: 153000(根據使用場景決定time存儲時分秒)

    -- 檢查數據是否備份至臨時表,此步驟決定是否執(zhí)行下一步
    CREATE TABLE 臨時表 AS orc AS SELECT * FROM 原表;  
    - 這期間耗時會根據表量、數據量決定
    - DROP TABLE 原表;  -- 檢查數據已備份至臨時表,再執(zhí)行此步驟
    CREATE TABLE 新表 (業(yè)務字段,分列字段,分區(qū)字段);   —- 分區(qū)字段參考etl_date
    INSERT INTO 新表 (業(yè)務字段,分列字段,分區(qū)字段)  -- 檢查數據是否完整
    select
    業(yè)務字段
    ,SUBSTRING(20181222153000,1,8)
    ,SUBSTRING(20181222153000,9,6)
    FROM 臨時表;
    -- 備份歷史數據-插數據還是挺快的,秒級幾十萬條(單條數據約為0.005KB)
    ...
    
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容