按日期分表,每天儲存當天資料

  • 文檔創建者:Wendy123456
  • 編輯次數:7
  • 最近更新:帆软用户UT9OHLQhgP 于 2026-08-03
  • 1. 概述

    1.1 應用場景

    API API中每天有 20 多萬的資料,若落庫到同一張表中,隨着時間該表資料不斷累積,可能造成查詢慢的問題。

    希望能按日期分表,每天建立一個新的資料表,儲存該天資料。

    1.2 實現思路

    • 根據實際需要從 API API中取出今天資料,將資料落庫到臨時表中。

    • 自訂每天的表名,建立表結構,將臨時表中的資料寫入建立立的表中。

    • 清空臨時表,設定調度頻率。

    1.3 任務展示

    FineDataLink 中的資料處理程式,詳情參見:https://demo.finedatalink.com/「API取數-資料每日落庫」。

    2. 操作步驟

    2.1 場景模擬

    API API中儲存着訂單資料,且每天新增;希望每天從 API API中取出當天包含部分「客戶ID」的資料,每天的資料單獨儲存。

    本文範例中,使用 資料服務 建立的 API 模擬 API API,可以透過開始時間、結束時間、客戶ID從 API API取數。如下圖所示:

    2.2 將每日資料落庫到臨時表中

    本節步驟,使用者可根據實際情況,從 API API中取出每天資料,儲存到臨時表中。

    2.2.1 參數準備

    本文範例中,是取出每天包含部分「客戶ID」的訂單資料,所以需要向 API API中傳入每天的開始時間、結束時間、客戶ID參數。

    1)建立定時任務,拖入「參數指派」節點,取出當天的開始日期和結束日期。如下圖所示:

    SELECT DATE_FORMAT(NOW(), '%Y-%m-%d 00:00:00') AS start_time,DATE_FORMAT(NOW(), '%Y-%m-%d 23:59:59') AS end_time;

    匯出參數start_time、end_time。如下圖所示:

    2)由於要從 API API中取出當天特定客戶ID對應的訂單資料,需要將客戶ID取出,匯出為參數。

    再次拖入「參數指派」節點,將客戶ID匯出為參數。如下圖所示:

    2.2.2 從API中取出資料匯出到臨時表中

    1)拖入「循環容器」節點,循環容器節點中拖入資料轉換節點。

    循環遍歷客戶ID,從 API API中取出客戶ID對應的當天資料。「循環容器節點設定頁面如下圖所示:

    2)「循環容器」節點中拖入資料轉換節點,進入資料轉換節點。

    拖入API輸入算子,使用 2.2.1 節準備的參數,從 API API中取數,每次取出當天某客戶ID對應的訂單資料。

    點選「資料預覽」,如下圖所示:

    可發現,取出的訂單資料在 data 欄位中。

    3)拖入「JSON解析」算子,解析 data 欄位,如下圖所示:

    點選「資料預覽」,如下圖所示:

    4)由於使用客戶ID」透過循環容器節點遍歷訂單資料,若當天訂單資料中沒有該客戶ID對應的資料,臨時表中會新增一條空資料,需要把空資料刪除。

    拖入資料過濾算子,過濾出訂單ID非空的資料。如下圖所示:

    5)拖入「DB表匯出」算子,將取出的資料匯出到臨時表中。如下圖所示:

    寫入方式選擇追加寫入資料。點選右上角儲存按鈕。

    2.3 建立表名並匯出為參數

    準備儲存每天資料的表名。

    1)拖入參數指派節點,自訂表名並匯出為參數。

    本文範例中,每天的表名是:test+當天日期,比如今天日期是2024-01-10,表名為:test20240110。

    SELECT CONCAT('test', DATE_FORMAT(NOW(), '%Y%m%d'));

    2)將表名匯出為參數。如下圖所示:

    2.3 建立表結構

    建立表,表名稱為${tablename}表結構與 2.2 節臨時表的表結構一樣,建議欄位順序也與臨時表的相同。

    拖入「SQL腳本」節點,建立表結構。如下圖所示:

    2.4 將臨時表資料插入到建立表中

    使用SQL腳本節點,將 2.2 節臨時表資料,插入到 2.4 節建立的表中。如下圖所示:

    INSERT INTO ${tablename}
    SELECT * FROM linshi

    2.5 清空臨時表

    每天需要將臨時表中的資料插入到每天建立的表中,所以每天資料落庫後,要清空臨時表,方便下次資料落庫。

    拖入SQL腳本節點,清空臨時表資料。如下圖所示:

    TRUNCATE TABLE linshi

    2.6 效果查看

    點選右上角儲存並運作按鈕,任務執行成功後,今天特定客戶ID的訂單資料已被取出,如下圖所示:

    2.7 設定執行頻率

    點選任務控制,在調度配置Tab下配置執行頻率。如下圖所示:




    附件列表


    主題: 資料開發-定時任務
    • 有幫助
    • 沒幫助
    • 只是瀏覽
    中文(繁體)

    滑鼠選中內容,快速回饋問題

    滑鼠選中存在疑惑的內容,即可快速回饋問題,我們將會跟進處理。

    不再提示

    10s後關閉

    獲取幫助
    線上支援
    獲取專業技術支援,快速幫助您解決問題
    工作日9:00-12:00,13:30-17:30在线
    頁面反饋
    針對當前網頁的建議、問題反饋
    售前咨詢
    業務咨詢
    電話:0933-790886或 0989-092892
    郵箱:taiwan@fanruan.com
    頁面反饋
    *問題分類
    不能為空
    問題描述
    0/1000
    不能為空

    反馈已提交

    网络繁忙