若資料庫中有一張表,每天都會新增資料。這時候使用者可以使用「增量更新」,只將每天新增的資料更新到 FineBI 中。這樣就不需要更新整張資料表,節省了更新時間和更新資源。
滿足以下條件的資料表,比較適合使用增量更新
表內有「時間戳」欄位,可用來和「更新時間」做對比實現增量更新
歷史資料不會變動
增量更新的表常用於頻繁更新且資料量比較大的表。若是單表的資料量比較小,或者一個月才更新一回,那使用全量更新也沒問題。
不支援增量更新的表:伺服器資料集、做了行列轉換或自循環列的基礎表、Excel資料集、自助資料集。(Excel 資料集不能增量更新,只能追加上傳,詳情請參見 追加上傳 。)
必須進行一次 全量更新 後才可以做增量更新,且增量語句不可以為空。
全量更新為將資料庫中所有資料改寫至 BI 資料表中,增量更新更新資料則取決於 SQL 語句。
選中要增量更新的表,在「更新資訊」下找到「單表更新」,如下圖所示:
進入到單表更新設定介面如下圖所示:
可以看到有兩種增量更新方式:增量增加、增量刪除
在下方寫入 SQL 語句取數,「增量增加」會將從資料庫中取出來的資料加到 FineBI 引擎中,如下圖所示:
常用於需要定時新增資料的情況。詳細操作可參見:增量增加範例
在下方寫入 SQL 語句,系統會從 FineBI 引擎中取出該部分資料進行刪除,如下圖所示:
使用者可以透過「增量刪除」刪除 FineBI 引擎中不需要的資料。不過增量刪除很少單獨使用,通常情況下是用於修改資料,可參見本文 2.3 節。
搭配使用「增量增加」和「增量刪除」,比如說先刪除 FineBI 中一部分資料後,再將資料庫中的資料加入到 FineBI 引擎中。
詳細操作可參見:增量修改範例
FineBI 支援定時增量更新,詳細操作可參見 增量增加範例 2.3 節。
若使用者增量更新時不小心重複更新,導致 FineBI 中資料重複怎麼辦?
這時候只需要執行一次全量更新,資料庫的資料會重新改寫 FineBI 引擎中的資料,進而保證 FineBI 引擎中的資料和資料庫保持一致。
使用者在進行增量刪除後,發現磁碟空間沒有相應減少。這是因為 FineBI 在進行增量刪除後不會立即釋放磁碟空間,而是先將資料標記為刪除。當標記刪除的資料量達到一定數量時, 就會一起刪除釋放磁碟空間。