Import
將數據分期提取到數據庫的工具
我們有一個可以與 Oracle 或 MySql 或 SQLServer 數據庫一起使用的應用程序。此外,還有一個第 3 方數據源,我們需要每 15 分鐘在我們的數據庫中保存它的最新數據記錄。我們可以呼叫一些 API 或原始數據端點來從第三方源中提取數據。
如果我們編寫一個應用程序來完成這項工作,它應該執行以下操作:
- 每 15 分鐘呼叫第 3 方端點(呼叫端點)
- 將數據轉換為我們的數據庫格式(數據集成)
- 在我們的表中插入數據(Oracle 或 MySql 或 SQLServer)
那麼,是否有任何預定義的工具可以為我們完成這項工作,或者我們應該在內部開發這個應用程序?這是某種數據庫同步工作,但它應該能夠與不同的數據庫一起工作,並且它應該能夠進行數據集成。
解決方案
您的解決方案包含兩個部分
- 安排工作
- 提取、轉換和載入 (ETL) 數據
作業調度程序
- 作業系統有它們 (
cron
/task scheduler
)- 一些數據庫有調度程序(oracle
DBMS_SCHEDULER
)- 還有用於作業間調度和資源控制的企業 COTS(Common Of The Shelf)軟體
ETL
最簡單的形式是 shell 腳本和儲存過程的組合。
- shell 腳本首先複製 (
Extract
) 數據 (ftp
,scp
, REST 呼叫 viacurl
)。- 然後,它
Loads
把數據存入數據庫。所有 RDBMS 都有載入 CSV 數據的工具。- 之後,呼叫儲存過程和/或 SQL 腳本
Transform
將數據置於其最終狀態。
- 這些最有可能使用
INSERT...SELECT
或MERGE
語句。
- 最後,shell 腳本歸檔數據文件。
在高端,可以使用 COTS 軟體。
建造還是購買?
隨你(由你決定。你需要做更多的研究。